孫二威 吳振磊 李笑笑 王軒


摘要:本文設計了一款基于CORTEX-M3內核的智能平衡車,其主控芯片為STM32 F103C8。利用MPU6050模塊獲取小車的角速度和加速度,據此感知小車的運行姿態,通過PID算法減小小車的平衡誤差,利用電機驅動讓小車進行前進后退等操作,并且通過調整姿態來保證加速度計在一個穩定的范圍。該小車可以通過紅外循跡或者手動遙控來進行移動,實時監測當前環境的光強度值和溫度值,并通過藍牙模塊發送到手機端應用程序,使用戶可以方便的獲取所需數據信息。本設計采用模塊化設計,設計難度適中,成本較低,易于維護,使用方便。
關鍵詞:CORTEX-M3;STM32;智能平衡車;
中圖分類號:TP273
1 ? 引言
近幾年,隨著智能設備的高速發展,人工智能和智能化等詞匯愈發頻繁的出現在我們的視野中。智能設備不論在國內還是國外都備受關注,在家居、辦公、旅行、運動等諸多方面應用廣泛。而智能平衡車更是可以方便人們的生活或者工作,例如目前已經有快遞公司采用可循跡的智能車進行包裹的配送,也有餐飲行業用小車來替代人工傳菜。此外,智能小車還可以應用在地質勘測、人員搜救,尤其是那些空間狹小,人員不方便進入或者有較大危險性的環境。
兩輪平衡車,在設計上一方面節約了制造成本,另一方面減少了小車體積,使其更輕便,行動更快捷,功耗更低,并且在后期的檢修和維護上也大大降低了成本。在工作時,小車既可以根據設定的路線進行自動循跡,也可以讓用戶通過手機控制車身移動的方向和距離,同時可以完成相關數據的采集并實時發送到指定設備上。
2 ? 基本控制要求
本小車基于CORTEX-M3內核,主控芯片采用STM32 F103C8。在給小車通電以后,整車首先進行加電自檢平衡,然后通過MPU6050實現加速度和角速度的采集計算,并將讀取到姿態數據發送到主控芯片,主控芯片通過檢測與之相連接的引腳電平的變化并采用PID算法把參數調節在一個固定范圍內,通過電機驅動模塊使小車前進后退,并以此達到一個穩定的狀態,也就是我們能夠觀察到的“平衡”。
車身平衡之后開始運行其他模塊,車身會穩定在一個范圍內,等待用戶發送指令來進行下一步的工作,小車指令的發送是通過APP INVENTOR這個軟件來實現。當APP里面的按鈕被按下時,會發送一串字符串到主控芯片,主控芯片將當前信息與程序函數預設值進行對比,如果接受的數據和函數里面定義的條件相符合,主控芯片就會發送指令給對應的模塊進行工作,從而對小車當前的運動狀態進行調整和修改。平衡小車的加速度和角速度都是基于閉環反饋量的PID算法來完成調節的,其余模塊都是和單片機進行直接交互信息的,當光強模塊和溫度傳感器模塊獲取到數據之后,將該數據值轉存,再通過HC-05藍牙通信發送到APP上顯示出來。此外,用戶還可以根據平衡小車上面的OLED屏幕來觀察檢測到的數據值和其他參數。
根據控制要求,該小車主要由控制模塊、通信模塊、顯示模塊、電機模塊、傳感模塊和軟件APP等組成,其整體電路結構框圖如圖1所示。
3 ? 單元電路分析與實現
3.1 控制模塊
STM32F103C8 MCU內核是32 位的,其工作頻率是8MHz,引腳數通常為48個,本設計中使用的最小系統板引腳數為34個,相比于傳統的51單片機擴充了許多功能,價格缺相差不多,因此整體性價比較高。此外,下載和仿真運行也更加方便,其外圍電路都已集成在最小系統板上且不需要外部晶振,進一步降低了成本,而且存儲空間比較大,用來設計實現本平衡小車最為合適。
3.2 通信模塊
本設計中采用的藍牙模塊是HC-05,它基于藍牙2.0的傳輸技術。該藍牙模塊是通過串口進行信息的發送和接收,串口的通訊方式我們選擇的是透明傳輸,也就是串口透傳通信方式,在傳輸的時候不需要再去處理數據。當藍牙模塊開啟之后會自動產生一個通道,只需打開手機藍牙進入這個通道,雙方就可以進行匹配通信。完成藍牙連接后,即可以通過Printf函數將模塊接受到的數據傳輸到手機APP端。
此藍牙模塊的有效工作距離為10米左右,考慮到我們的兩輪平衡小車并不需要執行超遠距離的工作,因此采用這款型號的模塊更加經濟實惠,另外,它的指令和功能相比較于其他藍牙模塊來說更加的豐富,可實現的功能更多,穩定性更好。
3.3 顯示模塊
兩輪平衡小車的尾部配置有OLED液晶顯示模塊,我之所以沒有選用LCD液晶顯示屏幕,是因為二者相比較而言,OLED屏幕性價比更高,使用安裝更加便捷,在后期設備的維護,更換方面更為經濟。同時,我們也不需要通過液晶顯示屏幕來顯示太多的數據,這里顯示的數據主要是為了用戶觀察方便,無需頻繁打開手機或者藍牙連接設備來進行觀察,對于OLED,它的電路焊接起來也是相比較LCD更加方便的。
3.4電機模塊
電機模塊中,電機驅動芯片的型號是TB6612FNG,該模塊的PWM波支持頻率最高可以達到100KHz,可以同時驅動兩個電機進行工作。電機驅動模塊提供了四種工作模式,正轉、反轉、制動、停止,對于MPU6050來調節小車的平衡,也是足夠而且最為合適的。模塊總共有16個引腳,一方面可以足夠實現平衡小車的工作,另一方面不占用底板資源,不給平衡小車造成冗余負載。電機驅動模塊通過PID算法調節電機的轉動速度及方向,達到小車的平衡。該芯片已經通過了大量的實驗證明,即使電機轉動速度很快,該芯片依舊可以保證工作的穩定性和連續性,不會干擾平衡車的正常工作。
3.5 加速度計模塊
加速度計選用的是MPU6050六軸傳感器模塊,也可以稱之為角速度加速度計。小車的平衡主要是通過該模塊來感知小車前傾后仰的加速度來做出反饋,內置陀螺儀來測算平衡小車的傾斜角度,加速度傳感器用來控制速度環來使小車在一個穩定的范圍內進行姿態的調節。之所以稱之為六軸傳感器,是因為它的內部包含了XYZ軸陀螺儀和XYZ軸加速度傳感器一共六軸,加上它的其他引腳,一共有八個引腳焊接在該模塊的同一側,減少了它的安裝空間,其原理圖如圖2所示。