功能介紹放開(kāi)頭, 使用便捷無(wú)需愁
這是全網(wǎng)最詳細(xì)、性?xún)r(jià)比最高的STM32實(shí)戰(zhàn)項(xiàng)目入門(mén)教程,通過(guò)合理的硬件設(shè)計(jì)和詳細(xì)的視頻筆記介紹,硬件使用STM32F103主控資料多方便學(xué)習(xí),通過(guò)3萬(wàn)字筆記、12多個(gè)小時(shí)視頻、20多章節(jié)代碼手把手教會(huì)你如何開(kāi)發(fā)和調(diào)試。讓你更快掌握嵌入式系統(tǒng)開(kāi)發(fā)。
V3.3.0-STM32智能小車(chē)
視頻: https://www.bilibili.com/video/BV16x4y1M7EN/?spm_id_from=333.337.search-card.all.click
V3:HAL庫(kù)開(kāi)發(fā)、功能:PID速度控制、PID循跡、PID跟隨、遙控、避障、PID角度控制、視覺(jué)控制、電磁循跡、RTOS等功能。
第10章-小車(chē)跑一跑
如何實(shí)現(xiàn)小車(chē)的前、后、左、右、停
控制電機(jī)速度就可以控制小車(chē)運(yùn)動(dòng)
如何控制電機(jī)速度?
改變小車(chē)速度PID的目標(biāo)值,然后定時(shí)器里面的PID控制函數(shù)就會(huì)計(jì)算輸占空比然后控制小車(chē)。
代碼如下:
定時(shí)器里面有電機(jī)控制,我們這里還增加Motor_Set(PID_realize(&pidMotor1Speed,Motor1Speed),PID_realize(&pidMotor2Speed,Motor2Speed));
是為了提高實(shí)時(shí)性。
/*******************
* @brief 通過(guò)PID控制電機(jī)轉(zhuǎn)速
* @param Motor1Speed:電機(jī)1 目標(biāo)速度、Motor2Speed:電機(jī)2 目標(biāo)速度
* @return 無(wú)
*
*******************/
void motorPidSetSpeed(float Motor1SetSpeed,float Motor2SetSpeed)
{
//改變電機(jī)PID參數(shù)的目標(biāo)速度
pidMotor1Speed.target_val = Motor1SetSpeed;
pidMotor2Speed.target_val = Motor2SetSpeed;
//根據(jù)PID計(jì)算 輸出作用于電機(jī)
Motor_Set(PID_realize(&pidMotor1Speed,Motor1Speed),PID_realize(&pidMotor2Speed,Motor2Speed));
}
很容易得到一下控制方式
// motorPidSetSpeed(1,2);//向右轉(zhuǎn)彎
// motorPidSetSpeed(2,1);//向左轉(zhuǎn)彎
// motorPidSetSpeed(1,1);//前進(jìn)
// motorPidSetSpeed(-1,-1);//后退
// motorPidSetSpeed(0,0);//停止
向左原地轉(zhuǎn)彎、向原地轉(zhuǎn)彎
// motorPidSetSpeed(-1,1);//右原地旋轉(zhuǎn)
// motorPidSetSpeed(1,-1);//左原地旋轉(zhuǎn)
加速減速函數(shù)
//向前加速函數(shù)
void motorSpeedUp(void)
{
static float MotorSetSpeedUp=0.5;//靜態(tài)變量 函數(shù)結(jié)束 變量不會(huì)銷(xiāo)毀
if(MotorSetSpeedUp <= MAX_SPEED_UP) MotorSetSpeedUp +=0.5 ; //如果沒(méi)有超過(guò)最大值就增加0.5
motorPidSetSpeed(MotorSetSpeedUp,MotorSetSpeedUp);//設(shè)置到電機(jī)
}
//向前減速函數(shù)
void motorSpeedCut(void)
{
static float MotorSetSpeedCut=3;//靜態(tài)變量 函數(shù)結(jié)束 變量不會(huì)銷(xiāo)毀
if(MotorSetSpeedCut >=0.5) MotorSetSpeedCut-=0.5;//判斷是否速度太小
motorPidSetSpeed(MotorSetSpeedCut,MotorSetSpeedCut);//設(shè)置到電機(jī)
}
上面第10章我們學(xué)會(huì)如何控制小車(chē)的運(yùn)動(dòng)
后面我們講解如何具體控制速度等。
審核編輯 黃宇
-
Vcc
+關(guān)注
關(guān)注
2文章
305瀏覽量
36083 -
最小系統(tǒng)板
+關(guān)注
關(guān)注
0文章
12瀏覽量
7935 -
STM32F103C8T6
+關(guān)注
關(guān)注
108文章
160瀏覽量
83665 -
電機(jī)驅(qū)動(dòng)電路
+關(guān)注
關(guān)注
1文章
17瀏覽量
7073
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論