Arduino批量编程

Arduino bulk programming

我正在寻找如何使用相同的代码快速对多个 Arduino 进行编程。我环顾四周,似乎你可以通过使用在 SD 卡上有代码的主 Arduino 来做到这一点,但我找不到完成这个的实际步骤。任何方向将不胜感激!

谢谢!

尽管社区对该问题投了反对票。我仍然认为这个问题是软件问题,可以通过软件解决。

为了将固件从 Arduino IDE 同时上传到多个开发板,您需要执行以下步骤:

  1. 在 Arduino 首选项中上传时启用详细输出
  2. 将草图上传到板并在日志中查找avrdude路径。 (我用绿色矩形突出显示了它)
  3. 现在导出草图的编译二进制文件

然后你可以使用一段 shell 脚本魔术(对于 Linux):

#!/bin/bash

hex_file="/home/<username>/Documents/Arduino/<project_name>/<filename>.hex"
path_to_avrdude="<path to avrdude>"
serial_port_offset="/dev/ttyUSB*"

command_list=""

for port in $(find $serial_port_offset)
do
    command_list="${command_list} -C${path_to_avrdude}/etc/avrdude.conf -v -patmega328p -carduino -P${port} -b57600 -D -Uflash:w:${hex_file}:i"$'\n'
done

# Specify the count of your boards to -P argument
echo "$command_list" | xargs -n8 -P8 "${path_to_avrdude}/bin/avrdude"

而对于 Mac OS:

#!/usr/bin/env bash

hex_file="/Users/<username>/Documents/Arduino/<project_name>/<filename>.hex"
path_to_avrdude="/Users/<username>/Library/Arduino15/packages/arduino/tools/avrdude/6.3.0-arduino9"
serial_port_offset="/dev/tty.wchusbserial*"

command_list=""

for port in $(find $serial_port_offset)
do
    command_list="${command_list} -C${path_to_avrdude}/etc/avrdude.conf -v -patmega328p -carduino -P${port} -b57600 -D -Uflash:w:${hex_file}:i"$'\n'
done

# Specify the count of your boards to -P argument
echo "$command_list" | xargs -n8 -P8 "${path_to_avrdude}/bin/avrdude"

此脚本会将您的 hex 文件上传到连接到您的 PC 的所有板。确保根据 Arduino 输出更改 hex_file、path_to_avrdude,可能还有 serial_port_offset、avrdude -p 和 -c 参数。