写在前面:
其实小车循迹功能的实现主要是通过传感器产生能够驱动舵机进行不同角度转动的控制信号,因此为了完成以上功能需要以下模块及知识点:
- 灰度传感器原理、使用及检测
- 舵机转动角度和高电平时间之间的关系(pwm波)
- 两个传感器检测信息差分电路(比例放大缩小)得到控制信号(进行区别左黑右白/左白右黑/双黑双白)
- 三角波发生器的频率和幅度要求(频率要求需要根据舵机转动角度需要需要满足的高电平时间以及控制信号的值进行确定;三角波的幅度根据控制信号的值确定,需要满足可比较的范围以及比较后得到pwm波的高电平时间和舵机角度的关系)
- pwm波的产生(三角波和传感差分控制信号的比较电路)
- 以及一些信号处理必要的偏置电路之类的,为了使得能够得出比较合理的控制舵机转动的信号
灰度传感器原理
红外发射管+红外接收管=红外对管。通电后,透明的红外灯泡发出红外光,当这束红外光遇到障碍物后,会反射到红外接收器。
- 当障碍物为黑色时,黑色物体吸光多,越黑越多,此时反射给红外接收管的红外光就少
- 当障碍物为白色的时候,白色物体吸收光后又把大多数光反射给了红外接收器
综上,可以通过判断接收红外管的红外光的多少,来判定目前障碍物的黑白,黑色的为跑道,白色的为背景
下图为传感器实物图:采用0-5v供电,s为传感输出信号
舵机转动角度和高电平时间之间的关系
pwm信号高电平时间和舵机转动角度之间的关系,为了控制小车左转右转,舵机连接拉杆,当舵机转动角度在不同角度的时候实现左右轮子的转动,比如直行的时候希望舵机目前处于90度
舵机目前处于90度小车保持直行状态,所对应高电平所处时间是1.5ms
而想要左右转弯分别就需要1ms和2ms的高电平时间
两个传感器检测信息差分电路
差分电路大家肯定是不陌生的,可以理解为人为设定了规则让处在小车两边的传感器进行差分,差分信息就是传感器反应过来的黑色或者白色,选用不同的传感器所呈现电压和灰度之间的关系是,黑色偏向于高电压,白色偏向于低电压,检测印刷出来的跑道检测数据黑色大概2.4v左右,白色大概0.5v左右
比如通过差分电路设定的就是(左边的传感器-右边传感器)*一定的比例系数,那么就相当于小车位于左黑右黑的时候差分电路输出值是一个>0的值,如果小车位于左白右黑的时候差分电路输出的值是一个<0的值。并且可以理解人为设定了的规则就是左黑右白的时候舵机控制使得小车向左转弯,左白右黑的时候舵机控制使得小车向右转弯,双白双黑的时候保持执行。这里差分电路的比例系数以及差分电路谁减谁就决定了舵机的控制逻辑
三角波的产生
首先产生方波然后通过积分电路产生三角波
电路中R2和C1决定方波频率进而决定三角波频率,R4电阻大小可以改变产生三角波的幅度大小
pwm波的产生
PWM波的产生建立在生成了一个合适频率以及幅度的三角波,以及通过差分电路产生一个和三角波能够匹配的控制信号
舵机转动角度更多和高电平时间相关,那么高电平时间是通过三角波和差分电路后的控制信号比较而来的,可以看出三角波的频率设定为333hz的话用为0的控制信号和三角波比较那就是一半为高电平就差不多是1.5ms。如下图所示,因此产生三角波频率需要满足333hz
直行
左转
右转
原本是使用的0-5v供电的LM393进行比较,在使用比较器功能的时候需要接一个上拉电阻
但在这个地方输入的三角波信号是有正有负的,仿真比较输出的pwm没有问题,但是实际电路三角波负电压部分被截止到只有-780mv左右,因此做出的电路改变时LM393采用±5v供电后产生±5v的符合控制舵机转向高电平时间的pwm信号,但是无法驱动舵机,因此继续采用偏置电路将±5v的pwm信号vpp减为原来一半后再加偏置,让pwm抬到0v左右作为控制信号成功
最后为了识别更灵敏可能还需要调整三角波幅度以及差分信号的缩小比例系数达到更好的循迹