MasterNewMedia Italia
Scopri i migliori tool per comunicare,
collaborare e fare marketing
   
Curated by: Luigi Canali De Rossi
 


22 agosto 2007

Video Streaming Mobile: Come Costruire Un Telecomando Per La Tua Stazione Portatile Di Video Streaming - The RobinPad Story

Agli inizi del 2007 ho iniziato a muovere i miei primi passi nel mondo del live video streaming, e il pubblico italiano che ha seguito con grande interesse le mie dirette no-stop dai vari barcamp a cui ho preso parte qui in Italia, ha potuto constatare con quanta passione ed interesse io abbia affrontato questa nuova sfida.

Robin-Pad-console-IMG_0051.JPG

Una delle cose più belle accadutemi grazie alla mia sperimentazione nel mondo del live video streaming con la www.RobinGood.TV, è stata l'opportunità di conoscere persone davvero fantastiche, le quali, stimolate a loro volta da questa mia avventura, mi hanno offerto aiuto con le loro capacità ed il loro talento.

Fra questi uno mi è rimasto fedele ed ha investito tempo e risorse sforzandosi quanto possibile per realizzare i sogni che mi frullavano nella testa. Fra questi c'era la realizzazione di una stazione televisiva davvero portatile, dotata di periferiche aggiuntive e funzionalità per trasmettere senza avere le mani occupate da qualsiasi luogo, in perfetto Justin-style.

Il suo nome è Fabio "Blaxwan" ed è un inventore e uno sperimentatore appassionato di tecnologie desideroso di giocare ed apprendere attraverso la sperimentazione. Non solo mi ha aiutato a costruire uno zainetto che rende le mie dirette molto più semplici (prima andavo in giro con il mio laptop come un fuori di testa), ma come avrà modo di spiegarvi lui stesso fra breve, ha costruito un telecomando interattivo che mi permette di controllare il mio laptop nonostante sia dietro la mia schiena col pannello chiuso.

Intro di Robin Good

 

RobinGood-mobile-station-by-Tommaso-Sorchiotti-888565323_1e92974e89.jpg
Photo credit: Tommaso Sorchiotti



La Storia Del "RobinPad"

di Fabio "Blaxwan" Di Niro



1. Introduzione

Lo scorso Aprile (2007), mentre stavo prendendo parte ad una conferenza in un barcamp, ho incontrato per la prima volta Robin Good.

Ho visto questo personaggio buffo armeggiare con un laptop, una webcam, un radio microfono e una miriade di cavi, dato che stava trasmettendo in diretta per l'OpenCamp. Il vederlo così mi provocò due effetti; in primo luogo iniziai a pensare a come costruire un sistema più efficiente che permettesse a quest'uomo di avere maggiore libertà di movimento senza cavi e adattatori.

In secondo luogo non sentì nemmeno una parola di quella conferenza.

Una volta tornato a casa, iniziai a fare ricerche in rete su chi fosse e cosa diavolo stesse facendo questo Good guy. Così scoprì in fretta che stava facendo un grande lavoro, permettendo a chiunque disponesse di una connessione a banda larga, di seguire il barcamp in diretta comodamente da casa.

Quindi decisi che avrei provato ad aiutarlo.

Gli spedii un'email spiegandogli cosa pensavo avremmo potuto fare assieme e lui mi rispose così "Ciao Fabio, sei l'uomo che stavo aspettando da molto tempo"; da allora abbiamo iniziato a divertirci assieme sperimentando nuovi ed improbabili dispositivi.

Questo articolo descrive la costruzione e l'evoluzione del cosiddetto "RobinPad", almeno lui lo chiama così. Infatti è molto più di un semplice pad, dato che è un dispositivo completo che fa da complemento allo zainetto per video streaming mobile di Robin Good permettendo di avere l'inquadratura sotto controllo e la possibilità di monitorare tutti quei parametri di video streaming durante le dirette.

Questo dispositivo unico ed artigianale è il primo risultato tangibile della mia fattiva collaborazione con Robin. E' davvero un uomo d'azione, non solo di pensiero. E ho passato davvero un bel periodo durante la realizzazione di questo spartano ma funzionale dispositivo per la Robin Good TV.




2. La Costruzione Di Un Pad Custom Su USB

Quando per la prima volta abbiamo iniziato a pensare ad un pannello di controllo per lo zainetto streaming abbiamo pensato che dovesse avere almeno delle funzionalità base come:

  • avere un'anteprima dell'inquadratura
  • avere alcune informazioni base sul sistema come stato della connessione, bandwidth disponibile, carica residua della batteria ecc.
  • avere la possibilità di iniziare o fermare lo streaming a seconda delle necessità

Per riuscirci, avevamo bisogno di un piccolo e leggero monitor LCD ed alcuni pulsanti. Online abbiamo visto che c'era molta offerta in quanto ad LCD, quindi quello non sarebbe stato un problema. Però dovevamo trovare un telecomando da mettere visino al monitor.

In primo luogo abbiamo pensato ad un tastierino numerico su USB ma presto abbiamo scoperto che era troppo grande. Quindi rivolgemmo la nostra attenzione verso delle schede elettroniche da personalizzare (come quelle basate su PIC che comunicano tramite interfaccia seriale) ma un tipo di dispositivo del genere avrebbe richiesto uno sviluppo software non indifferente. Quindi ho pensato di comprare un piccolo joypad e adattarlo alle nostre esigenze.

RobinPad01-250.jpg
Figura: il piccolo joypad utilizzato

Così, la prima volta, Robin e io trasmettemmo in diretta con questo joypad attaccato alla cinta dei pantaloni. Ma presto realizzammo che non era il massimo del comfort. D'altra parte scoprì molti software che avrebbero potuto aiutarci in vari modi per sfruttare un comune e standard pad. Ecco...questo è stato il momento in cui ho iniziato a pensare di sfruttare la parte elettronica del pad per convertirlo in una piccola scatoletta da posizionare vicino al monitor LCD.

Quindi, svitai ed aprii il joypad per vedere come potevo metterlo dentro ad una scatola più piccola. Chiaramente queste istruzioni non possono riferirsi ad ogni joypad perché i circuiti e le tecnologie possono variare da marca a marca e naturalmente anche in base al modello. Quindi quello che sto scrivendo vuole essere solo l'idea base di come io ho approcciato il problema.

RobinPad02-350.jpg
Figura: ispezione dei circuiti del joypad

Una volta aperto il pad, notai immediatamente che l'elettronica dell'unità era composta da tre parti: un circuito conteneva il chip di controllo, uno fungeva da raccordo ed un terzo (il più grande) che conteneva tutti i contatti dei pulsanti. Decisi quindi che mi sarei liberato di quest'ultimo e ne avrei costruito uno con la stessa funzione ma delle dimensioni che desideravo.

Quindi inizia a prendere le misure per capire quanto grande doveva essere la scatoletta di plastica che dovevo procurarmi.

RobinPad03-250.jpg
Figura: misurando il circuito integrato

Dopo qualche ricerca, ho trovato il box di plastica che vedi sotto, che era un po' piccolo rispetto al circuito ma decisi che avrei adattato il circuito, dato che quello più grande aveva dimensioni improponibili. Assieme ho comprato anche dei pulsanti con i contatti utili per le saldature.

RobinPad04-300.jpg
Figura: il box di plastica e il bottone

A questo punto dovevo solo preparare la scheda su cui avrei installato i pulsanti. Dal momento che non c'erano particolari necessità di connettere circuiti, ho deciso di costruire una scheda prototipo e collegarla direttamente al circuito del joypad. Ho messo i pulsanti sulla scheda che stavo costruendo e ne ho deciso le dimensioni, quindi ho tagliato la scheda col Dremel, e ho saldato i pulsanti.

RobinPad05-300.jpg
Figura: preparazione dell'alloggiamento pulsantiera

Poi ho avuto bisogno di preparare e rifinire il box. Per fare questo ho attaccato del nastro cartaceo e su questo ho disegnato i buchi per i pulsanti. Poi ho trapanato i fori per i pulsanti e ho usato la colla a caldo per collocare un pezzo piccolo di legno nella scatola tra le due file di pulsanti. Giusto per estetica. Infatti questo pezzo di legno è usato per avvitare e tenere il pannello del circuito per evitare che durante l'uso si vedano le viti sul pannello anteriore.

RobinPad06-200.jpg
Figura: preparazione del box

Ora dovevo finire la scheda del joypad. In primo luogo ho levato ciò che non mi serviva e ho adattato ciò che era utile (ho solo segato le parti dove erano saldati i motori, visto che non mi servivano, e tutto è andato a posto).

RobinPad07-200.jpg
Figura: preparazione della scheda circuiti del joypad

Ho saldato la terra in comune per alcuni pulsanti, come ho visto nella scheda originale del joypad. Poi ho usato dei fili colorati per connettere il pannello appena creato alla mainboard del joypad.

RobinPad08-200.jpg
Figura: saldando i cavi alla scheda dei pulsanti

Infine, l'ultimo step è stato di connettere la mia scheda custom a quella del joypad.

RobinPad09-200.jpg
Figura: connettendo le due schede

Per cortesia nota che il joypad in questione poteva connettersi sia al PC sia alla Playstation, quindi aveva anche un connettore per la Playstation. Data l'inutilità di questo connettore, ho tagliato i cavi, li ho isolati con del nastro adesivo, di modo tale che il pad avesse solo un connettore.

RobinPad10-250.jpg
Figura: tagliando il connettore per la Playstation

Ecco com'era la mia pulsantiera, una volta terminata:

RobinPad11-350.jpg
Figura: FATTO!!!




3. Costruzione del telecomando con un braccio flessibile e regolabile

RobinPad-holding-arm-IMG_0045.JPG

Qui il nostro obbiettivo era creare un dispositivo per lavorare a mani libere. L'idea era di permettere a Robin di avere sempre sotto controllo l'inquadratura mentre trasmetteva. Abbiamo pensato a varie soluzioni tipo qualcosa che si allacciava alla cintura o alla bretella dello zaino, ma alla fine abbiamo optato per un braccio flessibile attaccato allo zainetto (anche se dopo abbiamo scoperto che nemmeno questa soluzione è poi tanto comoda).

Con questo tipo di soluzione, il primo passo era di costruire un supporto che permettesse a Robin di avere sotto controllo il monitor e la pulsantiera.

Ho deciso che lo avrei costruito in plastica utilizzando un tubo in PVC, tipo quelli utilizzati dagli idraulici per gli scarichi. Per fortuna ne avevo uno bello nuovo, l'ho tagliato l'ho messo in forno a 130 gradi celsius. Dopo una decina di minuti l'ho tirato fuori e l'ho messo fra due assi di legno. Quindi ho preparato un basa appropriata per dargli la curvatura giusta di modo tale che avesse la forma appropriata per poggiarvi monitor e pulsantiera.

RobinPad12-200.jpg
Figura: la base d'appoggio

RobinPad13-250.jpg
Figura: il monitor e la pulsantiera sulla base d'appoggio

A questo punto ho tagliato un pezzo rettangolare del foglio di PVC un po' più grande del dovuto (perchè sapevo che non avrei potuto essere tanto preciso nel curvarlo) e l'ho rimesso di nuovo in forno alla stessa temperatura altri per altri 5-8 minuti. Il PVC era di nuovo malleabile, quindi ho utilizzato due piani sfasati per creare la curvatura, dopo di che ho lasciato che si raffreddasse di nuovo.
RobinPad14-200.jpg
Figura: plasmando il rettangolo di PVC

Dopo alcuni minuti era di nuovo freddo e potevo quindi lavorarlo di nuovo.

RobinPad15-250.jpg
Figura: il PVC plasmato proprio come volevo

Quindi vi ho messo sopra monitor+pulsantiera e prima ho tracciato i contorni e poi l'ho sagomato con un cutter.
RobinPad16-200.jpg
Figura: il PVC adesso ha la forma giusta

RobinPad17-350.jpg
Figura: così tiene perfettamente allineati monitor e pulsantiera

Per fare in modo che il braccio flessibile che avrebbe dovuto reggere questo telecomando (altrimenti il peso del telecomando avrebbe rappresentato un problema), ho deciso di utilizzare del fil di ferro. Ne ho attorcigliati un po', gli ho dato un po' di forma e li ho incollati al mio supporto. Quindi per l'altra estremità li ho incollati in un tubo più grande di modo tale che potessi avvitarlo a qualcosa successivamente.

RobinPad18-200.jpg
Figura: costruendo il braccio flessibile

L'ultimo passo era preparare qualcosa per reggere il braccio flessibile dato che non potevamo avvitarlo nello stomaco. Dunque avevamo bisogno di una superficie rigida su cui farlo poggiare.

Per lo scopo ho tagliato un pezzo di legno della grandezza del Vaio che Robin portava nello zaino. La mia idea di base era di mettere questo pannello tra la schiena di Robin e il Vaio, dentro lo zaino.

RobinPad19-200.jpg
Figura: preparando il braccio flessibile

Lavoro finito! Ecco il pannello di controllo "sospeso" (gli elastici erano una soluzione temporanea, ora sostituita dal velcro):

RobinPad20-300.jpg
Figura: la console finita




4. Prima evoluzione: un contenitore per l'armamentario di Robin

Robinpad-backpack-IMG_0029.JPG

Dopo alcune sperimentazioni, abbiamo capito che dovevamo migliorare ancora.

La quantità di adattatori, batterie, periferiche, cavi e connettori era diventata ingestibile, soprattutto da quando Robin aveva la camera nel berretto; dovevamo fare qualcosa per semplificare ed organizzare al meglio tutta questa roba.

La nuova camera che Robin portava nel berretto, aveva solo un video output composito quindi avevamo dovuto aggiungere un convertitore da video a USB. In aggiunta a questo, Robin aveva acquistato un piccolo, molto performante e robusto notebook VAIO, ma il laptop non aveva nessun video output composito (del quale avevamo disperatamente bisogno per alimentare il piccolo monitor portatile). Quindi anche qui abbiamo dovuto aggiungere un video convertitore VGA-to-composite. C'erano troppe cose che penzolavano dallo zainetto di Robin!

Ecco perchè decisi che la miglior soluzione sarebbe stata progettare uno zaino personalizzato. In questo modo avrei potuto integrare tutti i cavi e semplificare l'uso ed il look and feel del sistema.

Dato che volevo che avesse anche una forma ben precisa, mi sono recato da un grande negozio di bricolage per vedere se c'era qualcosa che mi ispirava. Giusto negli scaffali degli articoli per l'elettricità, ho trovato subito qualcosa di interessante. Ho comprato i due gusci in plastica che vedi qua sotto. Questi strani articoli in plastica sono delle canaline tradizionalmente utilizzate per installare dei cavi elettrici nei muri. Non so se ho reso l'idea, ma ciò che importa è che erano perfetti per il nostro scopo.

RobinPad21-300.jpg
Figura: i gusci di plastica per il box nello zaino

Appena tornato a casa li ho tagliati della forma che volevo ed ho aggiunto un pannello di legno per chiuderli. Quindi ho pitturato di nero sia la base sia i "gusci".

RobinPad22-200.jpg
Figura: i due gusci di plastica tagliati ed incollati assieme, pitturati di nero

Una volta finito il box, ho iniziato a fare dei buchi per i connettori e gli switch. Ho assemblato tutto assieme ed infine ho usato degli elastici per tenere il set di batterie assieme al convertitore alla base del box.

Ecco il risultato:

RobinPad23-300.jpg
Figura: completando il box

RobinPad24-300.jpg
Figura: testando il nuovo box, a lato puoi vedere anche il braccio flessibile




5. Costruire un'insegna luminosa per la Robin Good TV

Robin-Good-sign-2-IMG_0020.JPG

Finalmente avevamo finito il grosso; quindi abbiamo aggiunto la ciliegina sulla torta, di modo tale che Robin venisse notato quando trasmetteva in diretta.

Ma invece di usare una semplice insegna stampata, volevo costruire qualcosa di cool, che si accendesse quando Robin Good andava in onda. Ho deciso quindi di costruire un'insegna luminosa con del Plexiglas e dei LED. Nulla di più divertente...mi piace sperimentare anche se non ho molta familiarità con questi materiali.

In primo luogo ho tagliato un pezzo di Plexiglas (vetro acrilico) e dipinto la scritta che volevo (Robin Good TV - On Net) utilizzando del latex liquido che si asciuga in un attimo e si leva facilmente con le unghie.

RobinPad25-300.jpg
Figura: scritta col latex

Quindi ho usato uno spray nero su tutta la superficie e, quando la vernice si è asciugata, ho levato il latex.
RobinPad26-250.jpg
Figura: l'insegna dopo aver dipinto e levato il latex

L'ultimo passo era di dare l'impulso per far illuminare i led che avevo saldato dietro l'insegna.

RobinPad27-200.jpg
Figura: i LED dietro l'insegna.

Ecco fatto!

RobinPad28-350.jpg
Figura: RobinGood indossa la nostra "creatura"




6. Come funziona

Robin-pad-IMG_0055.JPG

Per la parte della "azione" sul telecomando, il RobinPad sfrutta un eccellente strumento di scripting chiamato Autohotkey. Con questo puoi analizzare l'input di un utente e fare alcune azioni come cliccare in alcune parti ben precise dello schermo. Questo è dovuto al fatto che abbiamo utilizzato un sito internet per lo streaming (di solito Ustream) che purtroppo richiede un Flash encoder nel brower per funzionare. Per questo motivo non siamo passati ad un sistema di encoding personalizzato, ma sono quasi sicuro che prima o dopo ci riusciremo.

L'idea base dell'utilizzo della pulsantiera è di usare la fila superiore di tasti per delle funzioni principali e d'uso frequente lasciando la fila inferiore per le funzioni base. La fila inferiore può cambiare funzione a seconda dell'impostazione, di modo tale da avere a disposizione più funzioni di quelle fisicamente disponibili (10).

I pulsanti principali nella fila superiore hanno queste funzioni (da sinistra a destra):

  • Menu

  • Inizia lo streaming

  • Blocca/Sblocca i pulsanti (per evitare pressioni accidentali)

  • Inizio registrazione

  • Fine registrazione

Quelli nella fila inferiore mostrati nella seguente immagine sono quelli che cambiano premendo il pulsante "Menu".

La prima immagine mostra il Menu1 e la seconda e la terza il Menu2.

RobinPad29.gif
Figura: RobinPad Menu1, Menu2 HSDPA e Menu2 Wireless.

Più tardi ho aggiunto uno splash screen quando il sistema viene messo in funzione e un avvertimento che viene mostrato quando il sistema è "bloccato" (con il bottone centrale in alto). Ovviamente ho aggiunto anche un messaggio di "unlocked" che viene mostrato quando il pulsante di prima viene ripremuto:

RobinPad30.gif
Figura: Splash screen e avvisi sul RobinPad

Per controllare tutte le funzioni nel monitor del telecomando, abbiamo concepito vari modi nei quali Robin può vedere i controlli attuali e gli indicatori utili per i feedback, incluso il suo feedback video come viene mostrato da Ustream e replicato ad una risoluzione inferiore sul suo piccolo monitor. Vicino ai feedback per lo streaming ho aggiunto per Robin un'applicazione di monitoring chiamata SysMetrix che fornisce indicazioni numeriche in tempo reale sullo stato di carica della batteria rimanente, temperatura della CPU, e la larghezza di banda in entrata e in uscita.




7. E Adesso?

Io e Robin abbiamo capito che ci sarebbero milioni di possibili miglioramenti. Ma questa è la cosa più bella quando ti costruisci qualcosa da solo.

A partire dall'affidabilità della sistemazione fisica complessiva che non è ancora robusta al punto giusto, alla necessità di tenere aggiornato il sistema di controllo, tenendolo al passo con i miglioramenti che Ustream va introducendo, anche nell'interfaccia. Infatti, la cosa migliore sarebbe scrivere sul serio un software dedicato per questo sistema.

Ma lasciate che ora vi spieghi quali sono i miglioramenti che abbiamo già preso in seria considerazione e la direzione futura verso la quale vogliamo sviluppare il progetto.

Dal punto di vista hardware sarebbe bello:

  • preparare un'altra base di sostegno per il monitor e la pulsantiera senza il "braccio flessibile di sostegno". In questo modo Robin sarebbe libero di usare o meno il braccio flessibile o tenere il telecomando comodamente in tasca. Quando gli serve lo tira fuori e lo usa. Certo occupa una mano.
  • mettere del velcro sul telecomando e sulla cintura dello zaino di modo tale che il pannello di controllo possa essere attaccato alla cintura
  • aggiungere un supporto per delle cuffie così Robin può avere un feedback audio della sua qualità audio mentre parla al pubblico o ricevere delle indicazioni da una sorta di regia via VoIP tramite Skype.
  • utilizzare una scheda madre mini-ITX per far diventare l'intero sistema una stazione televisiva portatile (wow)



Dal punto di vista software sarebbe interessante:

  • trovare un software che riproduca mp3 assieme all'audio del microfono per avere un po' di sfondo musicale (il sito internet che ci manda in streaming accetta solo da un fonte audio alla volta)
  • provare a liberarsi della dipendenza dal sito di streaming nonché della necessità del browser e del Flash encoder. In questo modo potremmo dirigerci verso una soluzione basata su Linux (e non dovremmo modificare la mappa dei click ogni volta che il sito cambia Flash encoder)
  • scrivere un'applicazione che giri tutta su Linux provando ad avere le stesse funzionalità che abbiamo ora.
  • tenere l'intero sistema più modulare possibile. L'obbiettivo finale sarebbe di creare un sistema che permetta a Robin di trasmettere direttamente dal RobinPad (certo aggiungendo la possibilità di catturare video proprio col pad) o per fare una sorta di regia, mixando vari reporter da altri luoghi o perfino chi vuole interagire da casa.

Per ora la storia finisce qui.
Stiamo continuamente lavorando per migliorare il RobinPad e se segui la RobinGood.TV potrai ben presto vedere Robin al lavoro.

N.B.:
Oltre al nostro desiderio di condividere ciò che abbiamo fatto, penso che i tuoi commenti e suggerimenti siano fondamentali per me e Robin. Se hai idee, critiche, non esistare a far sentire la tua voce proprio qua sotto nella sezione commenti.

Versione in lingua italiana a cura di Martinelli Mirco - per un feedback editoriale scrivi a Robin.Good[at]masternewmedia.org

 
 
 
 
 
Commenti    
blog comments powered by Disqus

 

 

 

 

7861
 




 

I Toolkit di Robin


 









 

 

 

 

  • RSS Feed

          Mail
    Nome:
    Email:
     



     
     

     

    Web Analytics