高明華 黎強(qiáng) 葉子恒 張寒儒 王珍 許麗金
關(guān)鍵詞: Arduino; Processing; 懸掛畫圖機(jī)器人; 機(jī)械運動; 程序設(shè)計; 本體結(jié)構(gòu)
中圖分類號: TN830.1?34; TP193 ? ? ? ? ? ? ? ? 文獻(xiàn)標(biāo)識碼: A ? ? ? ? ? ? ? ? ?文章編號: 1004?373X(2018)24?0153?04
Design of a hang?drawing robot based on Arduino and Processing
GAO Minghua, LI Qiang, YE Ziheng, ZHANG Hanru, WANG Zhen, XU Lijin
(School of Information Engineering, East China Jiaotong University, Nanchang 330013, China)
Abstract: In allusion to the problems of high prices, complex structures, implementation difficulty and limited function extensions of the current drawing robot, a hang?drawing robot based on the Arduino and Processing is designed. The hardware and software selection, program design, and body structure of the robot are described in detail. The robot does regular mechanical movements by controlling a hanging pen to draw a picture loaded to the upper computer by users. The robot can draw on various vertical planes, and the drawing scope can be adjusted according to the users′ requirements. The results of several experiment verifications show that the robot can draw a complete picture, run stably, and has a certain application prospect.
Keywords: Arduino; Processing; hang?drawing robot; mechanical movement; program design; body structure
機(jī)器人是一種綜合類的高新技術(shù)產(chǎn)品,結(jié)合了多學(xué)科的先進(jìn)技術(shù),如電子、機(jī)械、計算機(jī)、藝術(shù)、機(jī)構(gòu)學(xué)等。機(jī)器人的普及和應(yīng)用很大程度地提高了人們的生活水平,改善了人們的生活質(zhì)量。
人類最初發(fā)明的機(jī)器人被稱為“機(jī)械手”,目的是用其代替人勞動,從事一些高危、艱苦、單調(diào)的工作,改善人們的勞動條件。隨著電子信息技術(shù)的不斷進(jìn)步,更多種類的機(jī)器人被研發(fā)出來,適應(yīng)人們的各種需求,并在越來越多的領(lǐng)域“嶄露頭角”。如今市面上出現(xiàn)各式各樣的機(jī)器人開始進(jìn)軍藝術(shù)領(lǐng)域,設(shè)計者們將藝術(shù)與電子科學(xué)技術(shù)相結(jié)合,碰撞出了激烈火花。
目前,許多不同類型的繪畫機(jī)器人已被研制出來,如通過神經(jīng)網(wǎng)絡(luò)不斷學(xué)習(xí)并模仿人類動作繪制人類肖像畫的機(jī)械手臂,可在任何表面進(jìn)行繪畫的mDrawBot機(jī)器人,做成智能小車可在平滑地面作畫的3D打印機(jī)器人,還有像街頭藝術(shù)家能“主觀”地進(jìn)行繪畫并實現(xiàn)不同畫風(fēng)的智能繪畫機(jī)器人等。但這些機(jī)器人都存在一定的缺憾,如價格高,結(jié)構(gòu)復(fù)雜難以實現(xiàn),功能擴(kuò)展有限等。為此,本文設(shè)計的繪畫機(jī)器人在很多方面具有優(yōu)勢:整個系統(tǒng)成本低廉;繪圖完整,可根據(jù)用戶所提供的圖片,完整繪制出來,并且根據(jù)繪圖像素調(diào)整畫風(fēng),增大像素比例可以達(dá)到素描的效果;可在許多垂直平面上繪畫,如在黑板、墻壁、玻璃等垂直表面作畫;機(jī)器部件少,組裝相對簡單;重量輕,移動便捷。
1.1 ?Arduino Uno板
本設(shè)計所使用的控制板為Arduino Uno板(下文簡稱Uno板)。它是一塊基于開放原始代碼的Simple I/O 平臺,該平臺由兩部分組成:硬件(包括微處理器、電路板等)和軟件(編程接口和語言)。本設(shè)計選擇Uno板的主要原因如下:
1) 開源的軟硬件平臺,模塊化,便于進(jìn)行二次開發(fā)。
2) 使用廉價的微處理控制器。
3) 支持ISP線上燒錄,可以通過串口或USB轉(zhuǎn)RS 232線更新固件。可采用USB 接口供電,不外接電源,也可以使用外部DC 9 V輸入。
4) 支持多樣的互動程序,如Processing,F(xiàn)LASH,C,VVVV等。
1.2 ?Processing
本設(shè)計使用Processing軟件搭建的界面作為上位機(jī)。Processing是 Java 語言的延伸,并支持許多現(xiàn)有的 Java 語言架構(gòu),不過Processing將Java在語法 (syntax) 上簡化,但同樣可以完整地完成Java程序語言編程,具有許多貼心及人性化的設(shè)計。其源代碼是開放的,用戶可依照自己的需要自由裁剪出最合適的使用模式。
Processing可使用戶直接專注于圖形和交互的程序,比如建立類的路徑和編譯參數(shù),或者建立串口和圖形環(huán)境這樣輔助性的圖形環(huán)境,非常適合無太多編程經(jīng)驗的設(shè)計師和藝術(shù)家使用。
1.3 ?總體方案設(shè)計
Processing的上位機(jī)界面的控制窗口主要包含以下部分:圖片信息、參數(shù)配置、軌跡追蹤、命令存儲。通過上位機(jī)載入一張圖片,選取圖片的畫圖區(qū)域,設(shè)定好相應(yīng)的參數(shù)后加載到Uno板上。
然后,從串口傳輸過來的參數(shù),由Uno板分析處理后,通過數(shù)據(jù)輸出接口發(fā)送至L293D步進(jìn)電機(jī)驅(qū)動模塊的數(shù)據(jù)接收接口。由驅(qū)動板驅(qū)動電機(jī)轉(zhuǎn)動,通過轉(zhuǎn)動電機(jī)帶動卷簾機(jī)械結(jié)構(gòu)的懸臂進(jìn)行規(guī)律的運動。所謂的規(guī)律的運動就是讓筆畫波形,畫的波形密度越大表示像素點越高。
繪畫前,要先將機(jī)器人的貢多拉裝置(即用來固定畫筆的裝置)手動移到實際的畫圖零點,也可通過軟件控制筆移動到畫圖零點,但當(dāng)設(shè)定的參數(shù)與實際機(jī)器人大小存在誤差時,則可能造成畫圖偏離。
最后,由上位機(jī)來控制機(jī)器人繪畫的開始、暫停和結(jié)束??傮w系統(tǒng)功能框圖如圖1所示。
本系統(tǒng)的機(jī)器人實體結(jié)構(gòu)主要由四部分組成:畫板、卷簾機(jī)械結(jié)構(gòu)、貢多拉裝置和畫筆。下面分別介紹各部分的材料選取、結(jié)構(gòu)設(shè)計以及功能。
2.1 ?畫 ?板
本設(shè)計采用實木畫板,畫板材料的選定可為多樣性,可以是白板、磁板甚至墻壁。畫板的每邊應(yīng)比畫紙多出90 mm的長度,為此,對于畫板需要做兩點:測量尺寸、找到零點。畫板示意圖如圖2所示。
根據(jù)畫板示意圖,在畫板上標(biāo)記相應(yīng)的線。為了測量精確,在測量時讓水平線盡可能水平,垂直線盡可能垂直。若標(biāo)記不準(zhǔn)確,畫圖時將會出現(xiàn)筆畫偏移、線條扭曲或圖片拉伸等情況。
畫板的寬度是畫紙理想中的最大寬度,繪畫的大小取決于畫板的寬度,同時也取決于在軟件中設(shè)置的畫紙的大小。
2.2 ?卷簾機(jī)械結(jié)構(gòu)
卷簾機(jī)械結(jié)構(gòu)相當(dāng)于機(jī)器人的手臂,是整個系統(tǒng)結(jié)構(gòu)的關(guān)鍵所在。
首先,將步進(jìn)電機(jī)用電機(jī)支架固定在畫板上,使其中心軸盡可能靠近畫板表面,并且保證在同一水平線上。其次,將適配卷珠簾拉繩的鏈輪齒推入步進(jìn)電機(jī)的5 mm直徑軸上。
卷珠簾拉繩的長度選取決定了畫圖的范圍,拉繩兩頭分別綁定貢多拉裝置和平衡重物。使用砝碼作為平衡重物,每邊砝碼150 g。實際上重物的重量并無嚴(yán)格限制,該機(jī)器不需要絕對的平衡,只要能拉穩(wěn)貢多拉裝置即可,重物的作用只是讓貢多拉在機(jī)器畫圖區(qū)域的頂上方中間自然懸掛。
2.3 ?貢多拉裝置
貢多拉裝置相當(dāng)于機(jī)器人的手掌,是一種用來固定筆的裝置。該裝置使用3個6003Z的軸承堆疊在一起,通過圓筒連接,使畫筆可準(zhǔn)確地保持在兩根卷珠簾拉繩聚合處,并且保證開合角可隨位置的改變而變化。貢多拉的圓筒握筆一定要穩(wěn),且在繪畫時只露出一點筆徑,保證貢多拉裝置平衡,避免抖動。
2.4 ?畫 ?筆
本設(shè)計對畫筆的選擇無硬性要求,但需要注意的是,筆徑的大小決定了一個像素由多少波形組成。如果像素是20 mm2,而筆徑是1 mm,那么該像素內(nèi)最大只能容納20條線。筆徑設(shè)置的越細(xì),一個像素填充的線條越多。如果開始部分筆徑大小被設(shè)置成0.6 mm,結(jié)尾部分是2.0 mm,增量是0.1 mm,那么機(jī)器以0.6 mm寬度畫出第一個像素,每次增長0.1 mm,一直增加到2 mm。機(jī)器會基于設(shè)定的筆徑大小,盡可能地以最大密度去作畫。
3.1 ?Arduino程序設(shè)計
3.1.1 ?主程序Polargraph_Server_a1
主程序主要進(jìn)行全局變量的定義以及變量初始化。包含步進(jìn)電機(jī)對象、E2PORM地址、畫板大小、提筆隨動系統(tǒng)、繪圖方向、像素大小、電機(jī)轉(zhuǎn)速以及定義串口的波特率為57 600 bit/s。
3.1.2 ?控制筆移動PenLift
機(jī)器人會核對全局布爾變量“IsPenUp”的值(“true”或“fault”)來決定筆的移動方向,如果為“true”,那么機(jī)器認(rèn)為筆已經(jīng)向上移動,再向機(jī)器發(fā)送“Pen Up”或“Pen Lift”的筆移動命令 (“C14,END”)也將無效。如果正確的“PenUp”命令被接收,在這條命令中包含筆的位置信息,如(“C14,150,END”),然后全局“Up”位置的變量被更新,并且貢多拉運動到該位置,即使它已經(jīng)是“Up”狀態(tài)。自然而然的,如果向上的位置發(fā)生變化,即使它之前已經(jīng)產(chǎn)生了向上的動作,也會繼續(xù)向上??刂飘嫻P移動流程圖如圖3所示。
3.1.3 ?畫圖像素設(shè)定Pixel
這是polargraph服務(wù)器程序的核心文件之一,包含生成和繪制方波,以及涂鴉像素風(fēng)格的重要例程。像素用密度來表示,定義為“BRIGHTNESS”,其中0為黑色,255是白色,密度可在0~255范圍內(nèi)調(diào)整。如將密度設(shè)置為“DARKNESS”,則此時的0表示白色,而隨著數(shù)值增大則變暗。
由于紙是白色的,而且油墨是深色的,該密度值被用于控制一個像素內(nèi)能繪制多少波形。因此,0表示無油墨,用直線代替該處的像素,灰度值低;100意味著像素不為零,所以用一定頻率的方波表示該點的像素,顏色較深,灰度值高。編程時還必須定義繪制波形的方式。繪制方波設(shè)定了4個筆移動方向:東南方向、西北方向、西南方向、東北方向;涂鴉像素風(fēng)格設(shè)定為在一定范圍內(nèi)隨機(jī)繪制線條。畫圖像素設(shè)定流程圖如圖4所示。
3.1.4 ?執(zhí)行文件Exec
在該文件中包含一些最通用的畫圖命令,但只有直接調(diào)用的方法,復(fù)雜結(jié)構(gòu)或轉(zhuǎn)換的例程不包括在內(nèi)。如直接調(diào)用控制筆移動的方法、像素描述的方法、電機(jī)轉(zhuǎn)速以及筆位置判斷的方法。同時,讀取E2PORM中畫板的規(guī)格,若當(dāng)前值與存儲器中的值不一致,則將值重新寫入E2PORM中。
3.2 ?Processing程序設(shè)計
上位機(jī)的設(shè)計是為了實現(xiàn)對畫圖機(jī)器人的實時控制,控制鍵是參數(shù)化、可調(diào)的,分為兩類:一類是只與控制軟件相關(guān),比如圖片加載;另一類會發(fā)送命令到機(jī)器上。
Processing流程圖如圖5所示。
Uno板與上位機(jī)正常通信后,在上位機(jī)中根據(jù)實際畫板大小設(shè)定相應(yīng)參數(shù)并保存,然后加載圖片,選定畫圖區(qū)域,調(diào)整像素亮度和比例,設(shè)置變頻等幅值方波的畫圖波形以及從右上角開始作畫的方式,傳送命令。對于機(jī)器人本體采用A3紙張,0.8 mm的馬克筆。機(jī)器畫圖過程中工作正常,運行穩(wěn)定,圖6為機(jī)器人畫圖與原圖的對比,兩者比例一致,圖像輪廓清晰,內(nèi)容還原度高。
懸掛畫圖機(jī)器人是一個結(jié)構(gòu)相對簡單的系統(tǒng),主要涉及硬件設(shè)計、跨界軟件編程、機(jī)械結(jié)構(gòu)設(shè)計三個方面。該設(shè)計的意義在于將一門邊緣的藝術(shù)注入現(xiàn)代的科技元素,呈現(xiàn)出一幅具有工業(yè)4.0氣息的美術(shù)作品,并且該機(jī)器人的出現(xiàn)也為市場帶來新的機(jī)遇和挑戰(zhàn),具有較大的應(yīng)用價值。
參考文獻(xiàn)
[1] 蔡睿妍.Arduino的原理及應(yīng)用[J].電子設(shè)計工程,2012,20(16):155?157.
CAI Ruiyan. Principle and application of Arduino [J]. Electronic design engineering, 2012, 20(16): 155?157.
[2] 楊繼志,楊宇環(huán).基于Arduino的網(wǎng)絡(luò)互動產(chǎn)品創(chuàng)新設(shè)計[J].機(jī)電產(chǎn)品開發(fā)與創(chuàng)新,2012,25(1):99?100.
YANG Jizhi, YANG Yuhuan. Arduino?based interactive product innovation [J]. Development & innovation of machinery & electrical products, 2012, 25(1): 99?100.
[3] BENDER P, KUSSMANN K. Arduino based projects in the computer science capstone course [J]. Journal of computing sciences in colleges, 2012, 27(5): 152?157.
[4] 李茂寧.數(shù)字繪畫與傳統(tǒng)繪畫比較研究[J].藝術(shù)教育,2012(11):119?120.
LI Maoning. Comparative study of digital painting and traditional painting [J]. Art education, 2012(11): 119?120.
[5] 李路希.電子時代下的繪畫藝術(shù)發(fā)展[J].大眾文藝,2014(3):53.
LI Luxi. The development of painting art in the electronic age [J]. Art and design, 2014(3): 53.
[6] 鄧知輝.基于Arduino控制平臺的家居機(jī)器人設(shè)計與實現(xiàn)[J].信息通信,2015(10):64?66.
DENG Zhihui. Design and implementation of furniture robot based on Arduino control platform [J]. Information & communications, 2015(10): 64?66.
[7] 劉南君,毛培宏.基于Arduino Mega2560單片機(jī)的簡易智能割草機(jī)器人的設(shè)計與實現(xiàn)[J].安徽農(nóng)業(yè)科學(xué),2012,40(36):17899?17901.
LIU Nanjun, MAO Peihong. Design of simple intelligent grass?cutting robot based on Arduino Mega2560 [J]. Journal of Anhui agricultural sciences, 2012,40(36): 17899?17901.
[8] 于強(qiáng),許強(qiáng),楊為民,等.基于Arduino的兩輪自平衡機(jī)器人設(shè)計與實現(xiàn)[J].電腦知識與技術(shù),2014,10(34):8332?8334.
YU Qiang, XU Qiang, YANG Weimin, et al. Design and implementation of self?balancing two?wheeled robot based on Arduino [J]. Computer knowledge and technology, 2014, 10(34): 8332?8334.
[9] OXER J, BLEMINGS H. Practical Arduino: cool projects for open source hardware [M]. New York: Apress, 2009.
[10] 孔晶晶.基于Processing的互動媒體設(shè)計研究[D].無錫:江南大學(xué),2009.
KONG Jingjing. Research on interactive media design based on Processing [D]. Wuxi: Jiangnan University, 2009.