sabato 2 marzo 2013

Ullallà, la pcDuino!



Vedo che la SparkFun ha lanciato la board pcDuino, un aggeggino interessante con processore capace di far girare comodamente Ubuntu o Android, pin-out stile Arduino, un paio di porte USB, una Ethernet, una HDMI.

Insomma, vuole essere una via di mezzo tra le Arduino (di cui vanta un po' troppo frettolosamente la possibilità di usarne gli shield) e le board basate su processori classe ARM Cortex A8. In parole povere: facilità di programmazione e porte GPIO (general-purpose input/output) facili da interfacciare. Per questo sono convinto che il prodotto concettualmente più vicino alla pcDuino è certamente la BeagleBone (i cui GPIO sono a 3.3V).

Caratteristiche della pcDuino:
  • processore a 32 bit della Allwinner (1 GHz, classe Cortex A8) con un minimo di accelerazione grafica (classe Mali 400)
  • 1 Gb RAM e 2 Gb flash, più uno slot per memory-card fino a 32 Gb
  • porte "pc-": Ethernet, uscita video HDMI, più due USB 2.0
  • porte "-duino": seriale UART, 6 ADC (di cui due a risoluzione 6 bit, e gli altri a 10 bit), 2 PWM, 14 GPIO, una I2C e una SPI; le GPIO possono "sourciare" fino a 4 milliampere
  • dimensioni: lunga 125mm, larga 52mm
  • alimentatore consigliato: 5V 2A
  • prezzo interessantissimo: solo 59 dollari.
Processore e RAM: il core ARM Cortex A8 non ha bisogno di presentazioni (lo troviamo nel Nokia N900 e numerosissimi telefonini cellulari, nelle varie BeagleBoard, BeagleBone, Gumstix, Raspberry Pi, etc, in una catasta di tablet Android, etc). Con un gigabyte di RAM ci può girare molto più che Linux o Android (si può allestire un complesso server LAMP e avere ancora parecchie risorse disponibili, ma penso che il termine "mini-PC" sia solo la solita fuffa dei commercialotti ignorantelli). Credo che abbiano scelto l'Allwinner solo per economizzare sui costi di produzione.

Storage: due giga di flash memory sono un po' scarsini ma ci può entrare comunque un'intera distribuzione Linux lasciando ancora abbastanza spazio per salvare i propri dati senza stare troppo stretti. Nello slot memory card si può aggiungere una microSD fino a 32 gigabyte. Se non si ha bisogno di multimedia audio/video, la microSD nella maggior parte dei casi non sarà neppure necessaria.

Sistema operativo: la possibilità di usarci Android 4 Ice Cream Sandwich serve solo a chi intende utilizzare la board in modo "interattivo". La board, però, si presta bene anche per progetti unattended/stand-alone (dove durante il normale funzionamento non c'è mai un essere umano a smanettarci). La possibilità di usare Ubuntu significa poterci lavorare direttamente "sopra" (perfino editing, navigazione, compilatori...), senza dover utilizzare un PC per sviluppare il software.

Porte "-duino": ci sono due file di "headers" stile Arduino ma non sono alla distanza giusta per gli "shield". Sono semplicemente accostate: con cavetteria volante non c'è problema, ma non ci si può incastrare su un vero "shield" Arduino. Ho l'impressione che in fase di preproduzione abbiano dovuto correggere qualche problema urgente che li ha costretti a fare la grande boiata di "accostare" le due file di header. Le porte GPIO sono a 5V, proprio come nella Arduino, e possono concedere 4mA di corrente (appena appena sufficienti per accendere un LED, ma tant'è).

Porte "pc": ce n'è abbastanza per guardarsi video YouTube con Firefox o Chrome. La navigazione internet non sarà supersonica, ma sicuramente è sufficiente per travasare gigabyte di dati.

A questo punto s'impone qualche considerazione filosoficheggiante.

C'è "troppa" memoria: un sistema Linux capace di pescare dati, elaborarli e spedirli altrove, gira comodamente in 16 mega di RAM; qui abbiamo un intero gigabyte che sembrerà alquanto sprecato nella maggior parte dei progetti. Considerati i costi delle memorie, probabilmente non avrebbero risparmiato quasi nulla a mettere meno memoria.

C'è "troppa" potenza di calcolo: non sono molti i progetti su cui un paio di milionesimi di secondo di differenza siano davvero fatali. Ma con tutta questa potenza di calcolo, si può pensare seriamente di calcolare "on board" ciò che avremmo normalmente lasciato fare al PC (trasformate di Fourier, riconoscimento contorni, software-defined radio, eccetera). Si possono fare cose che con la Arduino si potevano solo sognare (tipo: mettere una webcam e riconoscere pattern con OpenCV). Se si tratta solo di aspettare segnali e inviare comandi, tanto vale tornare alla Arduino.

Le dimensioni purtroppo sono scomode. Dodici per cinque centimetri è davvero grossa, se confrontata alle minuscole Arduino Mini o alle Gumstix. Per fortuna la scelta di porre le porte "pc" sui due lati piccoli della board è una cosa intelligente.

Se non si usano le porte USB l'alimentazione può essere anche la classica 5V 1A; sono le due USB che richiedono un ulteriore ampere di corrente (una porta USB standard deve poter dare fino a 5V 500mA alla periferica che viene collegata).

La scelta di avere una porta HDMI piuttosto che una VGA è dovuta probabilmente a strategie di economia in fase di progettazione. E dopotutto la porta VGA è uno standard in via di lenta estinzione.

Al momento il suo sito web pcDuino.com è una cagata pazzesca, scritto probabilmente da un cinesino con contratto a progetto e pagamento a 190 giorni con assegno ulteriormente postdatato e probabilmente scoperto. Anzi, a giudicare da una delle foto, è una vecchia cinesina ultracinquantenne con anello di fidanzamento tamarro. Non sto facendo ironia: il sito è una ciofeca immonda (almeno oggi, inizio marzo 2013) e nelle foto si vede la mano rattrappita con l'anello. Viene da ridere a leggere i commenti, dove i soliti troll insaziabili chiedono feature assurde: ce l'ha una porta SATA per metterci l'hard disk SSD 6Gbps in RAID accelerato? ce l'ha l'accelerazione concorrenziale con Oracle Server Rack? ce l'ha l'acceleratore di bosoni di Higgs?

Tutto questo ad un prezzo alquanto basso: 59 dollari, decisamente meno delle altre (BeagleBone, etc), tranne che della Raspberry Pi, che costa solo 35 dollari ma le sue due USB non sono standard (danno molto meno dei 500mA, per cui non ci si possono mettere le periferiche più esigenti in fatto di corrente, come ad esempio gli scanner USB o i modem HSDPA) e le sue porte GPIO non sono "stile Arduino" a 5V e disposte alla maniera della Arduino.

Nel wiki della pcDuino dice anche cosa si può fare:
  1. imparare a programmare (o insegnare a programmare): emerita vaccata, visto che qualunque computer può farlo. Non è affatto scontato che con un aggeggio piccolo e strano come il pcDuino si possa imparare/insegnare meglio;
  2. fare progettini che interfacciano hardware (LED, sensori, eccetera): questo è vero, e la "compatibilità Arduino" (anche se limitata dalle file di GPIO "accostate") accoppiata ad abbondante memoria e potenza di calcolo, è sicuramente un fattore interessante. Specialmente per chi ha già smanettato in precedenza con l'Arduino e si mordeva i gomiti perché non poteva scrivere software troppo complessi;
  3. navigare internet o creare documenti: altra emerita cagata, visto che si può fare con qualunque computer o telefonino dotati di ragionevole potenza di calcolo. Piuttosto bisognava dire che un progettino fatto con una board come la pcDuino può implementare cose che sulla Arduino se le possono sognare (un database Postgres sotto un webserver Apache dove l'utente si collega da remoto sulla pagina HTTPS eccetera eccetera).
  4. imparare a usare Linux Ubuntu: anche questa è una solenne cagata, visto che di serie è installato Lubuntu (basato su LXDE, che è meno esoso di risorse). Ubuntu funziona dappertutto. Da più di due anni funziona con la massima interfaccia grafica (Unity) sulla Beagleboard, che ha "solo" mezzo gigabyte di memoria RAM. Ubuntu si può imparare su qualsiasi aggeggio (a brevissimo termine anche i telefonini Ubuntu e i tablet Ubuntu).
  5. guardare film: sì, hanno detto proprio "watch movies", cioè "guardarsi i film". Non si capisce perché uno dovrebbe spendere 59 dollari (cavetteria HDMI esclusa) per comprare un aggeggio del genere per guardarsi qualche film anziché usare il telefonino, il tablet, il PC o il televisore.
  6. videogiochi: sì, hanno scritto proprio "play games", cioè giocare ai videogiochi. Anche se ha tanta RAM e tanto processore, dubito che ci giri Crysis. Piuttosto avrebbero dovuto scrivere "creare giochi e giocare": le board come questa sono anzitutto per sperimentare cose nuove o cose strane. La Arduino è diventata famosa anche perché la gente taroccava la propria macchina per caffè con una Arduino che regolava temperature e dosaggi, è diventata famosa perché la gente ci costruiva distributori di cibo/acqua per i propri animali domestici, eccetera. Quello che si può fare con una board con Linux è enormemente di più. Solo che alla gente mancano le idee... o forse, per il 95% delle idee, l'Arduino era già sufficiente.
  7. ed ovviamente progetti "fai da te": ah, finalmente -alla fine!- hanno detto la cosa più vera di tutte. Questa board - al pari delle BeagleBoard, Arduino, eccetera - serve per smanettare. In soldoni: l'ingrediente principale non sono le caratteristiche tecniche, ma la creatività di chi se la compra.

3 commenti:

  1. Al momento non si può comprare in Italia, ma solo all'estero: da Sparkfun o da EZMCU (con spedizione gratuita).

    Hmm... qualcosa mi dice che non ho alcuna fretta di comprarla. Al momento le mie preferite sono la BeagleBone e la Raspberry Pi.

    RispondiElimina
  2. Non è vero che RAM e CPU sono sprecati...dipende da cosa si deve fare.
    Per un client remoto per scaricare torrent (per esempio con rtorrent) 1Gb di RAM sono ottimi (io uso 512 Mb con il raspberry e ci sono limitiazioni nel numero di download paralleli :( )...se poi si vuole usare contemporaneamnete VNC e qualche strumento di amministrazione remota in PHP le risorse si esauriscono rapidamente.
    Per progetti di elettronica se si vuole usare ad esempio python e una webcam (esempio con le opencv) veramente più ram e cpu c'è e meglio è!!!

    RispondiElimina
  3. credo che queste schede siano adatte per imparare a programmare, nel senso che fanno risparmiare parecchio sulla bolletta alle scuole dotate di aule informatiche, specie quelle del nostro paese che sono praticamente in mutande, tanto che gli studenti si devono portare la carta igienica da casa!

    RispondiElimina