如何一次将文件推送到多个Raspberry Pi Pico?

2024-05-15 09:26:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在寻找一个DIY替代的$1500 Go-Box为大规模供应铬电子书。我通过使用树莓皮皮皮皮考作为“HID仿真”成功地复制了这一点。然而,我需要一个大规模的。我想一次能做20本Chromebook。我可以用20个Raspberry Pi Pico来完成这项工作,但我需要每提供100-150个Chromebook(更改凭据等)就更改一次脚本。手动更改每个脚本非常耗时,因此我需要能够一次更改所有20个脚本,或者一个“主”脚本,由“从”Picos启动

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

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

这是我最后的选择,因为我已经在谷歌上搜索了好几天,找不到合适的解决方案。是否有人能够提供以下任何方面的见解:

  • 如何将脚本从一个位置转换到二十个位置
  • 当所有20个Pico都试图访问SD卡时,SD卡的想法会发生冲突吗
  • 如何通过I2C或类似协议传输文件

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


Tags: 脚本boxgopinpisd电子书i2c
1条回答
网友
1楼 · 发布于 2024-05-15 09:26:31

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

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

或者,您可以菊花链串行端口,以便软件读取pico1的rx,并在其tx上重复输出,该tx连接到pico2的rx,依此类推。您可以使用一个“节点号”启动每个数据包,在发送之前,每个皮卡都会递减该节点号。如果该数字为1,则数据包将应用于该节点。这是一种Pico的自动编号。像255这样的数字可以用于广播

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

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

相关问题 更多 >