< >
Home » FarmBot软件入门教程 » farmbot软件入门教程-编码器

farmbot软件入门教程-编码器

说明:

  • 介绍FarmBot Genesis 旋转编码器设置

  • 仅适用于 FarmBot Genesis 机器人。编码器设置仅适用于 FarmBot Genesis 机器人。Far​​mBot Express 用户应参考失速检测部分

启用编码器

  • FarmBot Genesis 套件内置旋转编码器。应使用这些切换开关启用旋转编码器。如果您在移动时遇到麻烦,您可以尝试禁用编码器以进行测试。如果您没有连接编码器,则必须在此处禁用编码器,否则您的 FarmBot 会认为它在每次移动时都会停滞。请注意,只有启用编码器(或限位开关)后才能使用归位和校准

使用编码器定位

  • 除了使用编码器进行失速检测外,还可以使用编码器来计算运动

反转编码器

  • 此设置将反转编码器位置读数的方向。如果您反向连接了编码器或电机,这可以用作软件修复,这会导致 FarmBot 认为它在每次移动时都会停转,因为编码器似乎在朝与电机相反的方向移动。如果您想使用软件反转电机的运动,此设置也可以与INVERT MOTOR结合使用

最大遗漏步数

  • 旋转编码器可以让您的 FarmBot 知道轴何时因 FarmBot 到达其物理端点或者撞到藤蔓、工具箱或您的手等障碍物而停转。

  • 最大错过步数设置告诉您的 FarmBot 在电机被视为停转之前需要错过多少电机步数(由编码器反馈确定)。较低的值将允许您的 FarmBot 在电机停转时更快地停止电机,这是理想的。但是,将值设置得太低可能会导致误报,即 FarmBot 认为它卡在了某个东西上,即使它没有。

  • 每个轴的最大错过步数的默认值为 5。虽然我们已经看到使用低至 2、1 和传说中的 0 的值的成功结果,但我们建议从 10 开始,然后慢慢降低值。如果您开始看到误报(FarmBot 认为它卡在了某物上,但实际上并没有),则增加该值,直到没有误报。

错过步数衰减

  • FarmBot Genesis v1.2 和 v1.3 使用 Arduino MEGA 2560 芯片读取和处理编码器信号。当这些 FarmBot 以高速(大于 400 步/秒)移动时,由于微处理器时钟速度的限制,可能无法检测到每个编码器脉冲。由于 FarmBot 将未检测到的编码器脉冲计为遗漏的步数,因此遗漏的步数总数可能会在长时间移动中累积并导致误报,即使实际上没有遗漏任何步数。

  • 丢失步数衰减值解决了 Arduino 在高速移动 v1.2 和 v1.3 FarmBots 时出现的这一缺点。它的工作原理是每次检测到编码器脉冲时,将丢失步数的总数减少(衰减)丢失步数衰减值。这允许 FarmBot 忽略未被检测到的周期性编码器脉冲(以及相应的错误丢失步数),从而防止误报失速警报。

  • 同时,如果电机确实失速,则会连续发生一系列失步,中间没有检测到任何编码器脉冲。由于没有检测到编码器脉冲,总失步数不会衰减,因此一旦达到最大失步数值,电机将被视为失速。

  • 每个轴的默认“错过步进衰减”值为 5。仅当您使用分辨率更高的编码器和/或更慢的处理器和/或以非常高的速度(大于 2,000 步/秒)驱动 FarmBot 时,才需要更改此值,所有这些都会导致更多的编码器脉冲无法检测到。

v1.4+ 有所改进

  • 从 FarmBot Genesis v1.4 开始,我们的定制 Farmduino 板配备了更适合以更高速度读取编码器脉冲的电子设备。这使得 FarmBot 能够在其他合理的硬件限制内,无论电机速度如何,都能检测到每一个编码器脉冲。

编码器缩放

  • 编码器缩放系数用于将编码器分辨率与电机分辨率相匹配。库存 FarmBots 附带的旋转编码器为 360 线/转。库存电机为 200 步/转。

  • 编码器缩放因子按如下方式计算,并四舍五入到最接近的整数。

Encoder scaling = 10000 x motor resolution / encoder resolution

Encoder scaling = 10000 x 200 / 360 = 5556

纠错,疑问,交流: 请进入讨论区点击加入Q群

获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号


标签: none