工程筆記本 / LinkIt 聯發科家族

LinkIt 聯發科家族

【教學】想自己動手做藍牙遙控車?就是這一篇了!

CAVEDU 阿吉 - 雜工📅 2018-07-03👁 47
作者/攝影 CAVEDU教育團隊 鈺莨
材料表

藍牙自走車基本材料包 欲購買,請洽機器人王國

完整程式下載 BlocklyCar7697

導讀

 

本文重點

我們將介紹馬達轉動原理,還有如何用藍牙裝置接收字元,也會把手機作為遙控車的方向盤,控制遙控車的方向。讓我們一起做出一台屬於自己的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)

還沒有留言,來當第一個。