arduino常用scratch程式效能測試

這篇是舊版,請直接看新版:

http://blog.ilc.edu.tw/blog/blog/868/post/103153/664175

操控arduino常見的scratch介面程式有[mBlock]、[S2A+Transformer]、[WFduino]。

因為要讓七段顯示器顯示,需要用到一點點的程式技巧,可以測試程式的轉換效能,因此以下用七段顯示器的程式來做測試。

雖然各種程式不能互通,但是基本寫法架構一樣,執行效能應該和程式本身轉換效能有關。

附上測試程式,大家可以直接下載測試,各程式韌體不同,測試前記得要更新韌體。

測試程式讓七段顯示器輪流顯示0~9的字元,每個字元間等待0.5秒,讓我們能看到字元的完成。

重複30次後,將執行時間顯示出來。

測試機器除chromebook外,使用同一台電腦,背景程式都差不多,沒有特別執行其他程式。每一個程式都測過好幾次,結果都差不多。(註)

先講結論

執行時間:

mblock一般模式約460秒,Turbo模式約299秒

WFduino約290秒

transformer+S2A約290秒

推論:

每一輪顯示0~9等10個字元的等待時間5秒,重複執行30次共150秒。其他時間應該就是程式轉換讓七段顯示器執行的時間。

mblock的Turbo模式執行時間和其他程式差不多,可是一般模式卻多了1.5倍的時間。聽說是因為mblock的指令積木裡含有等待時間,所以跑得時間要久一點。

transformer+S2A和WFduino使用Turbo模式和一般模式時間差不多。

———————————————–

1.WFduino

1.1 scratch2.0離線版(win7)

程式下載:WFduino程式.sb2

1.2 scratch2.0線上版(win7)

程式下載:WFduino程式.sb2

1.3 scratch2.0(chromebook)

程式下載:WFduino程式.sb2

1.4 scratchX線上版(win7)

程式下載:scratchX程式.sb2

2.transformer+S2A

程式下載:transformer+S2A程式.sb2

Turbo模式還是約290秒

3.mblock(V3.2.2版)

程式下載:mblock程式.sb2

一般模式約459秒

 

Turbo模式約299秒

————————————- 

基本說明:

七段顯示器(Seven-segment display):為常用顯示數字的電子元件,七段顯示器由四個直向、三個橫向及上右下角一點的發光二極體組成,七段顯示器分為共陽極及共陰極。

詳細原理及說明請看:

http://thats-worth.blogspot.tw/2014/06/arduino-7-seven-segment-display-1.html

    

 

共陰極七段顯示器接線圖如下:下圖中P(小數點)未接,但是我們可以同前面加電阻接D9,讓小數點也可以亮起來。

 

下表列出對應顯示 0~9 的數字及HELLO,各接腳的明亮狀態,這邊用 1 表示高電位,0 表示低電位。 

 (以上圖片來源:http://thats-worth.blogspot.tw/2014/06/arduino-7-seven-segment-display-1.html)

——————–

測試程式說明

 

如前面所說將共陰極七段顯示器的各腳,分別接上220歐姆電阻後,再接到D2~D8。

 

用字串來表示字元中顯示器各段LED的亮或暗,L表示低電位,H表示高電位。例如:0除了第七腳低電位外,其他腳位都是高電位。

先將各變數該亮該暗的LED字串設置好。

然後[製做積木]指令來讓顯示器顯示變數字元。

[清除顯示]積木:輪流將顯示器每一段都設為低電位,讓顯示器熄滅。

[顯示器狀態(type)]積木:先清除前一個字元,再讓新的字元,每一段LED輪流亮或不亮,以顯示該字元。

要顯示的字元變數內的各段LED代表字串如果是H,就讓該腳位輸出高電位,亮起來。

讓七段顯示器輪流顯示0~9的字元,每個字元間等待0.5秒,讓我們能看到字元的完成。

重複30次後,將執行時間顯示出來。

這個積木用到特別的指令功能

要先按[製做一個積木]後,輸入積木名稱(顯示器狀態),形成(顯示器狀態)的積木指令。

然後再按[選項],再點[新增字串輸入後面的方形,輸入(type),再按[確定],就可以了。 

letter(索引)of(type)   的 (索引)去變數裡面拉,(type) 直接將上面 定義 [顯示器狀態(type)]積木 裡面的 (type) 拉下來就可以了。

mblock的程式解說請看:

http://blog.ilc.edu.tw/blog/blog/868/post/93477/624947

———————————-

註:另一種程式寫法

scratch2.0(chromebook)

用[重複8次],[腳位(顯示)模式設為OUTPUT],來設定D2~D9為OUTPUT。

然後用[製做積木]指令來讓顯示器顯示字元。

[清除顯示]積木:輪流將顯示器每一段都設為低電位,讓顯示器熄滅。

[顯示字元]積木:用[如果…就…]來判斷要顯示的字元,每一個腳位要亮或暗。

然後重複顯示各個字元。

測試結果約380秒,這種寫法的執行效率明顯比前面的290秒差很多。

程式下載: 7段顯示器同時顯示.sb2

——————————

相關連結:

初級班課程目錄

http://blog.ilc.edu.tw/blog/blog/868/post/97509/641433

WFduino課前準備

http://blog.ilc.edu.tw/blog/blog/868/post/97509/636665

WFduino第一課(概論、連接)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/636745

WFduino第二課(LED)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/637840

WFduino第三課(用鍵盤控制LED)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/637841

WFduino第四課(3顆LED紅綠燈)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/637850

WFduino第五課(PWM模擬類比輸出)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/638450

WFduino第六課(RGB三色LED)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/638508

WFduino第七課(蜂鳴器)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/638509

WFduino第八課(按鍵)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/639090

WFduino顏色猜猜機(第8-1課)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/639091

WFduino第九課(可變電阻)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/639092

WFduino第十課(光敏電阻)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/639093

WFduino第十一課(伺服馬達)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/639094

WFduino第十二課(超音波感測器)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/639095

WFduino第十三課(繼電器)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/639096

WFduino第十四課(人體紅外線感測器)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/640850

WFduino第十五課(主動式紅外線感測器)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/640852

WFduino第十六課(七段顯示器)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/640853

英文聽音打字練習(WFduino)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/636484

會說時間的鬧鐘(WFduino)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/637772

會說話的九九乘法表(WFduino)

http://blog.ilc.edu.tw/blog/blog/868/post/97509/636482

WFduino Chrome App

http://blog.ilc.edu.tw/blog/blog/868/post/97509/637303

WFduino語音控制(forcratchX)

http://blog.ilc.edu.tw/blog/blog/868/post/10898/635592

WFduino無線操控arduino

http://blog.ilc.edu.tw/blog/blog/868/post/97509/636819

WFduino原廠使用方法介紹網頁

http://wf8266.com/wf8266r/tutorials/65_Sx4ABlocks

WFduino for ScratchX

http://blog.ilc.edu.tw/blog/blog/868/post/10898/635190

WF8266R雲端外部感應器

http://blog.ilc.edu.tw/blog/blog/868/post/10898/633305

roc

宜蘭縣國小資訊小站

您可能也會喜歡…