il buco nella blogopalla

la differenza tra teoria e pratica è maggiore in pratica che in teoria

Jan 14

ledbadge.py

Ti è piaciuto il mio display a led vero? (ora c’è il modello nuovo, colori nuovi, costa di più).

Matteo mi ha chiesto il codice del programma, ieri sera l’ho portato al compleanno del Dido ed è piaciuto, magari anche qualcun altro vuole giocarci un po’, quindi eccomi qua: l’ho ripulito un po’ e te lo mando.

Il protocollo che usa è piuttosto semplice, ma la mappa dei caratteri è un po’ buffa, ho controllato solo la parte principale: le lettere maiuscole e minuscole, i numeri e alcuni simboli. La maggior parte erano già al loro posto secondo il codice ASCII, tranne per qualche strana ragione le lettere maiuscole e lo spazio che sono stati spostati all’inizio (lo spazio è 0x00, la 'A' è 0x01). Il display può mostrare anche molti altri simboletti come frecce, accenti strani, faccine, etci ma non ho tracciato il codice di quelli.

Inoltre c’è un piccolo problemino, che però si verifica anche con il programma originale che ho ricevuto insieme al display: a volte, anzi, quasi sempre, gli ultimi due messaggi non vengono scritti correttamente. Ho provato a rallentare la scrittura, ad aggiungere altri caratteri in fondo ma non cambia nulla. Se lo provi e riesci a capire il problema, magari fammi sapere.

Veniamo al codice: ledbadge.py è in Python e hai bisogno di due moduli non standard: Python Serial Port Extension e Universal Feed Parser se vuoi usarlo per scriverci dei feed come ho fatto io per Twitter. Se usi Linux sono moduli abbastanza diffusi e dovrebbero già esserci dei pacchetti pronti per la tua distribuzione.

L’uso base è appunto quello di scriverci i titoli degli ultimi otto messaggi presi da un feed (gliene puoi dare uno qualsiasi, feedparser capisce praticamente qualsiasi cosa):

$ python ledbadge.py http://twitter.com/statuses/public_timeline.rss

Per default usa la porta /dev/ttyUSB0, ma puoi cambiarla nel codice oppure passarla come secondo parametro sulla riga di comando.

Buon divertimento, ma non dare la colpa a me se ci perdi tutto il prossimo week-end o un paio di serate invece di andare al cinema.


blog comments powered by Disqus
Page 1 of 1