Me gustaría poder actualizar el software en un arduino sin tocar físicamente el dispositivo o conectar un cable. Se puede hacer?
Escogerá el protocolo inalámbrico que lo haga más fácil.
Me gustaría poder actualizar el software en un arduino sin tocar físicamente el dispositivo o conectar un cable. Se puede hacer?
Escogerá el protocolo inalámbrico que lo haga más fácil.
Respuestas:
La mejor y más fácil solución que he encontrado es usar Bluefruit EZ-Link de Adafruit. Tienen un módulo que se conecta a los pines de serie / encendido / reinicio ( enlace aquí ) o un escudo para el uno ( enlace aquí ). También tienen una excelente descripción y guía práctica ( enlace aquí ) que es bastante buena. Básicamente aparece como un enlace de Bluetooth en serie en el IDE de Arduino y usted lo programa normalmente. Tiene el beneficio adicional de ser útil no solo para la programación, sino también para enviar y recibir datos.
Hemos implementado actualizaciones remotas en un Arduino Pro Mini (ATMega328P) al poner un comando de "arranque" en el firmware normal. Cómo funciona es:
Esto no requiere un nuevo cargador de arranque o hardware. Sin embargo, no es una buena solución para dispositivos comerciales, ya que si el firmware cargado está dañado, la placa no podrá ponerse en modo de cargador de arranque sin un restablecimiento completo.
Algunos dispositivos de comunicaciones inalámbricas, como XBees, tienen GPIO que se puede activar de forma remota. Conectar esto al pin de reinicio de Arduino permitirá que la placa se reinicie en el cargador de arranque.
El Arduino Yun se puede actualizar remotamente (ya sea a través de wifi o cable de red): deberá seleccionar su dirección IP en el menú "Herramientas> Tableros" del IDE de Arduino y luego presionar el botón de carga como de costumbre.
Es posible escribir un cargador de arranque que se ejecute en RAM (o incluso en Flash, tal vez en un bloque de arranque especial, depende del microcontrolador).
Este gestor de arranque debe poder establecer la comunicación inalámbrica, comprender el protocolo y borrar / escribir memoria Flash.
Existen básicamente dos enfoques para la actualización de software:
El protocolo que elija es casi irrelevante. Solo asegúrese de que haya suficientes recursos para mantenerlo en RAM / Flash. En un Arduino Due, por ejemplo, hay recursos más que suficientes para dicha implementación.
Las tarjetas Spark.io también son muy buenas para dispositivos tipo Arduino programables OTA. Tengo uno y he encontrado que es bastante fácil trabajar con él.