Tendré muchos dispositivos basados en microcontroladores que serán independientes entre sí, pero todos ejecutarán el mismo programa.
Me gustaría subir un programa a todos al mismo tiempo con una transmisión inalámbrica. Idealmente, el usuario enchufaría un controlador USB a su computadora y cargaría un programa del entorno Arduino como si estuviera programando un solo dispositivo.
Para tener una mejor idea de lo que estoy hablando, mira este video . Esto se logró con los microcontroladores Atmel, pero con un gestor de arranque personalizado que no es Arduino.
De una búsqueda en Google de "programación infrarroja Arduino" surgió este interesante proyecto . El principal inconveniente es que el botón de reinicio aún debe presionarse manualmente. Idealmente, me gustaría que los dispositivos estén en un estado de baja potencia por defecto, y que se activen para recibir un programa cuando perciban una señal del controlador. Aún así, este puede ser un buen punto de partida para mí.
Solo quería obtener algunas perspectivas de las personas que están familiarizadas con Arduinos en cuanto a si piensan que esto es factible antes de entrar.
Respuestas:
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 .
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:
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: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.
fuente
Puede usar ESP-LINK para programar el Arduino a través de WiFi.
El ESP8266 es un MCU Wi-Fi simple y barato que se puede programar con Arduino IDE.
ESP-LINK es un firmware para el ESP8266 que hace que el ESP actúe como una conexión en serie (USB) a Arduino.
El firmware se puede encontrar aquí en ESP-LINK ESP8266 .
fuente
Uno puede usar algo como esto . Es un gestor de arranque personalizado para actualizar el código de un Arduino a través de un módulo de radio NRF24L01 +. *
* Solo funciona en máquinas Linux.
fuente