張笑笑++賁永青
摘 要:本文研究的是智能自平衡車,它的原理主要是建立在一種被稱為“動態(tài)穩(wěn)定”(Dynamic Stabilization)的基本原理上,也就是車輛本身的自動平衡能力。該設計以STM32F103單片機最小系統(tǒng)為主控制器和以數(shù)字傳感器MPU6050為姿態(tài)檢測模塊組成自平衡車系統(tǒng),采用卡爾曼濾波算法對陀螺儀和加速度計數(shù)據(jù)進行融合,通過增量式PID控制算法來控制小車的直立、速度和轉向,最終實現(xiàn)小車的直立平衡功能。
關鍵詞:STM32;MPU6050;卡爾曼濾波;智能自平衡車
DOI:10.16640/j.cnki.37-1222/t.2017.07.138
1 引言
隨著社會經濟的發(fā)展,人民生活水平的提高小汽車作為短途代步工具的弊端越來越明顯,為了滿足市民越來越高的要求,如今市場上出現(xiàn)了兩輪載人平衡車,智能自平衡作為短途代步車,可以豐富人們的業(yè)余生活、鍛煉平衡能力和協(xié)調性。
通過學習STM32103單片機的內部資源,利用MPU6050傳感器獲取小車的偏轉姿態(tài)。運用卡爾曼濾波和增量式PID的方法,通過TB6612控制電機的轉向與轉速,以達到小車在水平面穩(wěn)定的站立。另當有一定的外力作用作用在小車上時,小車仍可以保持當前穩(wěn)定狀態(tài)。
2 智能自平衡車的總體設計方案
該設計是以STM32103單片機為主控制器,通過STM32單片機的內部資源,如TIM,IIC,PWM,ADC,定時器,外部中斷,串口等功能。由于STM32硬件IIC不穩(wěn)定所以利用IO模擬IIC去讀取MPU6050傳感器的角度和加速度數(shù)據(jù),然后利用卡爾曼濾波算法對采集到的角度和加速度數(shù)據(jù)進行融合,最后借助增量式PID算法和TB6612對2個電機的轉速和轉向進行控制,從而實現(xiàn)兩輪自平衡。
獲取平衡小車姿態(tài)角的濾波算法一般為卡爾曼濾波和一階互補濾波,由于MPU6050 內置的DMP可以直接輸出和姿態(tài)相關的四元數(shù),所以有三種方法可以獲取角度。但是根據(jù)人們長時間的實踐結果,認為DMP輸出的四元數(shù)表示的角度和卡爾曼濾波最穩(wěn)定,這里我們選擇了卡爾曼濾波。因為卡爾曼濾波應用廣泛且功能強大,它可以估計信號的過去和當前狀態(tài),甚至能估計將來的狀態(tài),本質上講,濾波就是一個信號處理與變換的過程。
最后的結果小車實現(xiàn)了自平衡,而且通過藍牙控制可以進行簡單的移動。即使有外力的干擾小車同樣也可以保持平衡。
3 硬件電路設計
硬件電路分為電源模塊、STM32單片機最小系統(tǒng)模塊、傳感器模塊、TB6612電機驅動模塊。下面分別介紹下電源模塊、傳感器模塊和電機驅動模塊。
3.1 電源模塊電路
整個系統(tǒng)是通過航模鋰電池來供電,其中單片機系統(tǒng)需要的是5V電源,傳感器模塊需要的是3.3V電源。要使傳感器能正常工作我們需要通過AMS1117來進行穩(wěn)壓達到3.3V。以下是設計的硬件圖。
3.2 傳感器模塊電路
系統(tǒng)需要測試角度與加速度因此需要應用陀螺儀和加速度計傳感器,為了方便我們采用了集成二者的MPU6050。MPU6050中的數(shù)據(jù)是通過IIC進行讀取,將MPU6050的SCL和SDA口接與STM32103單片機的PB8和PB9相連。
3.3 電機驅動模塊電路
電機驅動模塊的主要功能是驅動小車輪子轉動,對電機驅動系統(tǒng)有較高的要求,在這里我們選擇了TB6612模塊,通過單片機IO口輸入改變控制端的高低電平,從而對電機進行正反轉及停止操作。
4 軟件代碼調試
5 結論
本文針對智能自平衡車的設計的制作進行了基本介紹,介紹了其原理結構,硬件及軟件設計。通過軟硬件的規(guī)劃,參數(shù)整定,實現(xiàn)了自平衡車系統(tǒng)的動態(tài)平衡和簡單的遙控行走功能。在整個制作過程我們學習了單片機硬件結構,相關的傳感器使用和PID算法。通過這次的設計基礎,將再進一步研究載人自平衡車的設計,實現(xiàn)其理論研究的應用價值。
項目經費:安徽省大學生創(chuàng)新創(chuàng)業(yè)項目:智能自平衡車制作(項目編號:201610379125)
作者簡介:張笑笑(1995-),女,安徽亳州人,學生。