王昆 李昊天 時一順 張碩 宋艷芳
摘要:本文基于嵌入式系統(tǒng)技術(shù)設(shè)計開發(fā)了一款智能寫字機器人。可以用于替代人類完成書寫任務(wù),以及應用于基礎(chǔ)教育領(lǐng)域。
關(guān)鍵詞:Arduino、輔助教育、寫字機器人
1.總體技術(shù)框架
整體系統(tǒng)由電腦端、手機移動端、Arduino UNO控制器、電機驅(qū)動設(shè)備、舵機和電機6部分組成。電腦端和手機移動端是上位機控制器、下位機控制器由Arduino UNO系統(tǒng)構(gòu)成、電機和舵機是下位機的執(zhí)行器。上位機電腦端將想讓機器人寫的內(nèi)容經(jīng)過奎享軟件轉(zhuǎn)換成文件后綴為.nc或.gcode的文件。然后電腦端通過串口將文件發(fā)給下位機使智能書寫機器人執(zhí)行文件中的坐標信息。由下位機控制器控制電機和舵機的程序控制機器人完成寫字的動作。
電機和同步帶組合是機器人的執(zhí)行器。當電機收到控制器發(fā)來的脈沖時,就能讓寫字臂前進或后退。步進電機通過施加足夠功率和頻率的電脈沖依次控制繞組進行操作。控制脈沖信號和電平方向是由脈沖分配器來負責接收,各相狀態(tài)控制繞組會依次給電機信號,電機根據(jù)信號做出反應。電機轉(zhuǎn)動的速度和舵機升降都是由控制脈沖控制。
2.寫字機器人算法
2.1像素掃描算法
上位機PC端將想要寫的圖片內(nèi)容經(jīng)過可以轉(zhuǎn)換的圖片處理軟件轉(zhuǎn)換成坐標文件。之后的操作就轉(zhuǎn)到上位機寫字軟件或者上位機手機APP使用最后生成的文件發(fā)送給下位機控制器,控制器經(jīng)過內(nèi)部程序的轉(zhuǎn)換后輸出脈沖控制電機和舵機。
2.2直線插補算法
字體的基礎(chǔ)是由直線構(gòu)成,寫字機械臂末端無法像真正人類的手臂一樣地沿著一條直線運動,所以當折線足夠多的時候就能夠?qū)⑵浣频恼J為是直線。插補就是在起點到終點兩點路徑間算出多個坐標點,這些坐標點的精度會對控制速度直接產(chǎn)生影響。這一種方法會把當前的坐標點的形狀跟指定的圖形軌跡進行對比,然后對兩者的輪廓進行偏差判斷,才會對下一步進行選擇。
2.3圓弧形插補算法
文字中撇和捺的曲線也是寫字的一個難點,這邊使用了圓弧插補算法來解決這個問題。寫一個圓弧,把寫字點到圓心的距離相對于圓的半徑的差值計算出來。假設(shè)圓弧的位置是在X軸和Y軸正半軸的區(qū)域,那么E點作為圓弧的起點,A點作為終點。利用偏差判別式,即獲得近似圓弧。
3.寫字機器人硬件
3.1寫字機器人結(jié)構(gòu)
整體的框架用的是一種經(jīng)典結(jié)構(gòu) CoreXY 結(jié)構(gòu)。采用光軸作為寫字機器人的運動軸與框架。用solidworks繪制3D模型作為外殼與連接框架。
CoreXY 它的原理是通過兩個電機同時控制 XY 的移動,A 順時針 B 逆時針,向+Y 軸運動;A 逆時針 B 順時針,向- Y 軸運動;A 順時針 B 順時針,向+X 軸運動;A 逆時針 B 逆時針,向- X 軸運動。
Arduino UNO 系統(tǒng)作為下位機的核心控制器,借助串口或者藍牙接收轉(zhuǎn)換成坐標形式的 G 代碼文件,再通過內(nèi)部寫字算法程序轉(zhuǎn)換,輸出控制脈沖和方向電平控制步進電機運作和舵機的抬筆和落筆。
Arduino UNO 開發(fā)板基于 ATmega328P 控制器, 晶體振蕩器頻率達到 16MHz,內(nèi)部含有 14 個數(shù)字 I/O 引腳(其中含 6 路 PWM 輸出)、6 個模擬輸入引腳、一個 USB 接口、一個 DC 接口、一個 ICSP 接口和一個復位按鈕。
3.2A4988 電機驅(qū)動模塊
該設(shè)計的電機驅(qū)動模塊通過與 Arduino UNO進行連接,接受Arduino UNO 發(fā)出來的控制脈沖和方向電平來驅(qū)動電機和舵機的轉(zhuǎn)動以實現(xiàn)字的書寫。
電機驅(qū)動模塊需要單獨提供電源來進行供電,與 Arduino UNO 所需要的電源區(qū)分開, 這樣做的目的是為了保障 Arduino UNO 能夠穩(wěn)定工作,電機和舵機也能夠有足夠的動力輸出。
A4988內(nèi)部存在一個編譯器。這個編譯器的功能就是充當單片機與驅(qū)動之間的橋梁,進行信號傳輸。同時編譯器還可以生成DA信號。
3.3步進電機
將電脈沖信號傳輸給步進電機,步進電機通過其內(nèi)部的繞子,將其轉(zhuǎn)化角位移或者線位移,步進電機有不同的型號,比如三線、四線、五線式。根據(jù)對本次設(shè)計所需要帶動負載的重量結(jié)合不同步進電機的參數(shù),選擇了型號為 42HB34A 的步進電機。
3.4舵機模塊
舵機的作用是抬筆和落筆,不然字跡連在一起就無法達到寫字的效果。舵機是一種特殊的電機。當存在角度命令時,會根據(jù)命令轉(zhuǎn)到命令給的角度。當下的大多數(shù)機器人關(guān)節(jié)都由舵機構(gòu)成。例如,一些大型機器人可用于手臂、膝蓋等。這種類型的電動機可以通過簡單的操作旋轉(zhuǎn),并且機器人的控制相對容易。
通過PWM脈寬調(diào)制信號就可以控制電機打角。不同的PWM,對應不同的角度。同時可以看出,通過控制具體給舵機通電了多長時間,然后根據(jù)反饋回來的信號結(jié)合上角度傳感器,來對舵機進行精確角度轉(zhuǎn)動的控制。
3.5藍牙模塊
系統(tǒng)采用的藍牙模塊為 HC-06,HC-06 藍牙模塊是專門為智能無線數(shù)據(jù)傳輸而打造, 采用英國 CSR 公司芯片,遵循 V2.0 藍牙規(guī)范,通信范圍為 10 米,共四個引腳,VCC、GND、TXD 和 RXD,可以方便地連接到 Arduino UNO 的串口,被廣泛地用在了具備藍牙通訊功能的設(shè)備上。
4.結(jié)論
本文通過對寫字機器人的機械結(jié)構(gòu)、算法設(shè)計、硬件結(jié)構(gòu)。寫字機器人能完整且穩(wěn)定地寫出想寫的內(nèi)容,在電腦上通過串口將文件發(fā)給下位機或者手機APP,再通過藍牙將文件發(fā)給下位機,下位機的 Arduino UNO通過內(nèi)部的程序?qū)l(fā)送過來的文件完成翻譯并發(fā)送到A4988 電機驅(qū)動模塊來驅(qū)動電機和舵機完成內(nèi)容的書寫。具有良好的應用價值與市場前景。
參考文獻:
1.黃傳翔 基于 Arduino 單片機的智能機器人小車的研究[D] 江蘇安全技術(shù)職業(yè)學院.2021
2.林建勇 基于Arduino的智能爬臂機器人系統(tǒng)設(shè)計探析[A] 山東理工大學.2021.
注:2021年山東協(xié)和學院實驗室開放項目,項目名稱:智能書寫機器人,項目編號:2021SYKF04。
山東協(xié)和學院