Translate

venerdì 2 marzo 2012

IOIO, che cos’è?

Cominciamo spiegando che cos’è IOIO. E iniziamo a farlo riportando la traduzione di una parte del post riportato nel sito del suo creatore Ytai.

Il post originale lo potete trovare qui:

http://ytai-mer.blogspot.com/2011/04/meet-ioio-io-for-android.html




IOIO
Sono molto entusiasta di annunciare il lancio di un nuovo prodotto per cui ho lavorato nei mesi scorsi!
IOIO (pronuncia: yo-yo) è un prodotto che consente di collegare circuiti elettronici ad un dispositivo Android e controllarli da un’applicazione Android.
E’ costituito da una piccola PCB (2.7×1.2 “= 7x3cm) che si connette ad un dispositivo Android con un cavo USB e una libreria software (Java. jar) da utilizzare nella vostra applicazione Android che gestisce tutte le comunicazioni con la scheda.
Non è necessaria nessuna programmazione del firmware – basta solo l’ “Android application authoring” con un API molto semplice (si vedano gli esempi qui sotto) per controllare i pin sulla scheda. Non è necessaria nessuna modifica del dispositivo Android – in modo di evitare modifiche complicate e la perdita della garanzia. E’ disponibile disponibile il preordine presso SparkFun in questa pagina.
Le prime schede saranno disponibili entro un paio di settimane. Per quel periodo, l’intero software e hardware sarà al 100% open source con una licenza permissiva.

Caratteristiche principali:
  • 48 I/O in totale. Tutti gli I/O possono funzionare come ingressi o uscite digitali.
  • Fino a 16 ingressi analogici con risoluzione a 10 bit.
  • Fino a 9 uscite PWM.
  • Fino a 4 canali UART.
  • Fino a 3 canali SPI.
  • Fino a 3 canali TWI (compatibile I2C).
  • Regolatore switching on-board ad alta potenza: 5V 1.5A. Può caricare il dispositivo Android e fornire corrente necessaria per una coppia di piccoli motori.
  • Il Bootloader sulla scheda permette di scaricare/caricare nuovo firmware OTA sul dispositivo Android e di eseguire l’aggiornamento firmware della scheda IOIO.
  • Misurazione impulsi e capacitive sensing disponibili con il primo aggiornamento firmware OTA.


IOIO and Android

Codice di esempio:
Solo per darvi un indizio di quanto sia semplice scrivere applicazioni utilizzando IOIO, ecco un piccolo frammento da un app, che controlla un singolo servo (sul pin 12) e legge un potenziometro (sul pin 40). La gestione delle eccezioni e la corretta chiusura sono stati omessi per chiarezza.
ioio.waitForConnect();
AnalogInput input = ioio.openAnalogInput(40);
PwmOutput pwmOutput = ioio.openPwmOutput(12, 100);  // 100Hz
while (true) {
  float reading = input.read();
  pwmOutput.setPulseWidth(1000 + Math.round(1000 * reading));
  sleep(10);
}
Progetto di esempio: the retroid.
Retroid Showcase

[..]

Perchè?
I telefoni Android sono potenti computer portatili con connessione internet e una ricca varietà di sensori integrati (fotocamera, GPS, IMU, touch screen). E’ anche molto facile scrivere applicazioni, grazie al grande lavoro svolto dagli sviluppatori di Android SDK. Per molte applicazioni ciò che realmente manca è la connettività a periferiche esterne. IOIO si colloca esattamente in questo punto: arricchisce la capacità intrinseca del dispositivo Android con la possibilità di comunicare con i circuiti esterni.
Da uno studio di soluzioni esistenti, esse soffrono tutte di uno o più delle seguenti limitazioni:
  •      Costo elevato.
  •      Complessità. Specialmente per i principianti assoluti.
  •      Latenza elevata.
  •      Bassa larghezza di banda.
  •      Sostituzione dell’OS del dispositivo Android.
  •      Grandi dimensioni fisiche.
IOIO non soffre di una di queste limitazioni. Il suo costo (~ $ 50 da SparkFun) è competitivo con le soluzioni esistenti, molto semplice da usare, 3ms ~ di latenza one-way, il throughput ~ 300KB/sec, funziona con il sistema operativo installato nel dispositivo ed è di piccole dimensioni.

Ringraziamenti

Vorrei ringraziare Google per sostenere questo progetto con il 20% del tempo delle persone. Questo progetto non sarebbe mai stato realizzato senza il loro aiuto.
Soprattutto vorrei ringraziare Ryan Hickman, Arshan Poursohi e Misha Seltzer.
Vorrei ringraziare tutti gli altri ragazzi di Google che ha contribuito a questo progetto con il codice, l’organizzazione della manifestazione hackathon, e fornendo un feedback critico nelle prime fasi del processo. Tutti voi sapete chi siete:)
Aaron Weiss di SparkFun mi ha aiutato molto con l’hardware e mi ha insegnato come la progettazione PCB viene realizzata nel mondo reale.
I miei cari amici che hanno avuto il compito di essere i primi testatori e che hanno costruito i primi fantastici progetti IOIO.
E, per ultima, ma non meno importante, la mia amata moglie e i bambini che sono stati pazienti e di sostegno al loro stanco papà.

IOIO Manager


IOIO Manager è un’applicazione Android che consente di installare il nuovo firmware sul vostro IOIO. L’applicazione è open source ed è scaricabile gratuitamente da Android Market.



Al fine di comprendere l’uso di IOIO Manager, vi consigliamo di andare sul sito di riferimento:
https://github.com/ytai/ioio/wiki/The-IOIO-Manager-Application
Per scaricare l’applicazione può essere utilizzato il codice QR qui presente:

Risorse preziose


Da dove si può cominciare a capire come si utilizza IOIO?
Beh, per chi è all’inizio suggeriamo queste risorse specifiche su IOIO:

IOIO Wiki
Tutti i download necessari
Gruppo di discussione su IOIO

In quest’ultimo potete trovare davvero tante indicazioni importanti per la risoluzione dei vostri problemi o dubbi.