本人今年大二,在大一的时候就想做智能小车,那时是用51做的,没能成功,大二用stm32做了一个,还算不错,下面是我的一些心得,希望能给自己想做一个智能小车的小伙伴提供一些帮助。我是第一次写帖子,要是有做的不好的地方,还请大家能指出来。
首先,车架子和轮子在淘宝上面就可以买的到,最好是买还附有电机和舵机的。电机选择编码器电机或直流电机都行(编码器电机可以计算速度,我选的是编码器电机,为以后能做平衡小车做准备)。舵机就是控制前面两个轮子转向的。关于编码器电机和舵机的工作原理,我直接附上链接。
1.编码器电机
4.编码器使用教程与测速原理.pdf 2.舵机
1.舵机控制原理介绍.pdf
其实都涉及到了PWM,有过一定单片机基础的小伙伴都能编程输出PWM。
3.电机驱动模块
我所采用的是最常见的L298N驱动模块。对于这个模块的使用,我相信想把智能小车做出来的,都知道是怎么使用的,在这里我也不做介绍了。唯一要注意的一点是要跟单片机供地。
4.巡线传感器
我选择的是四路灰度巡线传感器。和一般的红外传感器是一样的,都是输出高低电平,但它的抗干扰能力要强很多,感应距离也是可调的。
5.漫反射激光传感器
这个相当于一个距离传感器,通过可调电阻,把距离设定好后,小于这个距离输出低电平,大于这个距离输出高电平。这个是我做魔术手用的(当我的手靠近小车时,小车后退,远离小车时,小车前进)
6.红外遥控
我是用的正点原子的ministm32,他有配套的红外遥控器,所以我就直接拿来用了。关于红外遥控的知识,大家可以去百度一下(百度很强大,有不懂就先百度)
7.电源
我没有用到L298N自带5伏输出给单片机供电。我是用的12伏电池给L298N供电,再另外用5伏电池块给单片机供电。
这些硬件都连接好了,代码到底怎么写呢?其实只需要懂得控制I/O口的输入,输出高低电平和输出PWM就基本差不多了,另外关于红外遥控的部分,我认为知道原理和知道代码的意思就行了(红外遥控的代码我是直接用的正点原子的代码,然后修改了一下)接下来贴出我的代码(我是在库函数的工程里面,用寄存器来写.c文件的)
ALIENTEK MINISTM32 循迹,避障,遥控.rar
最后附上一张图