1方案介紹
本方案采用高性能GD32F207系列MCU開發平衡小車的底層接口。用到的各個模塊分別有:I2C(GPIO模擬)、Timer(周期定時器)、Timer-PWM(PWM控制)、Timer-input(編碼器輸入)、SPI(GPIO模擬寫OLED用)、USART(串口調試和藍牙通信)、ADC(外部電壓測量)。
2設計應用描述及心得總結
看了下提供的測試例程,簡單重新新建了一個Template,里面分立的建了三個基本功能:LED、USART和SYSTICK,直接下到開發板就可以用了,直接刪減相應的.C文件即可使用。

初始模版好了,首先最重要的傳感器,就地取材,就用MPU6050了,移植下官方的DMP,這個花了點時間,問題出現在MDP內部fifo的溢出,解決的方法如下如所示:

這是因為讀取不及時導致內部FIFO溢出,這里正好清除了一下,再次讀取就OK了,修改read代碼,如下圖所示:

MPU6050的讀取數據如下所示:

可以看出來MPU內部DMP的數據一開始很不穩定,這個過程得有好幾秒,穩定了,就OK了,不過也可以通過寄存器,直接讀取初始值,然后自己用算法擬合一個歐拉角對比下。
接下來是個大的范圍TIMER應用,這里使用了TIMER4的兩個通道做電機控制,輸出頻率是10K,分別使用TIMER3通道1和TIMER2通道2做編碼器的輸入,用一個TIMER也可以,這里使用了兩個。還有個TIMER5作為內部周期定時器5ms,TIMER的調試還算順利,直接上結果,counta和countb 是編碼器的輸入,這里接的就是TIMER4的兩路PWM。

此接口還用了個直接透傳藍牙模塊,還有個APP可以鏈接,使用了串口2與藍牙模塊鏈接,使用了接收中斷,中斷函數里直接顯示接收到的數據,這里APP的處理就是將手機的屏幕劃分為9宮格,然后觸摸一個地方傳送一個數字,觸摸結束(松手),默認發送一個0,這樣可以根據數字的順序,簡單的軟件實現劃屏操作。
3作品實物圖+視頻
硬件焊接的匆忙,但整體已經出來了,如下所示:
-
傳感器
+關注
關注
2576文章
55042瀏覽量
791389 -
編碼器
+關注
關注
45文章
3953瀏覽量
142665 -
定時器
+關注
關注
23文章
3368瀏覽量
123662
發布評論請先 登錄
深入解析GD65232與GD75232:多通道RS - 232驅動接收器
探索GD65232與GD75232:多通道RS - 232驅動接收器的卓越之選
基于RT-Thread與GD32F527I-EVAL的多媒體門禁系統 | 技術集結
腦機接口底層技術:從高集成芯片到漢語神經解碼的突破與探索
從riscv底層原理分析gd32vf103的中斷行為
基于兆易創新GD32F527系列MCU的多媒體門禁系統解決方案
兆易創新GD32F5xx與GD32G5xx STL軟件測試庫獲頒IEC61508功能安全認證
嘗鮮體驗,GD32F5評測活動來襲!興趣小組招募中,一手消息搶先知曉 | 社區活動
RT-Thread適配兆易創新GD32F5系列MCU,開放免費試用申請!| 技術集結
關于GD32F207ZE的平衡小車之底層接口的介紹和分享
評論