使用光电二极管阵列,构建一款自动寻光机器人汽车
扫描二维码
随时随地手机看文章
我们的团队开发了一款自动寻光机器人汽车,旨在探测和导航光源。该系统采用四方向光敏传感器阵列,通过内置微控制器进行实时处理,以演示基于传感器的决策和控制。
硬件
机器人的感知和跟踪能力由光电二极管模块驱动。我们使用的光电二极管模块将光电二极管的标准微安培输出电流转换为放大的模拟电压,范围从0V到3.3V。然后将这些模拟信号传输到TI发射台,然后使用板载adc缩放到0V - 3V范围,以优化控制逻辑的动态范围。
4个光电二极管按N-S-E-W方向排列,安装在固定平台的顶部。当“北方”传感器对准机器人的前进方向时,机器人可以同时从四个基本方向采样入射光强度。
采样、导航和跟踪
控制逻辑以比较原理运行,旨在使机器人的前进方向与检测到的最强光源保持一致。通过从四个光电二极管不断采样,控制系统确定哪个方向提供最高的光强度。当一个光电二极管检测到比其他更强的光时,机器人的控制系统就会调整马达,这样汽车就会转向更亮的光源。这种感知、比较和机动的连续反馈循环使机器人能够自主地重新定位,并朝着光源行驶,直到到达目的地,展示了基于传感器的基本导航和自主决策。
我们的控制逻辑被分成三个主要部分,每个部分都有自己的中断:
•该过程由ADC_ISR启动,它对来自光电二极管的模拟信号进行采样,并将其转换为数字值进行处理。
•然后将控制传递给SPIB_ISR, SPIB_ISR通过从实时读数中减去环境光电平,对ADC读数进行2秒的初始信号校准。这最大限度地降低了机器人对背景环境噪音的敏感性。
•最后,SWI_ISR中断包含高级决策和电机驱动。外部基于光强度和内部电机控制回路被安置在这个中断函数中。在这里,将校准后的传感器数据进行比较,以确定最佳转向方向,并相应地调整电机PWM信号以转向机器人。
机器人控制逻辑
通过将控制逻辑分为两个回路:高层的外部“光跟踪”回路和低层的内部“电机控制”回路,使用嵌套控制回路来确定机器人对光源的导航行为。
1)基于外部强度的循环
•计算光亮度矢量m来确定光源的信号强度和方向性:
•如果检测到方向良好的光源,且m大于阈值,机器人将计算东西传感器之间的归一化误差,以确定转向方向。标准化有助于确保昏暗/远光源和强/近光源之间的一致灵敏度,防止机器人在靠近强光源时变得“过于激进”,同时保持对弱/远光源的响应。
•比例导数(PD)控制器使用归一化误差来计算转速,而导数项有助于抑制振荡并防止超调。
•如果机器人检测到最强的光源在机器人后面(即来自南方传感器的最高强度读数),则启动180°旋转以使机器人旋转。
•如果机器人在400ms内没有检测到强光源/定向光源,则进入“搜索状态”,进行缓慢、连续的逆时针旋转,扫描环境,直到检测到强光源→进入“光跟踪状态”。
•当机器人接近光源时,会触发第一强度阈值限制,使机器人不再向前移动。不久之后,触发更高(+0.01 V)的第二强度阈值限制,鸣响蜂鸣器,表明机器人正前方有强光源。
2)内电机控制回路
•在这里,一个耦合比例积分(PI)控制器将期望的转速与实际车轮速度进行比较,并调整发送给电机的PWM信号,以不断更新其转速。为了防止积分项累积误差,采用了反积分上发条的方法。
未来的工作/改进
•改进的跟踪分辨率- 4个对角传感器(东北/西北/东南/西南)
将当前(N-S-E-W)传感器布局扩展为八个方向的八角形阵列,以填补北、东、南、西方向之间的空白。这种密集的传感器位置填补了主轴之间的空白,提高了角度分辨率,并允许控制逻辑在连续的360°范围内插入光强度。这使得机器人在光源离轴时反应更平稳,减少方向和振荡的突然变化,并防止机器人由于类似的传感器读数而无法旋转的“死区”。总的来说,这提高了转向的稳定性,从而实现了更稳定、更自然的导航和更流畅的目标轨迹。
•动态三轴光跟踪
通过集成伺服驱动的倾斜机构,机器人获得了第二自由度,使其能够主动扫描峰值光强度的特定高度。这个“俯仰”轴使控制系统能够超越简单的水平估计,并确定目标光源是位于机器人当前平面的上方还是下方。
有了这种垂直扫描能力,机器人可以定位和跟踪三维光源,而不是假设光源总是位于二维平面上,使系统在光源高度可能变化的现实环境中更加健壮。
本文编译自hackster.io





