優(yōu)勝從選擇開始,我們是您最好的選擇!—— 中州期刊聯盟(新鄉(xiāng)市博翰文化傳媒有限公司)
0373-5939925
2851259250@qq.com
我要檢測 我要投稿 合法期刊查詢
您的位置:網站首頁 > 優(yōu)秀論文 > 正文

基于51單片機的六足機器人控制系統(tǒng)設計與制作

作者:莊嚴、宋鳴、張劭鳳、李超來源:原創(chuàng)日期:2013-11-15人氣:2279
 引言
在自然界和人類社會中存在一些可能危及人類生命的特殊場合,在一些地形不規(guī)則和崎嶇不平的環(huán)境下,六足機器人具有比輪式機器人和履帶式機器人更好的運動穩(wěn)定性和更強的環(huán)境適應性,可應用于搶險、勘察、探測等領域。當前對于六足機器人多路舵機控制一般采用排序算法或分時控制算法,存在精度不足或數量有限的問題。本研究基于51單片機采用新型算法產生18路PWM信號控制舵機,結合避障傳感器、無線通信模塊和上位機模塊控制機器人的六足運動[1][2]。
1 控制方案制定
采用圖1所示的六足結構,對六足機器人運動機理、步態(tài)設計進行研究,選擇合適的驅動系統(tǒng)。
1.1 運動機理 機器人有六個足,每個足有三個關節(jié),每個關節(jié)處安裝一個舵機,舵機驅動關節(jié)做旋轉運動。因此可通過對每個足上三個舵機的旋轉控制實現足端部到達地面上可達范圍內的任意一點。
1.2 步態(tài)設計 六足機器人采用三角步態(tài)方式行走,如圖2所示。向前運動時,左中足、右前足、右后足為一組(a圖黑點)保持支撐地面,左前足、左后足、右中足為二組(a圖白點)抬起向前邁步變?yōu)閎圖;二組支撐地面(c圖黑點),一組足做邁步動作(d圖白點)。如此循環(huán)交替實現向前運動。轉彎運動有兩種方式,一種為自轉,一種為公轉。自轉為一組足保持支撐地面,二組足抬起向一個方向旋轉一定角度后落下支撐地面,然后抬起一組足同方向旋轉,如此交替實現自轉。公轉方式與前進方式大體相同,只是左右兩側足邁步的距離不同。
1.3 驅動系統(tǒng) 關節(jié)處為舵機驅動,舵機轉角為180°,工作電壓3.5V-6V,可提供力矩為1.6kg·cm(4.8V)。使用PWM信號控制舵機的角度。PWM信號周期為20ms,產生高電平范圍為0.5ms-2.5ms,高電平的時間線性的對應舵機-90°到+90°角度。通過控制各個I/O的PWM占空比來控制每個舵機的角度,從而實現六足機器人的行走動作。
2 電氣控制設計
為實現上述的控制方案,需要對電路、算法、程序等進行設計。
2.1 電路設計 六足機器人采用模塊化的設計,主控芯片采用STC12C5A60S2,使用51單片機的最小系統(tǒng)作為核心,舵機電源為兩節(jié)18650電池,可提供3.7V電壓,每節(jié)可給9路舵機供電,51單片機的18個I/O連接到舵機信號線上,4個I/O連接無線遙控模塊上,2個I/O口連接到紅外避障傳感器上,串口TXD/RXD連接到PL2303串口通信模塊上。
2.2 舵機的控制算法設計 舵機控制的原理是在信號線上給舵機20ms一個周期中0.5~2.5ms的5V高電平,其余時間為低電平的PWM信號,通過調節(jié)高電平的時間來控制舵機轉動的角度。
若取51單片機最小系統(tǒng)的外部晶振為11.0592M,機器周期為1.08507us,舵機轉動的精度可達0.1°。
使用一個定時器產生多路舵機信號的方法有主要有兩種。一種是將舵機高電平時間排序,在一個舵機周期開始時,拉高所有舵機信號的電平,然后給定時器賦值舵機最少高電平的時間。當單片機進入定時器中斷后,再將高電平時間第二長的與第一長的時間差賦值給定時器。這樣直到最后一組時間被賦值,最長電平時間的舵機信號被拉低,再給定時器賦值(20ms與最長時間差對應的值)[3]。另一種為將20ms分成8個2.5ms的時間段,舵機的高電平信號依次在這8個時間段內。定時器依次賦值高電平時間和2.5ms與高電平時間的差[4]。
方法一理論上可以控制任意多路,但實驗發(fā)現,當舵機數量增加,排序后相鄰舵機高電平時間差就會減少,而定時器中斷的值越小,定時的誤差就越大,所以這種方法在保證精度的情況下產生幾路PWM舵機信號。方法二:由于是20ms最多只能分成8個時間段,所以控制舵機的數量有限,但是每個的精度都較高。
所以要想在保證精度的情況下控制18路舵機,就可以采用以上兩種方法結合的方式,即3×6法。用方法二在6個2.5ms時間段中的每個時間段內產生3段高電平。這樣既能控制多路舵機又能保證PWM信號的精度。
2.3 Protues仿真舵機信號 開發(fā)過程中借助Protues軟件仿真舵機運行情況,仿真主要有51單片機最小系統(tǒng),18個舵機,示波器三個部分,可以觀察示波器的波形周期及占空比來調試程序,也可以同時觀察到舵機的角度變化,18路舵機Protues仿真如圖3所示。
2.4 避障模塊 六足機器人避障模塊采用2個E18- D50NK光電式傳感器,放置于六足機器人的左前和右前處。此傳感器共有三個引腳,分別為VCC、GND、OUT。其中VCC接4.5V-5V電壓,OUT為輸出信號,常態(tài)為+5V高電平,遇到障礙時會產生低電平。通過51單片機不斷的檢測IO口的狀態(tài)來判斷前方是否有障礙物,并選擇避開方式。
2.5 無線遙控模塊 六足機器人采用點動方式MX-J05V無線遙控的模塊,遙控器有4個按鍵,該模塊的D1D2D3D4為數據位,接到51單片機的IO口上,常態(tài)為低電平,按下按鍵,對應數據位變?yōu)楦唠娖健?
2.6 串口通信模塊 串口通信采用PL2303模塊,該模塊為一種高度集成的RS232-USB接口轉換器,可以將上位機發(fā)送給COM端口的信號轉換為TTL電平,使51單片機能夠接受PC機發(fā)送的數據。
2.7 下位機接收上位機數據模塊 上位機與51單片機的通訊,采用串口通訊方式,中斷流程如圖4所示。上位機發(fā)送5個字節(jié)的報文來傳遞給下位機數據,其中控制18個舵機5個字節(jié)報文包括起止符的“#”“控制位”“舵機號”“舵機角度”“$”。下位機將接受到的數據儲存在結構體中,當接收到“$”時,對儲存的結構體數據進行處理,并做出相應的響應[5]。
3 上位機設計
通過上位機設計可擴展六足機器人的運動形式。上位機采用C#編程語言,實現控制串口的打開和關閉、用serialport設置端口屬性、發(fā)送字符指令控制六足機器人的功能。
3.1 設置端口屬性
結合serialport屬性,編寫了串口通訊的代碼。
串口設置碼:
①打開串口
serialPort1.Open();
②設置串口號,波特率,校驗位,數據位,停止位
serialPort1.PortName="COM1";
serialPort1.BaudRate=9600;
serialPort1.DataBits=8;
serialPort1.Parity=System.IO.Ports.Parit.None;
serialPort1.StopBits=System.IO.Ports.StopBits.One;
③運用write函數發(fā)送數據
3.2 無線遙控、避障模式、行走模式的實現 此三類模塊的實現均為直接打開串口,向下位機發(fā)送相應指令,控制下位機發(fā)出相應動作指令。
3.3 舵機控制模塊的實現 采用滑塊控件,每個滑塊位置對應0~255個字符,每次鼠標對滑塊的滑動,上位機即通過串口發(fā)送相應報文信息。下方插入一個18列的表格,可將當前滑塊的位置添加到表格里,可以通過選中一行或者幾行,然后點擊發(fā)送鍵,將18個舵機位置一次發(fā)給下位機,來實現動作的編寫與控制[6]。
在此功能完成中,核心代碼主要為重新定義一類write函數,由新函數完成具體數據發(fā)送,示例:
將數據依次取出
serialPort1.Write(buffer,0,21);
發(fā)送
Write(Convert.ToChar(0×04),jiao);
4 結論
本文設計了一種基于51單片機的六足機器人控制系統(tǒng),研究結果表明:①采用3×6法控制舵機既能實現對多路舵機的控制又能保證PWM信號的精度;②六足機器人由于自由度多,結合上位機對舵機的控制,可以完成除了行走外很多復雜的動作,比如可以在鍵盤上打字,可以越過一定高度的障礙物;③六足機器人運用了51單片機的I/O口控制、定時器中斷、串口中斷等功能,所以也可以作為單片機教學的一個實踐。

網絡客服QQ: 沈編輯

投訴建議:0373-5939925????投訴建議QQ:

招聘合作:2851259250@qq.com (如您是期刊主編、文章高手,可通過郵件合作)

地址:河南省新鄉(xiāng)市金穗大道東段266號中州期刊聯盟 ICP備案號:豫ICP備2020036848

【免責聲明】:中州期刊聯盟所提供的信息資源如有侵權、違規(guī),請及時告知。

版權所有:中州期刊聯盟(新鄉(xiāng)市博翰文化傳媒有限公司)

關注”中州期刊聯盟”公眾號
了解論文寫作全系列課程

核心期刊為何難發(fā)?

論文發(fā)表總嫌貴?

職院單位發(fā)核心?

掃描關注公眾號

論文發(fā)表不再有疑惑

論文寫作全系列課程

掃碼了解更多

輕松寫核心期刊論文

在線留言