OSEP scratch3 arduino 基本積木測試
將硬體(arduino或其他)接到電腦
選擇硬體(arduino或其他)
開始執行[OSEP中介(轉譯)程式],會自動執行一些程式,跳出來的視窗都不要關掉,點[允許存取]
完成啟動[OSEP中介(轉譯)程式],點選離線版或線上(網頁)版,開始設計程式。
————————
點選離線操作,或線上操作或https://ys-fang.github.io/OSEP/app/
——————————————-
Scratch 3 onegpio控制arduino 積木如下:
一、Arduino讓13腳位的LED閃爍
將LED長腳改接Arduino板數位腳位13,由數位腳位13來控制輸出高電位(5V)或低電位(0V)。
當輸出為高電位(5V)時LED亮,低電位(0V)時LED熄滅。
1.重複讓接在數位腳位13的LED輸出為1(高電位)和0(低電位)
2.設定[腳位13 數位輸出1],讓D13輸出為高電位,LED燈亮
3.[等待0.5秒],讓亮燈維持0.5秒
4.設定[腳位13 數位輸出0],讓D13輸出為低電位,LED燈熄滅
5.[等待0.5秒],讓燈熄滅維持一秒
6.將2.3.4.5包在[重複執行]裡面,讓LED燈以0.5秒的間隔不斷閃爍。
程式下載:LED13閃.sb3
二、使用鍵盤按鍵來控制LED
按鍵盤上的[向上鍵]讓LED燈亮,鬆開[向上鍵]LED燈熄滅。
程式下載:按向上鍵亮13LED(誤).sb3
執行結果會當機(中斷連線)
因為電腦程式和arduino及中介程式之間的速度無法匹配。
修改如下,就可以解決:
程式下載:按向上鍵亮13LED .sb3
三、PWM模擬類比輸出
呼吸燈(漸亮、漸暗、漸亮、漸暗、不斷循環)
接線圖請參考上面,LED長腳(正極)改接數位腳D9,短腳接電阻,再接GND
做一個變數[亮度],[腳位(9)類比輸出(亮度)],改變[亮度]的數值,輸出的電壓就會改變,LED的亮度也就跟著改變。
先將呼吸變數慢慢增加,LED愈來愈亮。再將呼吸變數慢慢減少,LED愈來愈暗。
[重複執行]這個動作。
程式下載:呼吸燈 .sb3
五、伺服馬達(舵機)
伺服馬達:又稱為舵機,可以依照指示角度做轉動的馬達。
一般伺服馬達有三條線,電源(紅色)、接地(黑或棕色)、訊號線(白、黃、橘、藍….)。透過訊號線傳送PWM脈波來控制軸柄的停止位置旋轉角度,只要一個指令就可以控制了。
若想使用超過兩個以上的伺服馬達,要以另外的電源供電,而且要記得共同接地。
(一)控制伺服馬達轉動
將伺服馬達的三條線,電源(紅色)接5V、接地(黑或棕色)接GND、訊號線(白色)接數位腳D12。
使用 [ 伺服馬達為腳位(…)轉動角度為(…)度] 的指令積木來控制馬達的轉動角度。
改變角度數字就可以改變伺服馬的轉動角度。
程式下載:伺服馬達轉動到90度.sb3
(二)利用拉霸(變數)控制伺服馬達
先做一個[角度]變數,在舞台區會顯示變數的圖案,在圖案上用滑鼠左鍵點一下,就會變成只有數值,在圖案上再點一下滑鼠左鍵,就會出現有[拉霸]小點的圖形。
用滑鼠左鍵拖曳小點往左右滑動,就可以改變變數大小,也就是改變輸出值的大小。
這樣就可以拉霸來控制伺服馬達的轉動角度。
注意:要加上等待時間,才不會當機喔。
程式下載:利用拉霸(變數)控制伺服馬達.sb3
六、超音波感測器
超音波感測器:主要有一個超音波發射器和一個接收器組成。
左邊T是發射器,會發出40 kHz 的超音波;右邊R是接收器,接收反射回來的超音波。
人類能聽到的音調頻率大約在20Hz到20000Hz之間,事實上每個人能聽到的範圍都不一樣。
HCSR04超音波感測器特性:
1.感應角度:不大於15度
2.探測距離:2cm-450cm
3.感測器有四個接腳:接線方式為Vcc接5V,Gnd接地,Trig(控制端)和Echo(接收端)。
測距離
超音波感測器的Vcc接5V,Gnd接地,Trig接腳位9,Echo接腳位10
蜂鳴器正極(長腳)接數位腳D12,負極接GND
使用 [HCSR超音波感測器,Echo在腳位(10)Tring在腳位(9)]指令可以偵測感測器的偵測結果。
將變數值設為偵測結果,從螢幕上就可以看到變數顯示測量到的距離是幾公分。
程式下載:超音波測距離.sb3
七、讀取數位腳位(輸入)
arduino的D2~13腳位可以當成數位輸入使用
按鍵:可以控制通路或斷路的開關,一般使用為按下為通路,放開為斷路。
(一)基本測試
按鍵一邊接5V,另一邊接10K歐姆電阻再接地(GND),中間拉一條訊號線到數位腳D12當作判斷輸入訊號。
測試按鍵按下時的輸入訊號
未按時顯示0
按下時顯示1
程式下載:讀取數位腳位(輸入).sb3
(二)運用Arduino的數位輸入來控制LED亮或滅
按鍵一邊接5V,另一邊接10K歐姆電阻再接地(GND),中間拉一條訊號線到數位腳D12當作判斷輸入訊號。
數位腳D13接紅色LED正極,再串接220歐姆電阻後接地(GND)。
加上[說(讀取數位腳位(12))],可以從螢幕上看到讀取(輸入)的結果。
如果按鍵按下時,數位腳D12得到1(高電位),這時就輸出一個高電位(1)給數位腳D13,讓紅色LED亮。
否則(沒有按鍵按下時),數位腳D12是0(低電位),這時就設定腳為13為低電位,讓紅色LED熄滅。
程式下載:按鍵亮燈(數位輸入).sb3
八、讀取類比腳位(輸入)
arduino的A0~A5腳位可以當成類比輸入使用。
(一)可變電阻:又稱為可變電阻器(電位器),可經由滑動(轉動)而改變滑動端與兩個固定端間電阻值的電子零件。
線性尺度式:電阻值的變化與旋轉角度或移動距離呈線性關係,此種電位器稱為 B 型電位器。
(1)基本測試(讀取類比腳A0的資料):
可變電阻兩端各接GND及5V,中間腳接類比腳A0輸入。
當轉動可變電阻時,中間接腳得到的電壓也會改變,類比腳A0也就讀到不同的電壓資料。
使用[說出(讀取類比腳位A0)]指令,螢幕上就會出現0到1023的數值
程式下載:讀取類比腳位(輸入).sb3
(2)變大變小隨我變
使用可變電阻調整腳色(人物、圖片)大小。
將大小設定為類比腳位A0得到的值。
因為讀到的值為0到1023,所以轉換時要將得到的值除以10.23,才是正確的百分比。
程式下載:變大變小隨我變.sb3
(二)光敏電阻
光敏電阻:利用光電導效應的一種特殊的電阻,簡稱光電阻,又名光導管。它的電阻和光線的強弱有直接關係。光強度增加,則電阻減小;光強度減小,則電阻增大。(摘自維基百科) (註)
光敏電阻一端接5V,再接一顆1K歐姆的電阻,然後接GND,在光敏電阻和1K歐姆電阻中間腳接一條線到類比腳A0輸入。
光敏電阻接收到不同的光強度時,電阻值改變,中間的電壓也會改變,類比腳A0也就讀到不同的電壓資料。
程式應用同上。
————————————
更多應用,請參考竹林資訊站課程