Réutiliser un Mir:ror sous Mac OS X

En plus du Nabaztag et du Nabaztag/tag, Violet a aussi produit un périphérique intéressant, le Mir:ror. Ce lecteur de puces RFID était — comme les Nabaztag — dépendant des serveurs et est donc inutilisable actuellement, tout du moins avec ses fonctions de base. Mais il est tout de même possible de l’utiliser. Dans la suite, je vais vous montrer quelque chose qui est plus un PoC (Proof of Concept) qu’une véritable application, mais qui montre que c’est possible.

mirror_violet

Mir:ror, c’est quoi ? Un lecteur de puces RFID, sous la forme d’une soucoupe de 10 cm environ, qui se connecte en USB. L’appareil s’illumine et dispose de ses propres sons — un haut-parleur est présent dans l’appareil — et il peut lire des tags RFID aux normes ISO 14443A et 14443B. Techniquement, n’importe quelles puces RFID à la norme doit passer, moi j’ai utilisé un lapin Nanoztag, qui intègre une puce compatible.

Capture d’écran 2013-02-11 à 19.43.39

Ca fonctionne comment ? Mir:ror ne fonctionne pas comme un lecteur RFID classique. Il est en fait reconnu comme un périphérique USB HID (Human Interface Device) et communique donc sans pilotes avec la majorité des OS. Techniquement, il suffit juste d’aller lire une valeur renvoyée, rien de bien sorcier. En gros, le lecteur va renvoyer une commande quand une puce s’approche et une autre quand elle s’éloigne, le tout avec un identifiant unique à chaque puce. C’est un peu simplifié, mais c’est schématiquement le fonctionnement.

C’est en regardant ce qu’avait fait Maurice Svay et en modifiant quelques trucs vus sur Instructables que j’ai testé rapidement ce qu’il était possible de faire.

Il faut d’abord un petit programme qui va vérifier les changements d’états au niveau du Mir:ror, HIDtest. Ensuite, un simple script va permet d’exécuter un code AppleScript en fonction de la puce. C’est de la démo, c’est un peu archaïque et ça nécessite d’aller modifier le script à la main, mais ça fonctionne.

les deux fichiers nécessaires sont en téléchargement ici.

Première chose, on va identifier l’identifiant de la puce. Il suffit de lancer hidtest et de passer la puce devant le Mir:ror. Il faut lancer hidtest avec la commande ./hidtest (avec éventuellement un chmod +x hidtest si ça ne passe pas) et récupérer la valeur du tag.

Tag identified 0a00000000000000000000000000 OUT
Tag identified 0000000000000000000000000000
Tag identified 000008d0021a053b455286000000 IN

La valeur est donc ici 000008d0021a053b455286000000 pour mon Nanoztag.

Dans le script, sous la ligne ## RFID tags, il faut donc ajouter l’identifiant de votre tag.
Le programme hidtest doit être dans le même dossier que le script iTunes.

Le script va simplement boucler et envoyer la commande Play à iTunes quand on met le tag sur le lecteur et envoyer Pause quand on retire le tag.

Pour les commandes à envoyer à iTunes (ou un autre logiciel), il y a pas mal de documentations là-bas. Placer un tag sur un CD et faire lire ce CD directement à iTunes est par exemple possible assez facilement.

Une fois le script adapté à votre usage (et à vos tags), il suffit de le lancer avec la commande ./itunes.sh (même chose, un un chmod +x itunes.sh sera peut-être nécessaire).

Une petite vidéo pour montrer ce que ça donne.