放假啦,回到家了。上学期遗留了一些问题。
上学期做了一个基于mega8的简易循迹小车,循黑线行驶。车模是淘宝里购买的,控制电路是自己做的。做出来的效果很不好,虽然能沿黑线行驶,但是摇头晃脑的。
大概原理:
采用4对红外对管识别黑线,得到一个电压,通过与lm339(4电压比较器)设定电压比较,得出一个开关信号,输入到mega8引脚,mega8根据这个信号,判断是微偏、中偏、大偏进行三级调速,调节PWM输出,控制两个直流电机进行差速转向。
程序比较简单,只是简单的对管脚电平信息进行switch+pwm+延时,就不贴上来了。
问题1:mega8采用了7805稳压供给,电机采用LM293驱动,直接接9V电池。电池消耗得超级快,后来我直接用变压器接条长线供电来调试。俩普通直流电机那么耗电,还是7805不行?
问题2:如何让它摇头晃脑不那么明显?加入PID之类的控制算法?现在采集后给mega8的是4个红外管的开关信号,用PID好像有点不适合。直接用ADC转换红外电压信号的话,信号梯度变化连续点,可能还好点。
做这些,当初是想结合刚开课的《单片机原理》和《自动控制原理》学习用的,一边学理论,一边动手实践,现在发现理论还是理论,PID还是没用到。还是不知道怎么用单片机实现PID。;P
附:
1、原理图:
CAR Schematic.pdf (21.89 KB)
2、图片、DDB、设计方案、usbasp(usbasp是坛子里找的,很好用,挺适合自己动手制作):
mega8car+usbasp.rar (2.35 MB)