1

我正在寻找1500 美元的 Go-Box的 DIY 替代品,用于大规模配置 Chromebook。我已经设法通过使用 Raspberry Pi Pico 作为“HID 仿真”来复制它。但是,我需要大规模的。我希望能够一次完成 20 台 Chromebook。我只需 20 个 Raspberry Pi Picos 就可以做到这一点,但我需要每配置 100-150 个 Chromebook 更改脚本(更改凭据等)。手动更改每个脚本非常耗时,因此我需要能够一次更改所有 20 个脚本,或者“从属”Picos 启动并启动的一个“主”脚本。

起初,我想到了一个他们都可以读取的 SD 卡,当需要时,我可以将它取出并更改那里的脚本,然后当 Pico 启动时,它可以将新脚本复制到 Pico 的根目录。但是,这可能是一个问题,因为我不知道当尝试同时从同一个地方读取脚本时,Picos 是否会相互冲突。这是我的第一个问题。

然后我想到了主从设置。一个 Pico 充当 Master 并持有脚本。其他 20 个是从机,当引脚为高电平时从主机获取脚本(表示 Picos 需要重新编程)。我只会在重新编程脚本时使用 Master。当我打开主控时,我会让它设置一个引脚为高电平,所有其他从属将检查启动以查看引脚是否为高电平。如果 Slaves 发现 pin 为高电平,它不会运行脚本,但会从 Master 更新它。这就是我遇到这种方法问题的地方。 我需要将脚本从 Master 转移到 Slaves。我在 UART、SPI 或 I2C 等通信协议方面没有任何经验,但我知道如果我想做多个从设备,那么我最好使用 I2C。

这是我最后的手段,因为我已经搜索了几天并且找不到合适的解决方案。是否有人能够就以下任何一项提供任何见解:

  • 如何将脚本从一个地方变成二十个?
  • 当所有 20 个 Picos 都尝试访问 SD 卡时,SD 卡的想法会发生冲突吗?
  • 如何通过 I2C 或类似协议传输文件?

我感谢任何人可以提供的任何帮助。我在用MicroPython v1.16 on 2021-06-18; Raspberry Pi Pico with RP2040

4

1 回答 1

2

pico 有一个易于编程的 uart(实际上是 2 个);有很多与 pico 进行串行通信的示例,通常与完整的 Raspberry Pi 通信。

您可以将 picos 上的所有 rx 接收器引脚连接到主 tx 传输引脚,并与它们并行通信,无需回复。我不知道是否可以通过从主 tx 发送合适的命令来使 tx 引脚三态以便它们都可以连接,但一次只能启用一个。问题在于 20 个接收器的电气负载以及并行电缆的过长可能无法实现无差错传输。

或者您可以菊花链串行端口,这样 pico1 的 rx 被那里的软件读取并在其连接到 pico2 的 rx 的 tx 上重复输出,依此类推。您可以使用“节点号”开始每个数据包,每个 pico 在发送之前递减它。如果此数字为 1,则数据包适用于此节点。这是一种微微的自动编号。像 255 这样的数字可用于广播。

如果最后一个 pico 的 tx 连接回主控,您甚至可以允许任何 pico 发送回复,前提是软件等待传入数据的中断。它还允许进行基本的流量控制和错误检查。如果 master 一次只发送 1 个字节,并等待每个字节从最后一个 pico “回显”回来,它可以确保每个人都看到了数据。此外,每个串行段都可以很短,因此不会出现电气负载问题或信号损坏。

看看像这样菊花链的 gpib 总线,或者像 WS2812B 这样的简单的可单独寻址的 RGB LED,它们也是菊花链的。

于 2021-07-21T11:25:49.443 回答