基於STM32和MPU-6050的兩輪自平衡小車系統設計與實現

2021-02-20 單片機及C語言學習
引言

兩輪自平衡小車系統類似於倒立擺系統,具有多變量、非線性、強耦合等特點,是研究各種控制方法的理想平臺。兩輪自平衡小車系統的控制過程是微控制器對姿態檢測傳感器和編碼器等採集的數據進行分析處理,計算出使系統恢復平衡的實時控制量,從而驅動電機實現系統的動態平衡。

針對小車系統的複雜性,本文提出了將卡爾曼濾波算法和雙閉環PID控制算法相結合的方法,既利用卡爾曼濾波算法對MPU-6050傳感器採集的傾斜角度和角速度數據進行融合,得到小車平衡姿態的最優估計值,又利用以姿態信息、速度為反饋控制量構成雙閉環PID控制算法,再結合採用高性能STM32F103C8T6作為主控制器,從而提高兩輪小車系統穩定性和抗幹擾能力。

1、系統的硬體設計

系統的硬體電路結構框圖如圖1所示,其硬體電路主要由主控制器模塊、姿態檢測模塊、直流電機驅動模塊、編碼器及電源模塊等幾部分構成。電源模塊負責系統各個模塊控制電路的電源。主控制器模塊是系統的控制核心,用來接收傳感器模塊採集的數據,對數據進行處理及運算,將控制信號輸出給直流電機驅動模塊。姿態檢測模塊實時地對小車角速度及角加速度進行採集。直流電機驅動模塊負責將主控制器輸出的PWM信號轉換為控制信號驅動2個直流電機的轉速和方向。編碼器負責測量直流電機的速度和方向,將測量數據反饋給主控制器,從而形成閉環控制。

圖1  系統的硬體電路結構框圖

1.1、電源模塊

本系統選用的直流電機工作電壓為12V,因此採用三節3.7V可充電電池構成12V直流電源。但STM32主控制器和MPU-6050需要的是3.3V直流電源,因此選用LM2596SDC-DC降壓模塊得到3.3V電源。

1.2、主控制器模塊

本系統選用意法半導體公司的STM32F103C8T6作為主控制器,該控制器是一種基於Cortex-M3內核的32bCPU,最高工作頻率為72MHz,片上集成32~512kB的Flash存儲器,6~64kB的SRAM存儲器。片上集成了SPI,I2C和USART等通信接口,方便對MPU-6050姿態檢測傳感器的數據進行採集。含有7個定時器,可輸出多路PWM信號使得電機驅動模塊獲得穩定的PWM波形。

1.3、姿態檢測模塊

本系統中姿態檢測模塊選用的是美國InvenSense公司的MPU-6050,MPU-6050為全球首例整合性6軸運動處理器,整合了3軸陀螺儀和3軸加速度計,能夠準確的對小車的姿態進行實時檢測[4]。該處理器的角速度感測範圍為±250、±500、±1000與±2000°/s,加速度感測範圍為±2g、±4g、±8g與±16g,加速度感測範圍可通過編程來控制[5]。MPU-6050可在不同電壓下工作,VDD供電電壓為(2.5±0.125)V、(3.0±0.15)V或(3.3±0.165)V,本系統中為MPU-6050提供的是3.3V直流電源。MPU-6050模塊的電路如圖2所示,本系統中MPU-6050作為從機使用,使用SDA和SCL埠和主機STM32進行通信,MPU-6050檢測的數據經過內置的16位AD轉換器進行轉換,然後將16位數字量通過I2C總線接口發送給主機。

圖2  MPU-6050模塊的電路

文章來自:電子發燒友

相關焦點

  • (2-3合刊) 基於MEMS慣性傳感器的兩輪自平衡小車設計
    摘要:著重分析了兩輪自平衡小車的設計原理與控制算法,採用卡爾曼濾波算法融合陀螺儀與加速度計信號,得到系統姿態傾角與角速度最優估計值,通過雙閉環數字PID 算法實現系統的自平衡控制。設計了以MPU-6050傳感器為姿態感知的兩輪自平衡小車系統,選用8位單片機HT66FU50A為控制核心處理器,完成對傳感器信號的採集處理、車身控制以及人機互動的設計,實現小車自主控制平衡狀態、運行速度以及轉向角度大小等功能。
  • STM32實現的兩輪自平衡車,藍牙APP遙控(原理圖、原始碼、APP、視頻)
    兩輪自平衡車特點:1、小車底盤使用的是一體成型的鈑金件,且表面做了黑色陽極化處理,更耐髒,更堅固,而非其他的使用亞克力固定電機座的做法。2、上兩層使用黑色亞克力,與底盤渾然一體,更加時尚美觀。3、電機光柵碼盤有保護蓋,避免了小車行進碰撞導致損壞光柵,如果光柵損壞了,小車想再站起來就不可能了。
  • 四軸飛行器、計步器應用傳感器-MPU6050模塊的使用詳解
    InvenSense 公司提供了一套基於DMP的運動處理驅動庫,可大大降低單片機對動處理運算的負荷,同時也大大降低了編程難度。MPU6050配合官方提供的運動處理驅動庫,可以容易地獲取出飛控系統融合演算數據;同時也可以計步傳感器,通過調用驅動庫相應的函數,獲取運動步數、運動時間等數據。
  • 新手入門超聲自平衡小車最佳方案
    在我以Arduino + MPU6050 + L298N($2.3338)為核心做完後,閒得沒事幹,就想做一款成本低,易上手,最小配置和最基本功能的自平衡小車,其目的就是給那些沒有什麼經驗的剛入行的新手們提供一個入門的解決方案。
  • 使用Arduino開發板實現與MPU6050陀螺儀傳感器連接的方法
    引腳配置Vcc: - 此引腳用於向MPU6050模塊供電,相對於地GND: - 這是接地引腳SDA:-SDA引腳,用於控制器和mpu6050模塊之間的數據傳輸SCL: - SCL引腳,用於時鐘輸入XDA: - 這是傳感器I2C SDA數據線,用於配置和讀取外部傳感器((
  • 正點原子-戰艦V3第三十七章 MPU6050 六軸傳感器實驗
    本章,我們介紹當下最流行的一款六軸(三軸加速度+三軸角速度(陀螺儀))傳感器:MPU6050,該傳感器廣泛用於四軸、平衡車和空中滑鼠等設計,具有非常廣泛的應用範圍。使用內置的 DMP,大大簡化了四軸的代碼設計,且 MCU 不用進行姿態解算過程,大大降低了 MCU 的負擔,從而有更多的時間去處理其他事件,提高系統實時性。使用 MPU6050 的 DMP 輸出的四元數是 q30 格式的,也就是浮點數放大了 2 的 30 次方倍。
  • 13個基於STM32的經典項目設計實例,全套資料~
    4.基於ARM-STM32的兩輪自平衡小車小車直立和方向控制任務都是直接通過控制小車兩個電機完成的。假設小車電機可以虛擬地拆解成兩個不同功能的驅動電機,它們同軸相連,分別控制小車的直立平 衡、左右方向。
  • 基於CMOS HMC5883 MPU6050的模擬滅火訓練系統
    編者按:隨著信息技術和虛擬實境技術的發展, 一些具有一定風險和成本較高的訓練項目可以利用虛擬實境技術通過計算機模擬現場環境的方法代替實現。本文主要設計並實現了一種基於CMOS攝像頭定位,HMC5883+MPU6050檢測航姿的模擬滅火訓練系統。
  • 使用樹莓派做兩輪自平衡車(一)
    為什麼要用樹莓派做平衡車呢?原因主要有下面幾點:第一, 我不忍心再讓它吃灰了;第二, 我想學習linux的應用開發;第三, 我想學習linux的驅動開發;第四, 樹莓派可玩性和可擴展性高;第五, 切實體會下嵌入式linux開發與裸機開發的區別,對比一下它們的優缺點;第六, 看看自己到底能不能做出個東西來。
  • STM32l151帶MPU6050中斷喚醒並發送數據到雲平臺
    最近在調試STM32L151帶mpu6050的中斷喚醒的項目,下面寫一下項目經歷:1.首先貼出我的主函數int main(void){   SystemInit();delay_init(72);  //初始化延時函數
  • 病房呼叫系統的軟體設計_單片機病房呼叫系統的設計 - CSDN
    STM32系列給MCU用戶帶來了前所未有的自由空間,提供了全新的32位產品選項,結合了高性能、低功耗、低電壓等特性,同時保持了高集成度和易於開發的優勢。不會stm32,那你還不好意思來應聘硬體工程師? stm32的學習資料多是零零散散的,電路城先將stm32資料做了一個整合,也將於STM32單片機的精彩設計實例做了一個匯總,適合新手迅速上手,也適合高手做創作。
  • MPU6050移植讀取數據時出現FIFO溢出問題解析
    MPU-6000(6050)為全球首例整合性6軸運動處理組件,相較於多組件方案,免除了組合陀螺儀與加速器時間軸之差的問題,減少了大量的封裝空間。   MPU-6000(6050)的角速度全格感測範圍為±250、±500、±1000與±2000°/sec (dps),可準確追蹤快速與慢速動作,並且,用戶可程式控制的加速器全格感測範圍為±2g、±4g±8g與±16g。產品傳輸可透過最高至400kHz的IIC或最高達20MHz的SPI(MPU-6050沒有SPI)。
  • 基於STM32的重力感應無線智能遙控小車設計
    本設計首先採集手持遙控端的傾角信息並進行處理、生成指令,然後無線發送給智能小車,賦予智能小車更靈活的運動狀態和更寬廣的運動範圍。設計靈活,操作方便,控制穩定,製作成本低,可應用於視線可觀察但人體涉及不到的區域,可製作成高端智能玩具,或應用於工業控制,與實際相結合,有良好的現實意義和市場經濟價值。
  • 電子類-單片機類畢業設計論文創新選題
    基於51單片機的多點溫度採集控制系統基於STC89C52的智能人性化鬧鐘基於風阻的機翼俯仰角模擬控制研究基於STC89C52的智能尋跡避障小車的設計基於STM32和SIM900A的煤氣洩漏報警器設計基於STC89C52的數字脈搏測量儀設計基於ZYNQ-7000 SoC的智能尋跡小車基於52
  • 基於STM32四軸飛行器參考電路設計
    四軸飛行器不但實現了直升機的垂直升降的飛行性能,同時也在一定程度上降低了飛行器機械結構的設計難度。四軸飛行器的平衡控制系統由各類慣性傳感器組成。  系統方案  本設計採用STM32F4作為核心處理器,該處理器內核架構 ARM Cortex-M4,具有高性能、低成本、低功耗等特點。
  • 基於STM32的四旋翼飛行器控制系統
    飛行控制系統是四旋翼飛行器的核心部分,其性能的好壞決定了整個系統的性能。近年來,微小型四旋翼無人機的自主飛行控制得到了研究人員的廣泛關注。隨著計算機技術和電子技術的發展,國內的小型飛行器研究開發工作逐漸升溫,許多公司形成了產業。例如大疆公司將四軸飛行器等多軸飛行器實現了商業化應用。國內研究的重點主要為三個方面:姿態控制、傳感器技術發展以及新材料的應用、電池領域技術的研究。
  • 平衡車是什麼?電動平衡車的原理是怎樣的?
    利用車體內部的陀螺儀和加速度傳感器,來檢測車體姿態的變化,並利用伺服控制系統,精確地驅動電機進行相應的調整,以保持系統的平衡。是現代人用來作為代步工具、休閒娛樂的一種新型的綠色環保的產物。 隨著人們環保意識的加強,電動車的數量與日俱增。與此同時,科學家經過潛心的研究,終於開發出新款兩輪電動平衡車。
  • 技術培訓 | STM32MP1產品入門與異構多核通信開發
    209MHz的 Arm Cortex-M4(250 DMIPS),支持ARM TrustZone,嵌入3D圖形處理器(GPU),藉助Cortex-A7上 Linux系統的豐富軟體以及Cortex-M4上STM32 Cube的成熟生態, STM32MP1適合工業製造、消費電子、智能家居、醫療應用等多個領域的應用開發。
  • 基於STM32的智能尋跡避障小車(完整版)
    基於STM32的智能尋跡避障小車(完整版) 使用舵機+超聲波多個方向避障 ,ST188尋跡,OLED顯示工作模式。 本文介紹了一款以意法半導體公司生產的STM32為核心控制器,在MDK4.70軟體開發平臺下設計開發的智能小車。
  • 【項目分享】基於stm32和mpu9250的usb hid鍵盤、滑鼠、遊戲控制器
    基於STM32+MPU9250的重力感應遊戲控制器使用STM32CubeMX配置了Nucleo-L476RG,開發了USB HID