stm32f1 平衡小車 (準備章節一)

本人小白一個,利用課外時間學習32,最近想利用手頭資源做一輛平衡小車,但是這個新東西感覺還是有難度的。本篇博客就是對自己最近蒐集的相關的資料進行一個梳理,明確思路。同時督促自己學習,不能再散漫下去了。本片博客純屬自己做項目中的心得,雞毛蒜皮可能都會被記錄到,大牛不喜勿噴。

想要做平衡小車,我覺得一定要跨過”三座大山“,他們分別是“MU6050模塊的運用”、“算法代碼以及理解”、“平衡原理以及實際調試”。

最近幾天,從網上搜集了很多資料,由於手頭就有一個MPU6050模塊,所以今天晚上想要實現該模塊數據的讀取以及知道這些數據如何用。我會在接下來的過程中記錄我所遇到的每一個問題以及解決的方法。

第一個問題:如何連接stm32f103mini 和mpu6050

我查閱了正點原子自帶的產品手冊,得知VCC連接3.3V或者5V,GND連接GND,SDA連接PC11,SCL連接PC12.(注意,這裏不管是用的正點原子的MPU6050還是市面上的普通MPU6050都是這麼連接的,親測可行)

至於爲什麼要這麼連接,我查了一下。

 

在此奉上正點原子的MPU6050的原理圖。爲什麼只有四根線連接呢?

首先電源和地我不做解釋,連接SCL和SDA是因爲MPU6050在採用的IIC通信方式,而IIC通信的特點就是隻有兩根線進行通信。

第二步:讀取模塊回傳的數據:(有些小夥伴可能會疑惑,這樣是不是太快了,我們不是程序員嗎?爲什麼不先寫代碼呢?

我在此的理解是:先理解原理,然後看懂代碼,會對照數據手冊修改代碼就可以。不必糾結於這種模塊的代碼編寫,網上隨手一抓一大把。不用在此浪費時間。)

我將正點原子的代碼下載後,我得到了四個數據,分別是Temp、Pitch、Roll、Yaw。我查閱了一下,代碼中,它們分別代表溫度、俯仰角、翻滾角、偏航角,合稱:歐拉角。pitch():俯仰,將物體繞X軸旋轉     yaw():航向,將物體繞Y軸旋轉    roll():橫滾,將物體繞Z軸旋轉。

這裏必須提到DMP,什麼是DMP,他的全稱是數字運動處理器。通過IvenSense公司提供的運動處理資料庫,非常方便地實現姿態解算(就不需要通過單片機進行姿態解算),最原始的數據通過DMP處理計算之後得到的是四元數,然後經過計算得出歐拉角,其中的過程我在這裏不多描述,一切都有現成的公式,對這部分有興趣的話可以去看正點原子的教學視頻。我在這裏有點糾結爲什麼有的代碼中單獨列出DMP,而有的混合在了一起寫,有點不好理解,以後在做平衡車代碼時到底應當仿照哪個呢?暫時在這裏還不定,以後再回答吧。

這時我產生了一個疑問:如何通過這些數據使小車實現平衡效果呢?

剛纔在網上瀏覽博客時,又發現了一個問題,爲什麼平衡電機要接兩根12V的線呢?

這兩個問題下篇再解決。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章