您的位置:網(wǎng)站首頁(yè) > 優(yōu)秀論文 > 正文
基于51單片機(jī)的六足機(jī)器人控制系統(tǒng)設(shè)計(jì)與制作
作者:莊嚴(yán)、宋鳴、張劭鳳、李超來(lái)源:原創(chuàng)日期:2013-11-15人氣:2334
引言
在自然界和人類社會(huì)中存在一些可能危及人類生命的特殊場(chǎng)合,在一些地形不規(guī)則和崎嶇不平的環(huán)境下,六足機(jī)器人具有比輪式機(jī)器人和履帶式機(jī)器人更好的運(yùn)動(dòng)穩(wěn)定性和更強(qiáng)的環(huán)境適應(yīng)性,可應(yīng)用于搶險(xiǎn)、勘察、探測(cè)等領(lǐng)域。當(dāng)前對(duì)于六足機(jī)器人多路舵機(jī)控制一般采用排序算法或分時(shí)控制算法,存在精度不足或數(shù)量有限的問(wèn)題。本研究基于51單片機(jī)采用新型算法產(chǎn)生18路PWM信號(hào)控制舵機(jī),結(jié)合避障傳感器、無(wú)線通信模塊和上位機(jī)模塊控制機(jī)器人的六足運(yùn)動(dòng)[1][2]。
1 控制方案制定
采用圖1所示的六足結(jié)構(gòu),對(duì)六足機(jī)器人運(yùn)動(dòng)機(jī)理、步態(tài)設(shè)計(jì)進(jìn)行研究,選擇合適的驅(qū)動(dòng)系統(tǒng)。
1.1 運(yùn)動(dòng)機(jī)理 機(jī)器人有六個(gè)足,每個(gè)足有三個(gè)關(guān)節(jié),每個(gè)關(guān)節(jié)處安裝一個(gè)舵機(jī),舵機(jī)驅(qū)動(dòng)關(guān)節(jié)做旋轉(zhuǎn)運(yùn)動(dòng)。因此可通過(guò)對(duì)每個(gè)足上三個(gè)舵機(jī)的旋轉(zhuǎn)控制實(shí)現(xiàn)足端部到達(dá)地面上可達(dá)范圍內(nèi)的任意一點(diǎn)。
1.2 步態(tài)設(shè)計(jì) 六足機(jī)器人采用三角步態(tài)方式行走,如圖2所示。向前運(yùn)動(dòng)時(shí),左中足、右前足、右后足為一組(a圖黑點(diǎn))保持支撐地面,左前足、左后足、右中足為二組(a圖白點(diǎn))抬起向前邁步變?yōu)閎圖;二組支撐地面(c圖黑點(diǎn)),一組足做邁步動(dòng)作(d圖白點(diǎn))。如此循環(huán)交替實(shí)現(xiàn)向前運(yùn)動(dòng)。轉(zhuǎn)彎運(yùn)動(dòng)有兩種方式,一種為自轉(zhuǎn),一種為公轉(zhuǎn)。自轉(zhuǎn)為一組足保持支撐地面,二組足抬起向一個(gè)方向旋轉(zhuǎn)一定角度后落下支撐地面,然后抬起一組足同方向旋轉(zhuǎn),如此交替實(shí)現(xiàn)自轉(zhuǎn)。公轉(zhuǎn)方式與前進(jìn)方式大體相同,只是左右兩側(cè)足邁步的距離不同。
1.3 驅(qū)動(dòng)系統(tǒng) 關(guān)節(jié)處為舵機(jī)驅(qū)動(dòng),舵機(jī)轉(zhuǎn)角為180°,工作電壓3.5V-6V,可提供力矩為1.6kg·cm(4.8V)。使用PWM信號(hào)控制舵機(jī)的角度。PWM信號(hào)周期為20ms,產(chǎn)生高電平范圍為0.5ms-2.5ms,高電平的時(shí)間線性的對(duì)應(yīng)舵機(jī)-90°到+90°角度。通過(guò)控制各個(gè)I/O的PWM占空比來(lái)控制每個(gè)舵機(jī)的角度,從而實(shí)現(xiàn)六足機(jī)器人的行走動(dòng)作。
2 電氣控制設(shè)計(jì)
為實(shí)現(xiàn)上述的控制方案,需要對(duì)電路、算法、程序等進(jìn)行設(shè)計(jì)。
2.1 電路設(shè)計(jì) 六足機(jī)器人采用模塊化的設(shè)計(jì),主控芯片采用STC12C5A60S2,使用51單片機(jī)的最小系統(tǒng)作為核心,舵機(jī)電源為兩節(jié)18650電池,可提供3.7V電壓,每節(jié)可給9路舵機(jī)供電,51單片機(jī)的18個(gè)I/O連接到舵機(jī)信號(hào)線上,4個(gè)I/O連接無(wú)線遙控模塊上,2個(gè)I/O口連接到紅外避障傳感器上,串口TXD/RXD連接到PL2303串口通信模塊上。
2.2 舵機(jī)的控制算法設(shè)計(jì) 舵機(jī)控制的原理是在信號(hào)線上給舵機(jī)20ms一個(gè)周期中0.5~2.5ms的5V高電平,其余時(shí)間為低電平的PWM信號(hào),通過(guò)調(diào)節(jié)高電平的時(shí)間來(lái)控制舵機(jī)轉(zhuǎn)動(dòng)的角度。
若取51單片機(jī)最小系統(tǒng)的外部晶振為11.0592M,機(jī)器周期為1.08507us,舵機(jī)轉(zhuǎn)動(dòng)的精度可達(dá)0.1°。
使用一個(gè)定時(shí)器產(chǎn)生多路舵機(jī)信號(hào)的方法有主要有兩種。一種是將舵機(jī)高電平時(shí)間排序,在一個(gè)舵機(jī)周期開(kāi)始時(shí),拉高所有舵機(jī)信號(hào)的電平,然后給定時(shí)器賦值舵機(jī)最少高電平的時(shí)間。當(dāng)單片機(jī)進(jìn)入定時(shí)器中斷后,再將高電平時(shí)間第二長(zhǎng)的與第一長(zhǎng)的時(shí)間差賦值給定時(shí)器。這樣直到最后一組時(shí)間被賦值,最長(zhǎng)電平時(shí)間的舵機(jī)信號(hào)被拉低,再給定時(shí)器賦值(20ms與最長(zhǎng)時(shí)間差對(duì)應(yīng)的值)[3]。另一種為將20ms分成8個(gè)2.5ms的時(shí)間段,舵機(jī)的高電平信號(hào)依次在這8個(gè)時(shí)間段內(nèi)。定時(shí)器依次賦值高電平時(shí)間和2.5ms與高電平時(shí)間的差[4]。
方法一理論上可以控制任意多路,但實(shí)驗(yàn)發(fā)現(xiàn),當(dāng)舵機(jī)數(shù)量增加,排序后相鄰舵機(jī)高電平時(shí)間差就會(huì)減少,而定時(shí)器中斷的值越小,定時(shí)的誤差就越大,所以這種方法在保證精度的情況下產(chǎn)生幾路PWM舵機(jī)信號(hào)。方法二:由于是20ms最多只能分成8個(gè)時(shí)間段,所以控制舵機(jī)的數(shù)量有限,但是每個(gè)的精度都較高。
所以要想在保證精度的情況下控制18路舵機(jī),就可以采用以上兩種方法結(jié)合的方式,即3×6法。用方法二在6個(gè)2.5ms時(shí)間段中的每個(gè)時(shí)間段內(nèi)產(chǎn)生3段高電平。這樣既能控制多路舵機(jī)又能保證PWM信號(hào)的精度。
2.3 Protues仿真舵機(jī)信號(hào) 開(kāi)發(fā)過(guò)程中借助Protues軟件仿真舵機(jī)運(yùn)行情況,仿真主要有51單片機(jī)最小系統(tǒng),18個(gè)舵機(jī),示波器三個(gè)部分,可以觀察示波器的波形周期及占空比來(lái)調(diào)試程序,也可以同時(shí)觀察到舵機(jī)的角度變化,18路舵機(jī)Protues仿真如圖3所示。
2.4 避障模塊 六足機(jī)器人避障模塊采用2個(gè)E18- D50NK光電式傳感器,放置于六足機(jī)器人的左前和右前處。此傳感器共有三個(gè)引腳,分別為VCC、GND、OUT。其中VCC接4.5V-5V電壓,OUT為輸出信號(hào),常態(tài)為+5V高電平,遇到障礙時(shí)會(huì)產(chǎn)生低電平。通過(guò)51單片機(jī)不斷的檢測(cè)IO口的狀態(tài)來(lái)判斷前方是否有障礙物,并選擇避開(kāi)方式。
2.5 無(wú)線遙控模塊 六足機(jī)器人采用點(diǎn)動(dòng)方式MX-J05V無(wú)線遙控的模塊,遙控器有4個(gè)按鍵,該模塊的D1D2D3D4為數(shù)據(jù)位,接到51單片機(jī)的IO口上,常態(tài)為低電平,按下按鍵,對(duì)應(yīng)數(shù)據(jù)位變?yōu)楦唠娖健?
2.6 串口通信模塊 串口通信采用PL2303模塊,該模塊為一種高度集成的RS232-USB接口轉(zhuǎn)換器,可以將上位機(jī)發(fā)送給COM端口的信號(hào)轉(zhuǎn)換為TTL電平,使51單片機(jī)能夠接受PC機(jī)發(fā)送的數(shù)據(jù)。
2.7 下位機(jī)接收上位機(jī)數(shù)據(jù)模塊 上位機(jī)與51單片機(jī)的通訊,采用串口通訊方式,中斷流程如圖4所示。上位機(jī)發(fā)送5個(gè)字節(jié)的報(bào)文來(lái)傳遞給下位機(jī)數(shù)據(jù),其中控制18個(gè)舵機(jī)5個(gè)字節(jié)報(bào)文包括起止符的“#”“控制位”“舵機(jī)號(hào)”“舵機(jī)角度”“$”。下位機(jī)將接受到的數(shù)據(jù)儲(chǔ)存在結(jié)構(gòu)體中,當(dāng)接收到“$”時(shí),對(duì)儲(chǔ)存的結(jié)構(gòu)體數(shù)據(jù)進(jìn)行處理,并做出相應(yīng)的響應(yīng)[5]。
3 上位機(jī)設(shè)計(jì)
通過(guò)上位機(jī)設(shè)計(jì)可擴(kuò)展六足機(jī)器人的運(yùn)動(dòng)形式。上位機(jī)采用C#編程語(yǔ)言,實(shí)現(xiàn)控制串口的打開(kāi)和關(guān)閉、用serialport設(shè)置端口屬性、發(fā)送字符指令控制六足機(jī)器人的功能。
3.1 設(shè)置端口屬性
結(jié)合serialport屬性,編寫了串口通訊的代碼。
串口設(shè)置碼:
①打開(kāi)串口
serialPort1.Open();
②設(shè)置串口號(hào),波特率,校驗(yàn)位,數(shù)據(jù)位,停止位
serialPort1.PortName="COM1";
serialPort1.BaudRate=9600;
serialPort1.DataBits=8;
serialPort1.Parity=System.IO.Ports.Parit.None;
serialPort1.StopBits=System.IO.Ports.StopBits.One;
③運(yùn)用write函數(shù)發(fā)送數(shù)據(jù)
3.2 無(wú)線遙控、避障模式、行走模式的實(shí)現(xiàn) 此三類模塊的實(shí)現(xiàn)均為直接打開(kāi)串口,向下位機(jī)發(fā)送相應(yīng)指令,控制下位機(jī)發(fā)出相應(yīng)動(dòng)作指令。
3.3 舵機(jī)控制模塊的實(shí)現(xiàn) 采用滑塊控件,每個(gè)滑塊位置對(duì)應(yīng)0~255個(gè)字符,每次鼠標(biāo)對(duì)滑塊的滑動(dòng),上位機(jī)即通過(guò)串口發(fā)送相應(yīng)報(bào)文信息。下方插入一個(gè)18列的表格,可將當(dāng)前滑塊的位置添加到表格里,可以通過(guò)選中一行或者幾行,然后點(diǎn)擊發(fā)送鍵,將18個(gè)舵機(jī)位置一次發(fā)給下位機(jī),來(lái)實(shí)現(xiàn)動(dòng)作的編寫與控制[6]。
在此功能完成中,核心代碼主要為重新定義一類write函數(shù),由新函數(shù)完成具體數(shù)據(jù)發(fā)送,示例:
將數(shù)據(jù)依次取出
serialPort1.Write(buffer,0,21);
發(fā)送
Write(Convert.ToChar(0×04),jiao);
4 結(jié)論
本文設(shè)計(jì)了一種基于51單片機(jī)的六足機(jī)器人控制系統(tǒng),研究結(jié)果表明:①采用3×6法控制舵機(jī)既能實(shí)現(xiàn)對(duì)多路舵機(jī)的控制又能保證PWM信號(hào)的精度;②六足機(jī)器人由于自由度多,結(jié)合上位機(jī)對(duì)舵機(jī)的控制,可以完成除了行走外很多復(fù)雜的動(dòng)作,比如可以在鍵盤上打字,可以越過(guò)一定高度的障礙物;③六足機(jī)器人運(yùn)用了51單片機(jī)的I/O口控制、定時(shí)器中斷、串口中斷等功能,所以也可以作為單片機(jī)教學(xué)的一個(gè)實(shí)踐。
在自然界和人類社會(huì)中存在一些可能危及人類生命的特殊場(chǎng)合,在一些地形不規(guī)則和崎嶇不平的環(huán)境下,六足機(jī)器人具有比輪式機(jī)器人和履帶式機(jī)器人更好的運(yùn)動(dòng)穩(wěn)定性和更強(qiáng)的環(huán)境適應(yīng)性,可應(yīng)用于搶險(xiǎn)、勘察、探測(cè)等領(lǐng)域。當(dāng)前對(duì)于六足機(jī)器人多路舵機(jī)控制一般采用排序算法或分時(shí)控制算法,存在精度不足或數(shù)量有限的問(wèn)題。本研究基于51單片機(jī)采用新型算法產(chǎn)生18路PWM信號(hào)控制舵機(jī),結(jié)合避障傳感器、無(wú)線通信模塊和上位機(jī)模塊控制機(jī)器人的六足運(yùn)動(dòng)[1][2]。
1 控制方案制定
采用圖1所示的六足結(jié)構(gòu),對(duì)六足機(jī)器人運(yùn)動(dòng)機(jī)理、步態(tài)設(shè)計(jì)進(jìn)行研究,選擇合適的驅(qū)動(dòng)系統(tǒng)。
1.1 運(yùn)動(dòng)機(jī)理 機(jī)器人有六個(gè)足,每個(gè)足有三個(gè)關(guān)節(jié),每個(gè)關(guān)節(jié)處安裝一個(gè)舵機(jī),舵機(jī)驅(qū)動(dòng)關(guān)節(jié)做旋轉(zhuǎn)運(yùn)動(dòng)。因此可通過(guò)對(duì)每個(gè)足上三個(gè)舵機(jī)的旋轉(zhuǎn)控制實(shí)現(xiàn)足端部到達(dá)地面上可達(dá)范圍內(nèi)的任意一點(diǎn)。
1.2 步態(tài)設(shè)計(jì) 六足機(jī)器人采用三角步態(tài)方式行走,如圖2所示。向前運(yùn)動(dòng)時(shí),左中足、右前足、右后足為一組(a圖黑點(diǎn))保持支撐地面,左前足、左后足、右中足為二組(a圖白點(diǎn))抬起向前邁步變?yōu)閎圖;二組支撐地面(c圖黑點(diǎn)),一組足做邁步動(dòng)作(d圖白點(diǎn))。如此循環(huán)交替實(shí)現(xiàn)向前運(yùn)動(dòng)。轉(zhuǎn)彎運(yùn)動(dòng)有兩種方式,一種為自轉(zhuǎn),一種為公轉(zhuǎn)。自轉(zhuǎn)為一組足保持支撐地面,二組足抬起向一個(gè)方向旋轉(zhuǎn)一定角度后落下支撐地面,然后抬起一組足同方向旋轉(zhuǎn),如此交替實(shí)現(xiàn)自轉(zhuǎn)。公轉(zhuǎn)方式與前進(jìn)方式大體相同,只是左右兩側(cè)足邁步的距離不同。
1.3 驅(qū)動(dòng)系統(tǒng) 關(guān)節(jié)處為舵機(jī)驅(qū)動(dòng),舵機(jī)轉(zhuǎn)角為180°,工作電壓3.5V-6V,可提供力矩為1.6kg·cm(4.8V)。使用PWM信號(hào)控制舵機(jī)的角度。PWM信號(hào)周期為20ms,產(chǎn)生高電平范圍為0.5ms-2.5ms,高電平的時(shí)間線性的對(duì)應(yīng)舵機(jī)-90°到+90°角度。通過(guò)控制各個(gè)I/O的PWM占空比來(lái)控制每個(gè)舵機(jī)的角度,從而實(shí)現(xiàn)六足機(jī)器人的行走動(dòng)作。
2 電氣控制設(shè)計(jì)
為實(shí)現(xiàn)上述的控制方案,需要對(duì)電路、算法、程序等進(jìn)行設(shè)計(jì)。
2.1 電路設(shè)計(jì) 六足機(jī)器人采用模塊化的設(shè)計(jì),主控芯片采用STC12C5A60S2,使用51單片機(jī)的最小系統(tǒng)作為核心,舵機(jī)電源為兩節(jié)18650電池,可提供3.7V電壓,每節(jié)可給9路舵機(jī)供電,51單片機(jī)的18個(gè)I/O連接到舵機(jī)信號(hào)線上,4個(gè)I/O連接無(wú)線遙控模塊上,2個(gè)I/O口連接到紅外避障傳感器上,串口TXD/RXD連接到PL2303串口通信模塊上。
2.2 舵機(jī)的控制算法設(shè)計(jì) 舵機(jī)控制的原理是在信號(hào)線上給舵機(jī)20ms一個(gè)周期中0.5~2.5ms的5V高電平,其余時(shí)間為低電平的PWM信號(hào),通過(guò)調(diào)節(jié)高電平的時(shí)間來(lái)控制舵機(jī)轉(zhuǎn)動(dòng)的角度。
若取51單片機(jī)最小系統(tǒng)的外部晶振為11.0592M,機(jī)器周期為1.08507us,舵機(jī)轉(zhuǎn)動(dòng)的精度可達(dá)0.1°。
使用一個(gè)定時(shí)器產(chǎn)生多路舵機(jī)信號(hào)的方法有主要有兩種。一種是將舵機(jī)高電平時(shí)間排序,在一個(gè)舵機(jī)周期開(kāi)始時(shí),拉高所有舵機(jī)信號(hào)的電平,然后給定時(shí)器賦值舵機(jī)最少高電平的時(shí)間。當(dāng)單片機(jī)進(jìn)入定時(shí)器中斷后,再將高電平時(shí)間第二長(zhǎng)的與第一長(zhǎng)的時(shí)間差賦值給定時(shí)器。這樣直到最后一組時(shí)間被賦值,最長(zhǎng)電平時(shí)間的舵機(jī)信號(hào)被拉低,再給定時(shí)器賦值(20ms與最長(zhǎng)時(shí)間差對(duì)應(yīng)的值)[3]。另一種為將20ms分成8個(gè)2.5ms的時(shí)間段,舵機(jī)的高電平信號(hào)依次在這8個(gè)時(shí)間段內(nèi)。定時(shí)器依次賦值高電平時(shí)間和2.5ms與高電平時(shí)間的差[4]。
方法一理論上可以控制任意多路,但實(shí)驗(yàn)發(fā)現(xiàn),當(dāng)舵機(jī)數(shù)量增加,排序后相鄰舵機(jī)高電平時(shí)間差就會(huì)減少,而定時(shí)器中斷的值越小,定時(shí)的誤差就越大,所以這種方法在保證精度的情況下產(chǎn)生幾路PWM舵機(jī)信號(hào)。方法二:由于是20ms最多只能分成8個(gè)時(shí)間段,所以控制舵機(jī)的數(shù)量有限,但是每個(gè)的精度都較高。
所以要想在保證精度的情況下控制18路舵機(jī),就可以采用以上兩種方法結(jié)合的方式,即3×6法。用方法二在6個(gè)2.5ms時(shí)間段中的每個(gè)時(shí)間段內(nèi)產(chǎn)生3段高電平。這樣既能控制多路舵機(jī)又能保證PWM信號(hào)的精度。
2.3 Protues仿真舵機(jī)信號(hào) 開(kāi)發(fā)過(guò)程中借助Protues軟件仿真舵機(jī)運(yùn)行情況,仿真主要有51單片機(jī)最小系統(tǒng),18個(gè)舵機(jī),示波器三個(gè)部分,可以觀察示波器的波形周期及占空比來(lái)調(diào)試程序,也可以同時(shí)觀察到舵機(jī)的角度變化,18路舵機(jī)Protues仿真如圖3所示。
2.4 避障模塊 六足機(jī)器人避障模塊采用2個(gè)E18- D50NK光電式傳感器,放置于六足機(jī)器人的左前和右前處。此傳感器共有三個(gè)引腳,分別為VCC、GND、OUT。其中VCC接4.5V-5V電壓,OUT為輸出信號(hào),常態(tài)為+5V高電平,遇到障礙時(shí)會(huì)產(chǎn)生低電平。通過(guò)51單片機(jī)不斷的檢測(cè)IO口的狀態(tài)來(lái)判斷前方是否有障礙物,并選擇避開(kāi)方式。
2.5 無(wú)線遙控模塊 六足機(jī)器人采用點(diǎn)動(dòng)方式MX-J05V無(wú)線遙控的模塊,遙控器有4個(gè)按鍵,該模塊的D1D2D3D4為數(shù)據(jù)位,接到51單片機(jī)的IO口上,常態(tài)為低電平,按下按鍵,對(duì)應(yīng)數(shù)據(jù)位變?yōu)楦唠娖健?
2.6 串口通信模塊 串口通信采用PL2303模塊,該模塊為一種高度集成的RS232-USB接口轉(zhuǎn)換器,可以將上位機(jī)發(fā)送給COM端口的信號(hào)轉(zhuǎn)換為TTL電平,使51單片機(jī)能夠接受PC機(jī)發(fā)送的數(shù)據(jù)。
2.7 下位機(jī)接收上位機(jī)數(shù)據(jù)模塊 上位機(jī)與51單片機(jī)的通訊,采用串口通訊方式,中斷流程如圖4所示。上位機(jī)發(fā)送5個(gè)字節(jié)的報(bào)文來(lái)傳遞給下位機(jī)數(shù)據(jù),其中控制18個(gè)舵機(jī)5個(gè)字節(jié)報(bào)文包括起止符的“#”“控制位”“舵機(jī)號(hào)”“舵機(jī)角度”“$”。下位機(jī)將接受到的數(shù)據(jù)儲(chǔ)存在結(jié)構(gòu)體中,當(dāng)接收到“$”時(shí),對(duì)儲(chǔ)存的結(jié)構(gòu)體數(shù)據(jù)進(jìn)行處理,并做出相應(yīng)的響應(yīng)[5]。
3 上位機(jī)設(shè)計(jì)
通過(guò)上位機(jī)設(shè)計(jì)可擴(kuò)展六足機(jī)器人的運(yùn)動(dòng)形式。上位機(jī)采用C#編程語(yǔ)言,實(shí)現(xiàn)控制串口的打開(kāi)和關(guān)閉、用serialport設(shè)置端口屬性、發(fā)送字符指令控制六足機(jī)器人的功能。
3.1 設(shè)置端口屬性
結(jié)合serialport屬性,編寫了串口通訊的代碼。
串口設(shè)置碼:
①打開(kāi)串口
serialPort1.Open();
②設(shè)置串口號(hào),波特率,校驗(yàn)位,數(shù)據(jù)位,停止位
serialPort1.PortName="COM1";
serialPort1.BaudRate=9600;
serialPort1.DataBits=8;
serialPort1.Parity=System.IO.Ports.Parit.None;
serialPort1.StopBits=System.IO.Ports.StopBits.One;
③運(yùn)用write函數(shù)發(fā)送數(shù)據(jù)
3.2 無(wú)線遙控、避障模式、行走模式的實(shí)現(xiàn) 此三類模塊的實(shí)現(xiàn)均為直接打開(kāi)串口,向下位機(jī)發(fā)送相應(yīng)指令,控制下位機(jī)發(fā)出相應(yīng)動(dòng)作指令。
3.3 舵機(jī)控制模塊的實(shí)現(xiàn) 采用滑塊控件,每個(gè)滑塊位置對(duì)應(yīng)0~255個(gè)字符,每次鼠標(biāo)對(duì)滑塊的滑動(dòng),上位機(jī)即通過(guò)串口發(fā)送相應(yīng)報(bào)文信息。下方插入一個(gè)18列的表格,可將當(dāng)前滑塊的位置添加到表格里,可以通過(guò)選中一行或者幾行,然后點(diǎn)擊發(fā)送鍵,將18個(gè)舵機(jī)位置一次發(fā)給下位機(jī),來(lái)實(shí)現(xiàn)動(dòng)作的編寫與控制[6]。
在此功能完成中,核心代碼主要為重新定義一類write函數(shù),由新函數(shù)完成具體數(shù)據(jù)發(fā)送,示例:
將數(shù)據(jù)依次取出
serialPort1.Write(buffer,0,21);
發(fā)送
Write(Convert.ToChar(0×04),jiao);
4 結(jié)論
本文設(shè)計(jì)了一種基于51單片機(jī)的六足機(jī)器人控制系統(tǒng),研究結(jié)果表明:①采用3×6法控制舵機(jī)既能實(shí)現(xiàn)對(duì)多路舵機(jī)的控制又能保證PWM信號(hào)的精度;②六足機(jī)器人由于自由度多,結(jié)合上位機(jī)對(duì)舵機(jī)的控制,可以完成除了行走外很多復(fù)雜的動(dòng)作,比如可以在鍵盤上打字,可以越過(guò)一定高度的障礙物;③六足機(jī)器人運(yùn)用了51單片機(jī)的I/O口控制、定時(shí)器中斷、串口中斷等功能,所以也可以作為單片機(jī)教學(xué)的一個(gè)實(shí)踐。
欄目分類
熱門排行
推薦信息
- 淺析網(wǎng)球文化對(duì)大學(xué)生的影響
- 信息化手段在高職網(wǎng)球教學(xué)中的應(yīng)用探索
- 小學(xué)體育課程融入網(wǎng)球訓(xùn)練的策略與研究
- 基于學(xué)生個(gè)體差異的高職網(wǎng)球差異化教學(xué)策略研究
- 云計(jì)算平臺(tái)在產(chǎn)品質(zhì)量監(jiān)控中的實(shí)現(xiàn)與優(yōu)勢(shì)
- 大型公共建筑電氣安裝施工關(guān)鍵技術(shù)探析
- 基于硬件在環(huán)的空調(diào)控制器自動(dòng)化測(cè)試
- 光纖傳感技術(shù)在現(xiàn)代通信工程中的應(yīng)用路徑研究
- 無(wú)人機(jī)測(cè)繪優(yōu)化土地規(guī)劃勘測(cè)定界精度研究
- 淺談水利工程質(zhì)量管理
期刊知識(shí)
- 2025年中科院分區(qū)表已公布!Scientific Reports降至三區(qū)
- 2023JCR影響因子正式公布!
- 國(guó)內(nèi)核心期刊分級(jí)情況概覽及說(shuō)明!本篇適用人群:需要發(fā)南核、北核、CSCD、科核、AMI、SCD、RCCSE期刊的學(xué)者
- 我用了一個(gè)很復(fù)雜的圖,幫你們解釋下“23版最新北大核心目錄有效期問(wèn)題”。
- CSSCI官方早就公布了最新南核目錄,有心的人已經(jīng)拿到并且投入使用!附南核目錄新增期刊!
- 北大核心期刊目錄換屆,我們應(yīng)該熟知的10個(gè)知識(shí)點(diǎn)。
- 注意,最新期刊論文格式標(biāo)準(zhǔn)已發(fā)布,論文寫作規(guī)則發(fā)生重大變化!文字版GB/T 7713.2—2022 學(xué)術(shù)論文編寫規(guī)則
- 盤點(diǎn)那些評(píng)職稱超管用的資源,1,3和5已經(jīng)“絕種”了
- 職稱話題| 為什么黨校更認(rèn)可省市級(jí)黨報(bào)?是否有什么說(shuō)據(jù)?還有哪些機(jī)構(gòu)認(rèn)可黨報(bào)?
- 《農(nóng)業(yè)經(jīng)濟(jì)》論文投稿解析,難度指數(shù)四顆星,附好發(fā)選題!