高玲玲,李 紅,李宇艦
(合肥學(xué)院 計(jì)算機(jī)科學(xué)與技術(shù)系,合肥 230601)
?
基于Arduino的機(jī)器人寫字系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
高玲玲,李 紅,李宇艦
(合肥學(xué)院 計(jì)算機(jī)科學(xué)與技術(shù)系,合肥 230601)
以DOODLE BOT為基礎(chǔ),通過(guò)控制小車的運(yùn)行軌跡,實(shí)現(xiàn)寫字功能。機(jī)器人寫字系統(tǒng)由控制板、舵機(jī)、霍爾傳感器、電池組以及藍(lán)牙、紅外傳感組成,規(guī)劃字體的書寫路線,通過(guò)設(shè)計(jì)、調(diào)試,系統(tǒng)最后能夠?qū)崿F(xiàn)所有英文字母、阿拉伯?dāng)?shù)字的書寫。通過(guò)對(duì)字母的不同組合,可以完成單詞的書寫,進(jìn)而實(shí)現(xiàn)對(duì)英文句子的書寫,也可以實(shí)現(xiàn)對(duì)指定漢子的書寫。寫字機(jī)器人可以用在科研、教學(xué)上。
舵機(jī);霍爾傳感器;寫字算法;藍(lán)牙;紅外
機(jī)器人寫字系統(tǒng)由控制板、舵機(jī)、霍爾傳感器、電池組以及藍(lán)牙模塊和紅外傳感模塊組成。各個(gè)模塊協(xié)作完成系統(tǒng)的功能。用180°旋轉(zhuǎn)的舵機(jī)控制起筆和落筆,當(dāng)舵機(jī)臂轉(zhuǎn)到一定的角度后,實(shí)現(xiàn)支撐功能,筆尖會(huì)離開(kāi)地面,這樣就能實(shí)現(xiàn)提筆功能。落筆剛好相反,顯然能夠?qū)崿F(xiàn)。用兩個(gè)360°旋轉(zhuǎn)的舵機(jī)控制車輪,給一個(gè)參數(shù),通過(guò)PWM(Pulse-width modulation)轉(zhuǎn)換、H橋控制,就可以實(shí)現(xiàn)舵機(jī)的轉(zhuǎn)動(dòng),即可以實(shí)現(xiàn)前進(jìn)功能。因?yàn)镠橋除去防反接電路,可以實(shí)現(xiàn)舵機(jī)的倒轉(zhuǎn)。轉(zhuǎn)彎功能只需讓一個(gè)輪子前進(jìn),另一個(gè)輪子倒退,可以實(shí)現(xiàn)轉(zhuǎn)彎功能。[1]
1.1 硬件設(shè)計(jì)
1.1.1 舵機(jī)模塊功能和作用 本設(shè)計(jì)中用到3個(gè)舵機(jī),一個(gè)是控制筆的升落,另外兩個(gè)是驅(qū)動(dòng)車輪。如圖1,靠近車輪的兩個(gè)舵機(jī)驅(qū)動(dòng)車輪,兩個(gè)舵機(jī)是對(duì)稱的。帶有白色舵機(jī)臂的舵機(jī)控制筆的升落,當(dāng)舵機(jī)臂轉(zhuǎn)到不同的角度,筆尖離桌面的高度就會(huì)不一樣。
控制車輪的兩個(gè)伺服馬達(dá)有兩條線,是電源線和地線。其中紅色的是電源線,黑色的是地線??刂栖囕喌亩鏅C(jī)的驅(qū)動(dòng)采用的是H型PWM驅(qū)動(dòng)系統(tǒng)。舵機(jī)采用的是電壓控制,轉(zhuǎn)動(dòng)速度取決于加在其兩端的平均電壓的大小,PWM脈沖的占空比越大,舵機(jī)的轉(zhuǎn)動(dòng)速度就越快。通過(guò)PWM系統(tǒng)不僅可以實(shí)現(xiàn)舵機(jī)對(duì)車輪的驅(qū)動(dòng),而且可以改變車輪的速度。[2]
1.1.2 霍爾傳感器模塊功能和作用 霍爾傳感器的作用是記錄車輪的行程[3]。在兩個(gè)車輪上分別有兩個(gè)圓形的金屬片,這兩個(gè)金屬片是有磁性的,而且磁性不連續(xù),當(dāng)車輪轉(zhuǎn)動(dòng)時(shí),霍爾元件就會(huì)在這個(gè)變化的磁場(chǎng)中產(chǎn)生變化的電壓,每變化一次就記錄一次,記錄采取中斷的方式。電壓發(fā)生變化的時(shí)候,會(huì)引起中斷,調(diào)用中斷函數(shù)進(jìn)行計(jì)數(shù)。計(jì)數(shù)一次,輪子行駛一步,即為1.57cm。
1.2 軟件設(shè)計(jì)
小車的寫字方法是將字體的筆畫設(shè)置成小車行駛的路徑。寫字的思想是將大寫的英文字母放在一個(gè)表格中,表格形式可以多樣化,例如下面的4×6表格(見(jiàn)圖2)。通過(guò)Go()函數(shù)和Turn()函數(shù)的不同組合,來(lái)對(duì)字母進(jìn)行書寫。放在表格中,能夠使所有的字母字形大小不致差別太大,另外,每個(gè)方格可以代表輪子“一步”的距離,這樣,根據(jù)格子數(shù)就可以知道車需要行駛的距離。
圖2 字體規(guī)劃示例圖
1.2.1 起筆、落筆的方案 起筆和落筆是通過(guò)驅(qū)動(dòng)舵機(jī)旋轉(zhuǎn)實(shí)現(xiàn)的,給控制線一定的脈沖波,舵機(jī)就會(huì)轉(zhuǎn)到指定的位置。輸入一個(gè)周期性的正向脈沖信號(hào),就可以驅(qū)動(dòng)馬達(dá),脈沖的高電平時(shí)間一般是1~2毫秒之間,低電平的時(shí)間是5~20毫秒之間。高電平維持的時(shí)間不同,轉(zhuǎn)到的角度就會(huì)不同。[4]
起筆就是讓舵機(jī)的臂作為支撐,設(shè)置為90°角,信號(hào)脈沖中的高電平的時(shí)間是1.44毫秒,落筆的時(shí)候,舵機(jī)臂不再有支撐作用,轉(zhuǎn)到零度角,信號(hào)脈沖中的高電平的時(shí)間是2.0毫秒。因?yàn)槊總€(gè)脈沖會(huì)使舵機(jī)轉(zhuǎn)到一定的角度,所以要有多個(gè)脈沖才能達(dá)到指定的位置。一旦達(dá)到了指定的位置,舵機(jī)就不會(huì)再繼續(xù)轉(zhuǎn)動(dòng)了。表1是脈沖與角度位置的關(guān)系。
1.2.2 前進(jìn)功能的設(shè)計(jì) 前進(jìn)的時(shí)候分別驅(qū)動(dòng)控制兩個(gè)車輪的兩個(gè)電機(jī)。設(shè)定一個(gè)0~255的速度值[4],控制板通過(guò)PWM轉(zhuǎn)換,將其轉(zhuǎn)換成數(shù)字脈沖,這些脈沖通過(guò)H橋,驅(qū)動(dòng)電機(jī)的運(yùn)轉(zhuǎn)。前進(jìn)距離的控制,通過(guò)霍爾傳感器的計(jì)數(shù)與參數(shù)的比較實(shí)現(xiàn)?;魻杺鞲衅魇窃谳喿用看涡旭?.57cm時(shí)計(jì)數(shù)一次,如果需要前進(jìn)5cm就要進(jìn)行3次計(jì)數(shù)。運(yùn)動(dòng)的過(guò)程中兩個(gè)輪子的兩個(gè)霍爾傳感器的計(jì)數(shù)都要實(shí)時(shí)的與參數(shù)進(jìn)行比較,只有在兩個(gè)計(jì)數(shù)都達(dá)到參數(shù)的要求時(shí),車子才會(huì)停止運(yùn)動(dòng)(如圖3)。
表1 舵機(jī)脈沖驅(qū)動(dòng)與角度位置對(duì)應(yīng)表
圖3 前進(jìn)子程序流程圖
1.2.3 轉(zhuǎn)彎功能的設(shè)計(jì) 小車轉(zhuǎn)彎的時(shí)候采取的是一個(gè)輪子前進(jìn)一個(gè)輪子倒退的方法。在這個(gè)過(guò)程中,兩個(gè)輪子間的中心點(diǎn)是固定不變的。筆尖到該點(diǎn)的直線是兩個(gè)輪子間直線的中垂線,依靠這個(gè)中心點(diǎn),可以找到筆的位置。兩個(gè)輪子間的距離大約是7.7cm,轉(zhuǎn)出的圓的周長(zhǎng)約為24.2cm,如果轉(zhuǎn)45°,就是圓周的八分之一,約為3.0cm,相當(dāng)于霍爾傳感器計(jì)數(shù)兩次。
如圖4所示,為方便起見(jiàn),簡(jiǎn)化了小車的模型,去掉了筆的部分,只考慮兩個(gè)車輪的轉(zhuǎn)動(dòng)情況。L為兩個(gè)車輪間的距離7.7cm,n為小車車輪要前進(jìn)的步數(shù)。小車轉(zhuǎn)過(guò)45°角所要行駛的步數(shù)計(jì)算過(guò)程如下:
n=3.14×7.7×(45÷360)÷1.57
(1)
轉(zhuǎn)彎不是一個(gè)只重視過(guò)程而忽略結(jié)果的動(dòng)作,轉(zhuǎn)彎是為了進(jìn)行下一個(gè)筆畫的書寫,相比轉(zhuǎn)彎過(guò)程,筆尖的位置更重要。
如圖5是小車的轉(zhuǎn)彎過(guò)程。因?yàn)檗D(zhuǎn)彎過(guò)程中小車的中心點(diǎn)不變,所以在轉(zhuǎn)動(dòng)之前要將小車的中心點(diǎn)與下一個(gè)筆畫的起點(diǎn)重合,轉(zhuǎn)動(dòng)指定角度后,倒退一個(gè)筆尖到中心點(diǎn)的距離即可。
圖4 字體規(guī)劃示例圖
1.2.4 無(wú)線傳輸設(shè)計(jì)
a.紅外傳感控制的設(shè)計(jì)。紅外傳感設(shè)計(jì)中,字體的書寫方法采用上述基礎(chǔ)設(shè)計(jì)中的算法,寫字的控制命令由在程序中固化,改成通過(guò)紅外傳感傳輸。遙控器上的0~9按鍵,代表A~J的字母,即如果按下遙控器上的0鍵,小車就會(huì)實(shí)現(xiàn)對(duì)字母A的書寫。
b.藍(lán)牙控制的設(shè)計(jì)。藍(lán)牙模塊和紅外傳感一樣,對(duì)書寫進(jìn)行控制,不改變寫字算法。藍(lán)牙模塊接收到命令后進(jìn)行相應(yīng)的函數(shù)調(diào)用。[5]
為了方便的進(jìn)行調(diào)試,本設(shè)計(jì)直接用藍(lán)牙串口通信助手進(jìn)行信息的傳輸。
通過(guò)藍(lán)牙模塊可以將安卓手機(jī)與Arduino主控板進(jìn)行通信。本設(shè)計(jì)中采用的是CSR主流藍(lán)牙芯片,采用的協(xié)議標(biāo)準(zhǔn)是藍(lán)牙V2.0協(xié)議標(biāo)準(zhǔn),波特率設(shè)置為9600,配對(duì)密碼為1234。
通過(guò)調(diào)試,小車能夠?qū)崿F(xiàn)全體英文字母、阿拉伯?dāng)?shù)字的書寫,將這些英文字母組合就可以實(shí)現(xiàn)單詞、句子的書寫。另外,對(duì)一些指定漢字也能夠?qū)崿F(xiàn)其書寫。
從結(jié)果可以看出,寫出的字體存在一定的誤差。不過(guò),誤差在合理范圍內(nèi),字體還是清晰可見(jiàn)的(如圖6)。書寫的結(jié)果證明了這種書寫方法的可行性。在原有的寫字算法基礎(chǔ)上,小車能夠?qū)崿F(xiàn)紅外傳感器和藍(lán)牙的控制,使得對(duì)寫字小車的控制更加靈活。
[1] 王光建,廖志勇,陳雪華.機(jī)器人寫字技術(shù)及其運(yùn)動(dòng)參數(shù)[J]. 重慶大學(xué)學(xué)報(bào),2003(12):6-9.
[2] 馬曉花,孔慶忠,馬衛(wèi)民,等.四自由度寫字機(jī)器人軌跡規(guī)劃研究[J].機(jī)械工程與自動(dòng)化,2010(5):161-163.
[3] 崔才豪,張玉華,楊樹(shù)財(cái) . 用 Arduino 控制板的光引導(dǎo)運(yùn)動(dòng)小車設(shè)計(jì) [J].自動(dòng)化儀表,2011(9):29-32.
[4] 何彪,周開(kāi)班 . 基于 NFC 技術(shù)的藍(lán)牙對(duì)象交換方法 [J]. 微計(jì)算機(jī)信息,2009(6) :133-134.
[5] 鄭昊,鐘志峰,郭昊,等. 基于Arduino/Android的藍(lán)牙通信系統(tǒng)設(shè)計(jì)[J].物聯(lián)網(wǎng)技術(shù) , 2012(5):50-51.
[責(zé)任編輯:張永軍]
Design and Implementation of Robot Writing System Based on Arduino
GAO Ling-ling,LI Hong,LI Yu-jian
(Department of Computer Science and Technology,Hefei University, Hefei 230601,China)
This paper is based on the DOODLE BOT, by controlling the trajectory of the robot , to realize the writing algorithm. The hardware system has the following modules, like control panel, servo, sensor, battery and bluetooth, infrared sensor. Planning the font’s writing route, the robot moving along the route, the traces is the writing of font. After the design and debugging, the system can complete the writing of all English letters and Arabic numerals. Combining the letters, can realize the words’ writing, then to realize English sentences’ writing. The system can also realize the writing of some Chinese words. The font’s accuracy, is connected with the program’s arithmetic, and also to a large extent depends on the hardware equipment’s accuracy. To arise the writing robot’s accuracy, more precise hardware equipment is needed. The writing robot can be used in scientific research and teaching.
hydraulic actuator; hall element; writing algorithm; bluetooth; infrared
2016-04-04
2016-07-10
安徽省教育廳自然科學(xué)基金重點(diǎn)項(xiàng)目(KJ2015A162)、安徽省高等學(xué)校省級(jí)質(zhì)量工程項(xiàng)目(2015zjjh026,2015zdjy141)、2016年度合肥學(xué)院科研發(fā)展基金自然科學(xué)重大項(xiàng)目(16ZR11ZDA,16ZR12ZDA)資助。
高玲玲(1981—),女,遼寧沈陽(yáng)人,合肥學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)系講師;研究方向:物聯(lián)網(wǎng)和智能處理。
TP391
A
2096-2371(2016)04-0054-05