irlcd.jpgAprès avoir joué du fer à souder pour monter l'interface sur la base du schéma de Dick Streefland ( http://www.xs4all.nl/~dicks/avr/usbtiny/index.html ) légèrement modifié par mes soins afin d'ajouter 2 relais et un connecteur de programmation ICSP, il a fallu programmer l'AVR.

Vue interne de la réalisation. Le connecteur pour l'alimentation extérieure est inutilisé. La led, (en bas à droite) clignote lors de la réception d'une trame RC5 par le capteur infrarouge (en haut). Le connecteur à 10 broches sert à connecter le programmateur AVR.

Disposant d'une interface de programmation USBTinyISB de LadyAda ( http://www.ladyada.net/make/usbtinyisp/index.html ), il m'a suffit d'utiliser le programme AVRdude, pour réaliser cette tache.

Si le support logiciel de la partie infrarouge est évident sous Linux (car compatible avec le protocol IgorPlug), il n'existait aucune solution pour le support du LCD que ce soit sous Linux ou Windows. J'ai donc développé 2 drivers (soumis aux auteurs de ces projets pour intégration dans les logiciels concernés...) :

  • l'un pour fonctionner sous Windows avec LCSmartie (http://lcdsmartie.sourceforge.net/). Il a été réalisé à l'aide du compilateur MinGW (libre), lui même intégré dans l'environnement de développent Eclipse (libre également). Il n'est pas encore intégré sur le site de LCsmartie, mais est joint à ce post.
  • L'autre pour LCD4Linux (http://ssl.bulix.org/projects/lcd4linux/), réalisé à l'aide de GCC et baptisé IRLCD. Une page de documentation a été rédigée pour ce driver sur le Wiki de LC4Linux (http://ssl.bulix.org/projects/lcd4linux/wiki/IRLCD). Il a été intégré dans le SVN le jour même par l'auteur du logiciel. Pour récupérer le driver, il faut prendre la version SVN de lcd4linux.

Si lors du branchement sur un système linux, rien de particulier n'est à faire (à part vérifier dans /var/log/messages que l'interface a bien été détectée..), il n'en est pas de même sous Windows. Il faut en effet installer avant de raccorder l'interface la librairie libusb-win32. Cette installation doit se faire en plusieurs temps, afin de vous faciliter la vie pour des déploiements ultérieurs.

  • Installer libusb-win32-filter-bin-xxx.exe, qui va mettre en place presque tout ce qui est requis. Un reboot sera nécessaire
  • Récupérer l'archive libusb-device-bin-xxx.tar.gz, et prélever le fichier "inf-wizard.exe" que vous allez placer dans le répertoire "C:\Program Files\LibUSB-Win32\bin"
  • Branchez vote interface IRLCD, et ne faites rien sur l'assitant d'installation
  • Lancer le programme "C:\Program Files\LibUSB-Win32\bin\inf-wizard.exe", et suivez toutes ses étapes. Il va créer un .inf vous permettant de déployer votre interface.
  • A la fermeture de l'inf-wizard, repassez dans l'assistant d'installation du nouveau périphérique détecté (irlcd) et précisez lui le chemin du fichier.inf que vous venez de créer.

Vous pouvez sauver à part le fichier inf et les 2 fichiers cat, en plus desquels vous n'aurez qu'à ajouter C:\Program Files\LibUSB-Win32\bin\libusb0.sys pour que votre archive de driver soit complète! Vous pourrez ainsi le réinstaller simplement sur d'autres PC.

Sont joints à ce post :

Références :