TL; DR-
您可以选择蓝牙或XBee(例如:IR,例如IR)进行无线上传。但是,我相信一次只能上传一个板,因此您需要一次循环浏览一个板,请参阅一次编程多个ATMegas / Arduino。
当上传草图或使用编程器(用于草图或引导程序)时,该软件不仅会编写代码,而且实际上会与微控制器通信。
您不能一次对它们进行编程。但是您可以通过某种自动方式对它们进行逐一编程。
您的问题是一个非常有趣的问题,并提出了一个我肯定不会想到的问题,但是它将非常有用且省力,尤其是如果一个人像我一样在Arduino周围有许多Arduino控制的传感器点的时候屋。这是一个可能不太值得尝试的解决方案。
无线上传硬件
如果您使用蓝牙无线上传草图,则此解决方案可能有用,无需USB电缆将程序无线上传到Arduino。请注意,此解决方案将引脚D0和D1绑在一起:
但是要注意,它可能与某些需要将D0和D1用作硬件UART TX,RX的项目不兼容。因为无线编程器需要永久占用这两个引脚。
看一下它,它使用了一个自定义的Arduino无线编程器,您在问题中可能一直在引用它。但是,不要被这个名字所迷惑,它只是一个蓝牙屏蔽。它基本上是BT HC-05(或类似产品)设备,用螺栓固定在Arduino上,另请参见Bluetooth Wireless Upload。
或者,可以使用XBee设备代替蓝牙,请参见Arduino的无线编程。使用XBees的优点是您不必经历配对新设备循环(见下文),而使用BT则需要这样做。取而代之的是,您只需要循环浏览XBee网络ID。
但是,除此之外,由于无法广播草图,您将需要自动切换BT设备,选择适当的端口并依次上传到每个Arduino 。(如果我错了,那么请有人纠正我)。
选择端口并上传草图
您可以在每次上传之前使用脚本以及Arduino IDE的命令行版本来选择BT设备连接的端口。对于在哪个平台上进行编译,您的操作方式将有所不同,请参见命令行Arduino编译和下载?可以使用环境变量ARDUINO_COMPORT
(请参阅Windows命令行版本可能过时的版本)或arduino cmd行选项--port <portname>
(请参见手册页)来完成此操作。然后使用选项将草图上载--upload <filename>
。您可以一口气做到这一点:
arduino --upload --port <portname> FILE.ino
请注意,在Windows上,您应该使用arduino_debug.exe
。
或者,如果您未使用Windows PC ,则可以使用Ino ...,但这可能会使下一部分处理循环变得比所需的更为复杂。
选择每个Arduino(即BT设备)
接下来,您需要在脚本中添加一个循环,该循环将PC依次与每个BT设备配对,然后调用Arduino IDE,以进行端口选择和上传。不幸的是,这根本不是平台不可知的,对于您所使用的平台,将需要不同的解决方案。从命令行看一下蓝牙,但是对于Windows,您可能需要蓝牙命令行工具套件。
在OS X上,最好还是使用AppleScript,请参阅通过MacOSX上的命令行通过命令行连接到蓝牙设备(iPhone),因为用于控制BT的cmd线路工具似乎有点不足-有BlueUtil,请参见如何控制蓝牙无线从命令行广播?但这似乎只能关闭BT。但是,将AppleScript固定在Arduino IDE控制脚本的其余部分上会使事情变得更加复杂,尽管您可以将Arduino命令放在AppleScript中。