基于stm32f4的五路循迹小车(终章)

本文讲述了在智能车项目中,作者对电机转速调节的优化,尤其是循迹模块中控制转速差的细节,以及解决走线问题的方法。通过提供代码示例,展示了如何实现小车的循迹功能和基本操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#本章为智能车部分的最后一章,主要将前面几部分的部分没解决的问题再强调一遍。

电机转速调节部分

我们使用的是tb6612驱动板,驱动的电机转速最大是2500.

我们在实现循迹模块的时候,控制小车左转右转时候,我们是控制左右电机转速差值,我最开始参考的网上的别人的一些代码和思路,发现别人主要将转速差控制在50或100。

当我实现小车循迹模块的时候,我发现50,100的转速差梯度根本体现不明显,当转速差200及以上才可以看出来轻微的区别,甚至有的地方的直角转弯我设置速度差为1000.

只有这个样子设置,才能完美的体现出左转右转的情况,(这也仅仅是针对我这一个的小车模型来说的,如果别的芯片驱动板可能会有些差异,具体还要看调试的过程。)

循迹电机控制部分的代码如下


void runCarLeft(){
	runMotorSpeed(LEFT,0);
	runMotorSpeed(RIGHT,1900);
	HAL_Delay(10);
}
void runCarLittleLeft(){
	runMotorSpeed(LEFT,50);
	runMotorSpeed(RIGHT,1300);
		//HAL_Delay(10);
}
void runCarLittleLeft1(){
	runMotorSpeed(LEFT,900);
	runMotorSpeed(RIGHT,1100);
		//HAL_Delay(10);	
}
void runCarRight(){
	
	runMotorSpeed(LEFT,1800);
	runMotorSpeed(RIGHT,0);
		HAL_Delay(10);
}
void runCarLittleRight(){
	runMotorSpeed(LEFT,1200);
	runMotorSpeed(RIGHT,50);
		//HAL_Delay(10);
}
void runCarLittleRight1(){
	runMotorSpeed(LEFT,1100);
	runMotorSpeed(RIGHT,900);
		//HAL_Delay(10);
}
void runCarGo(){
	runMotorSpeed(LEFT,520);
	runMotorSpeed(RIGHT,520);
		//HAL_Delay(10);
}
void runCarStop(){
	runMotorSpeed(LEFT,0);
	runMotorSpeed(RIGHT,0);
}



直接添加在motor.c文件中就可以,最后在主函数main里面添加循迹循环模块就行,也就是上一章提到的track函数。

直接在main里面写

while(1){

track();

}

这样就可以实现我们小车的循迹板块啦!!

这是第一个需要提到的点。

走线问题

前面几章说的可能不是很多,在这里总结的时候给大家走线问题解决一下。

走线其实很简单,引脚和对应的参数其实都很好看出来,也没有什么需要特别强调的,我就直接给大家放个走线图就好啦。

到这里来说,我们的智能车学习就告一段落啦,根据文章进度是肯定可以制造出来属于你自己的智能巡线小车。

最近学校有个机器人比赛,等完赛之后,我还会出一个系列手把手教大家如何制造出一个机器人,同时实现定点停车,精准射击等功能。

最近主要刚开学,要准备转专业的考试,要把高中学到的编程再重新拾起来,我会发一个30天速通c语言的系列,同时也可以很好的监督我按时完成自己的学习任务,与大家共勉,希望大家可以多多支持啦!

(在看me的文章的过程中,如果有不懂的地方欢迎提出来,看到了一定会回复嘞。)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值