Da Tablet a Mini PC Android grazie ad ARDUINO

01.Batteria

Cosa faresti se il tuo tablet si schiantasse a terra distruggendosi? Se per qualche motivo del tuo tablet non restasse altro che la scheda madre? Io quando si è distrutto il mio, ho chiesto aiuto ad Arduino e grazie a quest'ultimo ora ho una connessione wireless sul mio televisore e navigo in internet con un semplice telecomando.

Hardware

Ah! I bambini, quanto sono adorabili i bambini, soprattutto tra i 3 e i 5 anni. Sicuramente lo sono un po' meno quando, per qualche strano motivo, ti fanno volare il tablet da una rampa di scale, distruggendo in un sol colpo schermo, touch e case.
In questi casi due domande che sorgono:

  • che fare?
  • Si può recuperare qualcosa dal quell'involucro informe di plastica sul pianerottolo?

Quando mi sono ritrovato nella spiacevole situazione appena descritta, ho salvato il salvabile, ovvero, scheda madre e batteria, ed ho deciso di trasformare, nel modo più semplice, veloce ed economico possibile, il mio defunto tablet in un mini PC.

Partendo dagli elementi recuperati per creare un dispositivo di dimensioni contenute che funzioni da PC Android bisogna creare un'interfaccia hardware, che possa sostituire sia lo schermo che il touch del tablet.

Per quanto rigurda il primo aspetto, molti dei moderni tablet, soprattutto quelli con un formato superiore ai 7 pollici, sono muniti di connettore mini o micro HDMI; il mio, ad esempio, aveva un'uscita mini, pertanto presa per buona quest'ultima non mi sono occupato di sviluppare nessun tipo di hardware a riguardo. Sarebbe bastato semplicemente collegarlo, tramite l'apposito cavo, ad un monitor con ingresso HDMI.

Per quanto riguarda invece l'interfacciamento tra l'utente e il dispositivo avrei potuto banalmente collegare un mouse o un telecomando alla porta micro USB presente su quasi tutte le schede madri dei tablet ma utilizzando un ben noto Arduino UNO (che è possibile trovare sul catalogo CONRAD) ho creato un interfaccia un po' più completa nonchè più aperta a personalizzazioni o migliorie.
Arduino è il cuore dell'interfaccia ma da solo non basta.

Nel mio progetto, infatti, ho utilizzato anche un comune telecomando per PC, un HUB USB e un schedina di controllo creata ad-hoc.
L'interfaccia creata si occupa di:

  • Gestire l'accensione e lo spegnimento del mini PC tramite il telecomando. La schedina recuparata dal tablet, infatti, ha un piccolo tasto per questo scopo ma il suo utilizzo può risultare difficoltoso nel caso in cui si decida di creare un nuovo case. Sicuramente è molto più comodo accendere o spegnere il dispositivo utilizzando un telecomando mentre si sta comodamente seduti sul divano.
  • Gestire la ricarica della batteria. L'eliminazione di questa nel riutilizzo della schedina comporta una serie incovenienti, ad esempio l'esigenza di dover reinserire la password della nostra rete wireless ogni volta che il dispositivo viene spento e riacceso, mentre tenere la batteria costantemente sotto carica potrebbe danneggiarla, a lungo andare. La soluzione migliore è quella di far gestire a qualcun'altro (Arduino) la cosa.
  • Gestire le periferiche collegate al mini PC. La schedina, infatti, non riesce ad alimentare più periferiche USB contemporaneamente, allo stesso modo può diventare scomodo attaccare di volta in volta la periferica da utilizzare (mouse, tastiera, cuffie ect..). Ancora una volta è molto più comodo attaccare tutte le periferiche necessarie insieme per poi decidere secondo le esigenze quale alimentare direttamente dal telecomando.

Ricapitolando, tutta la struttura, che da ora in poi per semplicità chiameremo mini PC, è gestita da Arduino, quest'ultimo si occupa di leggere il sensore ad infrarosso del modulo ricevitore del telecomando accendendo/spegnendo la schedina recuperata dal tablet e di gestire lo switch per la ricarica della batteria e i transistor per l'alimentazione delle varie periferiche USB collegate all'hub.

Per quanto riguarda la schedina recuperata dal tablet, che d'ora in poi chiameremo Scheda Madre, questa è collegata al resto della struttura tramite l'hub attaccato alla propria porta micro USB e ai due switch presenti sulla schedina di controllo (uno per l'accensione/spegnimento ed uno per la ricarica della batteria) che vengono gestiti da Arduino.

L'Hub USB è attaccato alla scheda madre e viene alimentato da Arduino, si tratta di un normalissimo hub USB con 4 porte dove una delle porte è sempre attiva mentre per le altre è stata apportata una piccola modifica in maniera tale da poter abilitare l'alimentazione da ogni porta. Sarà compito di Arduino abilitare o meno l'alimentazione sulla porta, decidendo, di fatto, quale periferica alimentare e quindi quale periferica connettere realmente alla scheda madre.

 

Il modulo ad infrarossi del telecomando, che d'ora in poi per semplicità chiameremo IrDA, è attaccato all'hub e di conseguenza alla scheda madre, quindi una volta accesa quest'ultima sarà sempre possibile gestire il sistema operativo Android direttamente dal telecomando. A riguardo faccio notare che spesso Android possiede già i driver necessari al funzionamento del modulo infrarossi del telecomando, in tal caso basterà collegare il modulo IrDa al dispositivo Android per comandarlo con un telecomando per PC.
Nel nostro caso il modulo IrDa è stato altresì modificato in modo da connettere la linea Data+ del proprio sensore ad infrarossi ad Arduino. Ricordiamo che una delle caratteristiche del progetto è proprio quella di permettere all'utente di avere un controllo completo del mini Pc direttamente dal telecomando, quindi quest'ultimo deve essere in grado di comunicare sia con la scheda madre che con Arduino.

 

Infine, per quanto riguarda la Scheda di Controllo l'ho realizzata tramite una banale millefori, una manciata di componenti e qualche saldatura non troppo impegnativa. Essa si occupa di creare le connessioni necessarie tra tutti gli elementi fin qui descritti.

La figura in basso mostra lo schematico della scheda di controllo. Quest'ultima è composta da quattro blocchi.

  • Il primo implementa la gestione dell'accensione/spegnimento della scheda madre e della ricarica della batteria da parte di Arduino mediante l''abilitazione o meno due optoisolatori. Questi dispositivi sono comunemente usati per realizzare un isolamento galvanico tra due o più circuiti e sono composti da una coppia fotoemettitore-fotoricevitore all'interno di un box. Nel nostro caso vengono usati come interruttori pilotati, quando Arduino porta al livello logico alto il piedino su cui è connesso il fotoemettitore che emette un fascio di luce ricevuto dal fotoricevitore che va in conduzione comportandosi, quindi, da interruttore.
  • Un secondo blocchetto si occupa della gestione delle periferiche USB collegate all'hub, anche in questo caso Arduino, variando i livelli logici dei sui pin d'uscita, abilita tre transistor NPN che fungono da interruttore per le periferiche.
  • Un terzo blocchetto, sempre gestito da Arduino, è costituito da alcuni LED in modo tale da avere un feedback visivo sullo stato della scheda madre nonchè sull'attivazione delle varie periferiche.
  • Infine il quarto blocchetto non è altro che un connettore al quale viene collegato il modulo IrDA, composto dai quattro pin standard del protocollo USB, più un quinto pin proveniente direttamente dal sensore ad infrarosso. Quest'ultimo a differenza degli altri quattro non viene connesso all'hub ma ad Arduino in maniera tale da far leggere ad Arduino i comandi provenienti dal telecomando.

Firmware

Una volta collegati tutti i pezzi del progetto in modo opportuno si passa alla realizzazione del firmware da caricare su Arduino.

Il primo passo è la creazione di una mappa dei tasti del telecomando, ovvero, quando viene premuto un tasto del telecomando il fotoemettitore presente su quest'ultimo emette un treno di onde quadre alla frequenza di lavoro dell'emettitore ma con duty cicle diverso. Ad ogni tasto è associato un treno di onde quadre in maniera tale che il ricevitore in ascolto riesca a decodificare quello ricevuto individuando così il tasto premuto sul telecomando. Nel nostro caso avendo collegato il pin data del modulo IrDA direttamente ad Arduino è necessario dare a quest'ultimo delle istruzioni, in modo tale da fargli distinguere un tasto del telecoamando da un altro.

A questo scopo ci viene incontro la libreria IRremote (è possibile scaricarla dal sito dello sviluppatore) la quale porta al suo interno tutto l'occorrente affinchè Arduino riesca ad interfacciarsi con un ricevitore ad infrarosso ed associa ad ogni tasto del telecomando un numero univoco, in modo da riuscire, ad identificare il tasto premuto sul telecomando. Detto questo, non resta altro che fissare sul nostro telecomando i tasti da usare per l'on/off della schedina del tablet, per la ricarica della batteria e per l'attivazione delle periferiche USB e caricare su Arduino lo sketch "IrrecvDemo" (compreso tra i file d'esempio della libreria Irremote). Infine servirà segnarci i numeri associati ai testi premuti sul telecomando che Arduino ci restituirà sulla porta seriale.

Nel nostro caso sono stati usati il comune tasto power per accendere/spegnere la schedina del tablet e per la ricarica della batteria (quando si accende, si mette in carica la batteria) e i tasti page per l'attivazione/disattivazione delle periferiche USB (viene attivata una periferica alla volta, per un massimo di due periferiche attive contemporaneamente, ad esempio la prima pressione del tasto "page up" attiva la periferica uno, la seconda pressione attiva la periferica uno e due, la terza attiva soltanto la periferica due ect…).

Finita la fase di identificazione dei numeri relativi ai tasti desiderati sul telecomando si può passare alla scrittura del sketch.

Quest'ultimo è composto da due funzioni:

  • il main (setup) in cui vengono inizializzati tutti i pin utilizzati da Arduino, ovvero i pin che controllano i led, i pin che controllano i transistor, i pin che controllano i microswitch e il pin per l'ingresso del segnale proveniente dal modulo IrDA.
  • il loop, in cui Arduino controlla gli eventuali ingressi ricevuti dal modulo IrDA ed agisce di conseguenza. Nel nostro caso se riconosce la pressione del tasto power modifica il valore di una variabile per poi, in funzione del valore di quest'ultima, accendere o spegnere la scheda madre, la ricarica della batteria e i led che visualizzano lo stato. Nel caso in cui sia stato premuto uno dei tasti page Arduino incrementa o decrementa un'altra variabile, in funzione della quale poi controllarà quali periferiche attivare nonchè i relativi led di stato. In fondo a questa pagina è possibile scaricare un file zip contenente lo sketch scritto per Arduino insieme con la libreria IRremote.

Assemblaggio

Assemblato l'hardware e scritto il firmware non resta che montare il mini pc nella sua nuova casa, visto che quella vecchia si è schiantata sul pianerottolo.

Di seguito sono riportare alcune delle fasi di montaggio. Per la costruzione del case è stato utilizzato una foglio perspex trasparente, soluzione che permette di riutilizzare la webcam del tablet, integrata sulla scheda madre, utilissima per le videochimate e che, a mio parere, fornisce una buona estetica al risultato finale.

In conclusione, se un giorno il vostro tablet, come il mio, fosse lanciato da qualche bambino curioso o peggio decidesse di sua spontanea volontà di farsi un volo, ora avete qualche idea in più su cosa fare dopo. Buon divertimento e lunga vita a tutti i tablet.

28 Comments

  1. pietro.tosato pietro.tosato 13 giugno 2014
  2. Gaspare Santaera 13 giugno 2014
  3. Gaspare Santaera 18 aprile 2014
  4. karbst 8 ottobre 2014
  5. Gaspare Santaera 8 ottobre 2014
  6. Lorenzo.Pacenti 31 maggio 2014
  7. tsorrentino 31 maggio 2014
  8. Gaspare Santaera 31 maggio 2014
  9. Gaspare Santaera 31 maggio 2014
  10. Piero Boccadoro Piero Boccadoro 12 aprile 2014
  11. Giorgio B. 12 aprile 2014
  12. gfranco78 12 aprile 2014
  13. Gaspare Santaera 12 aprile 2014
  14. Gaspare Santaera 12 aprile 2014
  15. Gaspare Santaera 12 aprile 2014
  16. pietro.tosato pietro.tosato 13 giugno 2014
  17. IvanScordato Ivan Scordato 13 giugno 2014
  18. Gaspare Santaera 13 giugno 2014
  19. Gaspare Santaera 13 giugno 2014
  20. Gaspare Santaera 13 giugno 2014
  21. pietro.tosato pietro.tosato 13 giugno 2014
  22. Giorgio B. 13 giugno 2014
  23. Gaspare Santaera 13 giugno 2014
  24. Boris L. 17 aprile 2014
  25. pietro.tosato pietro.tosato 13 giugno 2014
  26. Lorenzo.Pacenti 13 giugno 2014
  27. Gaspare Santaera 13 giugno 2014
  28. Gaspare Santaera 13 giugno 2014

Leave a Reply

Vuoi leggere un articolo Premium GRATIS?

RFID: un acronimo mille possibilità