在机器人的系统中,红外传感器主要用来检测障碍物,作为中断信号,控制机器人的运动。本文旨在讲解基于STM8S003F的低成本红外避障传感器的实现。

基本原理

  选择配套的红外对管(发射管和接收管),接收管在接收到闪烁频率为38kHz左右的特定波长红外信号时,将输出低电平。利用这个基本原理,设计了如下的电路:

红外传感器原理图

  红外发射管串联电阻后两端直接接到单片机的两个GPIO,可见是由单片机直接驱动其发(红外)光的,这也依赖于单片机的强推挽驱动能力。由下图【1】可见,单片机的GPIO驱动能力用以带动红外发射管还是绰绰有余的。

单片机GPIO驱动能力

工作情况

  红外发射管:正极端接38kHz的方波(50%占空比),负极端接50Hz方波(95%占空比),通过改变滑动变阻器接入的阻值,可以改变通过红外发射管的电流,从而改变发出的红外光强,进而可以调节红外传感器的检测阈值。

  红外接收管:红外接收管有三端,电源和地之间有滤波电容,另一输出端,当检测到有物体时,输出50Hz方波(95%占空比,受红外发射管负极信号的影响);无物体时输出高电平。在这里,接受管的信号输出端直接接到单片机的GPIO,实际上单片机内部有做上拉处理。

  单片机STM8S003F3P6:芯片VCAP管脚接105电容后接地,保证其供电稳定性。当红外接收管的输出端为高电平(无物体)时,芯片PC6管脚输出高电平,指示灯不亮;当红外接收管的输出端为50Hz方波(有物体)时,芯片PC6管脚输出低电平,指示灯亮。

技术要点

  在传感器距离障碍物较远时,接收管无法接收到足够强度的反射信号,此时环境噪声容易使接收管输出低电平信号。为了避免误判,这里采用了50Hz的信号作为判定的依据,若单片机接收到红外接收管的50Hz信号,则认定此时是正常信号,否则认定为是噪声引起的接收管误识别。

拓展思路

  在本方案中,调节红外传感器的阈值是通过精密滑变进行的,是否可以通过某种方式改为程序可控?如,利用单片机输出方波的占空比控制某个可调电压源,实现运行时动态阈值。进一步设想,是否可以在实现动态阈值的基础上,对阈值进行标定和插值,以实现红外(粗略)测距传感器?


技术支持:施美晨


参考

【1】 http://www.st.com/web/cn/catalog/mmc/FM141/SC1244/SS1010/LN2/PF251792