林委鋒
“老師,今天我們要學習什么呢?”“同學們好!大家看過《鐵甲鋼拳》這部電影嗎?電影中的陪練機器人亞當在麥克斯的控制下,大戰(zhàn)超級戰(zhàn)士宙斯機器人。你想體驗一下這種感覺嗎?今天我們就來做一個藍牙機器人,給機器人裝上一個藍牙從機模塊,用手機來控制機器人?!?/p>
如圖1所示,在本刊2016年第12期所介紹的“火星1號”機器人上,我們添加一個HC- 06藍牙從機模塊,然后分別給手機和小車編一個藍牙控制程序和藍牙接收處理程序,用手機控制機器人的前進、后退和拐彎等動作。
HC- 06藍牙從機模塊是一個藍牙信號接收模塊,它可以與各種帶藍牙功能的電腦、手機等智能終端配對,接收發(fā)送來的數據,其引腳接口分別是VCC、GND、TXD、RXD。HC- 06藍牙從機模塊的工作電壓為3.3~6V,引腳VCC可接Arduino控制板提供的3.3V電源端,GND接Arduino控制板的GND。TXD表示信號發(fā)送端,連接到Arduino控制板的RXD,把數據傳送到Arduino控制板;RXD表示信號接收端,連接到Arduino控制板的TXD,接收控制板發(fā)送來的數據。
藍牙機器人需要兩個程序,一個是手機控制端程序,另一個是Arduino控制板藍牙數據接收程序。
如圖2所示,手機控制端程序用APP Inventor來編寫,這是一款在線編程軟件,也是圖形化編程。網址是:http://app.gzjkw.net。注冊登錄后,創(chuàng)建一個新項目,在組件面板中拖動功能模塊到工作面板的手機框內,在組件屬性中對模塊的字體、寬度和高度等屬性進行設置,得到圖2中的手機控制端程序界面。手機程序分為兩個部分,一個是手機藍牙選擇模塊,另一個是按鈕指令發(fā)送模塊。以按鈕1為例,程序如圖3所示。按鈕2~12的程序與按鈕1相似,不再列出。程序編好后打包成apk文件,訪問http://pan.baidu.com/s/1geIZL2V,下載到手機上。
接下來先在Ardublock上編寫一個藍牙數據接收測試程序,下載到Arduino控制板上,如圖4所示。然后把HC- 06藍牙從機模塊接到Arduino控制板上。連接完后打開Arduino IDE的串口監(jiān)視器,用手機向藍牙從機模塊發(fā)送按鈕指令。如果在串口監(jiān)視器上能顯示手機發(fā)送過來的字符,則說明藍牙從機模塊可以正常工作。在操作過程中要注意一點:由于藍牙從機模塊和程序下載都使用控制板的串口進行通信,所以下載程序的時候不能把藍牙從機模塊接到控制板上,或者把通信端引腳TXD、RXD拔出來。
小車的控制程序主要分為兩個部分:藍牙數據讀取處理主程序、命令模塊子程序。主程序有兩個變量v和k,變量v表示小車速度,初始化為130;變量k存儲手機發(fā)送過來的命令字符,k為1、3分別對應加速和減速程序。主程序最后一條延時指令的作用是設定藍牙串口掃描間隔時間,防止多次重復執(zhí)行同一條手機指令。
1、3控制模塊程序如圖5所示,命令模塊子程序這里不再列出,具體請參見:http://pan.baidu.com/s/1cJ0pP0。另外,在手機控制面板中還預設了奏樂、跳舞和巡線按鈕,大家可以發(fā)揮想象,給機器人編寫一些有趣、好玩的程序。程序編好經調試后,就可以和同學一起感受藍牙機器人的魅力了!