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