• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于Arduino單片機的解魔方機器人

      2016-05-19 13:39劉遠法周屹
      電腦知識與技術 2016年7期
      關鍵詞:步進電機

      劉遠法++周屹

      摘要:解魔方機器人課題為了適應對機器人智能化的要求,選擇競技類機器人作為研究對象,研究設計了解三階魔方機器人,能夠為提高競技類機器人的智能化水平做出貢獻。本設計基于Android 平臺,顏色傳感器作為顏色識別系統(tǒng),機械手臂作為操縱設備,完成對任意魔方狀態(tài)的初始還原。機械控制作為解魔方機器人的神經中樞,是機械結構執(zhí)行算法的紐帶。

      關鍵詞:Arduino單片機;電機驅動;電機控制;步進電機

      中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2016)07-0171-03

      The Robot Can Restore A Rubik's Cube Based on Arduino Microcontroller — The Control Module

      LIU Yuan-fa, ZHOU Yi

      (Yunnan Normal University, Kunming 650092, China)

      Abstract: The robot can restore a rubik's cube in order to adapt to the requirements of intelligent robot, athletic robot as the research object, research and design about third-order Rubik's cube robot can contribute to improve the intelligent level of athletic robot. The design based on the Android platform, the color sensor as the color recognition system, the mechanical arm as control equipment, the reduction is done for any state of Rubik 's cube initial. If the algorithm is the brain of the Rubik's cube robot, then mechanical control is the central nervous system (CNS) is link mechanical structure of the implementation of the algorithm. This paper will discuss from the mechanical control part.

      Key words: Arduino microcontroller; motor drive; motor control; step motor

      進人21世紀以來,人類科學技術取得突飛猛進的發(fā)展,在發(fā)展了半個世紀的現(xiàn)代機器人中,仿生機器人作為熱門研究課題,是機器人學研究的一個重點。通過模仿動物的各種生物功能及人類大腦思維功能從而全面提升機器人的自主能力及智能水平是仿生機器人學研究的一個重要內容[1]。解魔方機器人課題為了適應對機器人智能化的要求,選擇競技類機器人作為研究對象,研究設計了解三階魔方機器人,能夠為提高競技類機器人的智能化水平做出貢獻,具有科學性強、創(chuàng)意豐富、創(chuàng)新點鮮明的特點,并有良好的經濟及社會應用價值[2]。

      本設計將完成既可以用于教育行業(yè)作為典型的機器人教學教具,也可用于娛樂業(yè)作為展示用和表演用機器人,還能產生一定經濟效益。該解魔方機器人運用顏色識別、步進電機精確控制等科學技術。對于解魔方機器人,控制系統(tǒng)就如同人的神經中樞,它起著承接算法與機械結構的作用。本文將從機械控制部分進行論述。

      1 解魔方機器人控制系統(tǒng)研究現(xiàn)狀

      世界各國的很多公司及魔方愛好者已經設計出了解魔方機器人,目前還原魔方最快的機器人CubeStormer 3由ARM的兩位工程師完成,以驚人的3.253s還原了一個三階魔方,打破了機器人還原魔方的世界紀錄。它的機械控制采用的是4個LEGO的Mindstorms NXT藍牙機器人配套的伺服電機作為機械臂動力,用NXT主控器直接驅動。這款伺服電機轉速很快,定位精準,力矩也大,但是價格昂貴。

      也有部分國內外的魔方愛好者設計了基于PC上位機的解魔方機器人,運用電腦作為上位機,攝像頭作為顏色識別,用四個步進電機作為機械臂控制。此類解魔方機器人需用PC機進行還原計算,還原一個三階魔方需要1分鐘以上。對于機械控制部分,一共采用8個步進電機進行控制。每一只機械臂由1個電機控制機械臂前進與后退,另一個控制機械臂轉動。

      隨著以上這些及魔方機器人的出現(xiàn),各界人士研究解魔方機器人的也越來越多。由于它具有趣味性和可觀賞性,出于對解魔方機器人工作原理的好奇,綜合應用所學知識自己制作解魔方機器人。

      2 前期設計分析

      從各類解魔方機器人來看,大部分的解魔方機器人都需要較高的成本費用,或過于笨重,制作困難等。本設計是一款小型、簡單、成本低的解魔方機器人。以Android作為主控平臺,顏色傳感器作為顏色識別裝置,用一只機械臂和一個可旋轉的底座實現(xiàn)魔方的翻轉與旋轉各面或整體旋轉(圖1)??刂撇糠钟脙蓚€電機分別控制底座和機械臂,Arduino通過控制電機驅動間接控制電機,實現(xiàn)算法動作與機械動作的結合。

      對于解魔方機器人而言,控制是一個很重要的部分,如果機械控制不精確,那么算法再優(yōu)秀也無法實現(xiàn),所以精確控制機械結構精準定位是實現(xiàn)魔方還原的關鍵。而控制的速度則是還原效率的一個重要的考察點。

      3 Arduino單片機

      Arduino是一個基于開放原始碼的軟硬件平臺,具有使用類似Java、C語言的Processing/Wiring開發(fā)環(huán)境。并且Arduino自帶很多庫函數,程序編寫簡單方便。

      3.1 Arduino UNO

      Arduino UNO是Arduino USB接口系列的最新版本,作為Arduino平臺的參考標準模板[3]。UNO具有14路數字輸入/輸出口(其中6路可作為PWM輸出),6路模擬輸入,一個16MHz晶體振蕩器,一個USB口,一個電源插座,一個ICSP header和一個復位按鈕。

      3.2 Arduino Mega2560

      Arduino Mega2560也是采用USB接口的核心電路板,它最大的特點就是具有多達54路數字輸入輸出,特別適合需要大量IO接口的設計。Arduino Mega2560也能兼容為Arduino UNO設計的擴展板。

      根據Arduino UNO和Arduino Mega2560特點,由于Arduino UNO數字接口較少,最終選用Arduino Mega2560作為主控板。

      3.3 Arduino IDE

      Arduino IDE是Arduino的開放源代碼的集成開發(fā)環(huán)境,語法簡單以及能方便地下載程序,使得Arduino的程序開發(fā)變得非常便捷 [4]。

      Arduino編程由setup和loop兩個函數組成,setup在程序流程中只會執(zhí)行一次,用于定義所需要設定、初始化的參數和函數或是引腳功能指定等。Loop是主程序的執(zhí)行內容。

      4 電機選型

      電機是解魔方機器人最主要的驅動設備,是否合理地選擇電機將嚴重影響本設計項目的效果。本設計電機應結合轉速,扭矩,精確度等參數進行選擇。

      4.1 直流電機

      直流電機(direct current machine)能將直流電能轉換成機械能[5]。直流電機的轉動直接驅動于電流的輸入,一般使用在持續(xù)運轉的情況下,只依靠PWM信號來改變轉速的快慢。不適合應用在比較精密的角度轉動。

      4.2 步進電機

      步進電機是將電脈沖信號轉變?yōu)榻俏灰苹蚓€位移的開環(huán)控制元件[6]。步進電機具有較好的起停和反轉響應,不會積累誤差,以實現(xiàn)轉動位置的精準。但難以運轉到較高的轉速,難以獲得較大的轉矩[7]。

      4.3 舵機

      舵機(英文叫Servo):它由直流電機、減速齒輪組、傳感器和控制電路組成的一套自動控制系統(tǒng)[8]。通過發(fā)送信號,指定輸出軸旋轉角度。普通直流電機無法反饋轉動的角度信息,而舵機可以。但舵機的旋轉角度只在一定角度之間。

      結合項目特點要求電機可以精確控制魔方旋轉90度、180度,由于直流電機控制精確度不高,而舵機只可在一定角度內旋轉,故本設計驅動電機選擇步進電機。

      步進電機有步距角(涉及相數)、靜轉矩、及電流等要素,本設計主要考慮,轉速、轉矩、精確度及市場銷售四個要素,最終選用的步進電機為“寶雞航天華科出品的42步進電機帶伺服反饋”,步進電機規(guī)格:42*42*37.8MM、步進角:1.8度、引線:兩項四線、驅動電壓12V、驅動電流0.8A、扭矩2.5Kg/cm左右,價格:12.8元/個。

      5 電機驅動設計

      5.1 L298N

      L298N是ST公司生產的一種高電壓、大電流電機驅動芯片[9]。它具有耐壓值高,工作電流大的特點,最大可承受46V的電壓;電流最大可達3A,持續(xù)工作電流可達2A,可以用來驅動兩臺直流電機或一臺步進電動機;L298N有兩個使能端,采用標準邏輯電平信號控制,可以采用這兩個使能端對直流電機進行PWM控制。

      5.2 ULN2003

      ULN2003由七個硅NPN 復合晶體管組成,耐高壓、大電流;最大電流可達50V,最大電流可達500mA。

      結合兩個電機驅動參數及所選步進電機參數決定選用L298N作為本設計步進電機驅動,驅動模塊設計與制作原理圖,采用eagle軟件進行PCB設計,經過裁板、熱轉印、腐蝕、打孔、元器件焊接等步驟制作出實物(如圖2)。

      6 電機驅動程序設計

      6.1 步進電機工作原理

      步進電機是通過時序來控制的,當按照一定順序給步進電機線圈通電時,步進電機就可按照時序轉動。以兩相步進電機為例。

      按照一定的順序,依次給每一相進行供電,可實現(xiàn)步進電機的轉動。兩相步進電機的工作方式有單四拍,雙四拍、八拍三種工作方式。其中以單雙八拍方式控制精度最高,是單四拍和雙四拍的一倍[10]。

      6.2 電機程序設計

      經過測試電機采用簡單的雙四拍工作方式已有足夠的力矩驅動機械臂和底座,故采用雙四拍工作方式進行程序編寫。本次選用的步進電機旋轉一周需要200步,控制底座電機運行50步為順時針旋轉90度,機械臂電機初始位置為機械臂固定魔方位置,順時針旋轉80步后恢復可拉動魔方翻轉,逆時針旋轉36步可移開機械臂。

      6.3 算法動作到機械動作的轉換

      算法計算完魔方的還原動作為固定魔方的中心塊位置,每一面順時針旋轉90度,逆時針旋轉90度或旋轉180度,轉換為機械步驟時可將要旋轉的面先通過機械臂拉動翻轉到底面,再進行旋轉,完成后再講魔方還原原來狀態(tài)。各個面轉換流程如圖3。

      7 總結

      本文闡述述了解魔方機器人的控制部分,從Arduino單片機選型,電機型號選擇,電機驅動設計,算法到機械控制的轉換方面進行了分析設計和總結,希望可以為廣大智能機器人設計愛好者提供研究支持和參考。

      參考文獻:

      [1] 蔡睿妍.Arduino的原理及應用[C].北京: 科學出版社,2012: 23-27.

      [2] 鄭振杰,江衍煊,游德智.單片機結合ULN2003驅動步進電機[J].電機技術,2010,2(6):18-19.

      [3] 安靜宇,王黨樹,鄭琪.研究和探討數控直流電源[J].硅谷,2008,32(3):65-67.

      [4] 鄭振杰,江衍煊,游德智.單片機結合ULN2003驅動步進電機的應用[J].電機技術,2010,54(9):77-78.

      [5] 賴若麒,劉竹林.基于步進電機的位置隨動系統(tǒng)的設計[J].信息技術,2012,34(2):78-80.

      [6] 惠特.Arduino技術內幕 (2013年版) [M].北京:人民郵電出版社,2013: 10-16.

      [7] 孫駿榮,吳明展.Arduino一試就上手[M].2版.北京:科學出版社,2012: 56-58.

      [8] 趙津,朱三超.基于Arduino 單片機的智能避障小車設計[C].北京:科學出版社,2013: 65-69.

      [9] 郭力峰,揭宗昌,蔡澤輝.基于XC886 單片機的魔方機器人設計[J].電腦知識與技術,2011,24(8):25-28.

      [10] 董海陽,魏巍.類人四軸解魔方機器人的設計[D].北京:北京國家圖書館,2013.

      猜你喜歡
      步進電機
      五自由度機械手的PLC控制
      基于FPGA的噴墨打印機控制系統(tǒng)
      步進電機模糊PID閉環(huán)控制系統(tǒng)仿真研究
      本溪市| 朝阳市| 河南省| 巴楚县| 偏关县| 麦盖提县| 桐乡市| 荆州市| 修文县| 安庆市| 桂东县| 阿拉善右旗| 岳池县| 察哈| 随州市| 东台市| 陇南市| 西平县| 宣武区| 晋宁县| 齐齐哈尔市| 金平| 阿瓦提县| 南京市| 乐山市| 东阿县| 郎溪县| 阿瓦提县| 休宁县| 遵义县| 文安县| 曲松县| 广州市| 张家口市| 高雄县| 莱西市| 阳东县| 哈密市| 漠河县| 通江县| 张家界市|