導讀
本文重點
我們將介紹馬達轉動原理,還有如何用藍牙裝置接收字元,也會把手機作為遙控車的方向盤,控制遙控車的方向。讓我們一起做出一台屬於自己的LinkIt 7697的藍牙遙控車吧!
[caption id="attachment_24571" align="aligncenter" width="1020"]

圖1 藍牙遙控車,衝啊![/caption]
LinkIt 7697的電流無法直接使兩顆直流馬達動起來,所以我們要使用馬達驅動板Robot Shield。
Step1:我們先用手機的藍牙裝置,試著控制一顆直流馬達,先接上一顆直流馬達。下面圖片是直流馬達接線圖:
[caption id="attachment_24573" align="aligncenter" width="1020"]

圖2 一顆直流馬達連接Robot Shield[/caption]
馬達的腳位
|
Robot Shield的腳位
|
| 1 |
13 |
| 2 |
17 |
藍牙遙控車程式
程式部分,我們使用BlocklyDuino來寫程式。程式有分成車子的接收部分,以及手機的發送部分。我們先說明車子接收部分的程式,會用到藍牙的積木有下面幾種:
[caption id="attachment_24553" align="aligncenter" width="1003"]

圖3 藍牙BlocklyDuino積木[/caption]
Step2:打開【BLE周邊】(黃色標籤1)抽屜,可看見「建立藍牙週邊裝置」(黃色標籤2)、「新增藍牙屬性」(黃色標籤3)、「藍牙屬性已更新」(黃色標籤4)、「讀取藍牙屬性數值」(黃色標籤5)。這些是我們需要用到的積木,拼出來的積木如下圖:
[caption id="attachment_24554" align="aligncenter" width="801"]

圖4 BlocklyDuino藍牙裝置程式[/caption]
Step3:我們要把BlocklyDuino藍牙初始化的裝置建立起來。請大家在「建立藍牙週邊裝置」的「顯示名稱」上改名字,在手機的那一端就會顯示出「顯示名稱」上的名字。
此外,「服務UUID」和「新增藍牙屬性UUID」,只要和App Inventor上面的數值是一樣的,我們就可以讓LinkIt 7697和手機的藍牙裝置連線。
Step4:我們要寫出LinkIt 7697接收到字元後所要進行的動作,如下圖:
[caption id="attachment_24555" align="aligncenter" width="821"]

圖5 BlocklyDuino馬達轉動程式[/caption]
Step5:寫完LinkIt 7697開發板接收到數字的程式後,接下來,我們要寫手機發送指令部分的程式。在此,我們繼續用App Inventor寫成手機的App程式。下圖是App Inventor的手機使用版面圖:
[caption id="attachment_24556" align="aligncenter" width="1020"]

圖6 App Inventor的手機使用版面圖[/caption]
版面設計完成後,接下來進入App Inventor的程式設計介面,我們要來寫如何用手機傳送字元的程式。
Step6:下圖是手機和LinkIt 7697的藍牙裝置連線的積木:
[caption id="attachment_24557" align="aligncenter" width="827"]

圖7 LinkIt 7697開發板藍牙裝置的UUID[/caption]
[caption id="attachment_24558" align="aligncenter" width="967"]

圖8 手機搜尋藍牙裝置的名字和名字欄位選擇[/caption]
[caption id="attachment_24559" align="aligncenter" width="864"]

圖9用手機連上LinkIt 7697藍牙裝置的積木[/caption]
Step7:當我們按下手機上的「搜尋」按鈕時,手機就會自動尋找附近有沒有LinkIt 7697的藍牙裝置。
Step8:若有的話,按下「名稱」按鈕,藍牙裝置的名稱就會顯示在選擇名單內,再按一次選擇名單內的藍牙裝置名稱就可進行連線。若連線成功,手機螢幕就會顯示出藍牙遙控車的名字。
Step9:按下斷線按鈕,手機就會和LinkIt 7697開發板的藍牙裝置斷線。
接下來,我們要教大家寫如何控制一台藍牙遙控車的程式!
Step10:我們再將另一顆馬達接上馬達驅動板Robot Shield
[caption id="attachment_24562" align="aligncenter" width="1031"]

圖10 兩顆馬達連接馬達驅動板Robot Shield[/caption]
馬達的腳位
|
Robot Shield的腳位
|
| 1 |
13 |
| 2 |
17 |
| 3 |
12 |
| 4 |
10 |
我們可以用程式的高電位或低電位,控制馬達的正方向轉或反方向轉。我們用兩顆馬達的正方向轉或反方向轉決定車子的行走方向,車子有下面四種走法:
[caption id="attachment_24563" align="aligncenter" width="710"]

圖11 車子有五種不同的運動方式[/caption]
程式部分,我們利用LinkIt 7697開發板的高電位或低電位,控制馬達的正方向轉或反方向轉。就如圖12一樣,馬達驅動板Robot Shield的10和12腳位是控制右邊的馬達;13和17腳位是控制左邊的馬達,所以程式會如下圖:
[caption id="attachment_24564" align="aligncenter" width="1094"]

圖12 BlocklyDuino程式[/caption]
有了前面的做法後,我們現在來寫寫看LinkIt7697開發板的程式吧!
Step11:LinkIt 7697的程式部分,只要把前面程式中的【重複執行】的「轉動」和「停止」積木,改寫成「停止」、「前進」、「後退」、「右轉」、「左轉」積木就可以了。程式積木如下圖:

[caption id="attachment_24567" align="aligncenter" width="624"]

圖13 BlocklyDuino的全部程式[/caption]
Step12:接下來,我們要改寫手機遙控部分的積木程式,也是按照順序分別改成「停止」、「前進」、「後退」、「右轉」、「左轉」這五種動作指令。完整的手機控制版面如下圖:
[caption id="attachment_24568" align="aligncenter" width="1020"]

圖14 藍牙遙控車手機的控制版面[/caption]
再來是App Inventor程式積木的部分:
[caption id="attachment_24569" align="aligncenter" width="672"]

圖15 藍牙遙控車連線、斷線的事件[/caption]
[caption id="attachment_24570" align="aligncenter" width="678"]

圖16 手機發送指令事件[/caption]
這樣藍牙遙控小車的程式就完成了,趕快拿手機來玩玩看!
留言 💬 (0)
還沒有留言,來當第一個。