陳玉敏,謝 瑋,孟憲民,楊東岳
(1.哈爾濱工業(yè)大學(xué)(威海)信息與電氣工程學(xué)院,山東 威?!?64209;2.山東卡爾電氣股份有限公司,山東 威?!?64209)
?
智能寫字機器人設(shè)計
陳玉敏1,謝瑋1,孟憲民2,楊東岳1
(1.哈爾濱工業(yè)大學(xué)(威海)信息與電氣工程學(xué)院,山東 威海264209;2.山東卡爾電氣股份有限公司,山東 威海264209)
設(shè)計了一種兩自由度寫字機器人,可以很方便地完成在平面上的書寫繪畫任務(wù);可以把在計算機輸入的文字通過控制算法和硬件電路用步進電機帶動寫字筆在紙面自動地描寫出來;上位機選用計算機作為主機,采用Arduino系統(tǒng)作為從機;在計算機上將輸入的文字轉(zhuǎn)換成坐標形式的G代碼,在通過串口發(fā)送給下位機控制器,下位機控制器采用直線插補和圓弧形插補算法,輸出控制脈沖和方向電平控制步進電機前進或者后退;步進電機是由脈沖控制的,每發(fā)來一個脈沖就前進一步,實現(xiàn)了對距離的精確控制;還可以拓展一軸,加入Z軸理論上可以實現(xiàn)3D打印功能,把寫字筆換成雕刻刀或者是激光頭可以雕刻立體作品,拓展功能豐富。
寫字機器人;Arduino系統(tǒng);插補算法;精確控制
機器人方向作為高科技的重要研究領(lǐng)域,已經(jīng)成為科技進步中不可缺少的重要裝備。各智能機器人已應(yīng)用到實際生活中,相關(guān)研究日益深入[1-2]。隨著機器人技術(shù)廣泛應(yīng)用,各高校陸續(xù)開展了機器人課程的教學(xué),設(shè)計一種可以在平面書寫繪畫的機器人應(yīng)用于教學(xué)與科研中。
寫字機器人整體控制系統(tǒng)由計算機,控制器,電機驅(qū)動電路和電機四部分組成。計算機作為輔助控制器,主控制器由Arduino系統(tǒng)構(gòu)成,執(zhí)行環(huán)節(jié)則由電機組成。
計算機作為上位機主要將輸入的文本信息轉(zhuǎn)化為G代碼,軟件為Inkscape,轉(zhuǎn)化后文件為.nc文件,用記事本方式打開看到n組坐標,也就是文本信息的坐標值。然后使用上位機軟件Grbl Controller與下位機通信,將生成的G代碼通過串口發(fā)送給單片機,使之執(zhí)行目標文本的坐標信息。Grbl Controller不僅能將G代碼發(fā)送給單片機,還能在可視化界面上模擬當前機器人寫字進程。
下位機中單片機系統(tǒng)通過串口接收上位機發(fā)送的G代碼,通過內(nèi)部程序?qū)代碼識別轉(zhuǎn)換,再經(jīng)逐點比較法的直線插補和圓弧插補程序及電機控制程序控制電機狀態(tài)。電機是機器人動力部分,由控制器來控制電機正或反轉(zhuǎn)實現(xiàn)機器人末端寫字筆的左右或者前后平移和轉(zhuǎn)動,實踐中控制每輸出一個控制脈沖,步進電機就前進或后退一步。
寫字機器人的執(zhí)行器選用步進電機加絲杠組合實現(xiàn)對行走距離的精確把握??刂破鬏敵隹刂泼}沖使步進電機動作,步進電機通過聯(lián)軸器連絲杠,給步進電機53個脈沖時,絲杠前進1 cm,如此可精確地控制絲杠前進的距離。當步進電機轉(zhuǎn)過一個步距角時,絲杠前進或者后退一小段位移,所以只需要計算好輸出脈沖即可實現(xiàn)對距離的精確控制。
下位機采用Arduino UNO作為控制器。使用的AVR微控制器有20個I/O引腳且性價比高。主Arduino使用標準的USB數(shù)據(jù)線連接到計算機上,不僅提供到PC的串行連接,還包括操作所需的5 V電源[3]。UNO處理器核心是ATmega328,Arduino通過6路PWM引腳輸出PWM方波,通過6路數(shù)字引腳輸出數(shù)字電平或數(shù)字式脈沖信號。開發(fā)環(huán)境為Arduino IDE[4]。
步進電機運行要把具有足夠功率和頻率的電脈沖按選定的順序加給各控制繞組。脈沖分配器接收控制脈沖信號和方向電平,并按步進電機的分配方式要求的狀態(tài)順序產(chǎn)生各相控制繞組信號,脈沖分配器輸出信號數(shù)目與電機相數(shù)相同。每來一個控制脈沖,脈沖分配器的輸出信號中至少有一個變化,輸出狀態(tài)就轉(zhuǎn)換一次,步進電機轉(zhuǎn)速的高低、升降、起停完全取決于控制脈沖狀態(tài)??刂泼}沖發(fā)生器在Arduino的IDE里編寫程序,使Arduino產(chǎn)生控制脈沖信號和方向電平。步進電機驅(qū)動模塊采用A4988。A4988是一款帶過流保護和轉(zhuǎn)換器的DMOS微步驅(qū)動器,在“步進”中輸入一個脈沖,即可驅(qū)動電動機產(chǎn)生微步。只要控制STEP和DIR就可以了,STEP是控制脈沖輸入端,DIR是方向電平輸入端;3個模式選擇端MS1、MS2、MS3全部接地也就是步進電機的全步進模式,如果要求更高的精度,可通過選其他模式,如選擇1/4步進模式,電機轉(zhuǎn)一圈就要送800個微步才能完成。控制脈沖發(fā)生器和驅(qū)動器的結(jié)構(gòu)示意圖如圖1所示。
圖1 控制脈沖發(fā)生器和驅(qū)動器的結(jié)構(gòu)
CDS5500舵機控制電路中采用異步串行通信方式,通過UART異步串行接口進行統(tǒng)一控制,對舵機控制可采用計算機—控制板—舵機的控制形式。在計算機上將處理好的目標坐標通過串口發(fā)送到控制板中的AVR單片機上,再通過UART異步串行接口向舵機發(fā)送控制指令,使舵機根據(jù)要求執(zhí)行動作。其中UART異步串行接口部分中,CDS5500兼Robotis Dynamixel通訊協(xié)議,單片機使用RS232通信協(xié)議,通過接口部分實現(xiàn)通信協(xié)議轉(zhuǎn)換。采用控制程序?qū)ART異步串行接口進行時序控制,實現(xiàn)半雙工串行總線通訊。
寫字機器人執(zhí)行機構(gòu)中步進電機使用脈沖控制,設(shè)置控制脈沖與步進電機前進距離的對應(yīng)方式。當給出一條直線起點和終點的坐標時,通過直線插補算法控制器輸出控制脈沖可以使步進電機帶動負載輕松地完成直線的繪制任務(wù)。
計算機上先將文本文字轉(zhuǎn)換成坐標,首先使用矢量化圖形處理軟件Inkscape,在其位圖臨摹算法中首先讀取輸入文字編輯框中的字符區(qū)不同位置上像素顏色信息,如果讀取出來信息不是背景默認白色,則在顯示點陣編輯框中相應(yīng)的位置點劃出一個實心圓;如果讀取信息為白色,則繼續(xù)掃描下一個位置,不斷執(zhí)行,在顯示點陣的編輯中輸出相應(yīng)字符的點陣圖。在Inkscape中首先設(shè)置圖形尺寸單位使用毫米,然后輸入文字,對象轉(zhuǎn)化成路徑,提取位圖輪廓,最后就可以導(dǎo)出.nc的坐標文件。利用這個坐標文件指導(dǎo)控制器輸出控制脈沖控制步進電機。像素掃描算法流程圖2所示。
圖2 像素掃描算法流程圖
機器人直線插補算法中采用逐點比較法。直線是構(gòu)成字體的基本要素,機器人末端負載畫筆不能嚴格沿著直線運動,只能使用折線軌跡進行逼近。插補就是根據(jù)寫字要求在軌跡的起點和終點計算出若干個中間點坐標,插補中間點精度直接影響控制速度。逐點比較法中每一步都要將當前瞬時坐標同規(guī)定的圖形軌跡相比較,然后判斷其偏差,再決定下一步,如果當前點走到規(guī)定圖形外面,那下一步就要往里面走;如果當前點在圖形里面,那么下一步就要往外面走,縮小偏差得出一個十分近似指定圖形的軌跡,最大偏差不超過一個脈沖當量[5-6]。
逐點比較法應(yīng)用在直線插補過程中,步進電機每步都要進行偏差判別、坐標進給、新偏差計算和終點比較4個步驟。第一步判別,根據(jù)偏差值確定寫字筆位置是在直線的上方(或線上),還是在直線的下方;第二步進給,根據(jù)判別的結(jié)果,決定控制器控制哪個坐標(x或y)移動一步;第三步運算,計算出筆移動后的新偏差,提供給下一步作判別依據(jù),遞推下去,當開始加工時,將寫字筆移到加工起點,設(shè)開始加工點的;第四步比較,在計算偏差同時,還要進行一次終點比較,以用來確定是否到達了終點。如果已經(jīng)到達,就不再進行運算,并發(fā)出停機或轉(zhuǎn)換新程序段的信號。其中,遞推次數(shù)由計數(shù)變量,決定,每完成一次插補計算,E自減1,當計數(shù)變量E減為0時,完成插補程序,程序結(jié)束跳出,等待進行下一次插補計算。對于不同象限,不同走向的直線其插補計算公式和控制器發(fā)出的控制方向都是不同的,需要將坐標和進行方向根據(jù)象限等的不同而進行變換。遞推直線插補算法如圖3所示。
圖3 直線插補過程
機器人利用圓弧插補算法解決文字書寫中撇和捺的曲線。寫出一段圓弧,把寫字點到圓心的距離和該圓的名義半徑相比計算偏差。假設(shè)一段圓弧位于第一象限時的情況,圓弧起點為E,終點為A。選計算偏差為Fi,j= xi2-x02+ (yj2-y02)利用偏差判別式,即獲得近似圓弧。若點P在圓弧外或圓弧上,即步進電機帶動寫字筆向圓內(nèi)走一步;如果位于圓弧內(nèi)側(cè),則步進電機帶動寫字筆向圓弧外走一步。采取遞推法推算下一步新的計算偏差,這樣用近似折線代替了圓弧[7-8]。其中,遞推次數(shù)變量,為起點坐標,為終點坐標。圓弧形插補算法的算法流程如圖4所示。
圖4 圓弧形插補過程
機器人控制系統(tǒng)一般分為組織級和實時控制級,分為位置控制、力控制和混合控制[9]。寫字機器人的執(zhí)行機構(gòu)設(shè)計中步進電機和絲杠是理想的對距離有精確要求的機械機構(gòu),選用X-Y平移機構(gòu),一個平面平移結(jié)構(gòu)需要有X,Y兩軸絲杠,導(dǎo)軌和兩個步進電機及其他一些支架和固定零件。步進電機有4個排線,排線從左到右為1,2,3,4。引出排線直接插到步進電機驅(qū)動模塊的A4988上的插座上。利用兩個步進電機組件相互垂直擺放就可以構(gòu)成X-Y兩個自由度。裝配中需要注意的是:將X方向的黑色滑塊和Y方向的黑色滑塊分別移動
到它們的滑軌中點處,此時筆尖應(yīng)當位于水平方向的工作平臺的幾何中心處。
機器人寫字操作時,首先將兩組步進電機的排線接頭插到上圖紅色的步進電機驅(qū)動模塊上,然后將步進電機模塊插到Arduino控制板上,將Arduino控制板與計算機連接。在計算機中打開Grbl軟件, 在選擇好正確的COM口之后,設(shè)置傳輸波特率為9600,檢查連線與電源接線準確無誤后,點擊OPEN鍵,選擇之前制作好的G代碼文件,點擊Begin鍵開始發(fā)送,然后觀察寫字結(jié)果。寫字結(jié)果演示如圖5所示。
圖5機器人寫出“哈”字
寫字機器人能精確完成寫字任務(wù),在計算機上將制作好的路徑文件通過Grbl發(fā)送給下位機,Arduino執(zhí)行翻譯路徑文件和直線、曲線插補程序,控制器輸出脈沖控制兩個步進電機完成末端寫字筆的寫字任務(wù)。寫字機器人可以用來作為3D打印機的原型,再加入一個Z軸自由度將寫字筆換成微型鉆頭可以雕刻立體圖案,同時將寫字筆換成激光頭也可以作為微型雕刻機來雕刻圖形、徽章等藝術(shù)品。
[1]郭清達,萬傳恒,史步海.基于遺傳算法的工業(yè)機器人時間最優(yōu)軌跡規(guī)劃及仿真研究[J].計算機測量與控制,2014,22(4):1240-1242.
[2]王文憑,李天培,馮根生.一種智能搬運機器人的設(shè)計與實現(xiàn)[J].計算機測量與控制,2011,19(2):395-398.
[3]John-David,Warren Josh Adams. Harald Molle. Arduino robotics[M].北京:電子工業(yè)出版社,2014.
[4]陳呂洲.Arduino程序設(shè)計基礎(chǔ)[M].北京:北京航空航天大學(xué),2014.
[5]趙燕偉,朱雙勝,盧東,等.基于直線插補的字體邊緣識別技術(shù)[J]. 機電工程,2009,26(5):52-54.
[6]李進文,何素梅,吳海彬.一種直線插補算法及其在機器人中的應(yīng)用研究[J].機電工程,2015,32(7):966-970.
[7]孔逸敏,凌秀澤,徐寅林.基于符號判別法的逐點比較法圓弧插補算法的研究[J].南京師范大學(xué)學(xué)報(工程技術(shù)版),2012,12(2):64-68.
[8]范希營,郭永環(huán).數(shù)控系統(tǒng)差值比較法圓弧插補算法的研究[J].機械科學(xué)與技術(shù),2011,30(5):789- 792.
[9]類延超.五自由度寫字機器人系統(tǒng)研究[D].濟南:山東大學(xué),2012.
Design of Intelligent Writing Robot
Chen Yumin1, Xie Wei1, Meng Xianmin2,Yang Dongyue1
(1.Harbin Institute of Technology (WeiHai) ,Weihai264209, China;2. Shandong Kaer Electric Co.Ltd., Weihai264209, China)
Design two degrees of freedom to writing robot which can easily complete the task of writing drawing on a plane. You can put in the text entered by computer control algorithms and hardware circuit and the stepping motor drive styluses automatically describe it on paper. PC is chosen as the host computer, the system of Arduino as a slave. The text will be entered into a computer coordinates the G code, the next crew to the controller, the next bit machine controller uses serial port to send by linear interpolation and rounded interpolation algorithm, control pulse and direction output level control step stepping motor forward or backward. Stepper motor is controlled by a pulse, a pulse is sent to each step forward, allowing for precise control of the distance. It can be extended a shaft to join the Z-axis can theoretically achieve 3D printing capabilities, the writing pen or chisel into the laser head can be carved three-dimensional works, expansion of feature-rich.
writing robot; arduino system; interpolation algorithm; precise control
2015-08-24;
2015-09-26。
哈爾濱工業(yè)大學(xué)研究生教育教學(xué)改革研究項目(WH2015002)
陳寶偉(1989-),男,福建漳州人,碩士研究生,主要從事傳感器與自動化檢測方向的研究。
1671-4598(2016)01-0266-03
10.16526/j.cnki.11-4762/tp.2016.01.074
TB114.3
B