基于MSPM0G3507主控的一輛智能(平衡) 小車
1 項目目的及實現(xiàn)功能
一般在弱電領域,對單片機學習和使用的通用路線就是使用開發(fā)板進行調(diào)試,但是開發(fā)板有的大多是一些板載零件,沒有相應的執(zhí)行機構。然而我們電子工程師常常需要一些執(zhí)行機構進行調(diào)試/ 分析/ 驗證圍繞單片機的設計方案;
小車(vehicle) 作為科研工程中一個常見的機電一體化執(zhí)行機構模型,其包含了運動學和動力學兩個領域的物理和數(shù)學知識,所以摸索使用一款新單片機時,可選一個小車做工程實踐平臺,特點如下:
①能評估選型一款MCU 硬件外設資源(如定時器PWM,ADC,I2C,SPI,SDIO,UART,GPIO,CAN,LIN 等);
② 能評估考量MCU功耗(如工作電壓,電流,溫度等);
③能通過經(jīng)典PID 等算法測試MCU 的數(shù)據(jù)處理能力。
不夸張地說,一輛可稱為智能的小車(vehicle),硬件上大多會將一款MCU 所有的功能和外設都使用了,本項目用一款TI 的低功耗新產(chǎn)品MCU 主控MSPM0 G3507 來實現(xiàn)控制一輛小車(注: 不等同于mini 玩具車),在MSPM0G3507上運用PID控制算法和卡爾曼濾波算法完成小車軟硬件設計實踐平臺,讓其不僅可前后運動/轉(zhuǎn)向運動,還可平衡態(tài)靜止等運動態(tài)。此項目對于學習使用當今低碳時代下的電子領域的一款新MCU 應該還是很有實踐意義的。
2 項目整體設計思路
2.1 機械結構
此單片機實踐項目主要應用MSPM0G3507 主控對一個機械平臺- 小車(vehicle)進行控制,使小車能在前進/ 后退/ 左轉(zhuǎn)/ 右轉(zhuǎn)運動時,仍然保持動態(tài)直立平衡狀態(tài),所以首先采用CAD 設計圖紙,制造組裝一個小車機械結構平臺,最終設計如圖1 所示:
2.2 硬件:MCU主控選型
硬件電子部分主要基于TI LP-MSPM0G3507開發(fā)板設計,如圖示,主控芯片是TI(德州儀器)公司的新產(chǎn)品MSPM0G3507.
MCU介紹:
MSPMOG3507器件提供具有內(nèi)置錯誤修正碼(ECC)的128KB 嵌入式閃存程序存儲器和具有硬件奇偶校驗的32KB SRAM。這些器件還包含一個存儲器保護單元、7 通道DMA、數(shù)學加速器和各種高性能模擬外設,例如兩個12 位4MSPS ADC、一個可配置內(nèi)部共亭電壓基準、一個12 位DAC、三個具有內(nèi)置基準DAC 的高速比較器、兩個具有可編程增益的零漂移運算放大器和一個通用放大器。這些器件還提供智能數(shù)字外設,例如兩個16 位高級控制計時器、三個16 位通用計時器、一個32 位高分辨率計時器、兩個窗口式看門狗計時器以及一個具有警報和日歷模式的RTC。這些器件可提供數(shù)據(jù)完整性和加密外設(AES、CRC、TRNG)以及增強型通信接口(四個UART、兩個12C、兩個SPI 和一個CAN 2.0/FD)。
器件特性包括:
● 工作電壓為1.62V至3. V
● 具有存儲器保護單元且頻率高達80MHz的ARM32 位Cortex-M0+
● 具有內(nèi)置ECC 的128KB 閃存和具有硬件奇偶校驗的32KB SRAM
● 兩個12 位4MSpS ADC
● 12 位DAC
● 兩個零漂移、零交叉斬波運算放大器
● 兩個16 位高級控制計時器
● 三個16 位通用計時器
● 一個32 位高分辨率計時器
● 60 個GPIO 引腳
LQFP64引腳排列(頂視圖)
2.3 硬件:開發(fā)板平臺
LP-MSPM0G3507 開發(fā)板特性
板載XDS110 調(diào)試探針
可用于超低功耗調(diào)試的EnergyTrace 技術
用于用戶交互的2 個按鈕、1 個LED 和1 個RGB
LED
溫度傳感器電路
光傳感器電路
用于ADC(高達4Msps)評估的外部OPA2365(默
認緩沖模式)
板載32.768 kHz 和40 MHZ 晶體
ADC 輸入的RC 濾波器(默認未安裝)
開發(fā)板硬件框圖
2.4 硬件框圖
小車系統(tǒng)硬件圖
小車各模塊信號流及供電
2.5 硬件實物
本項目硬件板卡主要圍繞TI LP-MSPM0G3507 開發(fā)板進行二次開發(fā)擴展板SHEILD-PCBA,完成小車執(zhí)行機構所需的外圍器件的實物如下(已經(jīng)過二次PCB集成)
2.6 硬件:開發(fā)板原理圖概覽
總體概覽
MSPM0G3507最小系統(tǒng)電路圖
最小系統(tǒng)-晶振原理圖
2.8 軟件部分:軟件流程圖
基于MSPM0G3507主控的智能(平衡)小車
2.8.1 軟件部分: 核心算法介紹
此小車項目選擇簡單的串級PID 算法,所謂串級PID類似于串聯(lián),它將PD直立環(huán)(balance)、PI速度環(huán)(velocity)和PD轉(zhuǎn)向環(huán)(turn)結果分別計算最后相加。得到輸出左右輪的PWMA 和PWMB 輸出。其極性代表轉(zhuǎn)向。三個環(huán)量“你追我趕”,“相互制約”才能保證一個動態(tài)穩(wěn)定的系統(tǒng),具體計算公式如下:
其中直立環(huán)使用比例+ 微分變量(PD)進行控制,比例系數(shù)計算小車傾角與平衡位置的差(Bias),而微分系數(shù)計算小車俯仰角的加速度。小車的直立情況與積分量無關,主要與其位置和加速度有關,具體計算公式如下:
速度環(huán)使用優(yōu)化后的限幅比例+ 積分變量(PI)進行控制,比例系數(shù)計算小車左右輪速度之和和零之間差值(Encoder_Least),積分系數(shù)計算小車速度差累加和(Encoder_Integral)。由于速度控制與小車的加速度幾乎無關,所以只是用PI控制,具體公式如下:
2.8.2 軟件部分:PID算法運行過程
2.8.3 軟件部分:PID算法調(diào)試步驟
參數(shù)整定:
平衡小車的具體參數(shù)受到車體結構和地面傾斜角度的影響,參數(shù)整定是一個極為枯燥耗時的工作。參數(shù)整定沒有好的方法,只能通過不斷嘗試,用“夾逼準則”才能找到最好的值。換言之,好的參數(shù)就是大量時間堆積出來的結果,學習使用PID 對于參數(shù)的調(diào)節(jié)不過分追求。但調(diào)出一個能用的參數(shù)也許花費點的時間,這里簡單敘述一下參數(shù)調(diào)整的過程。對于串級PID 我們一般先調(diào)節(jié)直立環(huán),再調(diào)節(jié)速度環(huán),在調(diào)節(jié)完這兩個環(huán)節(jié)之后小車就能很好地走直線了,最后調(diào)節(jié)轉(zhuǎn)向環(huán),用于調(diào)節(jié)轉(zhuǎn)向。每個環(huán)的功能如下圖所示:
當然其他IDE 如IAR Embedded Workbench? IDE和Keil?μVision? IDE也可進行正常調(diào)試MCU。MSPM0G3507軟件開發(fā)的特色:低門檻,無需環(huán)境就可云IDE開發(fā)調(diào)試,測試用例程序可以直接參照右圖調(diào)試;
本項目采用國內(nèi)開發(fā)人員使用較多的Keil MDKIDE(V5.39)
安裝好MSPM0G3507軟件支持包
安裝好TI MCU專用Sysconfig配置工具KEIL IDE的Tools工具欄
配置MSPM0G3507的Debug為CMSIS-DAP
配置MSPM0G3507專用XDS110板載調(diào)試器(LPMSPM0G3507開發(fā)板板載)
配置MSPM0G3507的Flash大小為128KB
打開安裝好的
例程,進行配置。syscfg
配置本工程MCU底層文件.syscfg
打開main文件,如圖
添加初始化各部外設代碼
配置定時器產(chǎn)生PWM
配置IIC初始化MPU6050
配置IIC初始化OLED初始化;
配置GPIO按鍵初始化;
添加/移植PID算法代碼;
2.10 MCU固件最終調(diào)試及測試結果
啟動后配置。syscfg文件中各GPIO引腳與自制驅(qū)動板一致后編譯程序,將PID代碼拷貝到工程中。參考前述方法進行整定參數(shù)。不斷調(diào)試代碼,進行如下測量項目,驗證是否達標。
小車平衡態(tài)實際調(diào)試視頻
基礎測試:
高級測試:
3 總結
本實踐項目采用MSPM0G3507 作為80MHz主控芯片對小車進行MCU控制,對MPU6050 實現(xiàn)姿態(tài)角解算輸出,使用DMOS 芯片進行直流電機驅(qū)動調(diào)速,還采用霍爾編碼器進行脈沖計數(shù)實現(xiàn)了小車左右電機速度讀取,霍爾編碼器的反饋信號可達到速度環(huán)的控制。反饋是控制的核心,此項目中MCU微控制器,主要作用就是獲取小車的反饋信息,做出相應的控制。
采用MSPM0G3507低功耗單片機制作小車,做到了相比以往3.3 V供電的ARM Cortex-M3 系列單片機電壓降低至1.62 V仍然可以工作,且需要要的頻率80MHz 可以滿足PID 控制運算需要,運算功耗也明顯降低。低碳時代背景下,使用如TI 的MSPM0G3507 系列低功耗MCU 研發(fā)產(chǎn)品是時代趨勢。當下看來MSPM0G3507 比XXX32F103R系列ARM Cortex-M3單片機更具性價比。
(本文來源于《EEPW》202501)
評論