09 Pico W 自組小車
(2023/02/06)
昨天得知Mason老師釋出適合Pico W的microBlock IDE,趕快嘗鮮測試,一開始使用有一些問題,經Mason老師修正後,已經跟之前ESP32版本一樣了,而且裡面的很多元件及感測器積木都可以用了!由於我下學期的課後社團會帶小朋友玩小車,所以直接測試小車的使用,幾乎都沒問題!只能說Mason老師又把Pico W變簡單了,教材如下,供參
使用程式:
Mason客製化的microBlock IDE
下載:
第一步是【韌體更新】
可從microBlock IDE的【更新韌體】來更新
但我從microBlock IDE更新時都沒反應,直接從microblock的檔案資料夾找到firmware.bin(或從resources\app\microBlock-IDE\boards\raspberry-pi-pico-w\firmware會找到)
更新前,先將白色BOOT鍵按住後,再將USB線與電腦連接,然後放開按鍵,再把上檔拖曳過去RPI-RP2即可
Pico W腳位圖
一、進行簡單測試
讓Pico W內建LED燈閃爍
讓外接的LED燈閃爍
外接LED燈接在GPIO4
按鍵開燈測試
外接按鍵模組接在GPIO5
取得按鍵的數位值
按鍵開燈測試
外接按鍵模組接在GPIO5
按鍵開燈、放開關燈
程式如右
但使用【按鈕】積木,會出現如下的錯誤(再請mason解決)
二、自組小車進行簡單測試
本自組小車所使用的腳位
所使用的腳位參考亞博小車
超音波感測器:TRIG:0、ECHO:1
循跡感測器:左:2、右:3
OLED:SCL:13、SDA:12(這部分Mason老師已改成可以自行修改腳位)
蜂鳴器:22
紅外線接收器:7
馬達:左:15、14;右:10、11 ??
左方麵包板提供3V3、右方提供5V
外接LED:4
外接按鍵:5
自組小車外觀照
供電說明
測試超音波感測器
使用腳位:TRIG:0、ECHO:1
修正超音波模組積木沒有0及1腳位
方法一:使用文字模式來修改
方法二:修改積木的原始程式,找到resources\app\extension\2c-Ultrasonic-extension-2\blocks下的blocks_hcsr04_lang.js,用記事本來修改(如下圖),存檔後,重新啟動microBlock IDE
測試OLED
使用腳位:SCL:13、SDA:12
(這部分Mason老師已改成可以自行修改腳位,下次再改成SCL:15、SDA:14,左輪再改成13、12)
這OLED只做是否能正確顯示的最基本測試
座標起點為文字的左上角
【英文及數字】積木,每個字寛度8,且只顯示一行,最多16個數字或英文字母,超過的部份不會出現
【大型數字】積木,每個字寛度20,每行可顯示6個數字或7個英文字(輸入小寫也會顯示大寫),超過一行時會往下一行
20230207更新
新積木有提供2組的腳位可更換
0:SCL:13、SDA:12
1:SCL:15、SDA:14
蜂鳴器測試
蜂鳴器使用腳位:22,另一隻腳接GND
播放全家歡迎音樂(按按鍵播放)
簡譜:3 1 5(低音) 1 / 2 5~ 2 / 3 2 5(低音) 1
所使用的頻率:330、262、196、262、294、392(2拍)、294、330、294、196、262
每拍0.5秒
檔案:https://drive.google.com/file/d/1M5aU4FguGlRHw2_crhAvc3s0py37-6Kb/view?usp=share_link
另一個【音符簡譜積木】則有問題
小車前進、後退、左轉、右轉、停止測試
使用腳位:馬達:左:15、14;右:10、11
這只做最基本的移動測試
紅外線遙控測試
紅外線接收器使用腳位:7
取得遙控器各按鍵的編碼值
取得【KEYES遙控器】的方向鍵編碼值
上:70
下:21
左:68
右:67
OK:64
利用【KEYES遙控器】控制車子的前後左右
發現:車子輪子轉動時,就無法再接受遙控!!
小車避障測試
小車避障規則:當前方20公分內有障礙物時,會隨機左右轉0.3~0.6秒鐘,否則就向前進
檔案:https://drive.google.com/file/d/1f9F6V4dbS7pr4CPG7xQzI70_PmiPBBZJ/view?usp=share_link
小車循跡測試
車左邊感測器的腳位2、車右邊感測器的腳位3
測試【循跡感測器】
發現:
感測器在白線上:感應燈亮、數位值為0
感測器在黑線上:感應燈滅、數位值為1
循跡原理:如左圖
兩感測器都在黑線上,左右其值為1,1=1*2+1=3 (車子前進)
左感測器在黑線上,右感測器在白線上,左右其值為1,0=1*2+0=2(車子左轉)
右感測器在黑線上,左感測器在白線上,左右其值為0,1=0*2+1=1(車子右轉)
檔案:https://drive.google.com/file/d/15vEtCXwhfbU9Yfxq5NqtqxRHAfm_JzT3/view?usp=share_link
三、其他測試
DHT11溫濕度測試
DHT11腳位:21
呈現溫濕度時,兩者中間一定要有等待時間,不然會出錯
顯示在OLED上
四、物聯網應用
測試連上網路
啟動UDP伺服器
填上自己的IP來啟動UDP伺服器(埠號為6188)
使用【Sokit】軟體來傳輸資料到UDP伺服器
Sokit(簡易TCP/UDP測試工具)
軟體介紹 https://dotblogs.com.tw/DizzyDizzy/2019/02/15/sokit
模擬TCP/UDP server (字串或是Hex皆可)
模擬TCP/UDP Client (字串或是Hex皆可)
轉發功能
方便小學生的使用
軟體下載 https://mega.nz/file/1l9AzS4Q#Q-D9Slf4O52bOtmkjYawedvQR4GxyfRi0hj7svkUHR4
使用【Sokit】軟體來控制小車的移動
字串指令
F (前進)
B(後退)
L(左轉)
R(右轉)
S(停止)
https://drive.google.com/file/d/1iYgai6ROB-Q_99XUSYJuwl7Am-mZkssu/view?usp=share_link
使用手機APP【UDP TCP Server Free】來控制小車
手機介面如下
使用手機APP【V7RC】來控制小車
V7RC支援Android及IPhone手機
也可以傳送訊息到另一台UDP伺服器
使用Sokit來接收訊息
IP要改成電腦的IP
要接收資料,記得要允許本程式sokit通過防火牆
MQTT測試
MQTT程式基本架構及遠端控制開關燈
使用尤大大的mqttgo.io
傳送的資料為Bytes格式('b'XXX'),再轉為UTF-8格式(XXX)
https://drive.google.com/file/d/1A2-4ebekKXhqQmd9CoRuOF2QgDwOMp0F/view?usp=share_link
使用尤大大的mqttgo.io的網頁平台當發送端
利用手機APP透過MQTT來控制車子的運動
使用IoT OnOff APP,此APP適用Android及Iphone手機
有關IoT OnOff APP的使用,請參考 https://sites.google.com/site/wenyunotify/05-esp32/03-%E7%B6%B2%E8%B7%AF%E6%87%89%E7%94%A8
車子程式如下:https://drive.google.com/file/d/1V30XaoU33qV-yXJp5lKJGQQdN2ZpVdvj/view?usp=share_link
APP畫面如右
五、最後整合
由於針對國小學生,所以只做最簡單的整合
最後功能說明:
OLED顯示
溫度:DHT11量測到的溫度(沒有顯示濕度,因為不想有太多的等待時間)
距脽:超音波感測器所量到的距離
按鍵功能:利用紅外線遙控器來遙控小車
紅外線遙控器按鍵
前:
後:
左:
右:
播音樂:
或其他(如開關燈)
程式如下:https://drive.google.com/file/d/1UilyPgeVS9oPrfiX7XM3bQFIzBn7z8K-/view?usp=sharing