Wiki

Outils pour utilisateurs

Outils du site


lirc_-_faire_fonctionner_un_capteur_ir_fait_maison_homebrew_sur_port_serie_avec_telecommande

Installer LIRC pour capteur infra-rouge port série fait maison (homebrew)

Ce tuto va vous permettre, à la fois, de fabriquer vous-même un capteur Infra-rouge et d'installer LIRC pour le faire fonctionner avec n'importe quelle télécommande.

A- fabriquer un capteur infra-rouge

Pour ça, aller sur ce site qui explique en image comment fabriquer ce capteur IR. Pas besoin d'être électronicien, je n'y connais rien du tout dans ce domaine et suis arrivé à fabriquer ce capteur du premier coup donc allez-y sans crainte.

http://lnx.manoweb.com/lirc/?partType=section&partName=introduction et voici un lien vers un topic français qui pourra aussi vous aider :

http://forum.hardware.fr/hfr/OverclockingCoolingTuning/Mod-elec/tutorial-faq-pc-sujet_247659_1.htm

Voilà comment j'ai procedé pour faire fonctionner une télécommande quelconque (terratec cinergy 1400) avec un capteur IR fait maison et sur DEBIAN ETCH, fonctionne également sur debian lenny, ubuntu feisty et gutsy:

B- Installation de LIRC

Ce tuto a été appliqué avec succès sous Ubuntu Gutsy. Il n'a pas fait l'objet d'une vérification pour être applicable en tant que tel dans tous les cas. Merci de bien vouloir donner vos remarques sur le forum si vous appliquez ce tuto et que vous trouvez des manques, des incohérences des erreurs ou que ça à très bien fonctionné.

Sous Ubuntu Hardy l'installation se résume à installer lirc (apt-get ou synaptic). Durant celle-ci :

  • Séléctionnez comme télécomande (remote) “homebrew (16×50 UART …)”.
  • Comme émetteur : “none
  • Générallement le port série est attaché à “/dev/ttyS0”.

Passez ensuite au étape

1- installer les paquets indispensables

#apt-get install lirc lirc-modules-source module-assistant

ou

#aptitude install lirc lirc-modules-source module-assistant

2- Configurer lirc-modules-source en console et en root

#dpkg-reconfigure lirc-modules-source

A ce stade, des questions vous sont posées :

la première page vous donne la liste des modules, retenez “serial” car le capteur IR fait maison est installé sur un port serie.

Dans la deuxième page, il faut tout décocher et ne cocher que “serial”.

La troisième page vous demande si il s'agit d'un émetteur , mettez “non” car il s'agit d'un récepteur.

Sur la page suivante , c'est une question sur l'utilisation en mode logicielle. je n'ai pas très bien compris cette question donc j'ai laissé par defaut “non”. si certain comprenne ce que cela veut dire, n'hésitez pas à le rajouter à la suite de ce tuto en remarque.

La page suivante vous propose de construire automatiquement les modules, mettez “non”.

La dernière page, vous demande ce que vous voulez faire de lirc-modules-source.conf. Vous choisissez la première proposition “install the package maintainer's version”

3- le fichier /etc/lirc/hardware.conf

Retour en console (root) pour modifier ce fichier : gedit /etc/lirc/hardware.conf

 # /etc/lirc/hardware.conf
 #
 # Arguments which will be used when launching lircd
 LIRCD_ARGS=""
 
 #Don't start lircmd even if there seems to be a good config file
 #START_LIRCMD=false
 
 #Try to load appropriate kernel modules
 LOAD_MODULES=true

 # Run "lircd --driver=help" for a list of supported drivers.
 DRIVER=""
 # If DEVICE is set to /dev/lirc and devfs is in use /dev/lirc/0 will be
 # automatically used instead
 DEVICE=""
 MODULES="lirc_dev lirc_serial"

 # Default configuration files for your hardware if any
 LIRCD_CONF=""
 LIRCMD_CONF=""

4- construire les modules lirc

En console et en root

m-a update,prepare

''rm /usr/src/lirc*deb''  (si vous avez une ancienne version de lirc)
''m-a clean lirc''
''m-a a-i lirc''
''depmod -a''

5- Creer le fichier lircd.conf

A mettre dans /etc/lirc/

Pour info, voici mon lircd.conf pour ma télécommande terratec cinergy 1400

#

# this config file was automatically generated
# using lirc-0.7.2(serial) on Fri Oct 14 16:29:58 2005
#
# contributed by Sebastian Kraft
#
# brand:    Terratec                   
# model no. of remote control:  Cinergy 1400-T
# devices being controlled by this remote:
#

begin remote
name  Terratec_Cinergy_1400-T
bits           16
flags SPACE_ENC|CONST_LENGTH
eps            30
aeps          100
header       9007  4495
one           557  1683
zero          557   555
ptrail        546
pre_data_bits   16
pre_data       0x20D7
gap          110968
toggle_bit      0
begin codes
         0                        0x30CF
         1                        0x40BF
         2                        0xC03F
         3                        0x20DF
         4                        0xA05F
         5                        0x609F
         6                        0xE01F
         7                        0x10EF
         8                        0x906F
         9                        0x50AF
         fullscreen               0x18E7
         osd                      0x708F
         volumeup                 0x38C7
         volumedown               0x7887
         channelup                0xD827
         channeldown              0xF807
         epg                      0xF00F
         av                       0xD02F
         power                    0x807F
         teletext                 0xA857
         clock                    0xE817
         mute                     0xB847
         pause                    0x02FD
         play                     0x32CD
         record                   0x1AE5
         rewind                   0x2AD5
         stop                     0x12ED
         forward                  0x3AC5
         up                       0x08F7
         down                     0x28D7
         left                     0x8877
         right                    0xC837
         info                     0x6897
         ok                       0x48B7
         tab                      0x58A7
         audio                    0x9867
         clock                    0xE817
     end codes
end remote

RQ: vous pouvez creer à la main ce fichier avec la commande suivante en root, c'est long mais au moins on est sûr des boutons ;) :

#irrecord /etc/lircd.conf

ou

#irrecord -d /dev/lirc0 lircd.conf

si vous voyez des messages d'erreur avec cette commande alors utiliser l'option -f, comme ceci :

#irrecord -f /etc/lircd.conf

6- charger le modules lirc_serial en root

#modprobe lirc_serial

A ce stade, ça n'a pas fonctionné pour moi car je n'avais pas libéré le port serie. Pour pallier à ce problème il faut installer “setserial”

#aptitude install setserial

puis en console et en root :

#/etc/init.d/lirc stop
#dpkg -i /usr/src/lirc-modules-2.6.*.deb

Ensuite on fait en console et en root :

#setserial /dev/ttyS0 uart none  ( la commande qui permet de libérer le port)
#modprobe lirc_serial
#depmod -a
#/etc/init.d/lirc start

et on teste la telecommande avec “irw” en console et en root.

Quand vous faites cette commande, le curseur saute une ligne et attends, c'est là que vous pouvez tester la telecommande en appuyant sur les boutons et vérifié que cela correspond bien à votre lircd.conf

Ca doit fonctionner mais c'est pas fini car au redemarrage du pc, le module lirc_serial ne va pas se charger automatique et le port serie ne va pas se libérer tout seul. il faut donc refaire à chaque fois :

#setserial /dev/ttyS0 uart none
#modprobe lirc_serial
#depmod -a
#/etc/init.d/lirc start

MAIS LA SOLUTION EST LA

Vous avez deux methodes :

A- methode pour debian (etch, lenny) et ubuntu feisty et gutsy

vous allez faire en console en root :

#dpkg-reconfigure setserial''

et choisir “manuel” c'est tout. Puis vous allez modifier le fichier /var/lib/setserial/autoserial.conf et ajouter la ligne suivante :

/dev/ttyS0 uart none

ET SURTOUT VOUS ALLEZ COMMENTER avec un “#” LA LIGNE QUI CONTIENT UN AUTRE “ttyS0”. Enregistrer.

Puis vous copiez ce script dans /etc/serial.conf, donc en console et en root vous faites :

#cp /var/lib/setserial/autoserial.conf /etc/serial.conf

B- methode pour ubuntu seulement

Cette autre methode, la voici … ;) elle fonctionne sur ubuntu feisty et gutsy mais pas sur debian. Je n'ai pas testé sur d'autres distributions :

Dans /etc/modprobe.conf vous ajouter ce qui suit :

alias char-major-61 lirc_serial

options lirc_serial irq=4 io=0x3f8
install lirc_serial /bin/setserial /dev/ttyS0 uart none ;
/sbin/modprobe --ignore-install lirc_serial

Maintenant, vous retestez en faisant :

#setserial /dev/ttyS0 uart none
#modprobe lirc_serial
#depmod -a
#/etc/init.d/lirc start

puis

#irw

vous appuyez sur les boutons de la telcommande … ça réagit, impec. Maintenant on peut redemarrer et voir si le module va se charger automatiquement et si le port serial va se libérer automatiquement.

Arrivé sur le bureau, vous ouvrez la console en root et vous faites simplement :

#irw

Appuyez sur les boutons de la télécommande et ça doit fonctionner ;-).

Il ne reste plus qu'a creer vos fichiers “lircrc” ou à les télécharger ici :morphinux_lirc.tar.gz pour une télécommande terratec cinergy 1400.

morphinux (31/01/2008 20:39)

lirc_-_faire_fonctionner_un_capteur_ir_fait_maison_homebrew_sur_port_serie_avec_telecommande.txt · Dernière modification: 05/08/2012 par gilles74