0

我不确定这是否是这个问题的最佳地点,但我认为这个问题与最优调度算法和排队理论有一些关系,所以希望它会没事。

我正在着手建造一辆遥控车来自动导航课程。这个想法是,它只会直线前进,直到其中一个接近传感器检测到墙壁或其他障碍物,这将导致中断和转向调整。

我在嵌入式系统课程中学习了一些关于 RTOS 调度算法的知识,并在网络性能课程中学习了抢占式排队,所以我想知道在对微控制器进行编程时,我是否会从将这些概念中的任何一个应用于此任务中受益,或者如果我我想太多了吗?主要目标是让汽车尽可能快地行驶而不会发生碰撞,但我也想防止它作为次要目标而变得紧张。

那么,从高级的意义上来说,是否有一种特定的方法、方案或类型的调度策略来使用可以为这样的系统带来最佳性能的中断?是否有任何特定的关键部分我应该禁用中断?作为硬件限制的参考,我计划使用类似于 arduino 的微控制器,可能带有三个 IR 传感器。非常感谢任何意见或建议。

4

1 回答 1

1

在这里使用 RTOS 是多余的。你需要考虑的是:

  • 您将使用哪种类型的传感器:距离(将返回与物体的距离)或存在(仅指示是否存在障碍物)?距离传感器需要一些处理(运行 ADC 转换或读取 I2C),而存在传感器可以直接连接到 uC 的外部中断。
  • 如何确保您的汽车真正直行?你会发现,即使理论上你命令它直走,它也可能会轻微转动。

根据以上问题的答案:

  • 如果您使用存在传感器,请尽快处理它们。即使您正在运行任何其他控制算法(例如某些 PID),中断它也不会成为问题。

  • 如果您使用模拟距离传感器,请使用 ADC 转换就绪中断。然后,如果您的传感器向侧面看,您可以使用返回值与墙壁保持恒定距离,从而直线行驶(查看微型鼠标机器人)

底线:如果您想快速前进并避免撞墙 - 尽可能快地处理传感器。

于 2016-10-24T07:23:26.340 回答