国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于STM32單片機(jī)控制的六足輪腿式機(jī)器人研究

2018-09-10 05:48:51蔡勝宇儲(chǔ)澤楠
河南科技 2018年26期
關(guān)鍵詞:輪式控制板舵機(jī)

蔡勝宇 儲(chǔ)澤楠

摘 要:本文以矩形輪腿式的六足機(jī)器人為試驗(yàn)機(jī)器人,以STM32單片機(jī)為主要控制核心,以舵機(jī)控制板為輔助板,利用上位機(jī)編程來編寫六足機(jī)器人的動(dòng)作組,通過PS2手柄發(fā)送命令到單片機(jī),單片機(jī)控制舵機(jī)板實(shí)現(xiàn)相應(yīng)的動(dòng)作組,后期采用Arduino控制板通過傳感器對(duì)環(huán)境變化的檢測(cè)實(shí)現(xiàn)對(duì)動(dòng)作組的控制,實(shí)現(xiàn)六足機(jī)器人的自動(dòng)化移動(dòng)。

關(guān)鍵詞:復(fù)合運(yùn)動(dòng);STM32;上位機(jī);PS2;舵機(jī)控制板Arduino

中圖分類號(hào):TP242文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1003-5168(2018)26-0010-04

隨著社會(huì)的不斷發(fā)展和進(jìn)步,人類涉足的范圍盡管不斷增加,但在人類社會(huì)和自然界中還存在一些可能危及我們生命的特殊場(chǎng)合,如深山、發(fā)生災(zāi)難的礦井、救援救助等人類當(dāng)前尚沒有辦法到達(dá)的地方,這些地方的地形具有共同的特點(diǎn):崎嶇不平和地形不規(guī)則。通過以往的試驗(yàn)可以看出,在比較平坦的路面上,輪式機(jī)器人無論在速度和靈活程度上都有絕對(duì)的優(yōu)勢(shì),但在不平坦的路面上,輪式機(jī)器人在能量消耗上更加明顯且靈活程度大大降低。相對(duì)而言,履帶式機(jī)器人在不平坦的地面上更具優(yōu)勢(shì),但在機(jī)動(dòng)性和平衡性方面存在較大缺陷。與輪式、履帶式移動(dòng)機(jī)器人相比,在崎嶇路面上步行的機(jī)器人具有更為優(yōu)越的性能。

筆者結(jié)合六足機(jī)器人的優(yōu)點(diǎn)和輪式移動(dòng)機(jī)器人的優(yōu)點(diǎn),設(shè)計(jì)了輪腿式復(fù)合機(jī)器人。這種復(fù)合式機(jī)器人通過輪式與足式的不斷變換,不僅可以在平坦的路面上快速行駛,而且能平穩(wěn)地通過崎嶇的地面[1,2]。

1 六足機(jī)器人的總體結(jié)構(gòu)設(shè)計(jì)

1.1 六足機(jī)器人機(jī)械結(jié)構(gòu)的選擇

本項(xiàng)目中需要考慮的主要問題是六足復(fù)合式機(jī)器人的輪腿結(jié)構(gòu)組合方式。現(xiàn)有的輪腿組合方式主要有3種:輪、腿結(jié)合式;輪、腿獨(dú)立式;輪即是腿,腿即是輪式。六足機(jī)器人的機(jī)械結(jié)構(gòu)有很多,大部分以圓周型和矩形為主。

本項(xiàng)目采用矩形機(jī)械結(jié)構(gòu),具體如圖1所示。從圖上可以看出,機(jī)器人的輪子和腿相對(duì)獨(dú)立,分別獨(dú)立安裝在機(jī)器人的本體上,當(dāng)腿向某一方向折疊收起時(shí),輪子就與地面接觸,這時(shí)機(jī)器人就可以做輪式運(yùn)動(dòng);當(dāng)關(guān)節(jié)伸展站立時(shí),輪子與地面脫離,這時(shí)機(jī)器人可進(jìn)行腿式步行。相對(duì)圓周形機(jī)械結(jié)構(gòu),矩形機(jī)械結(jié)構(gòu)中六足的平行性恰好滿足了機(jī)器人由足變成輪時(shí)兩組輪子恰好實(shí)現(xiàn)了平行性移動(dòng)的特點(diǎn)。

圖1 六足機(jī)器人機(jī)械結(jié)構(gòu)三維圖

1.2 控制板的選擇

控制板是整個(gè)六足機(jī)器人的核心。控制板多種多樣,有樹莓派、32單片機(jī)、51單片機(jī)、Arduino控制板等??紤]到整個(gè)項(xiàng)目對(duì)六足機(jī)器人的智能控制和便捷操作、板子面積及功耗等方面的影響,加上32單片機(jī)有強(qiáng)大的PWM輸出效率、運(yùn)行速度快、內(nèi)存大、強(qiáng)大的工程編程環(huán)境、數(shù)量比較多的IO口,所以選擇32單片機(jī)為主要控制板。

本項(xiàng)目采用STM公司的STM32F103系列的單片機(jī),該系列的單片機(jī)高性能、低成本、低功耗,具有144個(gè)引腳,給項(xiàng)目提供更多IO的使用,內(nèi)核采用ARM Cortex?-M3微控制器,1μs的雙12位ADC,4Mb/s的UART,18Mb/s的SPI,18MHz的I/O翻轉(zhuǎn)速度。

2 六足機(jī)器人的步態(tài)控制

2.1 六足機(jī)器人的三角步態(tài)

六足機(jī)器人步行行走步態(tài)(見圖2)是機(jī)器人研究的重要問題,自然界內(nèi)六足類的動(dòng)物在行走時(shí),一般六足并不是同時(shí)直線前進(jìn)的,而是像人一樣將三對(duì)足分成兩組,相當(dāng)于人的左右腿,以三角形態(tài)結(jié)構(gòu)交替前進(jìn)。六足動(dòng)物身體左側(cè)的前足、后足及右側(cè)的中足為一組,其他的為一組。在行進(jìn)的過程中,其中一組為支撐組,另一組為運(yùn)動(dòng)組,這時(shí)重心在支撐組。然后,運(yùn)動(dòng)組變?yōu)橹谓M,支撐組變?yōu)檫\(yùn)動(dòng)組,這樣周而復(fù)始,就可以實(shí)現(xiàn)六足的三角步態(tài)行走[3-5]。

[X][A][B][C][Z][F][E][D][A][B][C][D][E][F][步長(zhǎng)][Y]

圖2 三角步態(tài)示意圖

2.2 舵機(jī)控制核心

六足機(jī)器人足是由18個(gè)舵機(jī)組成的關(guān)節(jié)組合,舵機(jī)控制板可以同時(shí)控制多個(gè)舵機(jī)的轉(zhuǎn)動(dòng)速度,轉(zhuǎn)動(dòng)角度。上位機(jī)制作是實(shí)現(xiàn)電腦對(duì)舵機(jī)控制板圖形化編程的重要步驟,其能直接明了地實(shí)現(xiàn)對(duì)單個(gè)舵機(jī)及舵機(jī)動(dòng)作組的編程。

2.3 單片機(jī)對(duì)舵機(jī)控制板的控制步態(tài)

32單片機(jī)對(duì)舵機(jī)控制板是通過串口的通信控制舵機(jī)做出相應(yīng)的動(dòng)作或者動(dòng)作組。單片機(jī)和舵機(jī)控制板存在通信協(xié)議,該協(xié)議在波特率為9600的環(huán)境下通信,該協(xié)議的命令由4部分組成,即幀頭、數(shù)據(jù)長(zhǎng)度、指令、參數(shù)。舵機(jī)板在連續(xù)接收到兩個(gè)0X55的情況下,表示開始接收數(shù)據(jù),即幀頭。數(shù)據(jù)長(zhǎng)度就是指令和參數(shù)占用一個(gè)字節(jié)的長(zhǎng)度。

例如,控制舵機(jī)動(dòng)作組的實(shí)現(xiàn),需要的指令名為CMD _ACTION_GROUP_RUN,可以看出指令值為6,數(shù)據(jù)長(zhǎng)度為5,這里只涉及三個(gè)參數(shù),格式和控制舵機(jī)命令一樣。參數(shù)1:要運(yùn)行的動(dòng)作組的編號(hào);參數(shù)2:動(dòng)作組要運(yùn)行的次數(shù)低八位;參數(shù)3:動(dòng)作組要運(yùn)行的次數(shù)高八位。

例如,控制2號(hào)動(dòng)作組:幀頭:0X55 0X55;數(shù)據(jù)長(zhǎng)度0X05;指令值:0X06;參數(shù):0x01 0x02 0x01。

通過通信協(xié)議的建立,控制舵機(jī)動(dòng)作組的不單單是舵機(jī)控制板,32單片機(jī)也可以通過串口通信命令的發(fā)送實(shí)現(xiàn)對(duì)舵機(jī)動(dòng)作及動(dòng)作的實(shí)現(xiàn)。

3 六足機(jī)器人的輪腿轉(zhuǎn)換

3.1 輪腿轉(zhuǎn)換的形態(tài)

由于六足機(jī)器人具有多關(guān)節(jié)的特點(diǎn),加上我們使用的是矩形機(jī)械結(jié)構(gòu),因此,筆者仿照六輪裝甲車多輪轉(zhuǎn)向的外形,使六足機(jī)器人變形以后呈現(xiàn)出六輪機(jī)動(dòng)車的形態(tài),同時(shí)使用六足機(jī)器人的多關(guān)節(jié)可活動(dòng)性,實(shí)現(xiàn)六輪的多轉(zhuǎn)向性,使機(jī)器人更加得靈活。六輪的同時(shí)轉(zhuǎn)向比以往的兩輪轉(zhuǎn)向或者速度轉(zhuǎn)向更加便捷,對(duì)電機(jī)速度的要求降低,且操作起來相對(duì)比較簡(jiǎn)單。六足機(jī)器人的輪式三維圖見圖3。

圖3 六足機(jī)器人的輪式三維圖

3.2 單片機(jī)對(duì)六足機(jī)器人足變輪變形的控制

本項(xiàng)目中,筆者采用32單片機(jī)控制舵機(jī)控制板,采用PS2手柄進(jìn)行手動(dòng)控制。通過PS2手柄發(fā)送命令給32單片機(jī),然后單片機(jī)把指令發(fā)送給舵機(jī)控制板,舵機(jī)控制板接收到發(fā)送過來的指令后做出相應(yīng)的動(dòng)作組或者動(dòng)作,完成變形任務(wù)。其流程如圖4所示。

PS2由手柄和接收器組成。手柄的接收器由8個(gè)接口組成,分別是DIDAT、DO/CMD、NC、GND、ACK、CS/SEL、CLK和VDD。DIDAT和DO/CMD接口是手柄到主機(jī)和主機(jī)到手柄信號(hào)的流向接口,這個(gè)信號(hào)是一個(gè)8BIT的串行數(shù)據(jù);CS/SEL是手柄的觸發(fā)信號(hào);CLK則是一個(gè)時(shí)鐘信號(hào),主要用于數(shù)據(jù)的同步;ACK是一個(gè)應(yīng)答信號(hào)。

在CS觸發(fā)信號(hào)發(fā)生時(shí),手柄開始進(jìn)入通信狀態(tài)。數(shù)據(jù)(1bit)的發(fā)送與接收是在單片機(jī)時(shí)鐘下降時(shí)完成的,并且是同時(shí)完成的。當(dāng)控制板想要向手柄發(fā)送命令或者讀取命令時(shí),會(huì)拉低CS的電平,并發(fā)送“0X01”的命令,手柄回復(fù)之后,控制板將發(fā)送“0X42”的請(qǐng)求數(shù)據(jù)的命令,之后手柄就會(huì)發(fā)送“0X5A”命令到單片機(jī),單片機(jī)就開始接收數(shù)據(jù)。表1為PS2通信各個(gè)數(shù)據(jù)位的意義。

表1 PS2通信各個(gè)數(shù)據(jù)位的意義

[順序 DO DI Bit0、Bit1、Bit2、Bit3、Bit4、Bit5、Bit6、Bit7 0 0X01 idle - 1 0X42 ID - 2 Idle OX5A - 3 WW data SELECT、L3、R3、START、UP、RIGHT、DOWN、LEFT 4 YY data L2、R2、L1、R1、△、○、×、□ 5 idle data PSS_RX(0X00=left、0XFF=right) 6 idle data PSS_RY(0X00=up、0XFF=down) 7 idle data PSS_LX(0X00=left、0XFF=right) 8 idle data PSS_LY(0X00=up、0XFF=down) ]

3.3 輪式形態(tài)的控制

做項(xiàng)目的電機(jī)分類有很多:步進(jìn)電機(jī)、直流電機(jī)和直流減速電機(jī)。筆者采用的是減速直流電機(jī)。相比而言,直流減速電機(jī)更容易控制,編程簡(jiǎn)單,體積更小,速度控制方面更加準(zhǔn)確??刂齐姍C(jī)則要用到32單片機(jī)中PWM輸出模式,在32單片機(jī)中,單片機(jī)通過對(duì)時(shí)鐘的控制與寄存器的控制實(shí)現(xiàn)PWM波輸出的控制。簡(jiǎn)單來說,PWM的輸出主要靠控制占空比來實(shí)現(xiàn)PWM波的輸出,從而控制控制電機(jī)的轉(zhuǎn)動(dòng)。

輪式形態(tài)的控制主要是對(duì)舵機(jī)的控制,通過對(duì)舵機(jī)的控制實(shí)現(xiàn)直行、后退、轉(zhuǎn)彎等多種形態(tài)。由于六足機(jī)器人有18個(gè)關(guān)節(jié),因此,六足機(jī)器人的轉(zhuǎn)動(dòng)形態(tài)較多。筆者選擇把輪子裝在前后兩組足關(guān)節(jié)的第二個(gè)關(guān)節(jié)上,這樣輪子既不會(huì)阻礙足式移動(dòng),又能很好地進(jìn)行足輪轉(zhuǎn)換。足輪轉(zhuǎn)換過后,電機(jī)轉(zhuǎn)動(dòng)的方向就會(huì)發(fā)生變化,如圖5和圖6所示。足式機(jī)器人及其俯視圖見圖7和圖8。

[電機(jī)1][電機(jī)2][電機(jī)4][電機(jī)3]

圖5 直行電機(jī)轉(zhuǎn)動(dòng)的方向

[電機(jī)1][電機(jī)2][電機(jī)4][電機(jī)3]

圖6 后退電機(jī)轉(zhuǎn)動(dòng)方向

圖7 足式機(jī)器人

圖8 俯視圖

4 六足機(jī)器人智能自控的實(shí)現(xiàn)

4.1 Arduino的應(yīng)用

Arduino是一款與32單片機(jī)相似的控制板,其能通過各種各樣的傳感器來感知環(huán)境,通過控制燈光、馬達(dá)和其他裝置來反饋、影響環(huán)境。本項(xiàng)目中以Arduino控制板為輔助板,安裝各種傳感器,如聲音傳感器、紅外傳感器、超聲波傳感器。在六足機(jī)器人6個(gè)足的底部安裝紅外傳感器以防止六足機(jī)器人墜落,利用超聲波傳感器實(shí)現(xiàn)避障功能。同樣,Arduino控制和32單片機(jī)控制相同,都是通過串口發(fā)送命令給舵機(jī)控制板,舵機(jī)控制板再做出相應(yīng)的動(dòng)作。Arduino命令流程見圖9。

4.2 整體自動(dòng)化的形成

通過傳感器對(duì)環(huán)境變化的感應(yīng),向Arduino發(fā)送數(shù)字模擬量,Arduino做出相應(yīng)的命令控制舵機(jī)控制板。這樣一來,各個(gè)傳感器的相互配合,Arduino就可以識(shí)別復(fù)雜環(huán)境狀況,使六足機(jī)器人做出相應(yīng)的動(dòng)作來適應(yīng)相應(yīng)的環(huán)境,從而使機(jī)器人實(shí)現(xiàn)智能化。

5 結(jié)論

本項(xiàng)目從開始選題到買材料再到制作成品,遇到了許多困難,但在這段時(shí)間內(nèi),筆者獲益匪淺。從選材料開始,就從各個(gè)方面尋找能用到的機(jī)器人零件、舵機(jī)、舵機(jī)控制板、電機(jī)等,每樣?xùn)|西都考慮再三,為后期制作編程節(jié)約了較多時(shí)間。在設(shè)置PS2手柄時(shí),使用手柄發(fā)送命令,舵機(jī)卻一直收不到相應(yīng)命令,在不斷調(diào)試和編程的情況下,終于實(shí)現(xiàn)了相應(yīng)的功能。

但是,該項(xiàng)目的各個(gè)功能還有不足之處,仍需要不斷優(yōu)化,特別是在利用傳感器實(shí)現(xiàn)自動(dòng)化控制方面,需要進(jìn)一步深入研究。

參考文獻(xiàn):

[1]田娜,丁希侖,戴建生.一種新型的變結(jié)構(gòu)輪腿式探測(cè)車機(jī)構(gòu)設(shè)計(jì)與分析[J].機(jī)械設(shè)計(jì)與研究,2004(z1):268-270.

[2]蘇軍,陳學(xué)東,田文罡.六足步行機(jī)器人全方位的步態(tài)研究[J].機(jī)械與電子,2004(3):48-52.

[3]馬忠梅,王美剛,孫娟,等.單片機(jī)的C語(yǔ)言應(yīng)用程序設(shè)計(jì)[M].北京:北京航空航天大學(xué)出版社,2013.

[4]李增國(guó).傳感器與檢測(cè)技術(shù)[M].北京:北京航空航天大學(xué)出版社,2009.

[5]BOXALL.動(dòng)手玩轉(zhuǎn)Arduino[M].北京:人民郵電出版社,2014.

猜你喜歡
輪式控制板舵機(jī)
關(guān)于某家用電器靜電彈簧控制板一拖多自動(dòng)檢測(cè)裝置的研究與應(yīng)用
日用電器(2023年7期)2023-09-07 00:41:56
一種橡膠減震裝置
輪式裝備搶救搶修車
含齒隙彈載舵機(jī)的全局反步模糊自適應(yīng)控制
軌道交通AFC導(dǎo)向標(biāo)識(shí)控制板設(shè)計(jì)
電子制作(2019年23期)2019-02-23 13:21:22
對(duì)輪式正面吊輪胎使用
高通過性輪式無人機(jī)平臺(tái)誕生記
基于dsPIC單片機(jī)的飛艇舵機(jī)控制實(shí)現(xiàn)
電子制作(2018年1期)2018-04-04 01:48:14
基于高速同步485總線通信的多通道舵機(jī)控制器設(shè)計(jì)
一種機(jī)載SAR中心控制板的設(shè)計(jì)
开封县| 巫山县| 且末县| 阿城市| 延寿县| 兖州市| 枣庄市| 瑞安市| 鹤庆县| 乌兰浩特市| 衡水市| 岳池县| 乌海市| 夹江县| 彝良县| 嘉黎县| 明星| 新巴尔虎右旗| 民勤县| 神池县| 德惠市| 绩溪县| 清水河县| 东阳市| 宽甸| 临城县| 专栏| 江津市| 威海市| 平阳县| 嘉义市| 东莞市| 中宁县| 都昌县| 沁水县| 北碚区| 调兵山市| 禹州市| 婺源县| 阿拉善左旗| 固镇县|