吴忠躺衫网络科技有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于ATmage128單片機和紅外測距傳感器實現自平衡機器人系統的設計

電子設計 ? 來源:單片機與嵌入式系統應用 ? 作者:李紅義,孫漢旭, ? 2021-04-13 14:43 ? 次閱讀

作者:李紅義,孫漢旭,賈慶軒 來源:單片機嵌入式系統應用

引 言

移動式機器人在各行各業具有廣泛的應用,而輪式移動機器人由于具有結構簡單、可控性強、成本低等優點,成為移動式機器人研究的一個主要方向。自平衡機器人采用水平布置的兩輪結構,本身是一個不穩定體。也就是說,自平衡機器人在靜止狀態下,不能保持平衡,車體總是要向前或向后傾倒;而在運動狀態下,可以通過一定的控制策略使它達到動態平衡。

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

1 系統結構

本文設計的自平衡機器人系統主要由機械行走裝置、控制系統和傳感器3部分組成,如圖1所示。

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

基于ATmage128單片機和紅外測距傳感器實現自平衡機器人系統的設計

2 姿態信息獲取

機器人的姿態信息包括傾倒的角度和角速度。如圖3所示,機器人左右兩側水平位置各安裝有1個紅外測距傳感器,可以測量與地面之間的距離d1和d2。當機器人在豎直狀態時,左右傳感器距離差為零。當機器人傾倒時,距離差與傾倒角度θ成函數關系如下:

sinθ=(d2-d1)/D

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

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

3控制系統設計

3.1 機器人平衡控制原理

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

3.2控制系統硬件設計

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

3.2.1傳感信息輸入電路

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

3.2.2擴展CAN通信電路

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

3.3控制系統軟件設計

自平衡機器人的控制系統需要實現以下功能:傳感器信息處理和機器人姿態信息計算,電機控制PID算法實現和CAN口的數據處理。系統控制流程如圖6所示。系統上電后從主函數開始執行。主函數負責初始化控制器的I/O口、CAN口、控制周期定時器、A/D轉換器、各個中斷接收數據和發送數據模塊等。初始化完畢,控制周期定時器時間到后,傳感器信息輸人到A/D轉換器中進行轉換,計算機器人的傾倒角度和傾倒角速度;然后調用PID算法計算電機控制數據,并通過CAN口輸出給電機驅動器。

3.4速度PID控制算法

機器人采用經典的PID算法進行平衡控制。控制系統采用典型的雙閉環控制結構和前饋控制方法。速度環路設計有利于提高電機輸出速度精度。前饋控制主要是為了補償電機轉軸與車輪轉動軸以及傳動系統的間隙誤差,這些誤差是穩定的、可以測量的。當電機在正反轉變換時,控制系統可以檢測到變換方向,經過位置誤差環節調整后把確定的偏差補償量疊加到驅動器輸出端。這樣電機轉動的角度在原理基礎上增加了補償量,機械誤差得以修正。

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

u(k)=u(k-1)+△u(k)

u(k)=Kp[e(k)-e(k-1)]+K1e(k)+Kd[e(k)-2e(k-1)+e(k-2)]

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

4 實 驗

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

結 語

本文設計了以ATmage128單片機為控制核心,采用紅外測距傳感器監控的雙輪自平衡機器人,并搭建實驗平臺進行了控制試驗。實驗結果表明,該機器人可以通過有效的控制保持在豎直狀態,并且在一定的角度范圍內達到平衡。

責任編輯:gt

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 傳感器
    +關注

    關注

    2553

    文章

    51390

    瀏覽量

    756568
  • 單片機
    +關注

    關注

    6043

    文章

    44622

    瀏覽量

    638522
  • 機器人
    +關注

    關注

    211

    文章

    28641

    瀏覽量

    208399
收藏 人收藏

    評論

    相關推薦

    基于ATmega128單片機實現平衡機器人控制系統的應用方案

    移動式機器人在各行各業具有廣泛的應用,而輪式移動機器人由于具有結構簡單、可控性強、成本低等優點,成為移動式機器人研究的一個主要方向。平衡機器人
    的頭像 發表于 04-11 11:05 ?4133次閱讀
    基于ATmega<b class='flag-5'>128</b><b class='flag-5'>單片機</b><b class='flag-5'>實現</b><b class='flag-5'>自</b><b class='flag-5'>平衡機器人</b>控制<b class='flag-5'>系統</b>的應用方案

    atmage128 AVR單片機 JTAG仿真下載正常 仿真時出錯

    atmage128 AVR單片機 JTAG仿真下載正常 仿真時出/C:\Users\user\Documents\Tencent Files\524818188\Image\IF{`YJ5[A9B[H)FDWL5FSTK.jp
    發表于 01-18 19:05

    關于兩輪平衡機器人載重問題

    能夠根據不同重物自主調整平衡的角度,從而使機器人載物時,不會由于重心的變化而朝同一個方向運動呢??之前做過平衡相關的東西,
    發表于 11-24 11:20

    基于單片機紅外測距系統設計與實現

    成學長,今天向大家介紹一個學長做的單片機項目基于單片機紅外測距系統設計與實現大家可用于 課程設
    發表于 11-18 09:17

    制作一個迷你平衡機器人

    我最終所做的就是使用我為迷你平衡機器人準備的相同 PCB,設計一個小型 3D 打印體并使用更大的步進電機,這樣就可以完成我的想法。機器人應該從帶有藍牙連接的自制遙控獲取信息,這樣我們就可以四處走動
    發表于 07-07 07:17

    用全志R128復刻平衡賽車機器人,還實現了三種不同的操控方式

    更上一層樓。 硬件設計 本項目中的平衡賽車機器人的硬件設計結構非常簡單,硬件部分主要由R128開發板和幾個驅動模塊組成。 供電模塊
    發表于 12-20 10:22

    基于單片機傳感器機器人設計與實現

    本設計基于單片機及多種傳感器,完成了一個自主式移動機器人的制作。單片機作為系統檢測和控制的核心,實現
    發表于 08-05 09:54 ?49次下載

    平衡機器人的控制系統設計

    平衡機器人的控制系統設計 引 言    移動式機器人在各行各業具有廣泛的應用,而輪式移動機器人由于具有結構
    發表于 12-15 17:25 ?1549次閱讀
    <b class='flag-5'>自</b><b class='flag-5'>平衡機器人</b>的控制<b class='flag-5'>系統</b>設計

    如何利用超聲波傳感器制作一個輪式平衡機器人

    這是一個輪式平衡機器人。由 Arduino UNO 供電并由超聲波傳感器平衡,同時它能夠自我保持垂直平衡
    的頭像 發表于 05-25 17:16 ?3207次閱讀
    如何利用超聲波<b class='flag-5'>傳感器</b>制作一個輪式<b class='flag-5'>自</b><b class='flag-5'>平衡機器人</b>

    如何制作WiFi控制的平衡機器人

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

    使用TensorFlow對平衡機器人進行手勢控制

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

    Magicbit的平衡機器人

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

    基于Arduino UNO的平衡機器人

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

    平衡機器人的構建

    電子發燒友網站提供《平衡機器人的構建.zip》資料免費下載
    發表于 02-09 11:54 ?0次下載
    <b class='flag-5'>自</b><b class='flag-5'>平衡機器人</b>的構建

    二輪平衡機器人開源設計

    電子發燒友網站提供《二輪平衡機器人開源設計.zip》資料免費下載
    發表于 06-12 10:43 ?2次下載
    二輪<b class='flag-5'>自</b><b class='flag-5'>平衡機器人</b>開源設計
    大发888官方网站| 赌博游戏网站| 赌百家乐官网的下场| 作弊百家乐官网赌具价格| 百家乐官网等投注网改单| 罗盘24山度数| 好运来百家乐的玩法技巧和规则| 12bet备用| 百家乐交流群号| 百家乐官网打印机破解| 长江百家乐官网的玩法技巧和规则| 百家乐官网网上真钱娱乐场开户注册| 贵宾百家乐官网的玩法技巧和规则 | 大发888娱乐城娱乐城| 百家乐官网赢钱绝技| 24山风水 九运| 大发888yulecheng| 3d俄罗斯轮盘| 广发百家乐官网的玩法技巧和规则 | 百家乐的保单打法| 大发888官方授权网| 澳门百家乐官网什么规则| 百家乐视频游戏掉线| 威尼斯人娱乐城首存| 商丘市| 百家乐分析软体| 456棋牌游戏| 网络百家乐官网的陷阱| 百家乐开户最快的平台是哪家| 大发娱乐城| 运城百家乐官网的玩法技巧和规则 | 百家乐试用软件| 柬埔寨百家乐的玩法技巧和规则| 夏津县| 澳门百家乐赢钱公式不倒翁| 注册娱乐城送彩金| 休闲百家乐官网的玩法技巧和规则 | 圣淘沙百家乐官网游戏| 百家乐大眼仔路| 皇冠投注网| 百家乐真钱游戏下载|