唐日成 宋偉 李澤萱 滕旭陽 鄭藝彬
摘要:本設(shè)計(jì)由特定攝像頭作為顏色識(shí)別系統(tǒng),采用兩機(jī)械臂的操作方式,以機(jī)械爪作為操作設(shè)備,對(duì)魔方進(jìn)行還原的操作。機(jī)械控制作為解魔方機(jī)器人的核心模塊之一,是機(jī)械結(jié)構(gòu)與算法的橋梁。
關(guān)鍵詞:Arduino單片機(jī);魔方算法;機(jī)器人
中圖分類號(hào):TP302 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2018)17-0267-02
機(jī)器人技術(shù)的不斷發(fā)展與進(jìn)步,可以說是各項(xiàng)科學(xué)技術(shù)共同發(fā)展所得到的一個(gè)綜合性的結(jié)果,同時(shí),機(jī)器人這門科學(xué)技術(shù)對(duì)社會(huì)經(jīng)濟(jì)的發(fā)展產(chǎn)生了一個(gè)巨大的推進(jìn)作用。它的發(fā)展主要?dú)w功于在第二次世界大戰(zhàn)中,各國加強(qiáng)了經(jīng)濟(jì)的投入,同時(shí)也就就推進(jìn)了本國的經(jīng)濟(jì)的發(fā)展。同時(shí),科技的發(fā)展也是人類發(fā)展的一個(gè)必然結(jié)果,機(jī)器人技術(shù)當(dāng)然也就是科技發(fā)展的一項(xiàng)產(chǎn)物。另一方面,這也是人類生產(chǎn)力需求的必然結(jié)果。隨著社會(huì)的發(fā)展,對(duì)這個(gè)世界,對(duì)自然的更多的認(rèn)識(shí),在人力不可達(dá)到不可完成的對(duì)自然改造的情況下,科技發(fā)展,機(jī)器人技術(shù)的發(fā)展就成為人類的一個(gè)客觀需要。本設(shè)計(jì)將完成既可以用于教育行業(yè)作為典型的機(jī)器人教學(xué)教具,它還可以用于娛樂業(yè)作為顯示和性能的機(jī)器人,并且還可以產(chǎn)生一些經(jīng)濟(jì)效益。魔方機(jī)器人的解決方案是利用數(shù)字舵機(jī)的顏色識(shí)別和精確控制。對(duì)于解魔方機(jī)器人,控制系統(tǒng)就如同人的神經(jīng)中樞,它起著承接算法與機(jī)械結(jié)構(gòu)的作用。本文將從機(jī)械控制部分進(jìn)行論述。
1 初步設(shè)計(jì)分析
世界各地的公司和魔方愛好者都生產(chǎn)了各種魔方機(jī)器人,最快的解決魔方機(jī)器人"SUB1重裝"0.637秒恢復(fù)三階魔方,并創(chuàng)造吉尼斯世界紀(jì)錄的魔方。機(jī)器人由麻省理工學(xué)院(麻省理工學(xué)院)研究由Ben Katz和Jared Di Carlo創(chuàng)建,他們采用了摩根交叉直線電機(jī)。這種電機(jī)具有高速、高精度、和高扭矩的特點(diǎn),但價(jià)格比較昂貴。此次我們打算設(shè)計(jì)一款低成本,簡單并且體積較小的解魔方機(jī)器人。我們以圖像傳感器作為識(shí)別工具,使用兩個(gè)機(jī)械臂作為魔方的反轉(zhuǎn)和旋轉(zhuǎn)的操作工具??刂撇糠植捎盟膫€(gè)轉(zhuǎn)向機(jī)構(gòu)來控制機(jī)械手的轉(zhuǎn)動(dòng)和機(jī)械爪的抓取。阿杜諾控制舵,實(shí)現(xiàn)算法與機(jī)械動(dòng)作的結(jié)合。由于體積較小所以需要對(duì)于抓取的精度和舵機(jī)轉(zhuǎn)動(dòng)的速度要有比較精確的操控。圖1是控制流程圖。
2 硬件軟件基礎(chǔ)分析
2.1 Arduino單片機(jī)
它是建立在開源simple I/O接口和具有處理/路由類似于java和c語言開發(fā)環(huán)境。主要有兩部分:硬件部分是ARDUNO電路板,可以用于電路連接;軟件的另一部分是ARDUNO IDE,這是計(jì)算機(jī)中的程序開發(fā)環(huán)境。單片機(jī)上的單片機(jī)可以通過ARDUINO編程語言編程,編譯成二進(jìn)制文件并燒成單片機(jī)。它沒有復(fù)雜的單片機(jī)底層代碼,沒有難懂的匯編程序,而是一個(gè)簡單實(shí)用的函數(shù)。此外,它具有很大的自由度。它可以很好地?cái)U(kuò)展性能。因此我們決定用Arduino作為我們魔方機(jī)器人的開源硬件基礎(chǔ)。
2.2 ARDUION-MEGA2560
ARDUIO MEGA2560是采用USB接口的核心電路板,可以簡單地使用USB連接計(jì)算機(jī)或使用AC和DC變壓器。操作簡單,人性化。開源方便,比較適用于控制本設(shè)計(jì)的四路舵機(jī),因?yàn)锳rduino Mega 2560具有Aduino UNO的所有功能并且由于UNO的IO接口較少,于是最終選用Arduino Mega2560作為本設(shè)計(jì)的主控板。
2.3 Arduino IDE
ARDUINO IDE是ARDUNO開源代碼的集成開發(fā)環(huán)境,具有簡單的語法和易于下載的程序,使得ARDUNO程序開發(fā)非常方便。
2.4 模擬舵機(jī)
主要由馬達(dá),減速齒輪以及控制電路組成,當(dāng)舵機(jī)接受50Hz的PWM脈沖時(shí),相當(dāng)于馬達(dá)接收每秒產(chǎn)生50次的驅(qū)動(dòng)力,當(dāng)改變PWM的脈沖寬度時(shí),使得馬達(dá)接收到的驅(qū)動(dòng)力變化,從而實(shí)現(xiàn)舵機(jī)的角度變化。模擬舵機(jī)對(duì)于較"細(xì)小"的動(dòng)作的處理不夠靈敏,甚至有時(shí)候根本就沒有處理。
2.5 數(shù)字舵機(jī)LD-1501MG
它是由直流電機(jī)、減速齒輪組、傳感器和控制電路組成的一套自動(dòng)控制系統(tǒng)。通過發(fā)送PWM信號(hào),指定輸出軸的旋轉(zhuǎn)角度。普通直流電機(jī)不能反饋旋轉(zhuǎn)角度信息,數(shù)字舵機(jī)可以。仿真舵機(jī)的精度不高。需要持續(xù)發(fā)射PWM脈沖,而數(shù)字舵機(jī)的旋轉(zhuǎn)角度只在一定角度之間,結(jié)合項(xiàng)目特點(diǎn)要求電機(jī)可以精確控制魔方旋轉(zhuǎn)90度、180度,故本設(shè)計(jì)驅(qū)動(dòng)電機(jī)選擇步進(jìn)電機(jī),這是一種專門為機(jī)器人設(shè)計(jì)的數(shù)字式操舵裝置。它只需要發(fā)送一個(gè)信號(hào)來鎖定角度。控制精度高,線性度好且系供應(yīng)速度快。(配合機(jī)械爪實(shí)現(xiàn)對(duì)魔方的操作)
3 由算法到機(jī)械動(dòng)作的轉(zhuǎn)換
算法計(jì)算完魔方的還原動(dòng)作為固定魔方的中心塊位置,每一面順時(shí)針旋轉(zhuǎn)90度,180度或者270度。由于只有兩個(gè)面可以被操作,便需要在有效旋轉(zhuǎn)動(dòng)作之間加上翻轉(zhuǎn)至操作面的動(dòng)作,轉(zhuǎn)換為機(jī)械步驟時(shí)可將要旋轉(zhuǎn)的面先通過機(jī)械臂拉動(dòng)翻轉(zhuǎn)到操作面,再進(jìn)行旋轉(zhuǎn),我們對(duì)于算法進(jìn)一步改良后,不需要完成步驟操作后再將魔方返回到front初始位置,每次操作后都會(huì)有新的front面,逐步完成操作直至將魔方恢復(fù)還原。
4 總結(jié)
本文主要闡述了對(duì)于此次設(shè)計(jì)的解魔方機(jī)器人從總體設(shè)計(jì)到單片機(jī)型號(hào)選取、舵機(jī)選取、取像設(shè)備選取,再到解魔方算法于舵機(jī)實(shí)際控制操作的實(shí)現(xiàn)。下面附上一張作品圖片以供參考:
參考文獻(xiàn):
[1] 李永華,王思野,喬媛媛.Arduino案例實(shí)戰(zhàn)(卷Ⅰ)/清華開發(fā)者書庫[M].北京:清華大學(xué)出版社,2017:42
[2] 嚴(yán)蔚敏,吳偉民.數(shù)據(jù)結(jié)構(gòu)(C語言版)[M].北京:清華大學(xué)出版社,2011.
[3] 劉遠(yuǎn)法,周屹.基于Arduino單片機(jī)的解魔方機(jī)器人-控制部分[J].電腦知識(shí)與技術(shù),2016,12(7):1-3.