Arduino YUN
Arduino Yun è una scheda basata sul microcontrollore ATmega32u4 e il microprocessore Atheros AR9331, che supporta la distrubuzione Linux OpenWRT-Yun.
La parte Linux(AR9331) gestisce:
- La connessione Ethernet
- La comunicazione WiFi
- Una porta USB-Host
- Lo slot Micro-SD
La parte Arduino(ATmega32u4) possiede:
- Comunicazione seriale: pin 0(RX) e 1(TX), utilizzati anche per comunicare con la parte Linux(AR9331), per la console a linea di comando.
- Comunicazione I2C: pin 2(SDA) e 3(SCL)
- Interrupt:
- Pin 3(interrupt 0)
- Pin 2(interrupt 1)
- Pin 0(interrupt 2), collegato anche con la parte Linux come seriale RX.
- Pin 1(interrupt 3), collegato anche con la parte Linux come seriale TX.
- Pin 7(interrupt 4), collegato anche con la parte Linux come segnale di handshake.
- PWM: Pin 3, 5, 6, 9, 10, 11 e 13
- SPI: connettore ICSP(non sui piedini I/O come in altri Arduini), collegato anche con la parte Linux sempre come SPI.
- I/O Analogici: A0-A5, A6-A11(rispettivamente sui pin 4, 6, 8, 9, 10 e 12)
Clicca sull’immagine per ingrandirla
La comunicazione tra la parte Linux e la parte Arduino avviene tramite il bus seriale situato sui pin 0(RX) e 1(TX). Questo bus viene usato per inviare comandi alla parte Linux.
Programmazione
Ci sono 2 modi per programmare l’ATmega:
- Via microUSB(come un normale Arduino):
- Selezionare Strumenti–>programmatore–>“AVRISP mkII”.
- Caricare lo sketch.
- Via Wi-Fi:
- Connettere il proprio PC alla rete di ArduinoYUN.
- selezionare Strumenti–>programmatore–>“Parallel programmer”
- Caricare lo sketch
Problemi
Istruzioni pesanti
Nell’uso delle varie librerie legate alla comunicazione tra la parte Arduino e la parte Linux, come la librerie Console, Process e FileIO, le istruzioni pesano molto.
Ad esempio per inviare un semplice comando alla console di Linux:
p.runShellCommand("/usr/bin/pretty-wifi-info.lua | grep Signal");
questa istruzione occupa circa 1.5kB sui 28.6kB della memoria di programma utilizzabili.
Addirittura alcuni sketch di esempio forniti con l’IDE Arduino occupano il 50-60% della memoria di programma.
Link utili
http://arduino.cc/en/Main/ArduinoBoardYun?from=Products.ArduinoYUN