TUTO POUR OPENELEC

Publié le : 03/12/2017 23:30:40
Catégories : Tuto, Manuel

TUTO OPENELEC

INTRODUCTION

SOMMAIRE

  • 1-Infrarouge-télécommande: Recevoir et décoder les signaux infrarouge de la télécommande Nuxii. Naviguer dans les menus ou votre environnement linux simplement depuis votre télécommande
  • 2- LEDS: Allumer une led verte lorsque jouez un média et lancer et une led rouge quand vous êtes dans le menu
  • 3-Bouton:Eteindre le Raspberry Pi
  • 4-LCD:Afficher les items du menus, les noms de fichiers et l'heure
  • 5- LED RGB: Tuning Led RGB

OS/Distribution

[Stable] OpenELEC 8.0.4 (arm)

Raspberry Pi 3 Model B

Utilisation

Ce tuto aborde les étapes nécessaires à la mise en fonctionnement des modules intégrables au boitier Nuxii SG et XG avec OpenElec 8.0.4, une distribution mediacenter pour Raspberry Pi 3 !

Prérequis

Raspberry Pi 3, Bouton Nuxii, Module infrarouge Led + Télécommande, LCD16x2

Niveau de difficulté: 3/5

Accès ssh

Création/Modification d'un fichier en ligne de commande Linux

Connaissance des commandes Linux

AVERTISSEMENT

CERTAINES ETAPES PEUVENT NÉCESSITER UN ACCES INTERNET

ATTENTION: LES MISES A JOURS PEUVENT SUPPRIMER CERTAINES CONFIGURATIONS. ASSUREZ-VOUS DE SUIVRE DE NOUVEAU CES ETAPES EN CAS DE PROBLÈME APRES MAJ.

NOTE: CE TUTORIEL N'A ÉTÉ TESTE QUE SUR LA VERSION INDIQUÉE EN HAUT DE PAGE. AUCUN SUPPORT TECHNIQUE NE SERA APPORTE SUR LES PROBLÈMES LIES AUX FUTURES MISES A JOUR

ETAPES

Etape 0 - Preparation de l'OS

Installez OpenElec, connectez-vous en ssh puis lancez les commandes et modifiez les fichiers comme indiqué:


mkdir /storage/scripts


Allow control over System config -> Service -> Control -> Allow remote control from applications on this system


Allow control over System config -> Service -> Control -> Allow remote control via HTTP

Etape 1 - Infrarouge/Telecommande

/storage/.config/rc_keymaps/nuxii-remote

# table nuxii-remote, type: nec
0x18 KEY_BACK
0x06 KEY_HOME
0x46 KEY_UP
0x16 KEY_DOWN
0x47 KEY_LEFT
0x15 KEY_RIGHT
0x55 KEY_OK
0x04 KEY_STOP
0x40 KEY_PLAY
0x54 KEY_REWIND
0x50 KEY_FASTFORWARD
0x10 KEY_VOLUMEDOWN
0x14 KEY_VOLUMEUP





/storage/.config/rc_maps.cfg

    * * nuxii-remote




/flash/config.txt

dtoverlay=gpio-ir,gpio_pin=17,gpio_pull=1,rc-map-name=nuxii-remote



/storage/.config/autostart.sh

systemctl stop eventlircd

ir-keytable -a /storage/.config/rc_maps.cfg

Etape 2 - LEDS

/storage/scripts/nuxii-leds.sh

#!/bin/bash
LED1=22
LED2=27
cd /sys/class/gpio
if [ ! -d /sys/class/gpio/gpio$LED1 ];
then
echo "$LED1" > export
fi
echo out > gpio$LED1/direction
echo 0 > gpio$LED1/value
if [ ! -d /sys/class/gpio/gpio$LED2 ];
then
echo "$LED2" > export
fi
echo out > gpio$LED2/direction
echo 1 > gpio$LED2/value

while true;
do activeStatus=$(curl --user foo:bar --header 'Content-Type: application/json' --data-binary '{ "id": 1, "jsonrpc": "2.0", "method": "Player.GetActivePlayers" }' 'http://127.0.0.1:8080/jsonrpc' 2>&1 | grep playerid | wc -l)
if [ $activeStatus -eq 0 ];
# If activeStatus is playing
then
echo 0 > gpio$LED1/value
echo 1 > gpio$LED2/value
else
echo 0 > gpio$LED2/value
echo 1 > gpio$LED1/value
fi
sleep 1
done

/storage/.config/autostart.sh


/bin/sh /storage/scripts/nuxii-leds.sh &

Etape 3 - Bouton

/storage/scripts/nuxii-shutdown.sh

#!/bin/bash
BUTTON=23
LED=14

if [ ! -d /sys/class/gpio/gpio$LED ];
then
        echo "$LED" > /sys/class/gpio/export
fi
echo out > /sys/class/gpio/gpio$LED/direction
echo 1 > /sys/class/gpio/gpio$LED/value

if [ ! -d /sys/class/gpio/gpio$BUTTON ];
then
        echo "$BUTTON" > /sys/class/gpio/export
fi
echo "in" > /sys/class/gpio/gpio$BUTTON/direction

#This loop continuously checks if the shutdown button was pressed
#It sleeps as long as that has not happened.
buttonstate=$(cat /sys/class/gpio/gpio$BUTTON/value)

while true;
    do
        ##BUTTON
        shutdownSignal=$(cat /sys/class/gpio/gpio$BUTTON/value)
        echo $shutdownSignal
        if [ $shutdownSignal != $buttonstate ];
        then
                shutdown -h now
        fi
        ##LED
        activeStatus=$(curl --user foo:bar --header 'Content-Type: application/json' --data-binary '{ "id": 1, "jsonrpc": "2.0", "method": "Player.GetActivePlayers" }' 'http://127.0.0.1:8080/jsonrpc' 2>&1 | grep playerid | wc -l)
        echo $activeStatus
        if [ $activeStatus -eq 0 ];
        # If activeStatus is not playing
        then
                echo 1 > /sys/class/gpio/gpio$LED/value
        else
                echo 0 > /sys/class/gpio/gpio$LED/value
        fi
    done
    /bin/sleep 1
done


/storage/.config/autostart.sh

/bin/sh /storage/scripts/nuxii-shutdown.sh &

Etape 4 - Ecran LCD

/boot/config.txt
dtparam=i2c_arm=on,spi=on


INSTALL XBMC_ADDON
->Addons->Rechercher->lcd

/etc/modprobe.d/activate_i2c
i2c-bcm2708
i2c-dev

Telechargement du driver compatible i2c

wget -O /storage/.config/hd44780.so https://github.com/wilberforce/lcdproc/raw/master/hd
44780.so

/storage/.config/LCDd.conf

## Server section with all kinds of settings for the LCDd server
[server]
DriverPath=/storage/config/
#DriverPath=/path/to/hd44780.so
Driver=hd44780
Bind=127.0.0.1
Port=13666
#User=root
Foreground=yes
# Hello message: each entry represents a display line; default: builtin Hello=" Welcome to"
Hello=" OpenElec"
# GoodBye message: each entry represents a display line; default: buil$ GoodBye="Bye bye"
GoodBye=" C U"
# Sets the default time in seconds to displays a screen.
WaitTime=5
# set title scrolling speed [default: 10; legal: 0-10]
TitleSpeed=1
ServerScreen=off
## Hitachi HD44780 driver
[hd44780]
ConnectionType=i2c
# Port where the LPT is. Usual value are: 0x278, 0x378 and 0x3BC
Port=0x27
# Device of the serial interface [default: /dev/lcd]
Device=/dev/i2c-1
# Bitrate of the serial port (0 for interface default)
Speed=0
# Specifies the size of the LCD.
# In case of multiple combined displays, this should be the total size.
Size=16x2
CharMap=hd44780_default
DelayMult=4
#You may need to change some values depending on what i2c backpack you use
i2c_line_RS=0x01
i2c_line_RW=0x02
i2c_line_EN=0x04
i2c_line_BL=0x08
i2c_line_D4=0x10
i2c_line_D5=0x20
i2c_line_D6=0x40
i2c_line_D7=0x80
Backlight=yes
BacklightInvert=yes

/storage/.config/autostart.sh

/usr/sbin/LCDd -c /storage/.config/LCDd.conf &

Specificités version BOUTON + ECRAN

Se référer à l'article ...

5- LED RGB

Exemple

 #!/bin/bash
 LED1=9
 LED2=10
 LED3=11
 cd /sys/class/gpio
 if [ ! -d /sys/class/gpio/gpio$LED1 ];
 then
         echo "$LED1" > export
 fi
 echo out > gpio$LED1/direction
 echo 0 > gpio$LED1/value
 if [ ! -d /sys/class/gpio/gpio$LED2 ];
 then
         echo "$LED2" > export
 fi
 echo out > gpio$LED2/direction
 echo 1 > gpio$LED2/value
  if [ ! -d /sys/class/gpio/gpio$LED3 ];
 then
         echo "$LED3" > export
 fi
 echo out > gpio$LED3/direction
 echo 1 > gpio$LED3/value

Source

Privée
#Comment configurer un rc-mapsystemctl

systemctl stop kodi
systemctl stop eventlircd

#Check supported protocol
ir-keytable
ir-keytable -p nec -t

ir-keytable -c -w /storage/.config/rc_keymaps/nuxii-remote -t

#####################################

Partager ce contenu