Arduino批量编程
Arduino bulk programming
我正在寻找如何使用相同的代码快速对多个 Arduino 进行编程。我环顾四周,似乎你可以通过使用在 SD 卡上有代码的主 Arduino 来做到这一点,但我找不到完成这个的实际步骤。任何方向将不胜感激!
谢谢!
尽管社区对该问题投了反对票。我仍然认为这个问题是软件问题,可以通过软件解决。
为了将固件从 Arduino IDE 同时上传到多个开发板,您需要执行以下步骤:
- 在 Arduino 首选项中上传时启用详细输出
- 将草图上传到板并在日志中查找avrdude路径。 (我用绿色矩形突出显示了它)
- 现在导出草图的编译二进制文件
然后你可以使用一段 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 参数。
我正在寻找如何使用相同的代码快速对多个 Arduino 进行编程。我环顾四周,似乎你可以通过使用在 SD 卡上有代码的主 Arduino 来做到这一点,但我找不到完成这个的实际步骤。任何方向将不胜感激!
谢谢!
尽管社区对该问题投了反对票。我仍然认为这个问题是软件问题,可以通过软件解决。
为了将固件从 Arduino IDE 同时上传到多个开发板,您需要执行以下步骤:
- 在 Arduino 首选项中上传时启用详细输出
- 将草图上传到板并在日志中查找avrdude路径。 (我用绿色矩形突出显示了它)
- 现在导出草图的编译二进制文件
然后你可以使用一段 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 参数。