0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于ATmega128單片機(jī)實(shí)現(xiàn)自平衡機(jī)器人控制系統(tǒng)的應(yīng)用方案

電子設(shè)計(jì) ? 來源:單片機(jī)與嵌入式系統(tǒng) ? 作者:李紅義, 孫漢旭, ? 2021-04-11 11:05 ? 次閱讀

作者:李紅義, 孫漢旭, 賈慶軒

移動式機(jī)器人在各行各業(yè)具有廣泛的應(yīng)用,而輪式移動機(jī)器人由于具有結(jié)構(gòu)簡單、可控性強(qiáng)、成本低等優(yōu)點(diǎn),成為移動式機(jī)器人研究的一個(gè)主要方向。自平衡機(jī)器人采用水平布置的兩輪結(jié)構(gòu),本身是一個(gè)不穩(wěn)定體。也就是說,自平衡機(jī)器人在靜止?fàn)顟B(tài)下,不能保持平衡,車體總是要向前或向后傾倒;而在運(yùn)動狀態(tài)下,可以通過一定的控制策略使它達(dá)到動態(tài)平衡。

由于自平衡機(jī)器人具有內(nèi)在不穩(wěn)定性和結(jié)構(gòu)靈活性,國內(nèi)外機(jī)器人愛好者設(shè)計(jì)了多種結(jié)構(gòu)、外觀各異的自平衡機(jī)器人,嘗試采用各種控制策略使其達(dá)到自平衡控制。通常這類機(jī)器人采用姿態(tài)傳感器檢測機(jī)器人車體的傾倒角度和傾倒角速度,根據(jù)當(dāng)前機(jī)器人姿態(tài)控制伺服電機(jī)驅(qū)動電壓的轉(zhuǎn)向和轉(zhuǎn)速,從而使機(jī)器人保持平衡。該方式制作的自平衡機(jī)器人雖然控制性能良好,但成本高,不適合廣泛推廣。本文設(shè)計(jì)的機(jī)器人嘗試采用紅外測距傳感器測量車體與地面的距離,通過計(jì)算獲取機(jī)器人的姿態(tài)信息,進(jìn)而實(shí)現(xiàn)機(jī)器人的自平衡。

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

本文設(shè)計(jì)的自平衡機(jī)器人系統(tǒng)主要由機(jī)械行走裝置、控制系統(tǒng)和傳感器3部分組成,如圖1所示。

機(jī)械行走裝置主要由車體平臺、電機(jī)驅(qū)動器、直流無刷電機(jī)、齒輪減速機(jī)構(gòu)和車輪組成。機(jī)器人采用48 V電池供電,通過DC-DC模塊轉(zhuǎn)換為5 V和24 V電壓。其中,5 V提供給控制系統(tǒng)和傳感器,24 V提供給電機(jī)驅(qū)動器??刂葡到y(tǒng)以ATmega128單片機(jī)為主控制芯片,通過SJA1000擴(kuò)展CAN總線與電機(jī)驅(qū)動器通信。紅外測距傳感器的輸出是與距離成正比的模擬電壓值,輸入到單片機(jī)的A/D采樣端口進(jìn)行處理,從而得到距離信息。機(jī)器人的系統(tǒng)結(jié)構(gòu)框圖如圖2所示。

pIYBAGBudUeAX66sAAEokBTspBU129.png

2 姿態(tài)信息獲取

機(jī)器人的姿態(tài)信息包括傾倒的角度和角速度。如圖3所示,機(jī)器人左右兩側(cè)水平位置各安裝有1個(gè)紅外測距傳感器,可以測量與地面之間的距離d1和d2。當(dāng)機(jī)器人在豎直狀態(tài)時(shí),左右傳感器距離差為零。當(dāng)機(jī)器人傾倒時(shí),距離差與傾倒角度θ成函數(shù)關(guān)系如下:

sin θ=(d2-d1)/D

o4YBAGBudUGAfb43AAD5CdcTLzc941.png

其中,D為傳感器之間的距離。機(jī)器人在豎直動態(tài)控制時(shí)傾倒角度范圍較小,此時(shí)sinθ≈θ,即可由傳感器的距離信息得到機(jī)器人的傾倒角度。角速度可以通過θ對時(shí)間求導(dǎo)獲得。

選用的紅外測距傳感器為Sharp公司的GP2D12,輸出為0.4~2.4 V的模擬信號,對應(yīng)的測量距離為10~80 cm。在同一溫度下,傳感器的輸出與測量結(jié)果呈良好的線性關(guān)系,可以滿足自平衡機(jī)器人的要求。

3 控制系統(tǒng)設(shè)計(jì)

3.1 機(jī)器人平衡控制原理

當(dāng)車體偏離平衡位置(豎直位置)向前傾斜時(shí),傳感器采集信息并傳送到單片機(jī)進(jìn)行計(jì)算和判斷,車輪隨之作出響應(yīng)向前運(yùn)動,將車體向平衡位置調(diào)整;同樣當(dāng)車體向后傾斜時(shí),車輪將向后運(yùn)動。這樣機(jī)器人一直處在傾斜判斷、運(yùn)動調(diào)整的動態(tài)過程中,使車體始終保持在平衡位置附近,達(dá)到一種動態(tài)平衡。

3.2 控制系統(tǒng)硬件設(shè)計(jì)

控制系統(tǒng)主芯片選用Atmel公司基于RISC結(jié)構(gòu)的8位單片機(jī)ATmega128。它采用低功耗CMOS工藝;具有豐富的片上資源,包括4個(gè)定時(shí)器、4 KB的數(shù)據(jù)SRAM、128 KB的程序Flash、可外擴(kuò)至64 KB的E2PROM和8個(gè)10位ADC通道;擁有UART、SPI、I2C、JTAG接口,方便外部擴(kuò)展和傳感器的接入。

3.2.1 傳感信息輸入電路

傳感器信號通過放大器引入,通過設(shè)置反饋電阻(R1和R2)和輸出端電阻(R3和R4)的阻值可以使輸入的電壓值在要求的范圍內(nèi)。具體硬件電路如圖4所示。

o4YBAGBudTeAGUopAAC2z3O-wIA850.png

3.2.2 擴(kuò)展CAN通信電路

單片機(jī)與電機(jī)控制器采用CAN總線通信,CAN接口采用Philips公司的CAN物理層和鏈路層接口芯片SJA1000和PCA82C250。單片機(jī)直接控制SJA1000的AD0~AD7、ALE、INT引腳。SJA1000工作在Intel模式下,MODE腳接高電平,片選腳CS接地,始終處于選通狀態(tài)。擴(kuò)展CAN通信電路如圖5所示。單片機(jī)對SJA1000的操作主要是對寄存器的操作:一方面,對SJA1000的模式寄存器、命令寄存器、狀態(tài)寄存器、中斷寄存器、中斷允許寄存器、總線定時(shí)寄存器、輸出控制寄存器、時(shí)鐘分頻計(jì)數(shù)器進(jìn)行設(shè)置和檢測;另一方面,對收發(fā)緩沖區(qū)進(jìn)行讀寫,從而和CAN設(shè)備交換數(shù)據(jù)。

pIYBAGBudTCALXeBAAD5fPRLD6s416.png

3.3 控制系統(tǒng)軟件設(shè)計(jì)

自平衡機(jī)器人的控制系統(tǒng)需要實(shí)現(xiàn)以下功能:傳感器信息處理和機(jī)器人姿態(tài)信息計(jì)算,電機(jī)控制PID算法實(shí)現(xiàn)和CAN口的數(shù)據(jù)處理。系統(tǒng)控制流程如圖6所示。系統(tǒng)上電后從主函數(shù)開始執(zhí)行。主函數(shù)負(fù)責(zé)初始化控制器的I/O口、CAN口、控制周期定時(shí)器、A/D轉(zhuǎn)換器、各個(gè)中斷接收數(shù)據(jù)和發(fā)送數(shù)據(jù)模塊等。初始化完畢,控制周期定時(shí)器時(shí)間到后,傳感器信息輸入到A/D轉(zhuǎn)換器中進(jìn)行轉(zhuǎn)換,計(jì)算機(jī)器人的傾倒角度和傾倒角速度;然后調(diào)用PID算法計(jì)算電機(jī)控制數(shù)據(jù),并通過CAN口輸出給電機(jī)驅(qū)動器。

o4YBAGBudSqAaAuoAADspxpUNjU356.png

3.4 速度PID控制算法

機(jī)器人采用經(jīng)典的PID算法進(jìn)行平衡控制??刂葡到y(tǒng)采用典型的雙閉環(huán)控制結(jié)構(gòu)和前饋控制方法。速度環(huán)路設(shè)計(jì)有利于提高電機(jī)輸出速度精度。前饋控制主要是為了補(bǔ)償電機(jī)轉(zhuǎn)軸與車輪轉(zhuǎn)動軸以及傳動系統(tǒng)的間隙誤差,這些誤差是穩(wěn)定的、可以測量的。當(dāng)電機(jī)在正反轉(zhuǎn)變換時(shí),控制系統(tǒng)可以檢測到變換方向,經(jīng)過位置誤差環(huán)節(jié)調(diào)整后把確定的偏差補(bǔ)償量疊加到驅(qū)動器輸出端。這樣電機(jī)轉(zhuǎn)動的角度在原理基礎(chǔ)上增加了補(bǔ)償量,機(jī)械誤差得以修正。

采用PID控制算法公式如下:

o4YBAGBudSOACVe5AAA-SY2IPLU586.png

其中,u(k)為當(dāng)前調(diào)節(jié)器輸出量;u(k-1)為上一次調(diào)節(jié)器輸出量;△u(k)為當(dāng)前控制增量;e(k)為當(dāng)前控制誤差量;Kp為比例系數(shù);KI為積分系數(shù);Kd為微分系數(shù)。PID控制算法流程如圖7所示。圖中,ε為調(diào)試過程中設(shè)定的誤差值。

o4YBAGBudRmANRGkAADnP22aOUo010.png

4 實(shí) 驗(yàn)

利用該控制方法,對原理樣機(jī)進(jìn)行了多次實(shí)驗(yàn)。實(shí)驗(yàn)中,在機(jī)器人正上方水平位置安裝陀螺儀,以采集機(jī)器人的傾倒角度數(shù)據(jù)。實(shí)際測量角度信息隨時(shí)間變化的曲線如圖8所示。通過測得數(shù)據(jù)分析可以看到,機(jī)器人大致可以穩(wěn)定在0°附近,最大偏差為±2°。

pIYBAGBudQiASTjRAACnSZIQIoA697.png

結(jié) 語

本文設(shè)計(jì)了以ATmage128單片機(jī)為控制核心,采用紅外測距傳感器監(jiān)控的雙輪自平衡機(jī)器人,并搭建實(shí)驗(yàn)平臺進(jìn)行了控制試驗(yàn)。實(shí)驗(yàn)結(jié)果表明,該機(jī)器人可以通過有效的控制保持在豎直狀態(tài),并且在一定的角度范圍內(nèi)達(dá)到平衡。

責(zé)任編輯:gt

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6023

    文章

    44376

    瀏覽量

    628297
  • 控制系統(tǒng)
    +關(guān)注

    關(guān)注

    41

    文章

    6417

    瀏覽量

    110092
  • 機(jī)器人
    +關(guān)注

    關(guān)注

    210

    文章

    27838

    瀏覽量

    204574
收藏 人收藏

    評論

    相關(guān)推薦

    ATmega128系統(tǒng)模塊,設(shè)計(jì)一個(gè)數(shù)控雕刻機(jī)系統(tǒng)

    ATmega128單片機(jī)為主控芯片的控制主板與各模塊相連電路;軟件設(shè)計(jì)部分主要是利用AVR Studio開發(fā)環(huán)境編程,實(shí)現(xiàn)ATmega128
    發(fā)表于 02-05 10:07 ?3032次閱讀
    <b class='flag-5'>ATmega128</b><b class='flag-5'>系統(tǒng)</b>模塊,設(shè)計(jì)一個(gè)數(shù)控雕刻<b class='flag-5'>機(jī)</b><b class='flag-5'>系統(tǒng)</b>

    ATmega128單片機(jī)怎么學(xué)

    我是學(xué)習(xí)計(jì)算機(jī)科學(xué)與技術(shù)的,現(xiàn)在想做游歷機(jī)器人。剛接觸ATmega128單片機(jī),該怎么學(xué)?自己以前也沒學(xué)過單片機(jī)啊,連51都不懂。該怎么學(xué)?懇求大師指點(diǎn)
    發(fā)表于 10-13 15:26

    關(guān)于兩輪平衡機(jī)器人載重問題

    現(xiàn)在流行的平衡兩輪機(jī)器人,有人接觸過嗎,小弟最近想DIY一個(gè)玩玩,現(xiàn)在碰到了一個(gè)難點(diǎn),至今沒想通,這一類平衡機(jī)器人都是能夠載物的,不同的
    發(fā)表于 11-24 11:20

    用全志R128復(fù)刻平衡賽車機(jī)器人,還實(shí)現(xiàn)了三種不同的操控方式

    等狀態(tài)。 實(shí)現(xiàn)APP控制機(jī)器人競速中,必須要在準(zhǔn)確性和速度之間找到平衡。為了更好的反饋給平衡機(jī)器
    發(fā)表于 12-20 10:22

    采用ATMEGA128單片機(jī)結(jié)合CPLD 實(shí)現(xiàn)了對VGA顯示

    采用ATMEGA128 單片機(jī)結(jié)合CPLD 實(shí)現(xiàn)了對VGA 顯示器和激光打印機(jī)的控制作者:時(shí)永樂 王培勇 轉(zhuǎn)貼:微計(jì)算機(jī)信息摘要:用
    發(fā)表于 02-08 09:52 ?107次下載

    平衡機(jī)器人控制系統(tǒng)設(shè)計(jì)

    平衡機(jī)器人控制系統(tǒng)設(shè)計(jì) 引 言    移動式機(jī)器人在各行各業(yè)具有廣泛的應(yīng)用,而輪式移動機(jī)器人由于具有結(jié)構(gòu)
    發(fā)表于 12-15 17:25 ?1514次閱讀
    <b class='flag-5'>自</b><b class='flag-5'>平衡機(jī)器人</b>的<b class='flag-5'>控制系統(tǒng)</b>設(shè)計(jì)

    基于ATmega128的智能機(jī)器人小車控制系統(tǒng)設(shè)計(jì)

    摘要:基于ATmega128單片機(jī)的智能小車控制系統(tǒng)。通過光電編碼器實(shí)現(xiàn)對小車速度的測量并將速度值進(jìn)行bangbang+PID運(yùn)算.產(chǎn)生控制
    發(fā)表于 03-06 16:20 ?172次下載
    基于<b class='flag-5'>ATmega128</b>的智能<b class='flag-5'>機(jī)器人</b>小車<b class='flag-5'>控制系統(tǒng)</b>設(shè)計(jì)

    基于ATmage128單片機(jī)和紅外測距傳感器實(shí)現(xiàn)平衡機(jī)器人系統(tǒng)的設(shè)計(jì)

    移動式機(jī)器人在各行各業(yè)具有廣泛的應(yīng)用,而輪式移動機(jī)器人由于具有結(jié)構(gòu)簡單、可控性強(qiáng)、成本低等優(yōu)點(diǎn),成為移動式機(jī)器人研究的一個(gè)主要方向。平衡機(jī)器人
    的頭像 發(fā)表于 04-13 14:43 ?2278次閱讀
    基于ATmage<b class='flag-5'>128</b><b class='flag-5'>單片機(jī)</b>和紅外測距傳感器<b class='flag-5'>實(shí)現(xiàn)</b><b class='flag-5'>自</b><b class='flag-5'>平衡機(jī)器人</b><b class='flag-5'>系統(tǒng)</b>的設(shè)計(jì)

    基于JJBoover的遠(yuǎn)程控制ARDUNO平衡機(jī)器人資料下載

    基于JJBoover的遠(yuǎn)程控制ARDUNO平衡機(jī)器人資料下載
    發(fā)表于 08-30 09:59 ?2次下載

    如何制作WiFi控制平衡機(jī)器人

    電子發(fā)燒友網(wǎng)站提供《如何制作WiFi控制平衡機(jī)器人.zip》資料免費(fèi)下載
    發(fā)表于 10-28 11:35 ?12次下載
    如何制作WiFi<b class='flag-5'>控制</b>的<b class='flag-5'>自</b><b class='flag-5'>平衡機(jī)器人</b>

    使用TensorFlow對平衡機(jī)器人進(jìn)行手勢控制

    電子發(fā)燒友網(wǎng)站提供《使用TensorFlow對平衡機(jī)器人進(jìn)行手勢控制.zip》資料免費(fèi)下載
    發(fā)表于 11-09 11:25 ?0次下載
    使用TensorFlow對<b class='flag-5'>自</b><b class='flag-5'>平衡機(jī)器人</b>進(jìn)行手勢<b class='flag-5'>控制</b>

    Magicbit的平衡機(jī)器人

    電子發(fā)燒友網(wǎng)站提供《Magicbit的平衡機(jī)器人.zip》資料免費(fèi)下載
    發(fā)表于 11-24 11:15 ?0次下載
    Magicbit的<b class='flag-5'>自</b><b class='flag-5'>平衡機(jī)器人</b>

    基于Arduino UNO的平衡機(jī)器人

    平衡機(jī)器人,使用帶有 BluBug 和 Android 的車輪和 imu 6 軸傳感器平衡機(jī)器人。
    發(fā)表于 12-08 10:24 ?0次下載

    平衡機(jī)器人的構(gòu)建

    電子發(fā)燒友網(wǎng)站提供《平衡機(jī)器人的構(gòu)建.zip》資料免費(fèi)下載
    發(fā)表于 02-09 11:54 ?0次下載
    <b class='flag-5'>自</b><b class='flag-5'>平衡機(jī)器人</b>的構(gòu)建

    基于ATmega128的球管電壓控制系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

    電子發(fā)燒友網(wǎng)站提供《基于ATmega128的球管電壓控制系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn).pdf》資料免費(fèi)下載
    發(fā)表于 10-08 10:46 ?0次下載
    基于<b class='flag-5'>ATmega128</b>的球管電壓<b class='flag-5'>控制系統(tǒng)</b>設(shè)計(jì)與<b class='flag-5'>實(shí)現(xiàn)</b>