连接树莓派和英特尔爱迪生

物联网 树莓派 爱迪生 USB
2021-06-23 06:33:38

我有一个带有基于英特尔 Edison 的 IMU 的 GPS 单元,我想与 Raspberry Pi 一起用于机器人项目。大体的想法是,我想使用爱迪生单元为 Pi 提供标准化格式的传感器数据(gps、陀螺仪、指南针、++),并使用 Pi 来驱动机器人本身。这将允许我在未来添加更多爱迪生,和/或用更新和改进的传感器替换它们,而无需修改驱动机器人的计算机。

但是,我被困在如何整合两者上。我最初的想法是使用板载 USB 端口进行通信,但我不知道从哪里开始。如果可以简化事情,重新配置 USB 端口以通过 USB 提供以太网是另一种选择。

让爱迪生连续写入 USB 端口,两者之间没有其他通信没有问题,但在某些情况下,树莓派应该向爱迪生发送命令,以重置或校准一个或多个传感器或在测试期间禁用它们。

是为此编写自定义驱动程序的最佳选择,还是我最好通过 USB 使用以太网并简单地使用 TCP 实现服务器/客户端模型?

如果 USB 驱动程序选项是最好的,那么哪里会是一个好地方?该驱动程序本质上必须在 Edison 上运行一个或多个程序/命令,将输出返回给 Pi。

编辑:如前所述,USB 是首选的连接方法,因为它允许为 Edison 提供数据和电源(从 Pi 驱动它),因此我可以避免为 Edison 添加单独的电源。理想情况下,消息将是简单的 json 字符串,速度约为 100/秒。Edison 运行 Busybox,而 Pi 运行基于 Debian 的发行版。两者在运行时都无法访问外部网络,因此它们将仅限于 USB 或以太网上的 USB,因为在两个单元上都找不到其他物理连接器。

1个回答

将 USB 端口配置为以太网只会使事情复杂化。不仅将不常见的专有 RNDIS 协议混入其中,而且您还需要在顶部添加 IP 服务器/客户端应用程序。

Edison 上的微型 USB 连接器已配置为使用 FTDI 芯片提供到 UART 的桥接。Raspberry Pi 已经带有(同样专有,但非常普遍)FTDI 驱动程序。/dev/ttyUSB当 Edison 插入时,驱动程序将在 Pi 上创建一个设备,您可以像任何其他串行端口一样进行通信。

为 Edison 上的串行端口创建一个服务器,该服务器响应简单的命令(或只是定期发送数据),并为处理另一端的 Pi 上的虚拟串行端口创建一个客户端。