通过无线广播同时编程许多Arduino


9

我将拥有许多基于微控制器的设备,这些设备将彼此独立,但是都将运行相同的程序。

我想通过无线广播将节目同时上传到所有这些节目。理想情况下,用户将USB控制器插入其计算机,然后从Arduino环境上传程序,就好像他/他正在为单个设备编程一样。

为了更好地了解我在说什么,请观看此视频。这是通过Atmel微控制器和定制的非Arduino引导程序实现的。

通过Google搜索“ Arduino红外编程”,这个有趣的项目出现了。主要缺点是仍然必须手动按下重置按钮。理想情况下,我希望这些设备默认情况下处于低功耗状态,并在它们感测到来自控制器的信号时醒来以接收程序。不过,对我而言,这可能是一个很好的起点。

我只是想从熟悉Arduino的人那里获取一些观点,以了解他们在我加入之前是否认为这是可行的。



您使用哪个平台上传草图?
Greenonline '16

Answers:


2

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中。


0

您可以使用ESP-LINK通过WiFi对Arduino进行编程。

ESP8266是一款简单廉价的Wi-Fi MCU,可以使用Arduino IDE进行编程。

ESP-LINK是ESP8266的固件,可使ESP充当与Arduino的串行连接(USB)。

可以在ESP-LINK ESP8266上找到固件。


0

人们可以使用像这样。这是一个自定义的引导程序,用于通过NRF24L01 +无线电模块更新Arduino的代码。*

*仅适用于Linux计算机。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.