Pagine

lunedì 30 novembre 2009

TechnoRiver: creare codici a barre su windows

Per creare codici a barre esistono moltissimi plugin, software per qualsiasi sistema operativo.

Per windows la maggior parte dei software è shareware o in versione demo.

TechnoRiver è un piccolo plugin; una volta installato, se si apre wordpad o un qualsiasi altro software di gestione testi, è possibile andare nel menù Inserisci->Oggetto.

A questo punto nella lista degli oggetti troverete anche la voce "TechnoRiver Freebar component" come in figura.

Una volta selezionato potete scrivere il vostro codice in formato CODE39.

Semplice e veloce può essere una buona alternativa gratuita ad altri software di questo genere.

venerdì 27 novembre 2009

Arduino e lettore RFID ID-12 Innovations

Premessa: RFID

RFID significa Radio Frequency IDentification ed è un sistema di identificazione di oggetti, animali e persone.
Questo sistema richiede un lettore ed uno o più TAG (o transponder) che non sono altro che oggetti "montati" in qualche modo sull'oggetto da riconoscere.
Quando il TAG passa in prossimità del lettore invia un identificativo univoco (solitamente in formato esadecimale).
La portata di questo sistema è di pochi centimetri ma, grazie ad antenne, è possibile anche arrivare a distanza di qualche metro: tale caratteristica rende questa tecnologia particolarmente interessante.
Facciamo un paio di esempi per semplificare il tutto: un utilizzo classico può trovarsi in fabbrica.
Quando arrivano dei rotoli di metallo ci applico un tag rfid e lo registro. Tutte le volte che un rotolo di metallo esce dal magazzino passa sotto un lettore rfid che identifica l'uscita del rotolo stesso (non DI UN rotolo ma proprio DI QUEL rotolo...) aggiornando la quantità nel database...
Un altro esempio può essere un sistema di tibratura aziendale: all'ingresso dell'ufficio metto un lettore RFID e metto a disposizione di ciascun dipendente un badge che non è altro che un TAG RFID: quando il dipendente entra o esce passa il badge sul lettore che registra ingresso e uscita.
In questo articolo vedremo come montare un lettore RFID su arduino e inviare il segnale al computer. Questo esperimento è stato fatto in collaborazione con Enkel.

Componenti

Gli elementi che servono sono i seguenti:

  • Un arduino da usare come gestore di input ed output tra il lettore, il led ed il PC
  • Un modulo lettore RFID: io ho scelto l'Innovations ID-12
  • Un adattatore di piedinatura per il modulo necessario perchè l'ID-12 ha una piedinatura non compatibile per una breadboard.
  • Uno o più TAG a 125kHz a forma di badge, disco, portachiavi o altro.
  • Componentistica varia (led, buzzer, resistenze)

Procedimento

Prima di tutto occorre saldare il modulo ID-12 (di cui potete trovare il datasheet) sull'adattatore di piedinatura per renderlo compatibile con i fori della breadboard.
Successivamente bisogna collegare i piedini come l'immagine che segue. Alcuni esempi, compreso il datasheet, propone anche di utilizzare un BJT sul piedino del led in modo da amplificare il segnale.
Così facendo, oltre al LED disegnato in figura, è possibile anche inserire un buzzer che permette, nel momento in cui si avvicina il TAG, di segnalare il recepimento della informazione sia in modo visivo (LED), sia in modo sonoro (BUZZ).

Usando una foto effettuata da noi:


La cosa più interessante è stato il codice utilizzato. Abbiamo usato lo sketch per arduino in questa pagina: http://www.arduino.cc/playground/Code/ID12.
Lo riporto di seguito per completezza:

// RFID reader ID-12 for Arduino
// Based on code by BARRAGAN
// and code from HC Gilje - http://hcgilje.wordpress.com/resources/rfid_id12_tagreader/
// Modified for Arudino by djmatic
// Modified for ID-12 and checksum by Martijn The - http://www.martijnthe.nl/
//
// Use the drawings from HC Gilje to wire up the ID-12.
// Remark: disconnect the rx serial wire to the ID-12 when uploading the sketch


void setup() {
Serial.begin(9600); // connect to the serial port
}

void loop () {
byte i = 0;
byte val = 0;
byte code[6];
byte checksum = 0;
byte bytesread = 0;
byte tempbyte = 0;

if(Serial.available() > 0) {
if((val = Serial.read()) == 2) { // check for header
bytesread = 0;
while (bytesread < 12) { // read 10 digit code + 2 digit checksum
if( Serial.available() > 0) {
val = Serial.read();
if((val == 0x0D)||(val == 0x0A)||(val == 0x03)||(val == 0x02)) { // if header or stop bytes before the 10 digit reading
break; // stop reading
}

// Do Ascii/Hex conversion:
if ((val >= '0') && (val <= '9')) {
val = val - '0';
} else if ((val >= 'A') && (val <= 'F')) {
val = 10 + val - 'A';
}

// Every two hex-digits, add byte to code:
if (bytesread & 1 == 1) {
// make some space for this hex-digit by
// shifting the previous hex-digit with 4 bits to the left:
code[bytesread >> 1] = (val | (tempbyte << 4));

if (bytesread >> 1 != 5) { // If we're at the checksum byte,
checksum ^= code[bytesread >> 1]; // Calculate the checksum... (XOR)
};
} else {
tempbyte = val; // Store the first hex digit first...
};

bytesread++; // ready to read next digit
}
}

// Output to Serial:

if (bytesread == 12) { // if 12 digit read is complete
Serial.print("5-byte code: ");
for (i=0; i<5; i++) {
if (code[i] < 16) Serial.print("0");
Serial.print(code[i], HEX);
Serial.print(" ");
}
Serial.println();

Serial.print("Checksum: ");
Serial.print(code[5], HEX);
Serial.println(code[5] == checksum ? " -- passed." : " -- error.");
Serial.println();
}

bytesread = 0;
}
}
}

L'ouput di questo sketch, passando sopra i vari TAG è stato il seguente:

5-byte code: 01 06 8E 2C 95
Checksum: 30 -- passed.
5-byte code: 01 07 84 6B 3F
Checksum: D6 -- passed.
5-byte code: 01 06 8E 1E DE
Checksum: 49 -- passed.
5-byte code: 01 06 8E 2C 95
Checksum: 30 -- passed.


E per chiudere, una foto con birra sullo sfondo e i TAG in primo piano:

mercoledì 25 novembre 2009

Mouse See&Touch

Premessa

Oggi si parla molto di Software Opensource. Con questo termine si intendono programmi liberamente distribuiti ai quali viene allegato il codice sorgente.
In questo modo ogni persona che conosce adeguatamente il linguaggio con il quale quel software è stato scritto, può modificare, migliorare, plasmare il software (scaricato da internet o acquistato dal fornitore) rispetto i propri gusti ed esigenze. Anche wikipedia, parlando di open source fa riferimento solo al software e mai all'hardware.
In questi ultimi anni, però, la comunità si sta muovendo anche nella direzione del hardware open source. In tal caso il produttore, oltre a vendere l'hardware prodotto mette online o fornisce su supporto magnetico, gli schemi per produrre tale hardware in modo del tutto trasparente. In questo modo, se una persona possiede le adeguate conoscenze, può replicare l'oggetto e crearselo "in casa".
Un esempio di questo è la scheda Arduino, prodotto tutto italiano del quale andare fieri: esso è acquistabile online ma si può autocostruire da zero scaricando gli schemi elettronici messi a disposizione sul sito.
Tralascio in questa sede qualsiasi considerazione su questo modello di business che porterebbe il post in una direzione non desiderata e mi limiterò a parlarvi del Mouse See&Touch.

See&Touch: mouse open source per disabili

Il mouse See&Touch significa letteralmente Guarda e Tocca.
L'esigenza che cerca di soddisfare è quella di alcune persone affette da una forma di deficienza motoria che impedisce loro di effettuare movimenti con il mouse di tipo laterale.
Costoro, infatti, riescono solo a effettuare movimenti verticali con la propria mano e, talvolta, senza nemmeno riuscire a dosare la forza.
Per queste persone due ragazzi di Torino, Giovanni Di Mingo e Bruno Benente, hanno progettato e costruito questo mouse.
La richiesta iniziale era stata fatta da Unisinf (unità di soccorso informatico) al GlugTo (Linux User Group di Torino).
Giovanni Di Mingo, socio del GlugTo, ha iniziato a progettare e costruire il mouse See&Touch, rilasciandolo come progetto open source su SourceForge:
http://sourceforge.net/projects/seetouch/
Unisinf e Datarc hanno annunciato in piu' occasioni che il progetto Mouse See&Touch e' open source, come risulta dai seguenti link:
Per chi volesse provarlo già montato e funzionante senza spenderci del tempo sopra... può pensare di acquistarlo presso questo link.
L'autore ve ne sarà grato e voi avreste un'alternativa opensource ad altre tipologie di mouse che potete modificare a vostro piacimento:
http://stores.shop.ebay.it/openhardwaresoftwaresolutions

martedì 17 novembre 2009

Tiddlywiki: un wiki semplicissimo da usare

Premessa

Un wiki è un sistema di condivisione formidabile che permette a più utenti di modificare le pagine direttamente su web senza programmi esterni, senza dover installare software ma interagendo direttamente con il nostro browser. Esistono diversi esempi di wiki su internet ma, a titolo di esempio, basti citare wikipedia la più famosa enciclopedia online redatta completamente da volontari in tutti il mondo e in diverse lingue grazie al wiki.
La maggior parte dei wiki sebbene del tutto trasparente per l'utente e facile da usare (come la struttura usata da wikipedia denominata mediawiki), richiedono l'installazione di software su un server di diversi software quali un webserver (solitamente apache), un sql server (solitamente Mysql) ed un linguaggio che interpreti le informazioni ed i contenuti (solitamente PHP) restituendo una pagina facilmente fruibile dall'utente.

Tiddlywiki: facilità d'uso prima di tutto

Tiddlywiki, a differenza degli altri strumenti che permettono di creare dei wiki, sfrutta una tecnologia decisamente più semplice.
In parole povere, l'utente deve semplicemente scaricare il file,
aprirlo con il browser e iniziare ad usarlo. Punto. I suoi punti di forza sono che non
è necessaria alcuna installazione, la possibilità di utilizzo è agevole con qualsiasi sistema operativo (Linux, Mac, Windows) e qualsiasi browser (Firefox, Camino, Explorer) e soprattutto, estrema portabilità: si può infatti mettere il file su una chiavetta e portarsela in giro sempre con sè.
Ovviamente, per contro, questo wiki ha un uso prettamente personale o, comunque, non permette l'aggiornamento da parte di troppi utenti contemporaneamente. La sua pretesa, comunque, non va certo in questa direzione.
Andando sul tecnico si può dire che gestisce tutti i contenuti in un unico file html ed il motore che permette la modifica, l'aggiornamento, l'aggiunta e la visualizzazione dei contenuti è una serie di javascript che vengono automaticamente caricati sul browser quando apro il file.

Opzioni, configurazioni, informazioni

Il sito principale è http://www.tiddlywiki.com/. Da qui, premendo il link download, si può scaricare il file.
Se si vuole avere una panoramica dei comandi e della sintassi da usare, è possibile fare riferimento a questa pagina http://tiddlywiki.org/wiki/TiddlyWiki_Markup.
TiddlyWiki mette a disposizione anche dei plugin quali la creazione di feed RSS e altre amenità; non avendone ancora testati, però, non mi esprimo in merito ma se qualche lettore ne avesse provati può scrivermelo volentieri.

venerdì 13 novembre 2009

Presenza al Dorkbot Milano 19/11/2009

Il dorkbot è una manifestazione con cadenza mensile che si propone di fare incontrare persone che "lavorano" con l'elettricità in modo più o meno creativa. Artisti, designer, studenti, hobbisti: tutti possono essere i fruitori o i presentatori in questi incontri se maneggiano l'elettricità...

Il 19 settembre del 2009 parteciperò come oratore: se qualcuno dovesse trovarsi da quelle parti (circolo ARCI Metisagge vicino Porta Garibaldi a Milano) imposterò insieme ad un amico (Enkel) un talk sull'uso di Arduino come programmatore di processori AVR. In passato avevo già parlato di questo argomento in questo blog.