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