Posso riprogrammare il mio Arduino tramite uno scudo wifi?


9

Il mio Arduino è collegato ad alcune luci sul mio acquario e posso controllarle da un browser Web sulla mia LAN. Mi chiedo se posso modificare il programma su Arduino senza doverlo collegare a una macchina tramite USB, il che sarebbe un po 'scomodo. Dev'esserci un modo per sfruttare la connessione wifi.

Ho usato lo scudo wixel di Pololu per inviare programmi in modalità wireless (funge solo da radio con porta seriale) ma questa è una tecnologia diversa dalla mia protezione WiFi.

Qualcuno sa come posso farlo tramite WiFi? Forse se carico un nuovo codice nella memoria flash nella protezione WiFi, potrebbe caricarsi dalla memoria flash? Non sono sicuro di come farlo o se è anche possibile.

Forse un approccio completamente diverso sarebbe più semplice?

Risposte:


8

È possibile, in teoria, ma non banale in pratica. Il pezzo di codice responsabile del caricamento del nuovo schizzo su Arduino si chiama bootloader . Tutte le versioni popolari di bootloader che conosco sono basate su seriale / USB. Per caricare uno schizzo sulla protezione WiFi, il bootloader dovrebbe essere riscritto per comunicare con la protezione WiFi anziché seriale. Ciò richiederebbe un po 'di lavoro, ma non impossibile nella pratica.

Nota che dovrai farlo indipendentemente dal fatto che stai memorizzando lo schizzo sullo scudo WiFi (cosa che penso sarebbe difficile: non sono sicuro che ciò sia possibile) o caricando lo schizzo direttamente sul tuo Arduino: il il bootloader dovrà comunicare con lo scudo per leggere i dati dello schizzo.


C'è un modo per riprogrammare facilmente il tuo Arduino in modalità wireless, e questo è il Bluetooth. Dovrai procurarti un modulo Bluetooth (non so se funzionerà uno schermo Bluetooth) e collegarlo alle porte seriali hardware . Il bootloader che si trova sul tuo Arduino può già parlare in serie, quindi il problema è stato risolto. Dovrai (potenzialmente) risolvere altri due problemi:

  • I moduli bluetooth più economici che trovi su Ebay sono 3.3V. Ciò significa che dovrai fornire loro un'alimentazione di 3,3 V e la linea di invio del tuo Arduino dovrà essere spostata da 5 V a 3,3 V. È possibile risolvere il primo sotto-problema (di alimentazione) acquistando un modulo Bluetooth realizzato per la comunicazione a 5 V o se Arduino è alimentato a 3 V3 utilizzando quello per alimentare il modulo Bluetooth. Un modulo pronto per 5V risolve anche il secondo problema; in alternativa, puoi spostare la tensione in uscita a 5 V dal tuo Arduino usando una delle tecniche descritte in questa domanda .
  • Per programmare automaticamente Arduino, Arduino deve essere ripristinato subito prima del caricamento dello schizzo: quando Arduino viene eseguito normalmente il bootloader non è attivo. Il ripristino di Arduino attiva il bootloader, consentendo il caricamento di nuovi schizzi. su Arduino USB utilizza abilmente la linea DTR per ripristinare il dispositivo. La maggior parte dei moduli seriali Bluetooth, tuttavia, fornisce solo l'uscita TS / RX, quindi sarà probabilmente necessario ripristinare Arduino manualmente per caricare uno schizzo, a meno che non sia possibile trovare un segnale in uscita sul modulo Bluetooth che è possibile eseguire il marshalling per connettersi a un circuito di ripristino .

2

Oggi sono venuto a conoscenza di un prodotto in grado di raggiungere questo obiettivo: l'ESP8266. Ti permetterà di programmare / riprogrammare il tuo arduino tramite una connessione wifi. Varie aziende producono versioni del chip su varie disposizioni di breakout board. In particolare, può diventare un AVRISP WiFi per un Arduino.

È inoltre possibile programmare ESP8266 stesso con l'SDK di Arduino e ha un sacco di potenza propria.

Vedi qui su whatimadetoday (non il mio post) per una buona introduzione su come andare avanti con ESP8266 e Arduino SDK. Una volta impostato l'SDK per programmare ESP8266, è possibile sfogliare gli esempi dell'IDE e trovare "Arduino_Wifi_AVRISP".

Puoi trovare la scheda per prezzi che vanno da circa $ 5- $ 15.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.