陳誠斌,蘇凱雄,劉 夢,趙 陽,邱 瑾
(福州大學 物理與信息工程學院,福建 福州 350100)
?
機器人手機編程系統(tǒng)設(shè)計
陳誠斌,蘇凱雄,劉 夢,趙 陽,邱 瑾
(福州大學 物理與信息工程學院,福建 福州 350100)
設(shè)計了一種基于手機Android系統(tǒng)、機器人ARM核心控制板、藍牙系統(tǒng)的手機端編程系統(tǒng)。該系統(tǒng)將機器人常見控制指令函數(shù)封裝成庫,存儲在機器人控制器內(nèi)存中,Android手機端使用自主定義的控制指令,通過與機器人的藍牙連接,將手機編程的指令傳輸給機器人,存儲在機器人的EEPROM中,最后由機器人調(diào)取完成相應(yīng)控制。該系統(tǒng)控制簡單,一定程度上擺脫了傳統(tǒng)的電腦編程,利用智能手機的便捷性,使得機器人編程變得更加便捷簡單,并通過實驗證明了設(shè)計方法的有效性。
Android;機器人;手機編程;藍牙
圖1 控制流程
目前,機器人產(chǎn)業(yè)蓬勃發(fā)展,于此同時,教育機器人、玩具機器人層出不窮,以樂高為首的國內(nèi)外機器人廠商紛紛推出自己的產(chǎn)品。目前市面上主流機器人產(chǎn)品主要編程采用的是圖形化編程[1]、計算機語言編程、實體編程[2]等編程方式,運用在教育、開發(fā)等領(lǐng)域。然而機器人開發(fā)過程中,需要掌握一定的計算機編程規(guī)范,并且需要擁有電腦、實體編程開發(fā)套件等,有一定的硬件要求。在現(xiàn)在青少年機器人創(chuàng)客教育中,人手一臺電腦進行學習開發(fā)使得開發(fā)的便攜性受到一定的制約?,F(xiàn)如今Android手機擁有便攜性強、普及度高、開發(fā)性強、操作簡單等優(yōu)點。本文借助Android手機的方便性,主要從軟件方面解決使用手機上位機對機器人進行動作的編寫、參數(shù)的整定、路程的規(guī)劃、指令的執(zhí)行等控制。
本方案機器人控制系統(tǒng)采用ARM內(nèi)核的STM32作為主控制器,將底層部分程序封裝成功能庫,與外界僅留下藍牙通信接口,通過手機與機器人藍牙直連。整體控制如圖1所示。編程時,通過藍牙建立手機與機器人的連接,將用戶手機編程信息傳送并存儲在機器人EEPROM。當接收到手機發(fā)出的執(zhí)行指令后,機器人會掛起藍牙連接,程序內(nèi)部會順序讀取EEPROM的數(shù)據(jù),與自建程序指令集進行比對,匹配出相應(yīng)的程序或參數(shù)指令予以調(diào)用并執(zhí)行,執(zhí)行完成之后,再次建立連接,等待新一輪的指令。
2.1 UI設(shè)計
友好的交互方式是解決機器人與人本身交互的必要環(huán)節(jié)[3]。本設(shè)計使用TFT觸摸屏作為設(shè)計的顯示單元,顯示主體如圖2所示。主菜單顯示多程序運行界面、電壓檢測、指南針顯示、陀螺儀顯示、藍牙通信等功能。該控制器可以存儲多個程序,用戶可選擇何時運行哪個程序。擺脫了以往控制器只能存儲單個程序,需要更換程序就不得不連接重新下載的麻煩。同時控制器自帶的自檢程序可以檢測幾乎所有的硬件,可以非常方便地診斷機器出現(xiàn)的各種問題,并將數(shù)據(jù)顯示在UI界面上。
圖2 UI界面
2.2 A/D電壓檢測
在機器人設(shè)計中要實時監(jiān)控機器人的動力電源使用情況。本設(shè)計基于STM32自帶的ADC模塊,由于STM32的ADC只能在0~3.3 V之間測試,所以,本設(shè)計以分壓擴充量程,采用一個I/O即PA1作為ADC通道腳使用,又通過外擴展電路擴充量程,具體如圖3所示。本設(shè)計實現(xiàn)對0~30的電壓點測試,并返回電壓值,以伏特為單位,本設(shè)計主要用于電源電壓的測試,來判斷是否需要充電。
圖3 A/D硬件電路圖
2.3 舵機控制
在機器人控制中,舵機控制是其中重要一環(huán)。數(shù)字舵機將由數(shù)據(jù)線上輸入的方波與自身內(nèi)部產(chǎn)生的一個標準波形進行比較,一般頻率為50 Hz[4]。比較后數(shù)字舵機控制電機轉(zhuǎn)動,兩波形占空比的差值決定了電機轉(zhuǎn)動角度。單片機的定時器輸出引腳可輸出一定頻率的方波,即可控制舵機。本設(shè)計開放11路I/O口輸出,用標準的舵機三線接口與外界舵機連接,硬件連接時,將0~180度舵機的正負直接連電源正負,數(shù)據(jù)端連接控制引腳PWM占空比來控制舵機轉(zhuǎn)向。
2.4 EEPROM
EEPROM在本設(shè)計中尤為重要,本設(shè)計中EEPROM的芯片型號為24C02。該芯片的總?cè)萘渴?56 B,芯片通過I2C總線與外部連接[5]。通過STM32來實現(xiàn)對24C02的讀寫。串行EEPROM是基于I2C-BUS 的存儲器件,遵循二線制協(xié)議,由于其具有接口方便、體積小、數(shù)據(jù)掉電不丟失等特點,在儀器儀表及工業(yè)自動化控制中得到大量的應(yīng)用。
2.5 藍牙
藍牙技術(shù)是短距離低功耗的一種無線通信技術(shù),其作為一種無線通信技術(shù)標準,采用快速確認和調(diào)頻方案,從而實現(xiàn)藍牙模塊良好的抗干擾能力和系統(tǒng)穩(wěn)定性,可以完成固定設(shè)備、移動設(shè)備之間的短距離數(shù)據(jù)交換。隨著無線通信技術(shù)的發(fā)展,藍牙的使用越來越普遍[6]。本設(shè)計采用手機與藍牙通信,實現(xiàn)程序編寫后傳送,并且有著參數(shù)回傳顯示的功能。
3.1 機器人控制端軟件庫設(shè)計
機器人將調(diào)用內(nèi)部程序庫中對機器人開放的端口和功能模塊[1]接口,通過自身設(shè)計的特定編程方式將軟件庫進行組合,完成用戶對機器人的編程。所以本設(shè)計將所有機器人的開放接口、端口以及功能模塊進行模塊化封裝,封裝成庫之后,方便調(diào)用。根據(jù)C語言各類基本語句,封裝了循環(huán)語句、條件語句、開關(guān)語句,并且預(yù)留了輔助控制語句字段,方便手機端調(diào)用。
在機器人控制端,本設(shè)計將以下幾個部分封裝成函數(shù)庫以供調(diào)用。
(1)基礎(chǔ)動作控制函數(shù),如控制機器人前后左右運動、機器人電壓檢測采集、機器人自身方位數(shù)據(jù)采集、機器人姿態(tài)數(shù)據(jù)采集等。此函數(shù)庫將機器人原有的較為復(fù)雜的控制指令以及一些融合濾波算法封裝成庫,實現(xiàn)其功能,只開放調(diào)用接口。主要用途是用戶在編寫機器人動作控制指令時,方便機器人控制端調(diào)用函數(shù)庫來實現(xiàn)動作實現(xiàn)。
(2)機器人外部接口控制函數(shù),如舵機控制、A/D采集、I/O控制、RS485接口、I2C接口、串口、PWM、外部中斷等函數(shù)庫。此類函數(shù)庫主要方便在于使用外設(shè)時,能快速配好使用參數(shù),讀取外設(shè)參數(shù)值或生成所需要的參數(shù)值控制外設(shè),簡化單片機外圍功能模塊的配置,方便調(diào)用。
(3)機器人內(nèi)部常用函數(shù),如延時、內(nèi)部中斷、EEPROM讀寫、參數(shù)顯示等功能函數(shù)庫。此類函數(shù)庫一般是單片機內(nèi)部實現(xiàn)使用,可以實現(xiàn)一些特定的功能。
(4)一些C語言自帶的基本語句、特殊字段、數(shù)組、字符串等,此類庫函數(shù)較為特殊。由于是通過手機編程實現(xiàn)機器人控制,不能直接在PC端對機器人進行函數(shù)編寫,使得一些基礎(chǔ)語句以及數(shù)組等的控制,需要通過特定的函數(shù)庫來實現(xiàn),才能實現(xiàn)如循環(huán)語句、條件語句等C語言功能。
3.2 手機Android端軟件設(shè)計
手機端分為兩部分。第一部分是機器人軟件編寫。手機程序編寫采用的是順序編寫,編程邏輯與PC端基本相同。手機端定義了各種不同字段,與機器人控制端的各個庫函數(shù)一一對應(yīng)。在用戶編寫完程序后,手機端會通過藍牙將用戶編寫的程序以數(shù)據(jù)編碼的形式傳到機器人控制端,讓機器人控制端進行操作。第二部分是機器人的狀態(tài)查詢部分,可以顯示機器人電壓、各個外設(shè)的狀態(tài)等。
3.3 手機編程實現(xiàn)設(shè)計
在進行手機編程時,機器人端主函數(shù)主要實現(xiàn)與機器人建立連接的手機通信以及對機器人的EEPROM進行讀寫的操作。
圖4 手機編程程序框圖
首先,機器人會與手機建立連接。之后機器人端會循環(huán)等待手機端發(fā)來的編程指令。當手機端編程結(jié)束后,機器人端將按順序接收機器人編程指令,同時按順序擦寫EEPROM,將手機傳來的指令編碼按行寫入EEPROM中。手機端傳送完畢時,機器人端會暫時掛起藍牙通信,與此同時,將EEPROM中的數(shù)據(jù)編碼進行解碼,與機器人的函數(shù)庫進行一一匹配,并且按EEPROM的順序執(zhí)行,達到手機編程的目的。完成手機編程后再繼續(xù)藍牙連接,等待新的通信指令。其框圖如圖4所示。
本文設(shè)計了機器人手機編程系統(tǒng)的基本構(gòu)架,實現(xiàn)了機器人通過手機編程進行控制。通過搭建機器人控制庫平臺、機器人內(nèi)部庫函數(shù)設(shè)計、控制系統(tǒng)程序讀取方法三個方面的重新設(shè)計,可以根據(jù)不同編程水平的人群,不用PC,使用手機進行個性化的編程設(shè)計,完成特定機器人動作設(shè)定。手機編程較PC編程更為簡單、方便,調(diào)試更加簡潔,較容易入門。
[1] 趙子建,梁建宏,張代兵.模塊化機器人圖形化編程系統(tǒng)的開發(fā)與研究[J].機器人技術(shù)與應(yīng)用,2016(1): 32-35.
[2] 康亮環(huán),曹東剛.CONENTITY:一種基于進程的自主并發(fā)實體編程模型及其實現(xiàn)[J].中國科學(信息科學),2013(1): 126-142.
[3] 楊雪嬌,郝業(yè),阮軍洲.ANDROID平臺增加專用無線模塊的設(shè)計與實現(xiàn)[J].計算機與網(wǎng)絡(luò),2016,42(7): 64-67.
[4] 和江,文建剛,侯文.基于模糊神經(jīng)網(wǎng)絡(luò)PID算法的舵機控制與仿真[J].中北大學學報(自然科學版),2016,37(2): 150-156.
[5] 陳長生.基于ARM9的IIC串行通信[J].電腦知識與技術(shù),2010,6(6): 1490-1493.
[6] 呂藝.藍牙模塊無線通信設(shè)計與實現(xiàn)[J].科技經(jīng)濟導(dǎo)刊,2016(8): 31.
Design of robot mobile programming system
Chen Chengbin, Su Kaixiong, Liu Meng, Zhao Yang, Qiu Jin
(School of Physics and Information Engineering, Fuzhou University, Fuzhou 350100, China)
A mobile phone terminal programming system based on mobile phone Android system, robot ARM core control panel and Bluetooth system is designed. In the system, the common robot control command functions are packaged into a library, which is stored in the memory of a robot controller. The Android mobile terminal uses its own defined control instruction, to transmit mobile phone programming commands to the robot by connecting with the robot’s Bluetooth. The commands are stored in the EEPROM of robot. And finally, the robot will complete corresponding control. The control system is simple, and get rid of the traditional computer programming to some extent, the robot programming becomes more simple and convenient by using the convenience of smart phones. Through the experiment,the validity of the proposed method has been proved.
Android; robot; mobile phone programming; Bluetooth
TP311
A
10.19358/j.issn.1674- 7720.2017.11.017
陳誠斌,蘇凱雄,劉夢,等.機器人手機編程系統(tǒng)設(shè)計[J].微型機與應(yīng)用,2017,36(11):57-59.
2017-01-05)
陳誠斌(1992-),男,碩士,主要研究方向:智能硬件、數(shù)字通信。
蘇凱雄(1959-),男,碩士,教授,主要研究方向:無線通信、衛(wèi)星通信、數(shù)字電視廣播、多媒體應(yīng)用系統(tǒng)。
劉夢(1996-),女,本科,主要研究方向:數(shù)字信號與處理。