E' possibile connettere direttamente Arduino, via USB, agli apparati che possono far girare il sistema operativo GNU/Linux OpenWRT (es. Alice Gate 2 Plus Wifi e molti altri). Tra le cose più interessanti ho scoperto che è possibile scaricare su Arduino gli sketch .hex direttamente dall'apparato OpenWRT, senza dover per forza utilizzare il PC. Tale applicazione è utile (come nel mio caso della centrale di irrigazione), per gestire il funzionamento di Arduino su dispositivi telecontrollati (via Internet o Wifi).
Schema di connessione:
I pacchetti necessari per la connessione di Arduino ad OpenWRT sono:
Per procedere all'upgrade dello sketch è necessario installare il pacchetto avrdude (disponibile precompilato nel repository OpenWRT):
A questo punto, una volta caricato sul dispositvo OpenWRT il codice macchina .hex (generato dall'IDE Arduino o compilato a mano con avr-gcc), bisogna lanciare il comando:
Ovviamente al posto di "/dev/ttyUSB0" va inserito il device corretto, così come "m328p" riguarda l'ATmega328P. "/root/Blick.cpp.hex" è il percorso del file .hex da caricare. Il reset di Ardino avviene (almeno nel mio caso) automaticamente; se così non fosse basta inviare un impulso via seriale sul DTR prima di lanciare avrdude.
root@irrigator:/etc# avrdude -p m328p -P /dev/ttyUSB0 -c stk500v1 -b 57600 -C /etc/avrdude.conf -U flash:w:/root/Blink.cpp.hex
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.02s
avrdude: Device signature = 0x1e950f
avrdude: NOTE: FLASH memory has been specified, an erase cycle will be performed
To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: reading input file "/root/Blink.cpp.hex"
avrdude: input file /root/Blink.cpp.hex auto detected as Intel Hex
avrdude: writing flash (896 bytes):
Writing | ################################################## | 100% 0.28s
avrdude: 896 bytes of flash written
avrdude: verifying flash memory against /root/Blink.cpp.hex:
avrdude: load data flash data from input file /root/Blink.cpp.hex:
avrdude: input file /root/Blink.cpp.hex auto detected as Intel Hex
avrdude: input file /root/Blink.cpp.hex contains 896 bytes
avrdude: reading on-chip flash data:
Reading | ################################################## | 100% 0.22s
avrdude: verifying ...
avrdude: 896 bytes of flash verified
avrdude: safemode: Fuses OK
avrdude done. Thank you.
root@irrigator:/etc#
Note:
http://en.wikipedia.org/wiki/OpenWrt
Per info sull'argomento: Marco D'Ambrosio info@marcodambrosio.it