lunedì 30 novembre 2009

Phome: un telefono di casa di nuova generazione

E’ passato un po’ di tempo dal mio primo post. Mi ero promesso di dedicare il giusto tempo e sforzo per scrivere regolarmente articoli sui miei interessi tecnologici, ma sfortunatamente ho fallito. Nei due mesi trascorsi sono stato molto occupato. Per la precisione, non solo nei due mesi passati, ma negli ultimi dieci: al di là di terminare gli esami all’università, ho lavorato quasi ogni giorno (e notte) alla mia tesi di laurea specialistica. Finalmente, ora è tutto concluso.
Questa è la descrizione di cosa ho sviluppato, magari a qualcuno di voi potrebbe interessare.

L’inizio: la casa digitale del futuro

Tutto è iniziato nel dicembre 2008. Stavo cercando un’idea per partecipare al concorso internazionale SPARKS Will Fly 2009, organizzato da Microsoft per promuovere le sue tecnologie embedded tra gli sviluppatori hobbisti e gli appassionati di tecnologia. Il tema del concorso era la casa digitale del futuro: per partecipare era necessario inviare un documento di 1-3 pagine che descrivesse un progetto embedded realizzabile con tecnologie Microsoft Embedded quali Windows Embedded CE 6.0 R2, Visual Studio 2005 e un kit EmbeddedSpark (VIA ARTiGO A1000 Barebone Pico-ITX).

L’idea mi è stata suggerita dalla mia nonna ottantenne, dopo la quotidiana “lezione tecnologica” per spiegare il funzionamento del telefono cellulare, dei telecomandi per TV+Videoregistratore+DVD (o in generale, ogni altro dispositivo tecnologico). Ho avuto una visione di una possibile parziale soluzione al problema che la gente continuamente affronta ogni giorno.

Siamo circondati da un’infinità di dispositivi e mezzi di comunicazione: telefoni, telefoni cellulari e smartphone, personal computer, palmari, televisori, dispositivi Media Center, console per videogiochi, applicazioni di Instant Messaging, browser Web, client E-Mail, software per comunicazioni VoIP, etc.
Al di là della linea di comunicazione c’è il mondo intero, ma spesso tutte queste tecnologie sono progettate per essere usate da solo una minoranza dei componenti familiari, per persone giovani, predisposte alla tecnologia e sempre in movimento: bambini, ragazzi e genitori. E gli altri? Anziani, casalinghe spaventate dalla tecnologia, persone disabili, persone che non hanno in casa ragazzi “tecnologici” che possano aiutarle, persone che pensano che mandare un SMS o navigare sul Web sia troppo complicato? Perché la nonna non può chattare, navigare sul web o inviare una E-Mail o un SMS? E come fare se vive da sola e soffre di qualche malattia (es. sordità, cecità, etc.) e volesse chiamare qualcuno, tenersi in contatto con i parenti o ricevere telefonate?

La maggior parte dei dispositivi sono troppo difficili da usare per le persone non-tecnologiche e offrono le loro funzionalità in modi inaccessibili, con centinaia di pulsanti, menu, sotto-menu, opzioni. Ogni dispositivo è differente dall’altro (le interfacce utente sono complesse e richiedono addestramento e pratica prima che sia possibile usarne al massimo le funzioni) e raramente possono condividere dati in maniera semplice ed automatica.

E se ci fosse qualcosa che potesse gestire tutte le comunicazioni in maniera consistente, automatica, semplice e accessibile per ogni membro di una famiglia?

Questo è il documento inviato nel gennaio 2009 alla prima fase eliminatoria del concorso: Home Communication Concentrator (HCC).


HCC: prototipo per il concorso

La vision immaginata per l’Home Communication Concentrator consiste in una rete cablata/wireless di sistemi embedded con schermo sensibile al tocco, che permette di gestire tutte le comunicazioni di casa progettata specificamente per persone non tecnologiche. I dispositivi possono essere posizionati ovunque, dove meglio si integrano con i propri bisogni e gli stili architetturali della propria casa: possono essere messi su superfici piatte o appesi ai muri.


L’attività principale di un dispositivo HCC è quella di monitorare e gestire le comunicazioni:
  • Telefonate / video chiamate (se è disponibile una webcam) / VOIP
  • E-Mail
  • Instant Messaging e chat
  • Navigazione Web
  • Rubrica / Calendario / lista delle cose da fare
Tutte le attività possono essere controllate direttamente tramite comandi vocali o con un tocco sul display. L’interfaccia utente è molto semplice e non c’è bisogno di addestramento: svolgere qualunque attività è semplice quanto fare una telefonata (o addirittura più semplice). Il sistema può interagire con l’utente tramite voce e suoni e/o tramite messaggi testuali e immagini sullo schermo.
Mentre non è in uso, un dispositivo HCC può essere usato come cornice digitale per sequenze di fotografie, riproduzione video o per quasi qualunque cosa potrebbe venire in mente a qualcuno (è possibile estenderne le funzionalità con widgets personalizzati).

L’idea proposta è passata alla selezione della prima fase (50 partecipanti su più di 150) e tra gennaio e marzo 2009 ho iniziato a sviluppare un prototipo funzionante del sistema, usando Windows Embedded CE 6.0 R2, Visual Studio 2005 e il kit VIA Artigo. Per partecipare alla seconda fase del concorso bisognava inviare un video di 2 minuti che mostrasse il dispositivo in funzione.
Il video dell’HCC è disponibile qui. E qui c’è il documento descrittivo allegato.

Sfortunatamente il dispositivo non è passato alla fase finale, ma nel contempo ho presentato lo studio di fattibilità prototipale ad un mio professore del Politecnico di Torino, Giovanni Malnati, che ha acconsentito per continuare il lavoro come tesi di laurea specialistica in Ingegneria Informatica. Grazie a lui, a Beppe Platania (Beps Engineering) e a Raffaele Menolascino (Microsoft), ho sviluppato la tesi presso il Microsoft Innovation Center Torino.

Phome: tesi, tecnologie e architettura

L’obiettivo principale della tesi è stato il progetto e lo sviluppo prototipale di un sistema embedded per telecomunicazioni di nuova generazione, che in un prossimo futuro potrebbe sostituire nelle nostre case il telefono, rendendo accessibili a tutti i membri familiari (dai più giovani ai meno giovani, con un occhio di riguardo per gli anziani e per le persone che soffrono di handicap o altri disturbi) i moderni mezzi di comunicazione, quali Internet, E-Mail, SMS, sistemi di Chat e Social Networking, VoIP e, ovviamente, le telefonate tradizionali. Tra i requisiti di sviluppo è stato richiesto che la soluzione proposta fosse realizzabile con tecnologie attualmente disponibili (in particolare Microsoft Embedded), in modo da poter contenere i costi hardware e software e per avere un breve time-to-market.

A causa dei molti problemi affrontati durante lo sviluppo del prototipo per il concorso, in particolare la mancanza in Windows Embedded CE di un framework per la creazione di interfacce utente ricche ed accattivanti e le limitazioni hardware del kit (problemi di compatibilità dell’adattore Bluetooth USB, piccolo display touch, connettività di rete limitata), per il lavoro della tesi ho deciso di cambiare hardware e adottare un’altra tecnologia Microsoft Embedded. Così il nuovo prototipo è stato implementato usando un dispositivo Asus EeeTop equipaggiato con un’immagine personalizzata di Microsoft Windows Embedded Standard (WES). La parte di telefonia è fornita al sistema tramite un telefono cellulare Bluetooth HTC Touch Diamond, basato sul sistema operativo Microsoft Windows Mobile 6.1.


Phome
è un dispositivo all-in-one, dall’aspetto accattivante e che costituisce un telefono di casa di nuova generazione: ingloba le funzionalità di telefono, gestione SMS, gestione E-Mail, browser Internet e cornice digitale in un unico dispositivo, offrendo un’interfaccia utente touch-friendly semplice, intuitiva, pensata soprattutto per l’uso da parte di persone anziane o poco pratiche di tecnologia e che richiede quindi solo un minimo sforzo di apprendimento. L’interfaccia, tra le altre cose, include funzionalità come tastiera virtuale e tastierino numerico virtuale per l’uso senza tastiera/mouse esterni, un sistema di input predittivo ad ampio vocabolario per facilitare la digitazione, funzionalità Text-To-Speech per ausilio alla visualizzazione.

Le funzionalità di telefonia ed SMS sono fornite tramite un telefono cellulare collegato via Bluetooth: Phome è un’unità Bluetooth Headset “da casa” e, quando connesso ad un dispositivo, ne diventa l’auricolare offrendo funzionalità di vivavoce; inoltre, grazie ad un profilo Bluetooth appositamente progettato, il Phome Mobile Service, basato su un protocollo client/server ad-hoc, rappresenta una semplice ed intuitiva interfaccia di controllo remoto del telefono, permettendo anche agli anziani di poter usare un cellulare e inviare/ricevere SMS o gestire la rubrica. Si è resa necessaria tale implementazione per poter astrarre dal particolare tipo di modello e sistema operativo, rendendo Phome potenzialmente compatibile con qualunque telefono Bluetooth. Il prototipo è stato sviluppato su un telefono Windows Mobile (usando .NET Compact Framework 3.5, ma è stato condotto uno studio di fattibilità anche su Android e piattaforme che supportano Java J2ME).

Per aggiungere la connettività Bluetooth all’EeeTop, è stato impiegato un adattatore Bluetooth USB con supporto allo stack Widcomm: questo stack è infatti l’unico che fornisce API gratuite, ben documentate e che permettono agli sviluppatori di accedere agli strati bassi dello stack, audio SCO incluso, consentendomi di re-implementare il profilo Bluetooth Headset (auricolare) secondo le specifiche standard e poter così controllare direttamente il routing audio con le API Multimediali Win32.

Oltre all’immagine di sistema WES, ho progettato e realizzato:
  • un applicativo Windows Presentation Foundation, PhomeUI, che ha la funzionalità di shell di sistema e che va a sostituire la shell nativa “explorer” di Windows; è stata progettata adottando una struttura modulare e stratitificata, impiegando anche recenti design pattern, tra cui Model-View-ViewModel (MVVM), Separated Presentation e Composite Application, per permettere la separazione dei ruoli designer/sviluppatore, supportare l’estendibilità/plug-in, la testabilità e un framework evoluto per lo sviluppo di interfacce grafiche (che mi ha permesso di implentare tutta l’interfaccia grafica in meno di due mesi, mentre venivano sviluppate contemporaneamente le altri parti di sistema).
  • librerie condivise (in parte native C++ e in parte managed) che forniscono le funzionalità alla shell per quanto riguarda:
    • Gestione Bluetooth + profili (nativa)
    • Gestione dell’audio Bluetooth (nativa)
    • Accesso ai database MS-SQL CE a tre livelli
    • Molti controlli WPF UI personalizzati
    • Funzionalità di base per la shell e per i moduli (eventi, comandi, Bluetooth Manager, Audio Manager, E-Mail Manager/POP3 Client, Settings Manager, Text-To-Speech con MSAPI 5.1)
    • Funzionalità di base per l’interfaccia grafica e per i moduli (Application Manager, Module Manager, Virtual Keyboard/Numpad, altri controlli UI)
  • un applicativo .NET Compact Framework 3.5, PhomeServiceServer, per realizzare il servizio Bluetooth Phome su telefoni cellulari Windows Mobile 6.0 o successivi.
  • moduli applicativi di esempio realizzati usando il pattern MVVM, per fornire all'utente:
    • funzionalità di telefonia (composizione, rubrica, preferiti);
    • gestione SMS (ricevuti, inviati, bozze, composizione, Tastiera virtuale + Input Predittivo);
    • gestione E-Mail (supporto per account POP3 multipli, E-Mail ricevute/inviate/bozze, composizione);
    • Impostazioni / configurazione Bluetooth con singolo tocco;
    • Home screen;
    • Web Browser (basato sul progetto Google Chromium, integrato in WPF tramite un wrapper open-source modificato per poterlo usare con la tastiera virtuale e renderlo compatibile con gli accorgimenti touch-friendly adottati nel resto dell’interfaccia);
    • Album foto (visualizzatore e presentazione a schermo intero).
Qui ci sono alcuni screenshot e foto del dispositivo e dell’interfaccia utente, realizzate durante lo sviluppo.





Conclusioni


Il sistema prototipale realizzato possiede un insieme minimo di funzioni che permettono alle persone e agli sviluppatori di valutare praticamente l’utilità e l’efficacia di un dispositivo simile in un generico contesto casalingo. L’obiettivo non era avere un prodotto completo e finito, ma quello di mostrare che dispositivi semplici da usare ed integrati possono già essere realizzati oggi, con tecnologie hardware e software già disponibili, a confronto con le migliaia di complicati dispositivi di comunicazione che ogni giorno ci circondano.

Ovviamente c’è ampio spazio per miglioramenti e ho già un po’ di idee per sviluppi futuri e una migliore interazione uomo-macchina e integrazione nel contesto casalingo, ma per il momento sono molto soddisfatto dei risultati raggiunti, della laurea e sono felice del fatto che ora mia nonna può inviare e ricevere SMS/E-Mail ed effettuare telefonate usando il telefono cellulare con appena qualche tocco su Phome.