15路光电教程
15路光电传感器 (野狼队专属)
通讯方面:
可通过CAN与开发板通讯。
CAN协议:
光电向主控板反馈的信息:
DATA[0]:代表了前8盏灯的亮灭情况。
即全亮时为:0XFF 即二进制的1111 1111
全灭时为: 0X00 即二进制的 0000 0000
DATA[1]:代表了后7盏灯的亮灭情况
和上面说的同理
DATA[0]的最低一位表示第一个灯,最高位表示第八盏灯
DATA[1]的最低一位表示第九个灯,第七位表示第15个灯,第八位一直都是0
主控板不必发送数据给光电。
光电校准
长按按键:进入模式
短按按键:切换模式 / 确认完成
模式1:校准要识别(让灯亮)的颜色(深色or浅色),此时到要识别的颜色的平面的距离即是识别距离的最长范围。
模式2:不能识别的颜色(让灯灭)的颜色(深色or浅色),此时距离无所谓。
模式3:检测是否校准成功,校准成功灯光会放烟花。
校准教程:
长按按键,进入校准模式
长按按键进入模式1,开始校准,短按按键确认校准完成,再短按按键切换模式,长按按键进入模式2,,开始校准,短按按键确认校准完成,再短按按键切换模式,长按按键进入模式3,若校准成功会放烟花。
接收协议解码(使用了共用体)
can的接受协议
而这一版光电是至彬哥那一代随手造的,因为年代久远,所以出现了很多的问题后经过某波比学长将其光谱的灯改变了,从而可以适应到更多色号.
其中在it.c的文档中就存在一个调节阈值的计算公式
threshold_value[cir]=other_color_min[cir]*4/10+white_color_max[cir]*6/10;
通过改变对于深浅色的比例来确定色号 我是采取了二分法 当确定大多数的的灯是可以亮的时候再分母取大一个一个去调节
其中还有两个要注意的点:
1) 是确定是什么光谱对应的是什么灯,
2) 是can的通讯接口处的120Ω的贴片电阻
上面是没有补光的,但是却可以检测到更多的色号,下方是有补光的但是却无法识别更多的或者色差,个人感觉因为补光的原因将色差的区别给减弱了
CAN接120欧姆终端电阻的原因分析
高频信号传输时,信号波长相对传输线较短,信号在传输线终端会形成反射波,干扰原信号,所以需要在传输线末端加终端电阻,使信号到达传输线末端后不反射。对于低频信号则不用 CAN总线两端必须连接终端电阻才可以正常工作,终端电阻应该与通讯电缆的阻抗相同,典型值为120欧姆。其作用是匹配总线阻抗,提高数据通信的抗干扰性及可靠行。
但是再现场的时候因为在tr的那台车上是有三条有120Ω的电阻光电,其中只有三条是可以正常通讯的,但是加上第四条的时候就无法通讯,can接收不到数据,然后我发现第四条的120Ω的电阻有点脱落我将其重新焊接上去的时候,还是无法 接收到数据,我将其它三条的120Ω电阻拆下来的时候,再重新接收,can的接收就好了,这是我在21年山东的rc遇上的问题,希望今后可以解决问题(重新出一版新的光电或者直接放弃光电选用其它的定位方式).