亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

如何将 Lego Mindstorms NXT 超声波传感器连接到 Raspberry Pi

摘要

将乐高 Mindstorms NXT 超声波传感器直接连接到 Raspberry Pi。需要一个 TCA9517 I2C 总线缓冲器和一个用于 SCL 的额外 GPIO 引脚。提供了一个简短的 C++ 程序来读取测量的距离。

简介

Raspberry Pi (Pi) 尽管有一些缺点,但绝对是我最喜欢的 SBC。迄今为止最大的社区和每一个细节都有很好的记录。另一方面,乐高头脑风暴,我最喜欢的机器人构建工具包。与其他机器人套件不同,它为构建机器人提供了无限的可能性。今天是汽车机器人,明天是履带机器人,第二天是 6 轴机械臂——一切皆有可能。该套件的 NXT 版本具有强大的基于 ARM 的微控制器,这对于大多数简单的机器人应用来说已经足够了,但对于计算机视觉等任何高级项目来说还不够。最近,乐高发布了 EV3,这是一个新套件,它具有更强大的大脑,与 Raspberry Pi 一样,由 Linux 驱动。但是这个大脑仍然无法以合理的速度计算高分辨率图像。因此,我仍然想将树莓派的强大功能与乐高的无限可能结合起来。据我所知,有一个项目可以实现这一点,称为 BrickPi。虽然相当成功,但我认为它有几个缺点,我想在这篇文章和后续文章中解决。首先,它只兼容旧的基于 I2C 的 NXT 传感器,而不兼容新的基于 UART 的 EV3 传感器。此外,它不直接将传感器连接到 pi,而是使用两个 Atmega 微控制器(兼容 Arduino)与传感器进行通信。添加新传感器或任何其他更改都需要新固件。此外,BrickPi 使用 L293D 电机驱动器,它只能提供 0.6 A 左右的电流,而乐高 NXT 电机在停转时消耗高达 2 A 的电流 [NXT 电机特性]。在本文中,我想向您展示如何直接连接乐高 Mindstorms无需使用任何额外的微控制器即可将超声波传感器(美国传感器)连接到 Pi。

挑战

我第一次尝试将美国传感器连接到 Pi 很简单。只需使用带有两个 n-FET [AppNote] 的简单电平转换器连接两条 I2C 信号线。电平转换器应该是必要的,因为美国传感器使用 5 V 逻辑电平,而 pi 只有 3.3 V。然后将 5V 和 9V 连接到传感器并启动一个简单的测试程序,结果什么都没有。两次检查线路和软件后,我连接了逻辑分析仪,发现美国传感器无法回答任何请求,甚至无法确认自己的地址。第一个也是主要的挑战是 Pi 和传感器之间的硬件连接。 Lego 对硬件和软件协议进行了很好的描述,包括原理图 [Lego HDK],虽然它使用 I2C,但我们不能将传感器直接连接到 pi。正如您在方案 1 中看到的,传感器具有非常弱的上拉电阻(82 k) 和非常强大的串联电阻 (4.7 k) 在其 I2C 线上。第二个电阻是我们的主要问题。您可能知道,Pi 在其 I2C 线路上使用了强大的 1.8k 上拉电阻。由于串联电阻,传感器无法下拉任何 I2C 线路,因此无法响应 I2C 主机的任何请求。图 1 显示了这种情况的粗略模拟。蓝线显示传感器尝试发送的数据,绿线显示 Pi 接收的数据。如您所见,传感器无法将模拟数据线拉低。您可能还注意到,在这种状态下不需要任何电平转换电路,因为到 3.3 V 的强上拉电阻在高电平时也支配线路。到目前为止,我发现这个问题的唯一解决方案是使用 TCA9517,一个用于 I2C 的 2 通道双向缓冲器。此外,该芯片负责电平转换。第二个挑战源于美国传感器中的固件错误。例如在mbed 论坛中这里有描述。还有一篇文章描述了如何使用逻辑分析仪(德语)分析Lego Mindstorms NXT 和美国传感器之间的通信。总而言之,在将寄存器写入传感器和实际从传感器读取数据之间需要一个额外的时钟周期(在 SCL 线上切换)。这当然与任何标准 I2C 硬件或软件实现不兼容。您可以使用任何一对 GPIO 编写特殊的软件 I2C 实现,但将另一个 GPIO 从 Pi 连接到 SCL 线并在将寄存器写入传感器和读取寄存器内容之间切换会更简单。

硬件

一个简单原型所需的硬件: 对于这个原型,我使用了一块面包板和一个小型定制的 Lego Mindstorms 传感器分线板。该板模仿 Lego Mindstorms NXT [Lego HDK] 的 9V 控制和传感器端口保护。对于简单的原型,您不需要 9V 开关电路(两个 FET)或额外的串联电阻器和 I2C 线上的二极管。您只需将 9V 连接到电缆的引脚 1,GND 连接到引脚 2 和 3,5 V 连接到引脚 4(省略二极管 D1),SCL_5V 连接到引脚 5,SDA_5V 连接到引脚 6。有关更多详细信息:如何连接 Lego Mindstorms NXT Raspberry Pi 的超声波传感器

制造工艺

  1. 基本物联网 – RaspberryPI HDC2010 如何
  2. Raspberry Pi 温度记录器
  3. Raspberry Pi 上的温度监控
  4. Python 和 Raspberry Pi 温度传感器
  5. Raspberry Pi 气象站
  6. 传感器数据与 Raspberry Pi 微处理器的集成
  7. 超声波传感器 (HC-SR04) + Raspberry Pi
  8. 使用 Raspberry Pi 的运动传感器
  9. Raspberry Pi 土壤湿度传感器
  10. Raspberry Pi 温度和光传感器
  11. 将传感器连接到您的 Raspberry Pi 以在有毒气体出现时向您发出警告!
  12. 破解乐高 EV3:构建自己的物体传感器“眼睛”