材料:
1. Arduino UNO板子 *1
2.SHIELD V5.0 擴展板 *1
3.小型伺服馬達SG90 *2
4.HC-SR04 超音波感測器 *1
5.1602 LCD I2C 點陣液晶模組 *1
6.LED 燈球 *1
7.電源用9V 電池 *1
開發環境
Arduino IDE 1.8.2,沒使用 Scratch 積木程式是因為arduino的程式沒有多複雜,小學5年級以上的學生經說明都能理解,用程式碼的好處比起積木指令要更簡潔彈性更大,尤其當程式複雜時更能體會用程式碼的好處。
Arduino uno+ Sensor Shield V5.0 擴展板
合體後的外觀
用擴展板的好處就是把常用的GPIO腳位、電源、接地都拉出來不需要用麵包版來接線擴充
程序一:把上述零件單一測試
伺服馬達
|
測試小型伺服馬達SG90:是否能在0~180來回運作 |
1602 LCD I2C 點陣液晶模組
|
測試1602 LCD 點陣液晶模組是否能正常顯示文字 |
HC-SR04 超音波感測器
延續剛剛LCD螢幕的程式碼,這次要把超音波測到的距離顯示在LCD上
|
測試HC-SR04 超音波感測器 |
當以上伺服馬達、LCD螢幕、超音波感應器測試都Ok後就要整合在一個程式中,我用樂高零件把Arduino UNO機板、擴展版、伺服馬達、LCD 1602螢幕、超音波HC-SR04整合在一起如下圖
|
用樂高積木當架構把零件組合起來 |
|
編譯與上傳程式到Arduino中 |
|
C 語言+ Arduino + MacBook Pro |
接著在PC要撰寫接收Arduino傳過來的資料並存入資料庫中,我用C#開發PC端程式
重點說明:
PC與Arduino溝通的方式很多如透過USB Cable、藍芽BT、 WIFI等,這次用USB Cable來接收與傳遞資料跟 Arduino溝通。
PC與Arduino溝通是透過ComPort,當Arduino機板插到電腦USB接口時作業系統會給予一個ComPort作為雙方溝通之用,可以從控制台>>系統>>裝置管理員中得知訊息
|
PC與Arduino溝通是透過COM21(註:每個人的ComPort不同) |
因此PC端程式要傳送與接收Arduino資料時就是透過Com21,PC端的程式開發
|
PC 端每2秒接收Arduino 超音波傳送的資訊儲存並繪圖 |
如果在Arduino接上溫度感應器、煙霧感應器、土壤質感應器、心跳感應器等都能用相同的方式紀錄資訊並於事後分析,更進階的玩法就是向特定裝置如手機App發送訊息等(這時候又要學習開發手機App程式)。
Arduino的售價低廉入門容易在網路上Google一大堆資料,如果想讓小朋友動手玩玩看並學習程式撰寫是十分適合的科學教材。