#本章为智能车部分的最后一章,主要将前面几部分的部分没解决的问题再强调一遍。
电机转速调节部分
我们使用的是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的文章的过程中,如果有不懂的地方欢迎提出来,看到了一定会回复嘞。)