宜蘭縣教育支援平台 會員登入 會員註冊 我的i教書

« 上一篇 | 下一篇 »

使用Scratch 3 onegpio控制arduino 基本積木測試

程式執行前準備請參考

http://blog.ilc.edu.tw/blog/blog/868/post/113115/784723

程式網頁連結
https://mryslab.github.io/s3onegpio/

教學網頁:

https://sites.google.com/view/onegpio/?fbclid=IwAR0MMHbDupPkgovgNnm8c3cAM8hWfOiofIHTZSlJFa0aZPygN-JuPNZag4s

---------------------------------

第一次使用要先做(電腦安裝程式,)

先在電腦上執行arduino IDE將韌體燒錄到arduino。(FirmataExpress和 ultrasonic)

電腦安裝程式,安裝python和s3-extend

上面2個步驟以後就不用再做了。

-----------------------

連接使用:(步驟不可以顛倒)
一、
打開一個終端窗口並鍵入:
s3a
按[enter]執行
二、
開啟Scratch 3 onegpio

網頁的左下角點[添加擴展]

添加[arduino],這個擴展功能積木。

程式如果斷線,請從新執行第一步驟,第2步驟可以先下載檔案存檔後,重新整理,再重新上傳程式,才能繼續工作。

-------------------------------------------

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也就讀到不同的電壓資料。

程式應用同上。

------------------------------------

更多應用,請參考竹林資訊站課程

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




 
 
 
用LINE傳送