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

9

Mi Arduino está conectado a algunas luces sobre 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 mi escudo WiFi.

¿Alguien sabe de alguna manera que puedo hacer esto a través de WiFi? Tal vez si subo un nuevo código a la memoria flash en el escudo WiFi, ¿podría cargarse 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?

Pulpo
fuente

Respuestas:

8

Es posible, en teoría, pero no trivial en la práctica. El código responsable de cargar su nuevo boceto en Arduino se denomina gestor de arranque . Todas las versiones populares de cargadores de arranque que conozco están basadas en serie / USB. Para cargar un boceto sobre el escudo WiFi, el gestor de arranque debería reescribirse para comunicarse con el escudo 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 cargando el boceto directamente a su Arduino: el El gestor de arranque deberá comunicarse con el escudo para leer los datos del boceto.


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

  • Los módulos bluetooth de menor costo que encuentra en Ebay son 3.3V. Esto significa que tendrá que suministrarles energía de 3.3V, y la línea de envío de su Arduino necesitará un cambio de voltaje de 5V a 3.3V. Puede resolver el primer subproblema (alimentación) comprando un módulo Bluetooth hecho para comunicación de 5V, o si su Arduino tiene alimentación de 3V3 que lo utiliza para alimentar el módulo Bluetooth. Un módulo listo para 5V también resuelve el segundo problema; alternativamente, puede cambiar el voltaje de la salida de 5V de su Arduino utilizando cualquiera de las técnicas descritas en esta pregunta .
  • Para programar su Arduino automáticamente, el Arduino debe reiniciarse justo antes de cargar el boceto: cuando Arduino se ejecuta normalmente, el gestor de arranque no está activo. Al reiniciar el Arduino se activa el gestor de arranque, lo que permite la carga de nuevos bocetos. en el Arduino USB utiliza inteligentemente la línea DTR para restablecer el dispositivo. Sin embargo, la mayoría de los módulos serie 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 ordenar para conectar a un circuito de reinicio .
angelatlarge
fuente
2

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

También puede programar el ESP8266 en sí mismo con el SDK de Arduino y tiene mucha potencia propia.

Vea aquí en whatimadetoday (no en mi publicación) para una buena introducción de cómo ponerse en marcha con el ESP8266 y el Arduino SDK. Una vez que el SDK está configurado para programar el ESP8266, puede buscar en los ejemplos del IDE y encontrar "Arduino_Wifi_AVRISP".

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

Pulpo
fuente