ARDUINO YÚN Caratteristiche HW AVR Arduino Microcontroller Operating Voltage Input Voltage Digital I/O Pins PWM Channels Analog Input Channels DC Current per I/O Pin DC Current for 3.3V Pin Flash Memory SRAM EEPROM Clock Speed ATmega32u4 5V 5V 20 7 12 40 mA 50 mA 32 KB (4 KB usati per il bootloader) 2.5 KB 1 KB 16 MHz Caratteristiche HW Linux machine Processor Architecture Operating Voltage Ethernet WiFi USB Type-A Card Reader RAM Flash Memory Atheros AR9331 MIPS @400MHz 3.3V IEEE 802.3 10/100Mbit/s IEEE 802.11b/g/n 2.0 Host Micro-SD only 64 MB DDR2 16 MB PoE compatible 802.3af card support (see the note below) Arduino Yún Arduino Yún è una scheda di prototipazione, della famiglia Arduino, caratterizzata dalla presenza di due chip di controllo: 1. Un microcontrollore Atmel ATmega32U4, presente anche nella scheda denominata Arduino Leonardo 2. Un processore Atheros AR9331 che permette di far girare una distribuzione Linux per sistemi embedded (OpenWrt-Yun) basata su OpenWrt. Arduino Yún La scheda prevede uno slot per Micro SD, un jack Ethernet ed un connettore di tipo USB-A Host. L’Arduino Yún è anche dotato di un modulo WiFi integrato per la connessione ad un router wireless, o per agire come access point. La scheda può essere alimentata solamente attraverso il connettore micro-USB o il pin Vin, inoltre, non include un regolatore di tensione a 5V: alimentando la scheda con più di 5V (ad es. attraverso il pin Vin) si rischia di danneggiarla. Arduino Yún Architettura Indicatori di stato Reset 3 diversi tasti di reset per: • 32U4 • WiFi • Linino (AR9331) Reset Per riavviare il chip 32U4 e quindi lo sketch installato servono 2 click sul tasto “32U4 RST” ¨ Per il WiFi (tasto “WLAN RST”), ci sono 3 diverse opzioni di reset: ¨ ¤ < 5s : Riavvio WiFi ¤ > 5s e < 30s : Riconfigurazione WiFi ¤ > 30s : Reset dell’OpenWrt-Yun allo stato iniziale cancellando anche tutti i file installati e le configurazioni di rete. ¨ Con il tasto “YÚN RST” si riavvia il chip AR9331 e quindi l’OpenWrt-Yun Configurazione rete via cavo Quando si collega attraverso il cavo Ethernet un Arduino Yún ad una rete o ad un PC, l’Arduino tenterà la connessione automatica con DHCP. È comunque possibile impostare manualmente indirizzi IP statici per l’Arduino Yún. Configurazione rete via cavo I passi per l’impostazione manuale della configurazione di rete sono: 1. Connettere Arduino Yún e PC: a. b. L’Arduino Yún al PC attraverso il cavo USB L’Arduino Yún alla rete attraverso il cavo Ethernet Accedere alla console Linux: 2. a. Dall’IDE di Arduino (versione > 1.5.4) caricare lo sketch File->Examples->Bridge->YunSerialTerminal b. c. Avviare il monitor seriale con parametri NewLine e 57600 Premere il tasto “Invio” dal PC Configurazione rete via cavo A questo punto è possibile leggere/impostare la configurazione di rete attraverso i comandi ifconfig e route. Es. 1) Lettura degli indirizzi IP delle interfacce di rete: Digitare il comando: ifconfig L’indirizzo IP per ogni interfaccia di rete, se disponibile, sarà contenuto nel campo inet addr Es. inet addr:192.168.1.145 Configurazione rete via cavo Es. 2) Impostare l’indirizzo IP dell’interfaccia di rete eth1: Digitare il comando: ifconfig eth1 192.168.1.140 o per specificare anche la netmask, il comando: ifconfig eth1 192.168.1.140 netmask 255.255.255.0 Configurazione rete via cavo Es. 3) Impostare il gateway dell’interfaccia di rete eth1: Digitare il comando: route add default gw 192.168.1.1 metric 10 eth1 Configurazione Wi-Fi Connettere Arduino Yún e PC: 1. a. b. L’Arduino Yún al PC attraverso il cavo USB Il PC all’Arduino Yún attraverso la rete Arduino Yún – XXXXXXXXXXXX Accedere alla pagina di configurazione: 2. a. con il browser visitare l’indirizzo http://arduino.local o l’indirizzo IP di default (192.168.240.1) o, l’indirizzo IP per l’interfaccia wireless letto attraverso la procedura di configurazione spiegata in precedenza per le connessioni via cavo. Configurazione Wi-Fi La password per accedere al pannello di configurazione è arduino. Dall’interfaccia grafica: ¨ ¨ ¨ ¨ Modificare il campo “YÚN NAME” in modo da differenziare l’Arduino Yún in possesso dagli altri Specificare le impostazioni per l’accesso alla rete wireless di interesse (es. LabArchitetture con pwd: aa2014_15) Settare il campo “REST API ACCESS” su OPEN Fare click su “Configure and Restart” Accesso SSH Una volta effettuata la connessione con Arduino Yún è possibile effettuare accesso SSH sulla scheda attraverso il comando: ssh root@IP_Arduino_Yún oppure ssh root@Arduino_Yún_name.local Password di default WiFi ESSID: LabArchitetture PWD: aa2015_16 Arduino Yún PWD: arduino Libreria Bridge La libreria Bridge ha lo scopo di semplificare la comunicazione (bidirezionale) tra il microcontrollore ATmega32U4 e l’AR9331. La libreria permette l’utilizzo dell’hardware collegato all’AR9331 (Interfaccia di rete wireless, ethernet e microSD) altrimenti non accessibile dal microcontrollore con bootloader Arduino. Libreria Bridge - Classi Bridge La classe Bridge permette di avviare l’interazione tra microcontrollore e Linux machine e offre metodi per la scrittura/lettura di dati in una struttura di tipo chiave/ valore (mantenuta nella memoria RAM della Linux machine). Process La classe Process viene utilizzata per lanciare processi sulla Linux machine e prelevarne i risultati. Libreria Bridge - Classi Console Console serve per la communicazione con il network monitor nell'IDE di Arduino. Le sue funzionalità son molto simili a quelle della classe Serial. FileIO Rappresenta un'interfaccia al file system della Linux machine. Questa classe viene utilizzata per la lettura/ scrittura di file sulla SD Card. Libreria Bridge - Classi HttpClient Crea un client HTTP nella Linux machine. Questa classe è un wrapper per i più comuni comandi cURL. Mailbox Rappresenta un'interfaccia asincrona e senza sessione per la comunicazione tra il microcontrollore con bootloader Arduino e la Linux Machine Libreria Bridge - Classi YunClient Implementa un client HTTP. Questa classe prende spunto dalla classe EthernetClient utilizzata in altre versioni di Arduino. YunServer Implementa un server HTTP. Questa classe prende spunto dalla classe EthernetServer utilizzata in altre versioni di Arduino. Riferimenti http://www.arduino.cc/en/Main/ArduinoBoardYun ¨ http://www.arduino.cc/en/Guide/ArduinoYun ¨ http://www.arduino.cc/en/Reference/ YunBridgeLibrary ¨