包天本 張甫頻 楊運強
摘要:基于Arduino電子平臺設(shè)計,融合藍牙通信技術(shù),以42步進電機作為原動機,采用高精度光電編碼器檢測角度。系統(tǒng)分上位機和下位機,采用人機交互工作模式,用戶操縱上位機進行示教動作,通過離線編程給下位機下達運動指令,使下位機“復(fù)制”上位機的動作,完成與上位機運動軌跡相同的動作。
關(guān)鍵詞:主從控制;人機交互;Arduino;藍牙通信;離線編程
中圖分類號:TP275? ? ? ?文獻標(biāo)識碼:A
文章編號:1009-3044(2019)19-0064-03
Abstract: The system is based on Arduino electronic platform, integrates Bluetooth communication technology, takes 42 step motor as prime mover, and adopts high precision photoelectric encoder to detect angle. It is divided into upper computer and lower computer, using human-computer interaction mode. The user controls the upper computer to carry out the teaching action, and gives the motion instruction to the lower computer through off-line programming, so that the lower computer can "copy" the action of the upper computer and complete the same movement track.
Key words: master-slave control; human-computer interaction; Arduino; bluetooth communication; off-line programming
1 背景
近幾年機器人技術(shù)發(fā)展迅猛,特別是人工智能方向發(fā)展得如火如荼。機器人發(fā)展雖然在向人工智能方向發(fā)展, 但由于受到現(xiàn)有技術(shù)的限制, 大都只能稱之為“半智能化”的機器人[1]。對于高危環(huán)境下的任務(wù),需要機器人代替人類完成,但面對更復(fù)雜的工作要求,機器人需要人的輔助來完成。主從式控制是一種很好的人機交互方式,以人為指揮中心,機器人作為執(zhí)行機構(gòu)。主從控制方式采用離線編程,可避免傳統(tǒng)機械手規(guī)劃運動軌跡的復(fù)雜計算,且控制靈活,利于多種生產(chǎn)方式,提高生產(chǎn)效率。比如, 目前發(fā)達國家普遍采用主從式機器人技術(shù)來解決水下核反應(yīng)堆和乏燃料池的維護工作[2]。所以,發(fā)展專用機械手的同時,也要發(fā)展示教式的主從機械手。發(fā)展主從式機械手,不僅要改進機械手結(jié)構(gòu),更應(yīng)結(jié)合傳感器與檢測技術(shù)、電力電子技術(shù)、通訊技術(shù)等先進科學(xué)技術(shù),發(fā)展主從控制系統(tǒng)。
2 總體方案設(shè)計
2.1 系統(tǒng)元件
上位機的硬件主要由Arduino控制板、光電編碼器、藍牙模塊組成;下位機硬件由Arduino控制板、42行星減速步進電機、42步進電機驅(qū)動器、藍牙模塊、供電電源組成。
2.2 工作方案
1)給系統(tǒng)供電開始工作;
2) 光電編碼器檢測角度變化;
3) 上位機Arduino主板讀取編碼器脈沖數(shù),并將數(shù)據(jù)通過藍牙發(fā)送到從手;
4)下位機Arduino主板從藍牙模塊獲取數(shù)據(jù),通過驅(qū)動器控制42步進電機工作。
3 主要硬件介紹
3.1 Arduino mega2560控制板
Arduino是一種開源電子平臺。該平臺起源于意大利,主要基于AVR單片機微控制器和相應(yīng)的開發(fā)軟件而設(shè)計,其具有高度的模塊化特點, 因此有時叫它“電子積木”[3]。
本系統(tǒng)采用型號為mega2560的控制板,改型號使用 ATmega2560芯片,具有54路數(shù)字接口,16路模擬接口,4路通信串口,晶振16MHz,6個外部中斷引腳。其中外部中斷引腳int 0,int 1,int 2,int 3,int 4,int 5實際為數(shù)字引腳2,3,21,20,19,18。
3.2 藍牙模塊
系統(tǒng)采用HC-05 藍牙串口通信模塊,該模塊基于 Bluetooth Specification V2.0 帶 EDR 藍牙協(xié)議的數(shù)傳模塊,只支持一對一配對,可以實現(xiàn)10米距離通信。
3.3 光電編碼器
增量式編碼器是一種旋轉(zhuǎn)式脈沖發(fā)生器,也稱脈沖盤式編碼器,能把機械轉(zhuǎn)角變成電脈沖[4]。本系統(tǒng)采用500線AB相增量型光電編碼器,每轉(zhuǎn)動一圈時AB每相均輸出500個脈沖。
3.4 42步進電機及其驅(qū)動器
系統(tǒng)使用42行星減速步進電機為4線2相式,減速比為1:10。
Arduino控制板不能直接驅(qū)動42步進電機,需要相配套的42步進電機驅(qū)動器。通過驅(qū)動器可以設(shè)置步進電機的步距角大小,本文設(shè)置200個細分角,即電機轉(zhuǎn)動360°時走過200個步距角,則步距角為1.8°,此時控制板只需輸入200個脈沖激勵信號。
4 電路設(shè)計
4.1 上位機電路
使用中斷引腳int 0、int 1、int 2即數(shù)字引腳2、3、21,分別接到編碼器1、2、3的A相;B相分別接到數(shù)字引腳8、9、10;藍牙模塊RXD引腳接到數(shù)字引腳1,TXD可不接;所有元件的VCC引腳一起接到控制板的5V接口,GND一起接到控制板負極。
4.2 下位機電路圖
驅(qū)動器由24V直流電源供電,采用共陽極接法,所有驅(qū)動器的DIR+、PUL+引腳均接到控制板5V接口,其DIR-、PUL-引腳按順序依次接到數(shù)字引腳8、9、10、11、12、13,A-A+B-B+等引腳分別與電機對應(yīng)的A-A+B-B+引腳相接;藍牙模塊的TXD與數(shù)字接口0相接,引腳RXD可不接。
5 系統(tǒng)程序設(shè)計
5.1 上位機程序設(shè)計
檢測上位機動作信息主要是獲得相應(yīng)電機的旋轉(zhuǎn)角度及轉(zhuǎn)向,這一任務(wù)由光電編碼器來完成。本文使用的編碼器只有A、B兩相,可直接由脈沖數(shù)量來計算角度大小,但轉(zhuǎn)向的判定需要比較AB相的相位關(guān)系。編碼器輸出的波形是方波,具有上升沿、高電平、下降沿、低電平四種狀態(tài)。AB相的相位關(guān)系如下圖所示:
5.1.2 整理并發(fā)送數(shù)據(jù)
由于三個編碼器會產(chǎn)生三組脈沖數(shù)據(jù),從手接收數(shù)據(jù)時進行判別來源,這就要求建立 一個通訊協(xié)議。為方便測試,本文設(shè)定機械手每個自由度的轉(zhuǎn)動角度最大不超過360°,所以編碼器產(chǎn)生的脈沖數(shù)小于1000。
首先給編碼器編號1、2、3,相應(yīng)也給從手電機編號1、2、3,然后在發(fā)送數(shù)據(jù)時分別給編碼器1獲取的脈沖數(shù)加上1000,編碼器2獲取的脈沖數(shù)加上2000,編碼器3獲取的脈沖數(shù)加上3000。這樣,所有的數(shù)據(jù)大小均為4位數(shù),即字符數(shù)有4個??赏ㄟ^比較數(shù)據(jù)的千位的大小來判斷數(shù)據(jù)來源于哪一個編碼器。
5.2 下位機程序設(shè)計
5.2.1串口接收數(shù)據(jù)
首先定義整型數(shù)組A[],把通過while(){}循環(huán)將讀取的數(shù)據(jù)賦給數(shù)組,然后計算大小。
應(yīng)當(dāng)注意,Arduino的數(shù)據(jù)通信是以ASCII碼為交換標(biāo)準(zhǔn)的。而用語句print()和println()發(fā)送數(shù)據(jù)時,會在數(shù)據(jù)后隨帶兩個結(jié)束字符,其十進制大小分別為“13”和“10”,“10”在末尾。while(){}每循環(huán)一次只能讀取一個字符,而每個數(shù)據(jù)為4位十進制數(shù),每一位數(shù)字都是一個字符,加上結(jié)束字符一共有6個字符,所以數(shù)組長度定義6個即可。第一個讀取的字符是千位數(shù),接下來分別為百位數(shù),十位數(shù),個位數(shù),結(jié)束字符“13”,結(jié)束字符“10”。
5.2.2 計算角度并控制電機工作
電機工作代碼以電機1(用“Sm_1”表示)示例,電機2和電機3的代碼原理同電機1,只需改變相應(yīng)的變量和數(shù)字接口。代碼如下:
6 結(jié)束語
基于Arduino設(shè)計的以步進電機為原動機的三自由度主從控制系統(tǒng),通過實驗證明,下位機電機的工作角度與上位機光電編碼器的轉(zhuǎn)動角度大小幾乎相等,效果良好。本系統(tǒng)可以應(yīng)用于以步進電機為原動機的主從式機器,如三自由度的主從機械手。采用藍牙通信,使得裝置體積更小,安裝更靈活,比起傳統(tǒng)的有線通信優(yōu)勢明顯。對于更高自由度上的主從控制,本文也提供了開發(fā)思路。
參考文獻:
[1] 羅孔昭, 葉磊. 淺談我國機器人發(fā)展現(xiàn)狀與問題及應(yīng)對措施[J]. 科技資訊, 2018, 16(1): 74-75.
[2] 王剛, 王法承, 張星星, 等. 核電站檢修主從式水下作業(yè)機械手研究[J]. 高技術(shù)通訊, 2017, 27(5): 442-449.
[3] 李結(jié)松. Arduino在工科低年級開放實驗項目中的實踐探討[J]. 大學(xué)教育, 2019(6): 85-87.
[4] 楊運強, 王儀玥, 唐力偉, 等. 傳感器與測試技術(shù)[M]. 北京: 冶金工業(yè)出版社, 2016: 152-153.
【通聯(lián)編輯:謝媛媛】