¿Puedo reprogramar mi Arduino a través de un escudo de wifi?

9

Mi Arduino está conectado a algunas luces de mi acuario y puedo controlarlas desde un navegador web en mi LAN. Me pregunto si puedo modificar el programa en el Arduino sin tener que conectarlo a una máquina a través de USB, lo que sería un poco inconveniente. Debe haber alguna forma de aprovechar la conexión wifi.

He utilizado el escudo wixel de Pololu para enviar programas de forma inalámbrica (solo actúa como una radio de puerto serie) pero esa es una tecnología diferente a la de mi escudo WiFi.

¿Alguien sabe de alguna manera que pueda hacerlo a través de WiFi? Tal vez si subo un nuevo código a la memoria flash en el escudo de WiFi, ¿podría entonces arrancar desde la memoria flash? No estoy seguro de cómo hacerlo o si es posible.

¿Quizás un enfoque completamente diferente sería más simple?

    
pregunta Octopus

2 respuestas

8

Es posible, en teoría, pero no trivial en la práctica. La pieza de código responsable de cargar su nuevo boceto en el Arduino se llama bootloader . Todas las versiones populares de gestores de arranque que conozco están basadas en serie / USB. Para cargar un boceto sobre el escudo de WiFi, el gestor de arranque debería reescribirse para comunicarse con el escudo de WiFi en lugar de en serie. Esto llevaría algo de trabajo, pero no imposible en la práctica.

Tenga en cuenta que tendrá que hacer esto independientemente de si está almacenando el boceto en el escudo WiFi (lo que creo que sería difícil: no estoy seguro de si esto es posible) o de cargar el boceto directamente a su Arduino: el gestor de arranque deberá comunicarse con el escudo para leer los datos del boceto.

Hay una forma de reprogramar tu Arduino de forma inalámbrica fácilmente, y eso es Bluetooth. Necesitará obtener un módulo Bluetooth (no sé si funcionará un escudo Bluetooth) y conectarlo a los puertos serie hardware . El gestor de arranque que está en su Arduino ya puede hablar en serie, por lo que el problema está resuelto. Sin embargo, tendrá que resolver (potencialmente) otros dos problemas:

  • Los módulos Bluetooth de menor costo que usted encuentra en Ebay son 3.3V. Esto significa que tendrá que suministrarles una potencia de 3.3V, y la línea de envío de su Arduino deberá cambiarse de voltaje de 5V a 3.3V. Puede resolver el primer subproblema (de alimentación) comprando un módulo Bluetooth creado para la comunicación de 5V, o si su Arduino tiene alimentación de 3V3, use eso para alimentar el módulo Bluetooth. Un módulo preparado para 5V también resuelve el segundo problema; alternativamente, puede cambiar la salida de 5 V desde su Arduino usando cualquiera de las técnicas descritas en esta pregunta .
  • Para programar su Arduino automáticamente, Arduino debe reiniciarse justo antes de que se cargue el boceto: cuando Arduino se ejecuta normalmente, el cargador de arranque no está activo. Al reiniciar el Arduino, se activa el cargador de arranque, lo que permite cargar nuevos bocetos. en el Arduino USB usa inteligentemente la línea DTR para reiniciar el dispositivo. Sin embargo, la mayoría de los módulos seriales Bluetooth solo proporcionan salida TS / RX, por lo que probablemente tendrá que reiniciar el Arduino manualmente para cargar un boceto, a menos que pueda encontrar alguna salida de señal en el módulo Bluetooth que pueda configurar para conectarse a un circuito de reinicio .
respondido por el angelatlarge
3

Hoy, me di cuenta de un producto que puede lograr esto: el ESP8266. Te permitirá programar / reprogramar tu arduino a través de una conexión wifi. Varias compañías producen versiones del chip en varios arreglos de tablero de ruptura. Específicamente, puede convertirse en un AVRISP WiFi para un Arduino.

También puede programar el ESP8266 con el SDK de Arduino y tiene un gran poder propio.

Consulta aquí en whatimadetoday (no es mi publicación) para una buena Introducción de cómo ponerse en marcha con el ESP8266 y el SDK de Arduino. Una vez que el SDK esté configurado para programar el ESP8266, puede navegar por los Ejemplos del IDE y encontrar "Arduino_Wifi_AVRISP".

Puede encontrar el tablero para precios que oscilan entre $ 5 y $ 15.

    
respondido por el Octopus

Lea otras preguntas en las etiquetas