作者/攝影 |
CAVEDU教育團隊 鈺莨 |
文章分類 | 教學技術文 |
時間 | |
成本 | |
難度 | |
材料表 | |
完整程式下載 |
BlocklyCar7697 |
藍牙小車影片
導讀
本文重點
我們將介紹馬達轉動原理,還有如何用藍牙裝置接收字元,也會把手機作為遙控車的方向盤,控制遙控車的方向。讓我們一起做出一台屬於自己的LinkIt 7697的藍牙遙控車吧!
LinkIt 7697的電流無法直接使兩顆直流馬達動起來,所以我們要使用馬達驅動板Robot Shield。
Step1:我們先用手機的藍牙裝置,試著控制一顆直流馬達,先接上一顆直流馬達。下面圖片是直流馬達接線圖:
馬達的腳位 |
Robot Shield的腳位 |
1 | 13 |
2 | 17 |
藍牙遙控車程式
程式部分,我們使用BlocklyDuino來寫程式。程式有分成車子的接收部分,以及手機的發送部分。我們先說明車子接收部分的程式,會用到藍牙的積木有下面幾種:
Step2:打開【BLE周邊】(黃色標籤1)抽屜,可看見「建立藍牙週邊裝置」(黃色標籤2)、「新增藍牙屬性」(黃色標籤3)、「藍牙屬性已更新」(黃色標籤4)、「讀取藍牙屬性數值」(黃色標籤5)。這些是我們需要用到的積木,拼出來的積木如下圖:
Step3:我們要把BlocklyDuino藍牙初始化的裝置建立起來。請大家在「建立藍牙週邊裝置」的「顯示名稱」上改名字,在手機的那一端就會顯示出「顯示名稱」上的名字。
此外,「服務UUID」和「新增藍牙屬性UUID」,只要和App Inventor上面的數值是一樣的,我們就可以讓LinkIt 7697和手機的藍牙裝置連線。
Step4:我們要寫出LinkIt 7697接收到字元後所要進行的動作,如下圖:
Step5:寫完LinkIt 7697開發板接收到數字的程式後,接下來,我們要寫手機發送指令部分的程式。在此,我們繼續用App Inventor寫成手機的App程式。下圖是App Inventor的手機使用版面圖:
版面設計完成後,接下來進入App Inventor的程式設計介面,我們要來寫如何用手機傳送字元的程式。
Step6:下圖是手機和LinkIt 7697的藍牙裝置連線的積木:
Step7:當我們按下手機上的「搜尋」按鈕時,手機就會自動尋找附近有沒有LinkIt 7697的藍牙裝置。
Step8:若有的話,按下「名稱」按鈕,藍牙裝置的名稱就會顯示在選擇名單內,再按一次選擇名單內的藍牙裝置名稱就可進行連線。若連線成功,手機螢幕就會顯示出藍牙遙控車的名字。
Step9:按下斷線按鈕,手機就會和LinkIt 7697開發板的藍牙裝置斷線。
接下來,我們要教大家寫如何控制一台藍牙遙控車的程式!
Step10:我們再將另一顆馬達接上馬達驅動板Robot Shield
馬達的腳位 |
Robot Shield的腳位 |
1 | 13 |
2 | 17 |
3 | 12 |
4 | 10 |
我們可以用程式的高電位或低電位,控制馬達的正方向轉或反方向轉。我們用兩顆馬達的正方向轉或反方向轉決定車子的行走方向,車子有下面四種走法:
程式部分,我們利用LinkIt 7697開發板的高電位或低電位,控制馬達的正方向轉或反方向轉。就如圖12一樣,馬達驅動板Robot Shield的10和12腳位是控制右邊的馬達;13和17腳位是控制左邊的馬達,所以程式會如下圖:
有了前面的做法後,我們現在來寫寫看LinkIt7697開發板的程式吧!
Step11:LinkIt 7697的程式部分,只要把前面程式中的【重複執行】的「轉動」和「停止」積木,改寫成「停止」、「前進」、「後退」、「右轉」、「左轉」積木就可以了。程式積木如下圖:
Step12:接下來,我們要改寫手機遙控部分的積木程式,也是按照順序分別改成「停止」、「前進」、「後退」、「右轉」、「左轉」這五種動作指令。完整的手機控制版面如下圖:
再來是App Inventor程式積木的部分:
這樣藍牙遙控小車的程式就完成了,趕快拿手機來玩玩看!
-
讀者們可以進一步挑戰把感測器數值回傳手機:[App Inventor IoT] LinkIt 7697使用BLE(藍牙4.0)傳送光感測器數值
-
以及,藍牙遙控車的轉彎方式,可試試伺服機:[ App Inventor IoT ] LinkIt 7697使用 BLE(藍牙4.0)控制伺服馬達