袁莉 蔡文霞 張利欽 容旭巍
摘? 要:針對漢字書寫初學者易混淆筆劃和筆順次序的現(xiàn)象,設計了一種簡單易操作的硬筆書寫機器人,機器人可以模擬人手書寫漢字的過程,幫助初學者掌握漢字筆劃和書寫筆順及用筆力度。機器人主體通過串口和計算機相連,文字在計算機中轉換成G代碼后發(fā)送給機器人控制器,控制器處理代碼信息,生成脈沖序列控制帶動硬筆運動的步進電機前進或后退,在紙上寫出文字。
關鍵詞:書寫機器人;步進電機;Bresenham直線算法
中圖分類號:TP242 文獻標志碼:A 文章編號:2095-2945(2019)32-0089-02
Abstract: In view of the phenomenon that beginners of Chinese character writing are easy to confuse stroke and stroke order, a simple and easy to operate hard pen writing robot is designed, which can simulate the process of writing Chinese characters by hand, and help beginners master Chinese character strokes, writing skills and pen strength. The main body of the robot is connected to the computer through a serial port, and the text is converted into a G code in the computer and sent to the robot controller, which processes the code information and generates a pulse sequence to control the stepping motor that drives the hard pen forward or backward to write words on paper.
Keywords: writing robot; stepper motor; Bresenham straight line algorithm
隨著人工智能技術的不斷發(fā)展,各種各樣的機器人走進了人類生活的各個領域。在近幾年的早教領域,功能強大的早教機器人走進了千家萬戶,教孩子們說話、唱歌、學英語、下圍棋等等,但是能夠手把手教孩子書寫漢字的機器人很少出現(xiàn)在孩子的書桌上。與復印機和打印機相比,寫字機器人最大的優(yōu)勢是可以像人類一樣用筆寫字,可以還原整個書寫過程。在漢語學習中,漢字的筆畫眾多,且筆順繁雜,漢字書寫對于小朋友或者外籍人士來說都是難點。寫字機器人從最基礎的握筆姿勢到筆畫順序,再到運筆力度等都能給學生很好的指導意見。寫字機器人在教育領域或有更大的發(fā)揮空間。針對于此,本文設計了一種易操作的硬筆書寫機器人,可以教人學習書寫漢字。
1 書寫機器人總體結構
書寫機器人系統(tǒng)主要包括機器人本體和計算機,機器人本體控制部分采用STM32F103C8T6作為主控制器,STM32是以ARM Cortex-Mx為內核,專門為嵌入式應用設計的一種低功耗單片機,工作頻率最高可達72MHz。拖動系統(tǒng)采用兩相四線42步進電機拖動筆在XY水平坐標平面的移動,選用SG90舵機拖動筆在Z軸上下方向移動,實現(xiàn)抬筆。機械聯(lián)動機構主要包括直線導軌、滾珠絲杠,傳動帶、惰輪、滑塊、光軸和限位開關等組成,滾珠絲杠將步進電機的圓周運動變?yōu)橹本€運動。電源系統(tǒng)采用12V直流開關電源供電。
2 文字提取和軌跡設計
寫字機器人要寫出結構美觀的漢字,首先要獲取準確的漢字信息。機器人漢字信息提取主要有三種途徑:已有字庫、機器視覺和智能模仿學習。本文選擇通過機器視覺技術,計算機接收從攝像頭傳遞來的文字信息,處理為坐標文件后傳送給STM32控制器。計算機接收到圖像后,首先利用圖形處理軟件CorelDRAW對其進行處理,處理主要包括去除噪聲、傾斜校正、二值化、行列切分、閉運算、細化運算和去毛刺處理,將圖像處理成黑白的二值圖像,而且要輪廓光滑,突出漢字骨架。二值化的過程是讀取字符區(qū)各個位置的像素顏色,如果讀取出來信息不是白色,則在顯示點陣編輯框中相應的位置點劃出一個實心圓,如果讀取信息為白色,則繼續(xù)掃描下一個位置,不斷執(zhí)行直至全部區(qū)域讀取完畢,這樣就可以得到對應字符的點陣圖。然后需要生成坐標文件,先定義好坐標原點,進行畫面位置布局。軟件中定義的原點與實際繪畫時的零點重合,定位后即可生成坐標文件。坐標文件轉換成G代碼后,再通過串口傳送到STM32控制器中。
寫字機器人筆尖沿文字的筆劃軌跡運動,軌跡根據計算機提供的字符的矢量數(shù)據生成。STM32接收到文字的G代碼,在串口中斷中先將代碼存儲進緩沖區(qū)字符數(shù)組中,第一次填充緩沖區(qū)需要將緩沖區(qū)填滿或者接受到傳送完畢的標志才會進行書寫。書寫的過程就是快速地找到離散的點,設計中選用Bresenham直線算法解決這個問題。Bresenham直線算法是用來描繪由兩點所決定的直線的算法,它會算出一條線段在n維光柵上最接近的點,Bresenham直線算法離散化用像素點表示示意圖如圖1所示。這個算法只用快速的整數(shù)加法、減法和位元移位,可以快速確定下一個點。
3 電機控制設計
電機是機器人驅動部分,由控制器來控制電機正或反轉實現(xiàn)機器人末端寫字筆的左右或者前后平移和轉動。步進電動機是一種由一定頻率的脈沖控制的電動機,每輸入一個控制脈沖,步進電機就前進或后退一步。它可以直接接收計算機輸出的數(shù)字信號,而不需要進行數(shù)/模轉換,所以廣泛應用于數(shù)字控制系統(tǒng)。步進電機角位移與控制脈沖間精確同步,可以快速啟停、精確步進,因此選用步進電機開環(huán)控制系統(tǒng)。步進電動機開環(huán)控制系統(tǒng)由于具有結構簡單、使用維護方便、可靠性高和制造成本低等優(yōu)點,步進電機的控制結構圖如圖2所示。
STM32F103中有7個定時器,每個定時器均有4個獨立可編程通道輸出的PWM信號。選用高級定時器TIM1,它由APB2總線提供時鐘,設置為72MHz,向上(增)計數(shù),自動裝載寄存器ARR-1的值為256,所以,PWM波的占空比的取值范圍為0~256,不同占空比的取值存儲在每個通道的捕獲比較寄存器CCRx中,編程時,通過改變寄存器CCRx的值來改變PWM波的占空比。
步進電機驅動器DRV8825 接收PWM脈沖信號,按照步進電機分配方式所要求的狀態(tài)順序來產生各相控制信號,和DIR(方向)、EN(使能)信號。當步進電機轉過一個步距角時,筆頭就會前進或者后退一小段位移。比如步距角1.8°時,筆頭前進1mm。如果要求更高的精度,在驅動器DRV8825“STEP”端輸入一個脈沖,即可驅動電動機產生微步,將模式選擇端MS1、MS2、MS3全部接地,即可使用32細分。如選擇1/32步進模式,電機轉一圈就要送6400個微步才能完成。書寫出來的漢字會更加平滑。
4 測試及結果
經過軟硬件的綜合調試,寫字機器人可以按照正確的筆順準確寫出文字,寫出的文字效果如圖3所示。通過小朋友使用測試,小朋友可以跟隨機器人的書寫寫出漢字,在協(xié)助初學書寫者學習寫漢字時有一定的效果,值得推廣。在此基礎上,引入智能模仿學習技術,使機器人具有類人類的學習能力,只需簡單示范,機器人就可以寫出所需漢字,將其用于教育領域,必將能夠提升孩子的學習興趣和學習樂趣,成為輔助老師教學的好助手。
參考文獻:
[1]類延超.五自由度寫字機器人系統(tǒng)研究[D].濟南:山東大學,2012.
[2]宮曉博,王建平.IRB140型工業(yè)機器人連續(xù)軌跡控制的漢字繪制[J].現(xiàn)代制造工程,2010(2):135-137.
[3]何薇,錢增磊,唐超,等.基于機器視覺的機器人寫字技術的設計[J].江南大學學報:自然科學版,2011,10(5):513-517.
[4]李芳,吳仲城.一種機器人仿人書寫系統(tǒng)[J].華中科技大學學報(自然科學版),2015,10:351-354.