Python for the S60 Platform eLearning


A coloro che vogliono imparare la programmazione Python su Series 60, segnalo un tutorial appena pubblicato da Nokia sul portale dedicato agli sviluppatori:

Python for the S60 Platform eLearning

Altri riferimenti utili:

Infine, il mio progettino stupido di Blackout Alarm via SMS (da cui, però c’è ben poco da imparare).

WOW!


Maggio da record per il blog: oltre 22000 visite (+10% rispetto alla media) e quasi 5GB di traffico (+50%, segno che chi arriva sul sito se lo guarda tutto e non si ferma alla prima pagina)! La domanda è d’obbligo: attira più la tecnologia o la gastronomia?

Era ora!


La notizia è già circolata da tempo, ma dopo essermi lamentato, mi sembra giusto dare evidenza al fatto che gli operatori (non solo Vodafone) stanno facendo qualcosa per tutelare i clienti, specie quelli più facilmente adescabili:

avviso_vodafone.png

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…

Cucchiaino geniale!


Qualche tempo fa ho pigramente e distrattamente avviato una installazione di OpenSolaris su Fusion, per la sola curiosità di vedere il sistema operativo di casa Sun. Come ho scritto, ero abbastanza distratto durante l’installazione (anzi, ero concentrato su altro), ogni tanto buttavo l’occhio sulla finestra della macchina virtuale per vedere che non ci fossero errori o richieste di conferma da parte dell’installer. La procedura di setup fila liscia tranquilla, facendo scorrere sullo schermo (virtuale!) una serie di informazioni che celebrano il sistema operativo, accompagnate da immagini ad effetto. Una di queste mi ha colpito e la trovate qui sotto:

cucchiaino_geniale_small.png

Non ricordo in quale contesto fosse presentata né ho idea di chi possa essere il designer che ha creato questo cucchiaino, ma di sicuro è geniale!

LCDLibrary per Arduino

I display basati sul chip Hitachi HD44780 sono molto economici e semplici da pilotare, motivi per i quali sono largamente utilizzati nella realizzazione di prodotti industriali e di taglio più hobbistico.

Questi oggetti sono largamente adottati anche dalla comunità degli utilizzatori di Arduino (compreso il sottoscritto!).

lcdlibrary_sample1_small.jpg

Sfortunatamente, però, la libreria presente sul sito ufficiale di Arduino (http://www.arduino.cc/en/Tutorial/LCDLibrary) non compila con le ultime versioni dell’ambiente di sviluppo e non gestisce i display con 2 linee di testo. In attesa di avere un po’ di tempo per aggiungere qualche funzionalità alla libreria (ad esempio, la possibilità di definire in fase di inizializzazione il numero di righe o effettuare il controllo sul numero di colonne), ho modificato leggermente il sorgente di quella esistente affinchè fosse comaptibile con l’IDE attuale e supportasse display 2×40.

La libreria e’ disponibile all’indirizzo:

https://www.gerdavax.it/data/LCDLibrary_2x40.zip

Il file zip deve essere decompresso e la cartella LiquidCrystal in esso contenuta deve essere copiata nella directory hardware/libraries all’interno dell’installazione di Arduino.

Ho modificato il metodo per la stampa di una stringa di caratteri, rinominandolo println, analogo a quello per l’output sulla porta seriale. L’utilizzo è immediato:


#include  

LiquidCrystal lcd = LiquidCrystal(); 

void setup(void)
{
    lcd.init();
    lcd.clear();
}

void loop(void)
{
    lcd.commandWrite(128);
    lcd.println("www.gerdavax.it");
    lcd.commandWrite(168);
    lcd.println("Visit my blog!"); 
}

Per scrivere sulla prima riga è necessario inviare il comando 128, che colloca il cursore in posizione 0 oppure cancellare il display. La prima è considerata completa al quarantesimo carattere, dopodichè il display scrive nella seconda riga. Per posizionarsi sul questa (posizione &quot40", ovvero quaranta caratteri dopo l’inizio della prima riga) è sufficiente inviare il comando 168 (128 + 40);

Per il cablaggio del display ho fatto riferimento alla pagina riportata sul sito ufficiale di Arduino:

LCD Arduino
E (Enable) 2
DB0 3
DB1 4
DB2 5
DB3 6
DB4 7
DB5 8
DB6 9
DB7 10
RW (Read/Write) 11
RS (Register Select) 12

pi&uagrave; ovviamente l’alimentazione per il LED di retroilluminazione (nel mio esemplare indicato semplicemente come PIN 15 e PIN 16) e la tensione variabile prelevata dal potenziometro per la regolazione del contrasto (nel mio esemplare individuato dal PIN V0).

lcdlibrary_sample2_small.jpg

Risolviamo il problema compleanno


Nel caso qualcuno avesse pensato di farmi un regalino per il compleanno ma fosse in imbarazzo su cosa scegliere, ecco che Ferrari propone una soluzione che rende felici tutti (me, l’amico che fa il regalo, la famiglia, gli altri amici, il benzinaio, lo Stato, la compagnia di assicurazioni…):

ferrari_california.jpg

Ferrari California