TL; DR -
Tiene las opciones de BlueTooth o XBee (entre otras: ¿IR, por ejemplo?) Para la carga inalámbrica. Sin embargo, creo que solo se puede cargar una placa a la vez, por lo que deberá recorrer las tablas una por una; consulte Programación de ATMegas / Arduinos múltiples a la vez .
Al cargar un boceto o usar un programador (para boceto o cargador de arranque), el software no solo escribe el código, sino que se comunica con el microcontrolador.
No puedes programarlos todos a la vez. Pero puede programarlos uno por uno de manera automática.
Su pregunta es muy interesante y hace una pregunta que estoy seguro de que nunca habría pensado, pero que sería extremadamente útil y que ahorraría trabajo, especialmente si uno tiene, como lo hago, muchos puntos de sensores controlados por Arduino ubicados alrededor del casa. Aquí hay una solución poco elegante que vale la pena probar.
Hardware de carga inalámbrica
Si usa BlueTooth para cargar sus bocetos de forma inalámbrica, entonces esta solución podría ser útil, programa de carga inalámbrica a Arduino sin cable USB . Tenga en cuenta que esta solución ata los pines D0 y D1:
Pero tenga cuidado de que tal vez no sea compatible con algunos proyectos que necesitan usar D0 y D1 como hardware UART TX, RX. Porque el programador inalámbrico necesita ocupar permanentemente los dos pines.
Mirándolo, emplea un programador inalámbrico Arduino personalizado , al que puede haber hecho referencia en su pregunta. Sin embargo, no se deje engañar por el nombre, es simplemente un escudo Bluetooth. Básicamente es un dispositivo BT HC-05 (o similar), atornillado a un Arduino, consulte también Carga inalámbrica Bluetooth .
Alternativamente, en lugar de BlueTooth, puede usar dispositivos XBee , consulte Programación inalámbrica de Arduino . La ventaja de usar XBees es que no tendría que pasar por el ciclo de emparejamiento del nuevo dispositivo (ver más abajo), que sería necesario cuando se usa BT. En su lugar, simplemente tendría que recorrer las ID de red de XBee.
Sin embargo, además de eso, necesitaría automatizar el cambio de dispositivos BT, seleccionando el puerto apropiado y cargando a cada Arduino a su vez, ya que no puede transmitir bocetos . (Si me equivoco, alguien me corregirá).
Seleccionar el puerto y subir el boceto
Puede usar un script junto con la versión de línea de comando del IDE Arduino, para seleccionar el puerto al que está conectado el dispositivo BT, antes de cada carga. La forma en que haga esto variará para cualquier plataforma en la que esté compilando, consulte la línea de comando Arduino compilando y descargando. Esto se puede hacer usando la variable de entorno ARDUINO_COMPORT
(vea la construcción de la línea de comandos de Windows posiblemente desactualizada ), o la opción de línea cmd de arduino --port <portname>
(vea la página del manual ). El boceto sería entonces cargado usando la opción --upload <filename>
. Podrías hacer esto de un solo golpe:
arduino --upload --port <portname> FILE.ino
Tenga en cuenta que en Windows debe usar arduino_debug.exe
.
O usted podría utilizar Ino , si está no está usando un PC con Windows ... pero que podría hacer que la parte siguiente, que se ocupa del bucle más compleja de lo que debe ser.
Seleccionar cada uno de los Arduinos (es decir, los dispositivos BT)
A continuación, deberá agregar un bucle al script, que empareje la PC con cada dispositivo BT y luego llame al IDE Arduino, para la selección y carga del puerto. Desafortunadamente, esto no sería agnóstico de plataforma en absoluto, y requeriría una solución diferente para cualquier plataforma que esté utilizando. Eche un vistazo a Bluetooth desde la línea de comandos , pero para Windows probablemente necesite el conjunto de herramientas Blue Tooth Command Line .
En OS X, es mejor que recurra al uso de AppleScript, consulte Conectarse a un dispositivo Bluetooth (iPhone) a través de la línea de comandos en MacOSX , ya que las herramientas de línea cmd para controlar BT parecen un poco escasas: hay BlueUtil , consulte Cómo controlar la conexión inalámbrica Bluetooth radio desde la línea de comando? pero eso solo parece encender o apagar el BT. Sin embargo, atornillar AppleScript al resto del script de control Arduino IDE rápidamente hace las cosas más complejas, aunque supongo que podría simplemente poner el comando Arduino dentro del AppleScript.