Abbiamo recensito Intel Galileo ed ora è in omaggio per voi.

galileo

L'astro nascente di Intel arriva inatteso ma si prepara a buttarsi nella mischia fin da subito. Galileo, la nuova scheda del colosso dell'informatica, prova a tendere una mano a tutti gli amanti di Arduino, della filosofia dei maker e del do-it-yourself. Vediamo insieme di che cosa si tratta e se stiamo parlando di una scheda davvero promettente, che mettiamo in omaggio per i nostri abbonati.

La Maker Faire di Roma di qualche settimana fa ha regalato al suo pubblico diverse novità interessanti. Tanti modelli diversi di stampanti 3D, progetti di nuove schede, improvvisazioni musicali e tanto altro.
Uno degli eventi che ha focalizzato l'attenzione di tutti è stato l'annuncio della nuova scheda di sviluppo Galileo firmata Intel. Si tratta del suo primo prodotto basato sul processore Quark con consumi estremamente contenuti (come vedremo meglio più avanti analizzandolo tecnicamente) e che cerca di farsi largo e guadagnare i consensi dell'intera comunità di makers, hobbisti, appassionati, studenti e, perché no, strizzare anche un po' l'occhio al mondo delle startup, tutti i soggetti che hanno modificato l'approccio allo sviluppo sia dell'hardware sia del software relativi ad un intero progetto calandolo nell'ottica della condivisione e dell'Open Source.

Non è il primo intervento di questo tipo, anche la scheda di cui stiamo trattando approfonditamente nel nostro corso di programmazione su ARM Cortex-M0+, la FRDM-KL46Z punta a quel target ed offre tante possibilità partendo da un hardware piuttosto simile. Adesso vedremo se le caratteristiche sono anche simili, vi anticipiamo di no, ma il punto è: tutte e due queste schede, ma certamente non si tratta delle uniche, fanno la stessa cosa: garantire la compatibilità totale con Arduino. La prima, quella di cui ci stiamo occupando, "soltanto" nel pinout mentre questa si spinge oltre.

Intel ha annunciato al pubblico che si tratta di un vero e proprio computer senza case, basato sul processore Intel Quark X1000 perché è indirizzata a tutti coloro che si occupano di costruire robot, droni, dispositivi di controllo, media center ed applicazioni PC.

Lo vedremo meglio più avanti ma l'equipaggiamento a bordo prevede un System on a Chip a 32-bit Quark SoC con frequenza pari a 400 MHz e basato sul set di istruzioni Pentium x86. La scheda supporta completamente Linux e l’ambiente di sviluppo Arduino. Risulta, però, più completa di Arduino, e questo fattore penserà molto del nostro bilancio, dal momento che supporta anche interfacce di rete e trasferimento dati come PCI-Express, Ethernet e USB 2.0.

Se da un lato una nuova scheda sulla quale poter mettere le mani è sempre un fatto positivo, specie se si parte dal movimento dei makers, non v'è dubbio che c'è un certo scetticismo dal momento che è strana questa apertura di Intel a questo mondo che fino a questo momento, come quasi tutte le grandi aziende, aveva pressochè ignorato. Il lavoro di gruppo, l'etica dell'Open Source e della condivisione sono tutte cose che questa, come tante altre aziende, hanno sempre visto con qualche riluttanza e questo i makers lo sanno.
Tuttavia proprio la partnership con Arduino dovrebbe contribuire a fugare ogni dubbio.

Certo, un partner come Intel per una comunità come questa è sicuramente una gran cosa ma c'è sempre la paura che la grande azienda possa semplicemente sfruttare ciò che il mondo della creatività e dell'entusiasmo hanno da offrire. Questa paura non è immotivata, tutti abbiamo il ricordo chiaro in mente della politica di espansione portata avanti da una certa azienda di Redmond negli anni 90 ed il movimento dei makers oggi, diciamocelo chiaramente, rappresenta una fonte particolarmente ricca alla quale attingere e tutto quello di cui non ha bisogno un movimento come questo è che un lupo sappia ben travestirsi da pecora.

Contenuto della confezione

Nella foto si vede abbastanza bene ma ne parliamo in questo paragrafo dedicato. All'interno della confezione troverete:

  • la scheda;
  • una cartolina di presentazione (che al contempo funge da Quick Starter Guide);
  • the Obligatory Legal Notice;
  • il trasformatore AC-DC;
  • un cavo USB – microUSB;
  • sostegni e viti di montaggio (4x);
  • un gadget targato intel.

La scheda più da vicino

Andiamo a vedere più nel dettaglio che cosa offre Intel quando si mettono le mani sulla sua piattaform per capire concretamente di che cosa stiamo parlando.
Partiamo, naturalmente, dal microcontrollore: si tratta di un Quark SoC X1000 Application Processor, un processore classe Pentium a 32-bit.

Ed ecco le caratteristiche complete:

  • Processore Pentium a 400MHz 32-bit;
  • 512 kB di SRAM on-die embedded;
  • semplicità di programmazione: Single thread, single core, constant speed;
  • CPU ACPI compatible;
  • RTC integrato con batteria a bottone a 3 V opzionale;
  • connettore Ethernet 10/100;
  • Full PCI Express* mini-card slot, con supporto per PCIe 2.0 (funziona con half mini-PCIe cards dotate di adattatore esterno);
  • connettore USB 2.0 Host con supporto fino a 128 end points;
  • connettore USB Device connector (per la programmazione);
  • JTAG header 10-pin per debug;
  • Reboot button per il processore, con funzione di reset per sketches e shields.

Opzioni di storage:

  • 8 MByte Legacy SPI Flash (default) – preferita per firmware (o bootloader);
  • tra 256 kB e 512 kB dedicati agli sketch;
  • 512 kB di SRAM di default;
  • 256 MB di DRAM embedded abilitati (di default) dal firmware;
  • micro SD opzionale (max 32 GB);
  • EEPROM da 11 kB programmabile tramite opportuna libreria.

Si tratta del primo esperimento di Intel pin-compatible con Arduino ed è compatibile con la versione UNO R3: i pin digitali sono numerati da 0 a 13 (e sono adiacenti ad AREF e GND), gli ingressi analogici da 0 a 5, il power header e così via dicendo sono tutti nella stessa posizione. Per chi non lo sapesse, peraltro, questa disposizione prende il nome di Arduino 1.0 pinout.

Galileo è stato progettato per supportare tutti i shield che operano con tensioni pari a 3.3 V e 5 V; in questo modo la compatibilità è pressoché totale anche con Arduino 2. Il core lavora a 3.3 V ciò nondimeno un jumper abilita la traslazione di livello sino a 5 V per tutti i pin.

La compatibilità non è soltanto nella disposizione del pinout ma è anche software, come avevamo accennato in precedenza. Grazie al semplice ambiente di sviluppo Arduino che tutti ormai conosciamo benissimo sarà possibile comunicare con la scheda il che rende l'utilizzabilità dall'inizio delle "operazioni "molto semplice per tutti. Inoltre la scheda contiene una serie di predisposizioni per connessioni assai comuni: mini-PCI Express, 100Mb Ethernet, micro-SD, RS-232, USB Host e Client.

Per quanto riguarda la compatibilità, abbiamo annunciato che si tratta di un supporto completo ed effettivamente è così perché abbiamo 14 input/output digitali, di cui 6 possono essere utilizzati per uscite Pulse Width Modulation (PWM). Ciascuno dei 14 pin digitali su Galileo può essere utilizzato sia come input sia come output grazie alla specifica tramite funzioni pinMode(), digitalWrite() e digitalRead(). Tutti, come detto in precedenza, possono operare sia a 3.3 sia a 5 V, a seconda della posizione del jumper dedicato. Ciascuno di questi può erogare al massimo 10 mA ed assorbire un massimo di 25 mA dal momento che i resistori interni di pull-up (che per default sono disabilitati) sono rispettivamente da 5.6 k e da 10 k.

Per gli ingressi analogici (A0 – A5) esiste il convertitore predisposto AD7298; ciascuno di questi propone segnali con una risoluzione pari a 12 bit, ovvero 4096 valori differenti.

I2C bus, TWI: SDA ed SCL.

TWI: i pin A4 (SDA) e A5 (SCL) (supporto tramite libreria Wire).

SPI: di base lavora ad una frequenza di 4 MHz ed è programmabile fino a 25.

Un'osservazione: Galileo ha un controller SPI nativo il che vuol dire che gira sempre come un master. Questo vuol dire che non potrà mai lavorare come slave di un altro dispositivo tranne nel caso di connessione USB Client.

UART (serial port): digital pins 0 (RX) e 1 (TX).

ICSP (SPI): un header a 6 pin in-circuit (ICSP) è predisposto proprio per il collegamento a shield esistenti. Questi pin supportano le comunicazioni SPI tramite apposita libreria.

VIN: è la tensione d'ingresso alla scheda quando si utilizza l'alimentazione esterna. È possibile l'alimentazione diretta attraverso questo pin ma bisogna tenere a mente che deve essere una tensione regolata pari a 5 V altrimenti è possibile che la scheda rimanga danneggiata oppure che operi in maniera non corretta.
5V output pin: si tratta di quello che permette di alimentare carichi esterni alla medesima tensione grazie all'alimentazione esterna oppure a quella USB. La massima corrente erogata è pari a 800 mA. Anche nel caso dell'output pin a 3.3 V la corrente massima erogata è la stessa.

GND: non ha davvero bisogno di presentazioni.

IOREF: questo pin permette ad uno shield connesso con opportuna configurazione di adattarsi alla tensione fornita dalla scheda. La tensione su questo pin è controllata da un jumper predisposto sulla scheda.

RESET button: semplicemente irrinunciabile.

AREF: è inutilizzato su Galileo ed infatti non è supportato per portare un riferimento di tensione esterno ai pin analogici di ingresso. Altro punto importante è che su Galileo non è possibile cambiare i range di AREF utilizzando la funzione analogReference().

Alimentazione

Lo abbiamo detto diverse volte ed anche questa va a confermarlo: la scheda è molto simile all'Arduino sotto diversi punti di vista in particolare rispetto all'alimentazione ed alla compatibilità con le shield. A differenza di Arduino, però, l'azienda fornisce un trasformatore AC-to-DC già all'interno della confezione con un cavo coassiale da 2.1mm. Per quanto riguarda l'output di potenza raccomandato si parla di 5 V e fino a 3 A. Il che vuol dire una potenza teorica massima di 15 W.
5 V resta il limite massimo di tensione d'ingresso accettata.
Anche per quanto riguarda la corrente continua complessiva su tutti i pin sussiste una limitazione, pari ad 80 mA.
Come abbiamo visto, 800 mA rappresenta il limite per la corrente d'uscita per i pin 5 V e 3.3 V.

Comunicazioni

Galileo gode di una serie di possibilità diverse per effettuare comunicazioni con un computer, altri microcontrollori, Arduino stesso e così via dicendo. Abbiamo UART TTL (5V/3.3V) per le comunicazioni seriali, una seconda UART con supporto RS232 connesso tramite un jack da 3,5 mm.
Come sappiamo esiste l'interfaccia USB che permette comunicazioni seriali (visualizzabili tramite Serial Monitor o altre applicazioni predisposte).

Inoltre Galileo potrebbe anche comportarsi come un mouse oppure una tastiera USB una volta attaccato al computer e per utilizzare queste caratteristiche esistono librerie predisposte già disponibili on-line.
Galileo è dotato di uno slot mini PCI Express (mPCIe), il che gli permette di essere espandibile in tutti i modi che questo genere di connettore ha visto impiegato finora tra cui per esempio funzionalità video, moduli Wi-Fi, Bluetooth, connettività cellulari e tanti altri ancora. Naturalmente tutto questo tramite apposite librerie.
Senza contare che è abbastanza ben visibile sulla scheda il connettore Ethernet RJ45 che gli consente di essere subito on-line su ogni genere di rete via cavo. Naturalmente sono necessari un indirizzo IP ed un MAC.

Programmazione

Per quanto riguarda la programmazione, come abbiamo accennato in precedenza, la scheda può essere programmata tramite il software di Arduino e quando si è pronti per effettuare l'upload dello sketch sulla scheda sarà sufficiente selezionare la porta corretta e la scheda "Intel Galileo" all'interno dell'elenco.

Quando la scheda si avvia è possibile che si verifichino due circostanze: lo sketch è presente e caricato oppure non lo è. Nel primo caso, naturalmente, verrà eseguito automaticamente mentre nel secondo caso la scheda rimarrà in attesa della programmazione proveniente dall'IDE.
Se lo sketch è in esecuzione, è possibile effettuare l'upload di un'altra versione oppure di un altro programma completamente diverso anche senza aver premuto il pulsante di RESET. L'esecuzione del programma in corso verrà interrotta e come siamo abituati a vedere in Arduino, dopo qualche istante, inizierà l'esecuzione del nuovo programma.

Pin di OUTPUT

Come abbiamo detto, la funzione di ciascun pin dipende dalla configurazione è questa avviene tramite l'utilizzo di pinMode(); quando sono configurati come output, l'impedenza d'uscita è nello stato basso. Su Galileo, quando la configurazione di questo tipo, è possibile utilizzare l'I/O Expander tramite I2C. Tutti i pin disponibili sulla scheda possono essere configurati anche solo come uscite.
In questo caso, i pin possono fornire una corrente positiva in uscita non superiore a 10 mA e ne possono assorbire massimo 25. La capacità di assorbimento in corrente per ciascun pin è soggetta ad un limite complessivo massimo di 200 mA.

Galileo Jumper Configuration

Ci sono sulla scheda complessivamente tre differenti jumper che vengono utilizzati per variare la configurazione sulla board.

IOREF permette a Galileo di supportare sia gli shield che funzionano a 3.3 sia quelli a 5 V, esattamente come vi avevamo accennato in precedenza. Quando il jumper è connesso a 5V, la compatibilità si ha con il medesimo valore. L'intervallo di ingresso dei pin analogici viene anche controllato dal jumper IOREF e non deve superare per alcun motivo l'intervallo operativo. Ad ogni modo, la risoluzione resta quella legata alla conversione a 10 bit per cui stiamo parlando di un valore minimo risolubile pari a 5 V/1024 = 0.0049V (4.9mV) per unit.

Il jumper I2C Address serve ad evitare che ci siano conflitti tra l'indirizzo Slave della scheda I/O expander è quello del dispositivo esterno; J2 può essere utilizzato per effettuare una variazione dell'indirizzo sui dispositivi a bordo. Se è connesso al pin 1 (indicato con un triangolo), l'indirizzo a 7 bit dell'I/O Expander è pari a 0100001 è quello della EEPROM, invece, 1010001. Se si cambia la posizione, gli indirizzi diventano, rispettivamente, 0100000 e 1010000.

VIN può essere utilizzato per fornire 5 V dall'alimentatore regolato connesso al power jack a ciascuno shield o dispositivo connesso. Se c'è la necessità di un'alimentazione superiore a questo valore, la connessione tramite VIN deve essere interrotta per evitare di danneggiare la scheda.

Esistono anche funzionalità di Reset automatico, ovvero via software, che cioè non richiedono la fisica pressione del pulsante; Galileo è progettato in modo tale da permettere che ci sia il reset software alla connessione con computer. Vengono utilizzati i segnali USB CDC-ACM con funzione di controllo della transizione della scheda Galileo da run-time a modalità bootloader. Il software Arduino utilizzerà sempre questa possibilità per effettuare l'upload del codice ogni volta che utilizzeremo la funzione di upload.

Alla fine di questo articolo troverete una serie di riferimenti per approfondire tutto quello che vi abbiamo detto fino a questo momento: la pagina ufficiale della scheda, il suo datasheet, e così via dicendo.

Troverete anche un interessante riferimento alla comunità: sarà questo il vero motore di questa scheda. Se saprà conquistarsi il pubblico, se saprà dimostrarsi utile e se ci saranno tante persone desiderose di metterci le mani sopra e di imparare a lavorarci, avrà successo, sarà popolare e questa pagina dimostrerà quanto. Tenetela d'occhio se volete veramente sapere quanto Galileo vale agli occhi della comunità dei makers.

Galileo e l'Università

Quanto Arduino sia stata pervasiva all'interno delle nostre scuole e delle nostre università probabilmente è cosa difficile da stimare. Temi d'anno piuttosto che tesine piuttosto che lavori veri e propri, progetti, prototipi di vario tipo, tutto è stato realizzato in numeri più o meno grandi e talvolta le luci della ribalta non hanno dato il giusto peso al lavoro di tanti. Ecco per quale motivo e con quale pensiero in testa, Intel è partita subito in quarta proprio in questa direzione.
Sapendo che tipicamente i makers sono ragazzi giovani, studenti dei licei oppure giovani che sono appena arrivati all'università, che forse hanno un po' di tempo libero e che comunque se ce l'hanno decidono di indirizzarlo verso un progetto piuttosto che verso una prova fatta con una scheda, Galileo sarà donato in 1000 università di tutto il mondo nel prossimo anno mezzo. Saranno 50.000 le schede che verranno consegnate e così gli studenti potranno almeno vederne una in aula, studiarlo a turno e così via dicendo. Esiste un accordo di collaborazione tra Intel e l'Univesità La Sapienza di Roma, che alla Maker Faire era presente eccome! Ci auguriamo che questo voglia dire che l'attenzione verso l'università italiana sia alta e che siano tanti i poli beneficiari di questa campagna promozionale.

Tiriamo le somme

Vi sarete certamente fatti un'idea vostra di quello che questa scheda rappresenta sia per noi sia, potenzialmente, per la comunità.
Da quello che abbiamo visto sostanzialmente a questo pc manca davvero solo di avere già disponibile a bordo la funzionalità del video il che è un gran peccato perché se una scheda del genere prova a lanciare l'assalto anche al mondo di Raspeberry Pi, serve che almeno abbia la possibilità di fare tutto quello che quella scheda fa magari anche un po' meglio. Il grande nome dell'azienda che sta dietro, almeno in teoria, dovrebbe essere sufficiente a fare il resto.
La valutazione comunque va fatta in maniera complessiva e c'è da dire che questa scheda risulta più dotata di quanto non lo siano tante altre concorrenti.
In particolare sul prezzo l'annuncio è stato un po' ambiguo nel senso che si è parlato di $ 60 ma si è anche vociferato molto di 40. Dal momento che Arduino UNO viene venduto intorno ai € 20 e che per raggiungere a questa piattaforma la funzionalità di connessione alla rete e di memoria esterna grazie alla microSD servirebbe comunque almeno uno shield aggiuntivo, il prezzo sembra tutto sommato abbastanza basso.
Inoltre, Raspberry Pi è già in grado di far vedere video 1080p senza sbavature ed ha un costo che resta competitivo, oltre che una CPU che con un lieve overclock lavora ad una frequenza semplicemente doppia rispetto a Galileo.

Insomma, se Raspberry Pi è lo sfidante, Intel ha già perso, a meno che l'azienda non punti a partire in perdita per aprire una serie di schede più performanti.
Voci di corridoio, infatti, parlano proprio di questo cioè di un esperimento che verrà portato avanti scalando verso l'alto le proprietà dei processori ottenendo schede più adatte ad applicazioni anche più professionali.
Ma per il momento questi sono soltanto rumors, per l'appunto.
Nel frattempo, non ci resta che metterlo alla prova.

Avviso agli utenti del blog: il mini Contest a tema è aperto!

Ed ora, una notizia di per tutti i lettori del nostro blog e di EOS-Book: alla Maker Faire Rome noi di Elettronica Open Source siamo stati beneficiari di una scheda Galileo; è nostra, è qui. Ed è disponibile per voi.
Ne vorremmo poter distribuire mille ma visto che ne abbiamo solo una, apriamo un mini contest tra tutti i nostri utenti: utilizzate i commenti per proporre la vostra applicazione, che uso ne fareste… il vostro progetto, insomma!

La migliore, più creativa, più interessante, più innovativa e più REALISTICA proposta sarà selezionata dallo staff ed il fortunato utente riceverà la scheda per poterci lavorare.

NB: l'iniziativa è valida solo per gli abbonati. ABBONATI ORA oppure COLLABORA per avere un abbonamento omaggio.

Pronti? VIA!

 

Se avete bisogno di riferimenti per approfondire quello che abbiamo trattato, eccone alcuni:
Galileo
Arduino – Galileo
Documentazione
Community
Software Download

STAMPA     Tags:, ,

48 Comments

  1. Piero Boccadoro Piero Boccadoro 27 ottobre 2013
  2. sumotoy 29 marzo 2014
  3. Piero Boccadoro Piero Boccadoro 27 ottobre 2013
  4. sumotoy 29 marzo 2014
  5. Piero Boccadoro Piero Boccadoro 27 ottobre 2013
  6. Piero Boccadoro Piero Boccadoro 27 ottobre 2013
  7. Piero Boccadoro Piero Boccadoro 29 marzo 2014
  8. Luca Di Capita 6 dicembre 2013
  9. CristianPadovano 27 ottobre 2013
  10. Piero Boccadoro Piero Boccadoro 6 dicembre 2013
  11. Luca Di Capita 6 dicembre 2013
  12. Luca Di Capita 6 dicembre 2013
  13. Nemanja.Cvetkovic 29 gennaio 2014
  14. Emanuele 28 ottobre 2013
  15. Luca Di Capita 28 ottobre 2013
  16. Piero Boccadoro Piero Boccadoro 6 dicembre 2013
  17. CristianPadovano 28 ottobre 2013
  18. Piero Boccadoro Piero Boccadoro 30 ottobre 2013
  19. Piero Boccadoro Piero Boccadoro 30 ottobre 2013
  20. Luca Di Capita 30 ottobre 2013
  21. Giorgio B. Giorgio B. 31 ottobre 2013
  22. Luca Di Capita 31 ottobre 2013
  23. Luca Di Capita 29 dicembre 2013
  24. Piero Boccadoro Piero Boccadoro 8 novembre 2013
  25. CristianPadovano 8 novembre 2013
  26. IvanScordato Ivan Scordato 8 novembre 2013
  27. paolo.fallavollita 10 novembre 2013
  28. Luca Di Capita 10 novembre 2013
  29. Piero Boccadoro Piero Boccadoro 12 novembre 2013
  30. Piero Boccadoro Piero Boccadoro 20 gennaio 2014
  31. Luca Di Capita 20 gennaio 2014
  32. Piero Boccadoro Piero Boccadoro 16 novembre 2013
  33. Luca Di Capita 16 novembre 2013
  34. IvanScordato Ivan Scordato 16 novembre 2013
  35. Piero Boccadoro Piero Boccadoro 16 novembre 2013
  36. Emanuele 23 ottobre 2013
  37. CristianPadovano 16 novembre 2013
  38. IvanScordato Ivan Scordato 23 ottobre 2013
  39. Luca Di Capita 17 novembre 2013
  40. Emanuele 23 ottobre 2013
  41. willygroup 23 ottobre 2013
  42. Francesco Laurito 23 ottobre 2013
  43. Piero Boccadoro Piero Boccadoro 23 ottobre 2013
  44. CristianPadovano 24 ottobre 2013
  45. elioalunno 24 ottobre 2013
  46. Istorn 24 ottobre 2013
  47. Piero Boccadoro Piero Boccadoro 25 ottobre 2013
  48. IvanScordato Ivan Scordato 26 ottobre 2013

Leave a Reply