楊廣峰
通過之前的操作,樹莓派六足機器人相繼實現(xiàn)了正對目標物體的識別搬運、任意位置目標物體的識別搬運、多任務目標物體的識別搬運。今天要實現(xiàn)用手機微信控制機器人,同時可以實現(xiàn)自動與手動任意切換。
器材清單:樹莓派六足機器人一套(六足機器人、樹莓派4B 板、古德微擴展板、電機驅動板、USB 攝像頭), 目標物體兩個(如圖1)。
1. 添加“自動控制”與“手動控制”控件
在古德微積木編程界面點擊“更多功能→控件控制”進入應用界面。
填寫應用名稱為“手機控制機器人”,點擊 “測試連接”,右側會出現(xiàn)“連接成功”字樣,這時單擊“添加控件”按鈕,進入添加控件頁面(如圖2)。
2. 添加“自動控制”與“手動控制”控件信息
在添加控件信息頁面,完成控件類型、設備編號、功能描述和自定義主題的填寫。其中,控制類型填寫“按鈕”,設備編號填寫你的古德微平臺登錄賬號,功能描述填寫“自動控制與手動控制”。注意,這里的功能描述將來會顯示在控制頁面中。自定義主題填寫“六足機器人”,在后續(xù)的編程中需要填寫這個主題名稱。
然后,點擊“啟用更多按鈕配置”按鈕,依次填寫兩個按鈕標題和按下兩個按鈕發(fā)送的消息。按鈕標題填寫“自動控制”“手動控制”,按下按鈕發(fā)送的消息填寫“自動”“手動”,后續(xù)程序中要根據(jù)發(fā)送的消息進行相應的判斷(如圖3)。
最后點擊“確定”按鈕。“自動控制”與“手動控制”按鈕添加完畢(如圖4)。
3. 創(chuàng)建“自動控制”與“手動控制”控件
點擊圖4 中的“添加控件”,在添加控件信息頁面,首先完成控件類型、設備編號、功能描述和自定義主題的填寫。其中,控制類型填寫“按鈕”,設備編號填寫你的古德微平臺登錄賬號,功能描述填寫“前進控制與后退控制”。注意,這里的功能描述將來會顯示在控制頁面中。自定義主題填寫“六足機器人”,后續(xù)的編程中還需要填寫這個主題名稱。
然后,點擊“啟用更多按鈕配置”按鈕。按鈕標題填寫“前進控制”“后退控制”。按鈕發(fā)送的消息填寫“前進”“后退”。
4. 生成微信控制二維碼
點擊確定后,頁面如圖5。
保存當前的應用,點擊“生成新網(wǎng)頁”按鈕,打開一個新網(wǎng)網(wǎng)頁,點擊分享可生成一個二維碼,使用手機掃描即可在手機獲得一個如網(wǎng)頁一樣的控制頁面。點擊更多應用按鈕,即可返回圖形化編程界面。
1. 物聯(lián)網(wǎng)監(jiān)聽線程
從“積木→線程”中拖出“添加子線程”積木,線程函數(shù)名填“物聯(lián)網(wǎng)監(jiān)聽”。
2. 物聯(lián)網(wǎng)監(jiān)聽函數(shù)
為“物聯(lián)網(wǎng)監(jiān)聽”線程創(chuàng)建“物聯(lián)網(wǎng)監(jiān)聽”函數(shù)。
判斷是否收到主題“六足機器人”的新數(shù)據(jù)。如果收到,則將新數(shù)據(jù)賦值給變量“命令文本”。
使用判斷語句根據(jù)命令文本的值進行操作,如在手機頁面中點擊了按鈕“自動控制”,則將變量“自動控制”的值設為1,啟動自動控制;如手機頁面中點擊了按鈕“手動控制”,則將變量“自動控制”的值設為0,關閉自動控制。
如在手機頁面中點擊了按鈕“前進控制”,則控制六足機器人前進3步;如在手機頁面中點擊了按鈕“后退控制”,則控制六足機器人后退3 步(如圖6)。
1. 自動控制機器人線程
從“積木→線程”中拖出“添加子線程”積木,線程函數(shù)名填“自動控制機器人”。
2. 自動控制機器人函數(shù)
為“自動控制機器人”線程創(chuàng)建“自動控制機器人”函數(shù)。然后,創(chuàng)建一個名為“自動控制”的變量,為該函數(shù)運行添加一個開關條件,當變量“自動控制”為1 時,該函數(shù)才能正常運行。
最后,將多任務控制機器人的主程序拖入“自動控制機器人”函數(shù)中。注意這里我們?nèi)サ袅恕爸貜彤斦妗钡牟糠?,因為在古德微的圖形化編程中,當線程啟用時,線程函數(shù)本身就是重復循環(huán)執(zhí)行的(如圖7)。
首先,控制攝像頭兩個舵機,調(diào)整其最佳拍攝角度,設置機器人的最初姿態(tài)。然后設置互聯(lián)網(wǎng)服務器為默認值,監(jiān)聽“六足機器人”,并設置初始值為0。最后將機器人任務的開關變量“步驟”設為1,將機器人“自動控制”變量設為0,將來通過手機控制修改為1。
創(chuàng)建“目標列表”,記錄需要完成的目標物體名稱,完成對機器人的初始化。這里設計了兩個任務,其目標物體的名稱為“紅色”和“藍色”,如需要更多的夾取任務,在列表追加項目即可(如圖8)。
首先,調(diào)用程序初始化函數(shù),對機器人和手機微信控制進行初始化。然后,調(diào)用子線程“自動控制機器人”,等待接收到自動控制時,機器人自動開啟多任務搬運工作。最后開啟子線程“物聯(lián)網(wǎng)監(jiān)聽”,監(jiān)聽手機微信的相關按鈕指令,控制機器人的相應操作(如圖9)。
經(jīng)過多次測試,機器人能在手機上手動控制前進后退,能在點擊“自動控制”按鈕時,自動開啟搬運任務,當點擊“手動控制”按鈕時,自動停止搬運任務。在這個例子的基礎上,我們還可繼續(xù)思考為六足機器人添加更多的功能,如利用語音檢測實現(xiàn)語音控制機器人。