王德貴
1.設(shè)計(jì)思想
開源硬件既方便,又實(shí)惠,頗受廣大創(chuàng)客教育工作者的喜愛。眾多開源硬件中Arduino是最優(yōu)選擇,價(jià)格便宜,兼容性好,能完成各種功能的定制。
目前安卓應(yīng)用開發(fā)基礎(chǔ)課程APPInventor也熱了起來,很多學(xué)校開設(shè)了相關(guān)課程。APPInventor的優(yōu)勢在于既能學(xué)習(xí)編程的知識,又能掌握安卓應(yīng)用開發(fā)過程,提高使用者的分析、解決問題的綜合能力,還能開發(fā)一些基于手機(jī)的實(shí)用項(xiàng)目。
一款A(yù)rduino機(jī)器人,要是用自己設(shè)計(jì)的手機(jī)APP控制,就更吸引人了!
2.工作原理
工作模塊分為兩大部分。一部分是Arduino機(jī)器人,它通過藍(lán)牙接收指令,通過控制馬達(dá)從而指揮機(jī)器人運(yùn)動,編程用Mixly軟件,硬件接線如圖1,完成機(jī)器人如圖2。
另一部分是手機(jī)APP,利用APPInventor開發(fā)平臺,設(shè)計(jì)一款屬于自己的個性化APP應(yīng)用(如圖3)。其原理是利用手機(jī)APP將馬達(dá)轉(zhuǎn)向信息和速度信息兩個數(shù)據(jù),經(jīng)過分析、合成、處理后,發(fā)送給藍(lán)牙。藍(lán)牙接收信息數(shù)據(jù),并進(jìn)行檢索,識別方向和速度量,再傳給Arduino主板,控制馬達(dá)運(yùn)轉(zhuǎn),從而控制機(jī)器人運(yùn)動。
APP也接收主板返回的信息,確認(rèn)當(dāng)前工作狀態(tài),并在手機(jī)上顯示出當(dāng)前LED開關(guān)狀態(tài)。設(shè)計(jì)利用百度語音識別功能,用語音控制機(jī)器人運(yùn)動,本文只講最基本的方法。
1.接線圖
機(jī)器人搭建比較簡單,按圖接好線路,即可進(jìn)行調(diào)試。接線時注意以下幾個問題。
L298N的4個輸入端in1~4分別接Arduino主板D5/D6,D9/D10,輸出接對應(yīng)的兩個馬達(dá)。注意,L298N一定要和Arduino共地,并需要外接電源,本例接7.4V航模電池。L298N也可以用L9110s代替,通過對比測試,L298N功率更大一點(diǎn),運(yùn)動更靈敏,速度更快一點(diǎn),L9110s價(jià)格更便宜。
藍(lán)牙模塊的VCC和GND端子,分別接Arduino主板+5V和GND。
LED正極接Arduino主板D7,負(fù)極接GND。
2.機(jī)器人搭建
(1)器材:機(jī)器人底盤,萬向輪,馬達(dá)固定支架,7.4V2S20C800mAh航模電池,開關(guān),馬達(dá),Arduino主板,L298N驅(qū)動模塊,BT05藍(lán)牙模塊,5mm LED燈,杜邦線、螺絲若干。
(2)搭建:搭建過程比較簡單,不做詳述。注意固定好底盤和馬達(dá),功耗就會小一點(diǎn)。成品底面如圖4。
3.程序設(shè)計(jì)
利用Mixly軟件進(jìn)行數(shù)據(jù)接收及處理。在Arduino兼容方面,Mixly軟件為首選圖形化軟件,如果用代碼編程還是首選IDE。
這是初始化程序,定義三個變量,存儲方向信息、速度值和小燈狀態(tài)值,同時設(shè)置串口波特率9600以保證正常通信,波特率會因?yàn)樗{(lán)牙型號的不同而有變化(如圖5)。
通過自定義函數(shù),接收手機(jī)APP發(fā)來的數(shù)據(jù)信息,然后進(jìn)行分離處理,以控制馬達(dá)轉(zhuǎn)速(如圖6)。
加上指示燈,掌握機(jī)器人的工作狀態(tài),同時通過藍(lán)牙發(fā)送小燈狀態(tài)信息,在手機(jī)APP上顯示出來,達(dá)到相互通信的目的(如圖7)。
1.組件設(shè)計(jì)
利用app.wxbit.com開發(fā)環(huán)境,組件的屬性設(shè)置可隨個人喜好修改,只要美觀和方便操作即可,具體組件設(shè)置見下表。
百度語音功能需要去百度智能云注冊,創(chuàng)建人工智能類應(yīng)用,記錄三個參數(shù)AppId/ApiKey/SecretKey,依次點(diǎn)擊組件面板→人工智能→百度語音識別→組件屬性,將三個Key填入。