Google sceglie Arduino come piattaforma di sviluppo per Android

Google I/O

In occasione della conferenza Google I/O 2011, tenutasi il 10 e 11 maggio 2011 al Moscone Center di San Francisco, Google ha presentato una nuova piattaforma di sviluppo per Android basata su Arduino.

Google, Android ed Arduino

Google I/O è un evento capace di attirare migliaia di sviluppatori dal tutto il mondo, che si riuniscono con lo scopo di apprendere le nuove tecnologie sviluppate dalla casa di Mountain View relative alle applicazioni nei settori web, mobile, ed enterprise, tecnologie che includono, tra le altre: Android, Google Chrome, Google API, Google Web Toolkit, e App Engine.

La nuova versione di piattaforma Android, la 3.1, introduce tra le nuove feature un’inedita ed importante funzionalità, chiamata Android Open Accessory, resa disponibile attraverso l’Android Open Accessory Development Kit (ADK). Qual’è la principale innovazione introdotta da ADK? Diciamo che con le versioni precedenti era sì possibile collegare un dispositivo Android ad un computer, ma non esisteva alcun modo attraverso il quale le applicazioni sviluppate in Android potessero interagire con un hardware esterno tramite connessione USB. Attraverso l’upgrade di Android, che ha prodotto la versione denominata "Honeycomb" (la 3.1, appunto), a cui farà seguito a breve la versione "Ice Cream Sandwich", i dispositivi equipaggiati con Android potranno gestire l’interfaccia USB come se fossero un normale computer desktop o portatile; sarà pertanto possibile gestire, ad esempio, tastiere, mouse, webcam, joystick, o altri dispositivi dotati di connessione USB. Va sottolineato che questa funzionalità apre potenziali utilizzi di Android anche nel campo del gaming e delle consolle per videogiochi. Android, nato per essere soprattutto un sistema operativo per cellulari (notizia di questi giorni: HTC, da sola, ha venduto oltre 10 milioni di smartphone equipaggiati con Android!), amplierà con queste nuove versioni i suoi campi di utilizzo, divenendo capace di controllare una moltitudine di dispositivi esterni.

Google vuole l’hardware basato su Arduino

L’hardware proposto da Google per supportare la funzionalità ADK, mostrato nell’immagine seguente, presenta l’importante caratteristica di essere configurabile in modalità USB Host. Ciò è molto importante per dispositivi come cellulari e tablet, che di per se stessi non possono funzionare in questa modalità, ma solo come device. Google ha rilasciato nella versione 3.1 tutto il software, il firmware, e le API necessarie per gestire il nuovo sistema di sviluppo per Android basato sulla piattaforma Arduino; successivamente dovrebbe anche essere reso disponibile il backporting sulla precedente versione 2.3 (Gingerbread).

google android e arduino

Il sistema di sviluppo di Google per Android è basato su Arduino Mega 2560, un dispositivo completo e potente, ed è commercializzato da una società giapponese ad un prezzo pari a 400 dollari.

Android Open Accessory Development Kit (ADK)

La versione 3.1 di Android introduce il supporto Android Open Accessory che consente ad un hardware esterno dotato di interfaccia USB di interagire con un dispositivo Android in una modalità speciale "accessoria". In questa modalità, l’hardware esterno (detto accessorio) funziona come USB host (alimenta quindi il bus ed enumera i dispositivi), mentre il dispositivo Android funziona in modalità device. Il dispositivo accessorio, dovendo funzionare in modalità host, deve essere in grado di fornire almeno una corrente di 500mA a 5V. L’Android Open Accessory Development Kit (ADK) fornisce un’implementazione della modalità USB accessoria basata sulla piattaforma elettronica open-source Arduino, rendendo disponibili sia gli schemi elettrici dell’hardware relativo, che il codice che implementa il firmware accessorio e l’applicazione Android che interagisce con l’hardware accessorio. Gli schemi elettrici ed il codice sorgente sono contenuti all’interno del pacchetto ADK liberamente scaricabile a questo indirizzo). I componenti hardware e software dell’ADK includono:

  • una scheda con microcontrollore USB basata sui progetti Arduino Mega2560 e Circuits@Home USB Host Shield, che implementa la funzionalità di Android USB accessorio. La scheda è equipaggiata con un apposito firmware, scritto in C++, in grado di gestire le funzionalità della board stessa e l’interazione con i dispositivi Android
  • un Android Demo Shield (ADK shield) che si connette sopra la board ADK ed implementa i segnali (shield) di ingresso e uscita per la board. Queste implementazioni includono joystick, uscite con LED, sensori di temperatura e di luce. Altri shield possono essere acquistati o realizzati da sè
  • una libreria basata su Arduino USB Host Shield, che permette alla scheda microcontrollore USB di funzionare in modalità USB host, e di iniziare quindi le transazioni con i device USB
  • un programmino Arduino, scritto in C++, che gira sulla scheda ADK. Il programmino chiama la libreria Android accessory protocol per interagire con il dispositivo Android connesso al bus USB. Trasmette inoltre dei dati dalla scheda ADK e dall’I/O verso l’applicazione Android, riceve dati da quest’ultima e visualizza l’output
  • la libreria Android accessory protocol che definisce come enumerare il bus, come trovare un dispositivo Android connesso che supporta la modalità accessoria, e come instaurare la comunicazione con il dispositivo
  • altre librerie fornite da terze parti per supportare la funzionalità della scheda ADK:
    • libreria CapSense
    • libreria I2C/TWI (Two-Wire Interface)
    • libreria Servo
    • libreria SPI
    • libreria Wire
  • un’applicazione Android, DemoKit, che comunica con la scheda ADK e con l’I/O

 

Il kit di sviluppo per accessori Android permette uno sviluppo rapido e semplice di accessori per i vari dispositivi Android come smartphone e tablet, con applicazioni che spaziano in svariati campi come automotive (kit per auto, navigatori, sistemi audio), domotica (telecomandi, sistemi di controllo), fitness e healthcare (misuratori di glucosio, misuratori della frequenza cardiaca), business ed e-commerce (POS, terminali).

Al Google I/O è stata fatta una dimostrazione pratica di Android Open Accessory, mostrata nel video seguente. Un impiegato di Google si è infatti prestato per la demo dell’applicazione cardioQuest, un dispositivo con un accessorio USB in grado di monitorare il battito cardiaco durante l’attività fisica (in questo caso si tratta di una cyclette).

Sempre alla conference 2011 di Google I/O è stata proiettata la diapositiva seguente, carica di quell’ironia che ha da sempre contraddistinto i fondatori di Google: un simpatico robottino (simbolo di Android) si appresta ad addentare una gustosa mela (simbolo della xxxxx…).

Google I/O 2011

3 Comments

  1. electropower 13 maggio 2011
  2. Giovanni Giomini Figliozzi 13 maggio 2011
  3. Andres Reyes 13 maggio 2011

Leave a Reply