平衡小车从0开始stm32带源码
平衡小車為鴨脖智能的,但不推薦購買,太壟斷了,一般零件只能買他們家的,而且還貴,不開源。做的不錯(cuò),不如原子好。
一、電機(jī)、編碼器介紹
電機(jī)使用的是JGB37-520(帶有霍爾編碼器),屬于價(jià)格中等性能中等的一款吧。上圖片
(編碼器上有接線標(biāo)明,一定要看,不同的品牌不一樣,M+M-是接電機(jī)電源的,先看好這兩個(gè),接錯(cuò)比較危險(xiǎn),剩下的就是編碼器的供電和傳輸脈沖信號(hào)的線了)
?電機(jī)直接接電機(jī)驅(qū)動(dòng)其實(shí)也是可以用的基本用法和小黃電機(jī)一樣但這個(gè)需要的電壓比較高,需要選擇合適的電機(jī)驅(qū)動(dòng),如果這樣用那編碼器不就白買了嗎,所以接下來就來看一看編碼器,我也是邊看邊寫的,(推薦博文平衡小車——編碼器原理及其使用_我很兇哦的博客-CSDN博客)感覺人家寫的很好了,說一下自己的見解吧,編碼器的話就是通過霍爾傳感器吧電機(jī)的轉(zhuǎn)速等相關(guān)信息變成一種脈沖信號(hào),單片機(jī)就是去接受脈沖信號(hào)的,并把脈沖信號(hào)進(jìn)行處理就可以得到電機(jī)的速度,就可以進(jìn)行閉環(huán)控制,達(dá)到更好的控制效果。再好好講講吧
?編碼器的AB項(xiàng)返回的脈沖信號(hào)結(jié)合起來可判斷電機(jī)的轉(zhuǎn)速轉(zhuǎn)向,上博文玩平衡車系列——編碼器使用教程與測速原理_foolish的博客-CSDN博客_編碼器測速原理
搞好小車的地盤,我們開始實(shí)現(xiàn)最基礎(chǔ)的小車控制:
這里我們采用TB6612電機(jī)驅(qū)動(dòng)模塊,當(dāng)然你也可以根據(jù)電機(jī)參數(shù)自己設(shè)計(jì),上鏈接TB6612驅(qū)動(dòng)電機(jī)_cassie_lirila的博客-CSDN博客大概說一下這款電機(jī)驅(qū)動(dòng)的用法,VM為12V輸入,GND接地,但注意一定要共地,基本上就是輸入一個(gè)高低電平信號(hào)和pwm信號(hào)來控制電機(jī)的正反轉(zhuǎn)以及轉(zhuǎn)速,接下來就是小車的基本控制代碼了:(庫函數(shù)編寫)
首先要給高低電平
void MiniBalance_Motor_Init(void) {GPIO_InitTypeDef GPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); //使能PB端口時(shí)鐘GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15; //端口配置GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽輸出GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //50MGPIO_Init(GPIOB, &GPIO_InitStructure); //根據(jù)設(shè)定參數(shù)初始化GPIOB }這里.c文件中定義定義四個(gè)引腳推挽輸出來輸出高低電平信號(hào),
#define AIN2 PBout(15) #define AIN1 PBout(14) #define BIN1 PBout(13) #define BIN2 PBout(12)在.h文件中宏定義方便使用,直接在函數(shù)中控制AIN、BIN的01值,這樣基本的一個(gè)小車就可以動(dòng)起來了。
持續(xù)更新中..........
總結(jié)
以上是生活随笔為你收集整理的平衡小车从0开始stm32带源码的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Web开发者不容错过的10个HTML5工
- 下一篇: Office EXCEL VBA如何取得