..:: Domotique Store : Le Blog ::..
Open Source Raspberry Technologies Tous les articles

Raspberry PI en mode HTPC et pilotage via télécommande

Qui ne connait pas le Raspberry Pi ?

Bon pour ceux qui reviennent d’une transhumance de deux ans dans les montagnes sur le plateau du Larzac voici un petit rappel.

Le Raspberry Pi est un ordinateur de la taille d’une carte de crédit, créé par la fondation du même nom. A la base, destiné à encourager la programmation informatique, son faible coût en a fait un objet prisé et sujet à des montages toujours plus ingénieux. Pour en savoir plus je vous propose de relire le billet de Mickael de planete-domotique à ce sujet.

HTPC quésako « qu’es aquò » ?

HTPC ou Home Theater Personal Computer est un ordinateur que l’on utilise comme home cinéma. L’intérêt est de pouvoir lire des videos, des photos voire de la musique directement depuis un disque dur ou un serveur DLNA.

En clair, je vous propose de transformer votre TV ancienne génération en TV connectée nouvelle génération.

L’un des gros avantages du Raspberry Pi c’est que son système d’exploitation tient sur une carte SD. Pour l’installer c’est assez simple on télécharge une image que l’on installe via l’outil Win32 Disk Imager.

Quelle image installer ?

Actuellement il existe 3 gros systèmes sur le créneau des HTPC : OpenElec, Raspbmc, Xbian

Chacun de ces systèmes se déclare le meilleur et ils utilisent tous les 3 le génial XBMC. Pour ma part j’ai opté pour Openelec car il utilise sa propre distribution Linux tandis que les deux autres utilisent Raspbian qui est la distribution Linux généraliste  proposée par la fondation Raspberry Pi.

Rendez-vous sur cette page pour télécharger la version d’Openelec la plus récente. Une fois téléchargé, décompressez le fichier zip puis lancez le logiciel Win32 Disk Imager.

Sélectionnez l’image, sélectionnez le chemin de votre carte SD et cliquez sur « Write ».

« Pluggez » votre carte SD dans votre Raspberry Pi et branchez l’alimentation, 30 secondes plus tard vous voilà avec XBMC. Si par magie la télécommande de votre TV vous permet de piloter le Raspberry vous voilà prêt à profiter de toutes les fonctionnalités de votre HTPC.

Cette magie porte le doux nom de HDMI CEC, cette fonctionnalité mise en place depuis la norme 1.3 du HDMI permet de piloter un équipement compatible depuis la télécommande de votre TV. Cette fonction a de jolis noms selon la marque de votre téléviseur :

  • Viera Link chez Panasonic
  • Bravia Theatre Sync chez Sony
  • AnyNet+ chez Samsung
  • Regza link chez Toshiba
  • Aquos Link chez Sharp

Si votre TV ne supporte pas le HDMI CEC il ne vous reste plus qu’à brancher un clavier et/ou une souris sans fil pour piloter le tout, ne perdez pas espoir, souvenez-vous le Raspberry Pi est sujet à de multiples montages et XBMC est génial !

Effectivement comme expliqué ici, on peut assez facilement utiliser un récepteur infra-rouge sur son Raspberry Pi pour le piloter. Pour ce faire il vous faut :

  • un récepteur infra-rouge ( Un Vishay TSOP4838 par exemple, 38kHz est fréquemment utilisé pour les télécommandes TV)
  • et c’est tout ….

L’un des gros plus du Raspberry Pi est la possibilité d’utiliser la connectique GPIO qui lui offre 8 Entrées/Sorties pour communiquer avec le « monde extérieur ».

Au niveau du montage rien de très compliqué :

La pin 3 sert pour l’alimentation, la pin 2 pour la masse, et la pin 1 pour transférer les données reçues par infrarouge.

Voilà le résultat avec une plaque à essai :

Attention : le TSOP4838 doit être alimenté en 5V mais le GPIO du Raspberry ne tolère que du 3.3V sur ses entrées/sorties. Mais pas d’inquiétude le module infra-rouge fonctionne parfaitement en 3.3V.

 

Niveau logiciel c’est un peu plus long mais pas plus compliqué … Pour traiter les messages reçus depuis l’infra-rouge il faut utiliser les packages LIRC et lirc_rpi. Dans la distribution Openelec, les deux sont déjà installés. Le second n’est pas lancé  par défaut, il faut donc le faire. Pour cela éditez le fichier « /storage/.config/autostart.sh » et ajoutez :

#!/bin/sh
(kill -9 $(pidof lircd); \
modprobe lirc_rpi; \ #for new libgpio version
/usr/sbin/lircd --driver=default --device=/dev/lirc0 --uinput --output=/var/run/lirc/lircd --pidfile=/var/run/lirc/lircd-lirc0.pid /storage/.config/lircd.conf; \
)&

Pour éditer il vous suffit d’utiliser Winscp (voici un tutoriel vidéo), l’adresse c’est « openelec », login: « root », mot de passe : « openelec »

Il faut ensuite rebooter le Raspberry Pi.

A ce stade le Raspberry Pi est capable de réceptionner les messages infra-rouges de votre télécommande.  Pour le vérifier connectez-vous en SSH (tuto vers la fin de page) et tapez la ligne de commande suivante :

kill $(pidof lircd)
mode2 -d /dev/lirc0

Appuyez sur des touches de la télécommande pour obtenir ce genre de ligne :

pulse 168
space 4816
pulse 169
space 4784
pulse 1333
space 3638

Désormais il faut associer chaque bouton de votre télécommande pour que LIRC la reconnaisse.  Cette association est stockée dans le fichier « lircd.conf « . Il faut le faire sauf si vous avez la chance de trouver votre télécommande dans cette liste.

Alors pour associer il faut saisir la ligne de commande suivante, une fois connecté en SSH :

kill $(pidof lircd)
irrecord -d /dev/lirc0 ./lircd.conf

Là vous avez une présentation, faites « Entrée »

L’application vous indique qu’il faut appuyer environ 1 seconde sur chaque touche de votre télécommande  (pas en même temps). Chaque appui doit afficher de un à dix points à l’écran. Répétez la manipulation pour obtenir 160 points soit 2 lignes. Après vous devrez saisir le nom d’une touche puis appuyez sur le bouton de la télécommande à associer. Le nom des touches doit être dans cette liste. Une fois tous les boutons nécessaires de la télécommande associés, appuyez sur « Entrée ». Votre fichier « lircd.conf » est créé, copiez-le dans le répertoire « /storage/.config/lircd.conf » de façon à ce que LIRC l’utilise :

cp ./lircd.conf /storage/.config/lircd.conf

Redémarrez le Raspberry Pi pour prendre en compte la modification.

Reconnectez vous en SSH et lancez la commande suivante :

irw

Si vous avez été bon, ce dont je ne doute pas, lorsque vous appuyez sur un bouton de la télécommande, vous devriez voir s’afficher la touche LIRC associée.

 

On se rapproche du but, maintenant que LIRC connait votre télécommande. Il faut « mapper » des actions XBMC pour chaque touche LIRC. Encore une fois la manipulation est simple, connectez-vous avec WinSCP puis créez un fichier « Lircmap.xml » (attention à la casse) dans « /storage/.xbmc/userdata« . Je vous propose d’utiliser le mien pour simplifier la tâche. Si vous choisissez de créer le votre voici le lien pour trouver plus d’explications.

 

Re-booter une dernière fois votre Raspberry Pi et utilisez votre télécommande pour profiter de XBMC.

0
0
6livi3r

Développeur en informatique industrielle, j'ai découvert la domotique au contact de Mickael (#LeBoss).<br /> J'ai développé mon propre système de domotique sur mon NAS Synology.

Laisser un commentaire