Archivi categoria: Java

Gateway Bluetooth-XBee


Da circa un anno sto "giocando" con i moduli MaxStream (ora DiGi) XBee, radiomodem economici operananti in banda ISM (i soliti 2.4GHz di WiFi e Bluetooth) particolarmente efficaci per comunicazioni a corto raggio e a basso consumo.

xbee.jpeg

I moduli XBee sono ben noti a chi utilizza Arduino, grazie all’XBee Shield che consente di dotare Arduino Diecimila di questa comoda interfaccia wireless.

xbee_shield.png

Uno dei vantaggi principali di questi moduli è che essi permettono la comunicazione punto-punto o punto-multipunto (cosa non fattibile con i moduli Bluetooth in circolazione) in maniera estremamente rapida, avendo tempi di discovery e di join molti brevi. Alcune versioni inoltre, se equipaggiate con antenne opportune, consentono di coprire oltre 1km in spazio aperto. Apposite interfacce XBee-USB consentono di collegare gli XBee ad un PC e la comunicazione si gestisce attraverso una comune connessione seriale (standard o USB-Serial).

Lavorando con Arduino è facile prendere familiarità con gli XBee e mettere su una piccola rete in grado di connettere tanti dispositivi in modo estremamente rapido. Sembra, però, che ad oggi non esista alcun cellulare che disponga di un modulo simile (o compatibile) a bordo, dunque vien meno la possibilità di avere accesso diretto a questo tipo di rete direttamente da device mobile.

Poiché sia per Bluetooth che per XBee si tratta di connessioni seriali, è facile predisporre un piccolo circuito che svolga le funzioni di gateway tra le due reti: un modulo XBee "standard" e un modulo Bluetooth server (seriale) e le rispettive connessioni seriali incrociate tra loro, un piccolo regolatore di tensione che fornisca l’alimentazione necessaria a far funzionare i due moduli.

bt-xbee_gateway_small.png

Il primo prototipo è estremamente semplice. Il modulo XBee è montato su un adattatore XBee Simple Board sviluppato dall’italiana Droids, che fornisce un regolatore di tensione a 3.3V e un layout dei PIN compatibile con le breadboard (2.54mm). Il modulo può essere alimentato con una tensione massima di 12V e la tensione di 3.3V in uscita dal regolatore di tensione (con cui è alimentato il modulo XBee) è disponibile per eventuali device esterni, con un assorbimento massimo di circa 300mA (che si riducono a 100mA se si utilizzano moduli XBee Pro). Utilizzando questa tensione, si alimenta un modulo Bluetooth Sena Parani ESD200, ai cui terminali RX-TX sono connessi i terminali TX-RX del modulo XBee.

gateway_prototype1.jpg

Una batteria a 9V e una piccola breadboard completano il circuito, costituito da 4 fili e un connettore di alimentazione.

La modalità di utilizzo è inevitabilmente monodirezionale: il terminale mobile, dotato di client Bluetooth, si connette al modulo Bluetooth del gateway; quest’ultimo, attivata la connessione, dirige il traffico della seriale RFCOMM verso il modulo XBee, che a sua volta lo inoltra sulla rete wireless. Analogamente, i dati ricevuti dal modulo XBee sono inoltrati al modulo Bluetooth che a sua volta li passerà al telefono cellulare. Non è possibile iniziare la comunicazione in direzione opposta, a meno che non si utilizzi un modulo Bluetooth che implementi un client SDP e un software sul device XBee che supporti il protocollo di configurazione dello stesso modulo Bluetooth.

La presenza del modulo Bluetooth è del tutto trasparente per il modulo XBee: sarà dunque possibile configurarlo direttamente dal terminale mobile (che ovviamente dovra’ implementare il protocollo di comunicazione definito da MaxStream).

Il modulo Parani ESD200 prevede quattro modalità operative, che stabiliscono la procedura di connessione e lo stato di visibilità sulla piconet. L’impostazione di default prevede che il modulo non sia discoverable, per cui occorre impostare il MODE3 affinchè il cellulare possa trovarlo e connettersi. Per la configurazione si può sfruttare il gateway così com’è: è sufficiente utilizzare un secondo modulo XBee connesso via USB al PC e impostare il programma di configurazione del Parani affinchè "punti" alla porta seriale virtuale associata all’XBee. Questa possibilità, però rappresenta anche una importante falla di sicurezza di questo progettino: così come il modulo Bluetooth è trasparente per quello XBee, così quest’ultimo lo è per il primo. Un nodo malevolo, dunque, potrebbe mandare al gateway comandi per modificare la configurazione del modulo Bluetooth e renderlo inutilizzabile. Per ovviare a questo problema si potrebbe mettere tra i due moduli un microcontrollore dotato di due porte seriali buffered (ad esempio, un Atmel ATmega162), che filtri il flusso dal modulo XBee a quello Bluetooth, impedendo che a questo giungano comandi di configurazione (se necessaria, la configurazione sarà fatta aprendo una connessione seriale fisica a falle di tale microcontrollore).

Online le slide del talk Playing with Mobile 2.0

Ecco le slide dell’intervento che io e Roberto Fraboni abbiamo tenuto a Frontiers of Interaction IV:

Il video dell’intervento è disponibile qui: http://frontiers.dolmedia.tv/

Speriamo di riuscire a pubblicare a breve il video demo di Graviter, il "Twitter by gestures", e il sorgente per iPhone OS e i Sony-Ericsson JP-8 dotati di accelerometro.

E qui i relatori in tutta la loro bellezza:

robertofraboni_stefanosanna_2.jpg

Frontiers of Interaction IV


A poco più di un anno di distanza dalla precedente edizione, domani si svolgerà Frontiers of Interaction IV, una delle più interessanti conferenze italiane e senza dubbio l’unica interamente dedicata all’interaction design e alle nuove tecnologie in questo ambito.

frontiere4_qvga.png

Brillantemente ideata e condotta da Matteo Penzo e Leandro Agrò, la quarta edizione delle Frontiere si svolgerà a Torino presso la Fondazione Sandretto Re Rebaudengo, Museo di Arte Contemporanea, Via Modane 16,
dalle 8.30 alle 17.30.

Il programma è decisamente succoso (occhio ai keynote!):

08:30 Apertura
09:00 Music, Second Life & TV!
09:30 Frontiers of Interaction showreel
09:35 Benvenuto da Leeander, Matt & Flavio
09:45 Introducing Frontiers of Interaction IV, JEFFREY SCHNAPP
09:50 Mobile and the Internet Mutation, ASHLEY BENIGNO
10:20 Digital Yet Invisible: Making Ambient Informatics More Explicit to People, NICOLAS NOVA
10:40 Welcome to TED, BRUNO GIUSSANI (video)
10:50 Break
11:20 Talking about OPENSPIME, DAVID ORBAN & THE BAND
11:50 From Science Fiction to Reality (KEYNOTE, 45/60min), BRUCE STERLING

13:00 Lunch (Tramezzino.it)
14:20 A little BEAT Live Performance KORINAMI
14:30 Mobile Open Source FABRIZIO CAPOBIANCO (Video from Redwood City)
14:40 Playing with MOBILE 2.0, STEFANO SANNA & ROBERTO FRABONI
15:00 Mobile natural interaction, LUCA MASCARO
15:20 Frontiers and Boundaries: The Business of the SocioTechnical, ELIZABETH CHURCHILL (KEYNOTE, 45min)

16:20 Break
16:40 Smartmobs: vision about the future of mobility and pervasive techs, HOWARD RHEINGOLD (Video Interview with Robin Good)
16:50 “Personal embedded: uno spettro aperto per la comunicazione degli oggetti”
ROBERTO BORRI
17:10 The Future of Workstations in a mobile world!, NICO SICA
17:30 Frontiers of Interaction IV: Producer’s Message, LEEANDER, MATTEO, FLAVIO
17:40 Thank you! End.

L’intero evento sarà trasmesso in diretta su web a questo indirizzo:

http://frontiers.dolmedia.tv/

Intervista su JavaStaff


È con un pizzico di emozione che leggo oggi la mia intervista sul portale JavaStaff, uno dei siti storici italiani dedicati alla programmazione Java. Facendo questa intervista, ho scoperto che esistono due livelli di difficoltà nel rispondere alle domande: trovare una via di fuga all’arguzia dell’ottimoFederico Paparoni, che fa domande solo apparentemente innocue, e trovare una foto con espressione intelligente da mettere accanto al testo! 😀

Sun Technology Day a Cagliari


Dopo Roma, Napoli e Pisa, arriva anche sull’Isola il Sun Technology Day, un evento seminariale gratuito organizzato da Sun Microsystems e le università italiane. Grazie alla collaborazione e all’ospitalità dell’Università degli Studi di Cagliari, venerdi’ 13 giugno si svolgerà al Dipartimento di Ingegneria Elettrica ed Elettronica un pomeriggio di seminari su Java, Solaris, MySQL e Sun SPOT.

l0_techday.jpg

Questa l’agenda:

15:00 Sun Academic Initiative: welcome Università di Cagliari
15:15 Qualità del SW – jMetrics: come controllare l’andamento di un progetto SW con misure oggettive (Giulio Concas DIEE/FlossLab)
16:00 Solaris 10: Solaris, OpenSolaris e Progetto Indiana
Paghi zero, prendi 2: ZFS filesystem e volume manager
Dimostrazione interattiva: clonazione Solaris Containers e ZFS tramite chiavette USB
Domenico Minchella, Sun Solaris Ambassador
16:45 Sun SPOT (Small Programmable Object Technology)
Come si utilizzano, Concorso Sun SPOTs Projects
Stefano Sanna, JUG Sardegna
17:30 Java e Spring: tutte le novità per il 2008
Fabrizio Gianneschi Massimiliano Dessì, JUG Sardegna
18:15 Programmazione creativa con MySQL: come programmare il database indipendentemente dal linguaggio di programmazione scelto
Giuseppe Maxia, MySQL Community Leader
19:00 Ask the expert bar

Pagina ufficiale dell’evento:

http://it.sun.com/sunnews/events/2008/mar/techday/cagliari.jsp

da cui è possibile scaricare l’agenda del pomeriggio.

JARD: primo contatto!


Il progetto è ancora a livello troppo embrionale perché possa essere pubblicato, però comincia a prendere forma. Si chiama JARD, "Java ME controller for Arduino Bluetooth", una MIDlet che consente il controllo di Arduino Bluetooth attraverso un cellulare.

jard_pre1_1.png

L’idea è di realizzare una doppia interfaccia verso Arduino: una generica, che consenta di controllare separatamente gli I/O analogici e digitali (realizzando così una specie di telecomando), ed una specializzata, verticalizzata per applicazioni, ad esempio, il controllo di un display LCD o di un motore. L’obiettivo è incoraggiare l’utilizzo del telefono cellulare nelle applicazioni basate su Arduino, senza che sia necessario avere competenze specifiche di programmazione Java ME (o Python S60, o C++ o quello che si vuole).

jard_pre1_5.png

Il video che segue mostra l’uso di JARD per il controllo di un display tramite Arduino Bluetooth. Un esempio di applicazione, opprtunamente ingegnerizzata, potrebbe essere quella di un Post-It digitale da attaccare ad un mobile o ad un elettrodomestico e sul quale lasciare un appunto che chiunque potrà leggere (anche senza cellulare). Dal display LCD ai sistemi di textlight o di visualizzazione su grandi superfici il passo è breve…

Un nuovo toolkit grafico per MIDP: LWUIT


È stato appena pubblicato il toolkit grafico LWUIT (Lightweight UI Toolkit) realizzato da Sun Microsystems e destinato ai terminali MIDP. LWUIT supera i limiti della libreria LCDUI di componenti nativi del Mobile Information Device Profile, offrendo un approccio simile a Swing ma evidentemente semplificato, ma allo stesso tempo ricco di componenti e funzionalità

In attesa di poterlo provare e valutare in maniera più dettagliata, una breve carrellata delle funzionalità permette di cogliere l’importante di questo progetto. Tra i componenti sono disponibili i pulsanti, liste, menu, checkbox, radio button e dialog (FINALMENTE!). I componenti possono essere organizzati attraverso layout complessi e animati con effetti quali scorrimenti, rotazioni, gradienti e così via. È presente una estesa gestione dei font e dei temi, che consentono di cambiare al volo il look dell’applicazione.

L’ho provato su un Nokia 6120 (Series 60 3rd Edition) e su un Sony-Ericsson W910i (JP-8) e l’effetto è davvero molto gradevole. Sul Sony-Ericsson è leggermente più veloce, mentre sul Nokia le animazioni appaiono in qualche modo più gradevoli (anche se talvolta troppo lente).

Sono già disponibili i binari della libreria, il javadoc e un tutorial: puntate i browser su https://lwuit.dev.java.net/.

Ecco qualche snapshot dell’applicazione demo, eseguita sul Nokia 6120c:

grid.png

components.png

cell.png

font.png

layout_1.png

layout_2.png

layout_3.png

layout_4.png

theme_java.png

theme_business.png

theme_star.png

theme_ocean1.png

Il pesciolino del tema Ocen (l’ultimo qui sopra) sguazza tranquillo, proprio come se si trattasse di uno degli ormai diffusi temi realizzati in Flash. Chissà se avrà più successo il LWUIT o il progetto Capuchin di Sony-Ericsson, che mira all’integrazione di Java e Flash Lite. Staremo a vedere. Il 2008 è sempre più interessante….

Un pizzico di amarezza…


Più volte in questo blog ho segnalato la dilagante indifferenza che regna nel mondo ICT per l’Europa. iPhone (sia il device che il programma sviluppatori), Sun SPOT, i BUG e un’innumerevole serie di altri prodotti arrivano tardi nel vecchio continente. Tra gli esclusi, gli italiani hanno ulteriori discriminazioni, come quella dell’esclusione dal concorso di Google per la nuova piattaforma Android. Ora ne arriva un’altra, più silenziosa ma non meno amara: il concorso riservato ai blogger che proveranno e scriveranno della beta di Netbeans 6.1.

61blog-contest-logo-trans.gif

Iniziativa interessante, ma leggendo il regolamento si legge quanto segue:

The winner will be chosen by a panel of experts. Blogs will be accepted in the following languages:
English
Chinese (Simplified)
Spanish
Portuguese
Russian
Japanese
French
Polish

Si tratta senza dubbio delle lingue più parlate in tutto il pianeta, anche se (nella mia ignoranza) mi vien difficile credere che il polacco sia più parlato dell’italiano!!! Non vorrei essere frainteso: ben venga la presenza del polacco, ma proprio non mi spiego l’assenza dell’italiano, parlato da una nazione che conta una popolazione quasi doppia rispetto alla Polonia. Davvero nel mondo ICT nessuno si accorge di noi? Che amarezza!

Eppure nel mondo Java siamo apprezzati, come dimostra la presenza dell’ottimo Fabrizio Gianneschi nel board dei Community Leader dei JUG e del brillante Fabrizio Giudici nel Netbeans Dream Team.