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

?

基于ATMEGA2560的自平衡移動機(jī)器人系統(tǒng)設(shè)計

2017-07-14 15:13:25張燕呂吉明許劉澤沈祥偉
電腦知識與技術(shù) 2017年16期

張燕+呂吉明+許劉澤+沈祥偉

摘要:該文設(shè)計了一款可以自主運(yùn)行且保持平衡的移動機(jī)器人控制系統(tǒng),使用LD3320識別簡單的語音啟動停止信號實現(xiàn)移動機(jī)器人啟停控制,使用六軸傳感器MPU6050實現(xiàn)未知環(huán)境下移動機(jī)器人的角度信息,通過MPU6050以及電機(jī)速度編碼器實現(xiàn)保持小車的平衡。移動機(jī)器人最后能夠?qū)崿F(xiàn)自主運(yùn)行以及語音識別的功能。通過實際移動機(jī)器人的運(yùn)行結(jié)果說明控制系統(tǒng)的正確性。

關(guān)鍵詞;Atmega2560;LD3320;雙CPU;MPU6050;L298N

雙輪自平衡機(jī)器人始創(chuàng)于1980年左右的東京,其設(shè)計概念是由東京電信大學(xué)的一名教授首先提出的。同一時期,美國發(fā)明出一款名為Segway的機(jī)器人,該機(jī)器人擁有先進(jìn)的機(jī)器配置。發(fā)展到現(xiàn)在,該機(jī)器人已經(jīng)發(fā)展到多個系列,并在市場中廣泛運(yùn)用。國內(nèi)對于雙輪自平衡機(jī)器人的研究起步比較晚。2002年,臺灣國立中央大學(xué)電機(jī)工程研究所模仿美國的Segway研制出兩輪自平衡機(jī)器人。2005年,哈工大的學(xué)生伊亮運(yùn)用線性控制技術(shù),真正意義上實現(xiàn)了雙輪移動機(jī)器人的平衡。2012年,Ninebot平衡車CEO高祿峰成立鼎力聯(lián)合科技有限公司,成功研發(fā)出風(fēng)行者思維車、Ninebot九號機(jī)器人,不但在國內(nèi)取得了成功,還讓平衡車進(jìn)人了美國市場。雙輪自平衡機(jī)器人以其結(jié)構(gòu)簡單、行動靈敏、運(yùn)行方便、速度可控等優(yōu)勢被廣泛運(yùn)用,并因其可以在狹小或地形復(fù)雜的工作環(huán)境下完成工作,在民間和軍事領(lǐng)域都具有巨大的應(yīng)用前景,具有非常重大的研究意義。

該文首先研究了自平衡的移動機(jī)器人控制系統(tǒng)。

1系統(tǒng)組成和結(jié)構(gòu)

自平衡移動機(jī)器人控制系統(tǒng)整個控制系統(tǒng)框架如圖1所示,控制系統(tǒng)主要由兩個CPU構(gòu)成,其中主CPU1采用的是89C51主要完成當(dāng)前角度讀取以及電機(jī)控制,其中六軸傳感器主要完成的是陀螺儀三個方向的角度以及加速度計三個方向的加速度的讀取。電機(jī)采用的是L298N,此電機(jī)模塊的優(yōu)點是可以直接通過單片機(jī)的IO口控制其運(yùn)動。而移動機(jī)器人的啟動和停止使用的是語音信號來處理,考慮到語音處理內(nèi)容較多,所以采用的STM32進(jìn)行語音處理,而后將獲取的數(shù)據(jù)通過端口發(fā)送給CPU1。

整個自平衡車系統(tǒng)整體邏輯如圖2所示。

移動機(jī)器人開始運(yùn)動之后,陀螺儀獲取角速度信息,加速度計獲取z軸的加速度信息。將加速度計信息與陀螺儀積分后的角度信息疊加之后比例調(diào)整之后的值和角速度信息疊加,而后進(jìn)行積分成角度信息,此角度信息一部分和陀螺儀角速度信息合成作為閉環(huán)反饋系統(tǒng)的輸入。將角度信息,角速度信息以及速度信息作為最終控制量疊加在一起作為電機(jī)輸出電壓控制量驅(qū)動電機(jī)運(yùn)行達(dá)到自平衡的目的。由于整個硬件系統(tǒng)使用兩個CPU進(jìn)行控制,因此對此分別進(jìn)行介紹。

硬件部分設(shè)計語音模塊LD3320的控制引腳有四個,分別是TXD,RXD、GND以及VCC引腳,其中TXD與RXD主要實現(xiàn)數(shù)據(jù)傳輸通信。P1.1-P1.4四個端口是通用10口輸出,用來檢測語音信號的輸出。如果語音模塊正確識別語音信號,那么對應(yīng)的這四個管腳P1.1-P1.4會輸出相應(yīng)的低電平,從而單片機(jī)上與之對應(yīng)的端口,分別是P3.3-P3.6可以接收到低電平信號。而后將CPU1的p0.2到p0.5連接到CPU2的PC0-PC3上,控制機(jī)器人運(yùn)行。

軟件部分語音模塊采用VAD技術(shù)檢測語音信息,通過循環(huán)來識別語音信號。主控的CPU反復(fù)啟動識別,如果在一次識別中無結(jié)果,那么會再次啟動一次識別;如果識別有結(jié)果,將結(jié)果與語言庫里設(shè)置了四個詞語“停止”,“運(yùn)動”,“左轉(zhuǎn)”,“右轉(zhuǎn)”比較,相同則發(fā)信號給主CPU讓其運(yùn)動。然后再啟動下一次識別結(jié)果。算法流程如圖5所示。

3ATMEGA2560控制系統(tǒng)

ATMEGA2560是控制自平衡移動機(jī)器人的核心部分。包括和89C51進(jìn)行通訊,利用MPU6050獲取陀螺儀以及加速度信息,利用獲取的角度位置信息,控制電機(jī)L298N運(yùn)行。其硬件連接如圖6所示。MPU6050的12C通信接口SDA以及SCL分別與CPU的對應(yīng)接口相連,而后控制器端口PC3以及PC4控制電機(jī)速度,可以輸A.PWM脈寬調(diào)制信號來調(diào)節(jié)電機(jī)的速度。IN1和IN2控制電機(jī)的轉(zhuǎn)向。

3.1MPU6050傳感器數(shù)據(jù)獲取

Atmegal2560通過TWI(兩線串行總線)獲取MPU6050各個傳感器的數(shù)據(jù)信息。其中Atmegal2560作為主機(jī)(Master),而MPU6050作為從機(jī)(Slave)。MPU6050作為從機(jī)地址為OxDO,也就是說CPU讀取數(shù)據(jù)需要首先發(fā)送這個地址給從機(jī)。

而IIC讀寫的步驟如下所示。12C讀傳感器數(shù)據(jù)的步驟:1)主機(jī)發(fā)送START信號,告訴從機(jī)兩者需要通信。2)主機(jī)發(fā)送從機(jī)地址以及寫入數(shù)據(jù)的命令到從機(jī),等待從機(jī)響應(yīng)。3)從機(jī)響應(yīng)之后,主機(jī)發(fā)送需要讀取的寄存器地址給從機(jī),等待從機(jī)響應(yīng)。4)從機(jī)響應(yīng)之后,重新發(fā)送Start信號。5)主機(jī)發(fā)送從機(jī)地址以及讀取數(shù)據(jù)的命令到從機(jī),告訴從機(jī)讀取數(shù)據(jù)。等待從機(jī)響應(yīng)。6)讀取從機(jī)的數(shù)據(jù),對于多個數(shù)據(jù)則連續(xù)讀取數(shù)據(jù),多個數(shù)據(jù)之間需要有一定的等待時間。7)讀取完成之后,發(fā)送一個stop信號給從機(jī),告訴從機(jī)讀取數(shù)據(jù)結(jié)束,一次通信完成。

12C寫傳感器數(shù)據(jù)的步驟:1)主機(jī)發(fā)送START信號,告訴從機(jī)兩者需要通信。2)主機(jī)發(fā)送從機(jī)地址以及寫入數(shù)據(jù)的命令到從機(jī),等待從機(jī)響應(yīng)。3)從機(jī)響應(yīng)之后,主機(jī)發(fā)送需要寫入的寄存器地址給從機(jī),等待從機(jī)響應(yīng)。4)從機(jī)響應(yīng)之后,寫人相關(guān)的從機(jī)數(shù)據(jù),對于多個數(shù)據(jù)則連續(xù)寫人數(shù)據(jù),多個數(shù)據(jù)之間需要有一定的等待時間。5)寫人完成之后,發(fā)送一個stop信號給從機(jī),告訴從機(jī)寫人數(shù)據(jù)結(jié)束,一次通信完成。

為了驗證傳感器數(shù)據(jù)獲取情況,利用CVI編寫上位機(jī)通信界面,將MPU6050獲取數(shù)據(jù)傳輸?shù)缴衔粰C(jī)上。如圖7所示。

3.2電機(jī)控制

本設(shè)計中用到的電機(jī)是L298N,其硬件接口硬件連接與對應(yīng)的控制如圖所示。

電機(jī)的調(diào)速通過EN1,EN2輸入的PWM信號進(jìn)行調(diào)速,而這兩個端口的信號通過圖2的閉環(huán)系統(tǒng)軟件進(jìn)行設(shè)置。具體的原理是:電機(jī)的脈寬調(diào)制信號輸入L298N,IN1和IN2控制左電機(jī),IN3和IN4控制右電機(jī)。兩個IN口10狀態(tài)為正轉(zhuǎn),叭狀態(tài)為反轉(zhuǎn),11狀態(tài)為停止。利用這個原理實現(xiàn)移動機(jī)器人運(yùn)動狀態(tài)的控制。為例如,當(dāng)IN1為1

IN2為0時,左電機(jī)正轉(zhuǎn);當(dāng)IN3為1且IN4為0時,右電機(jī)正轉(zhuǎn);那么此時移動機(jī)器人的運(yùn)動狀態(tài)即為前進(jìn)。同理,可以實現(xiàn)移動機(jī)器人的左轉(zhuǎn)、右轉(zhuǎn)、后退和停止。

4整體軟件設(shè)計

4.1整體軟件設(shè)計

由于篇幅限制對于各個部分不再介紹,下面對于系統(tǒng)整體軟件設(shè)計以及速度控制PWM部分做介紹。

系統(tǒng)整體軟件設(shè)計如圖所示,首先初始化各個端口,而后進(jìn)人循環(huán),判斷P3.6端口是否為低電平,如果是則啟動自平衡車,而后獲取MPU6050傳感器的信息,對角速度信息進(jìn)行積分得到角度信息,將角度,角速度,加速度信息通過PID控制獲取一個速度控制電機(jī)運(yùn)動保持平衡。而后繼續(xù)循環(huán),如果獲取的信息是停止則結(jié)束運(yùn)動。如果是左轉(zhuǎn)右轉(zhuǎn)則控制機(jī)器人兩邊電機(jī)轉(zhuǎn)動速度不一致即可。

4.2PWM的PID控制

移動機(jī)器人的自平衡是通過傳感器獲取角度信息以及傾斜量而后通過PID閉環(huán)控制調(diào)整移動機(jī)器人電機(jī)運(yùn)行的速度達(dá)到自平衡的目的。因此PID控制是核心,本設(shè)計中首先每次獲取當(dāng)前的速度,而后為了防止抖動造成機(jī)器人的不平衡,所以采用速度互補(bǔ)濾波防止抖動。由圖2,可知PID控制的輸人時速度,角度以及角速度三者,通過移動機(jī)器人實際運(yùn)動調(diào)整PID控制的參數(shù),達(dá)到獲取一個較穩(wěn)定的脈寬輸出偏移量,而后結(jié)合小車是否轉(zhuǎn)彎參數(shù)來一起設(shè)置左右輪電機(jī)的速度達(dá)到穩(wěn)定的目的。

5結(jié)束語

如圖11所示,在實驗室環(huán)境中,搭建了一個移動機(jī)器人運(yùn)動環(huán)境,兩足平衡機(jī)器人在已經(jīng)搭建成的一個通道環(huán)境中,可以正常的按照語音指令行走,從而通過通道。

本文設(shè)計了一款可以實現(xiàn)自平衡的移動機(jī)器人控制系統(tǒng),該系統(tǒng)由

CPU構(gòu)成,每個CPU負(fù)責(zé)不同的工作,整個系統(tǒng)設(shè)計完成之后進(jìn)行了測試,測試結(jié)果說明了整個系統(tǒng)的正確性。

墨竹工卡县| 林州市| 寿光市| 金寨县| 岱山县| 翁源县| 和林格尔县| 册亨县| 浠水县| 突泉县| 温宿县| 武威市| 湟中县| 南丰县| 留坝县| 武城县| 丰县| 水富县| 资源县| 张家港市| 虞城县| 丘北县| 镶黄旗| 泽普县| 桑日县| 临洮县| 合山市| 靖西县| 宜黄县| 昌乐县| 囊谦县| 黑水县| 慈溪市| 昌都县| 林口县| 综艺| 瑞昌市| 沙田区| 共和县| 深水埗区| 和平区|