[Tips] Ajouter une icône dans votre affichage

Salut, une autre petite astuce avec vos Pi. Vous connaissez le petit éclair en cas de problème d’alimentation ? ou de l’icone de surchauffe ? Vous ne pouvez pas simplement les contrôler, car ils sont inscrit dans le firmware, mais vous pouvez les imiter.

Je cherchais à pouvoir indiquer certaines actions, sans nécessairement émettre un son ou avoir un texte, ou être un moniteur d’une action scripté. Par exemple j’ajoute un petit haut-parleur quand mon script pour eSpeak est utilisé.

Le principe est d’utiliser le « Dispmanx »; avec ce guide vous pourrez installer quelques outils, dont celui de d’afficher une image avec « pngview ».

Étapes pour installer

  1. Connectez vous en SSH, via le login prompt ou terminal depuis le Pi directement,
  2. Exécutez une mise à jour et installation du pré-requis;
    sudo apt-get update
    sudo apt-get install libpng12-dev
  3. dans votre dossier « home » du compte « pi » (/home/pi), copier le GIT Raspidmx;
    git clone https://github.com/AndrewFromMelbourne/raspidmx.git
  4. Compilez les outils avec;
    cd raspidmx
    sudo make
  5. Une fois compilez, envoyer une image au format PNG sur votre Pi, il peut y avoir de la transparence,
  6. Utiliser cette commande pour tester;
    /home/pi/raspidmx/pngview/pngview -x 10 -y 10 -b 0 -l 3 -n -t 5000 /home/pi/monimage.png
    Vous devriez voir votre image à 10px (-x) de la gauche, 10px (-y) du haut, avec le support de transparence (-b 0), il sera le « layer » #3 (-l 3), sans interaction (-n) et pour un affichage de 5 secondes (-t 5000) de l’image « /home/pi/monimage.png ».

Rendre le tout pratique avec un script

  1. Copier un ensemble d’images au format PNG, sans espace dans le nom et en minuscule dans le dossier créé avec;
    mkdir /home/pi/icons
  2. Créer un fichier « icon.sh » avec Nano;
    nano /home/pi/icon.sh
  3. Ajouté les lignes suivantes dans l’éditeur Nano;
    #!/bin/bash
    /usr/bin/screen -h 10 -dmS Icon /home/pi/raspidmx/pngview/pngview -x 10 -y 10 -b 0 -l 3 -n -t $1 /home/pi/icons/$2.png > /dev/null 2>&1
    Sauvegardez avec « CTRL+X », « O » pour Oui écrire les lignes,
  4. Rendez le fichier exécutable; chmod +x /home/pi/icon.sh

De cette manière, vous pouvez appeler ce fichier pour plus simplement ajouter l’icone, sans qu’il soit dérangeant pour vos usages, car quand la commande est appelé, sans la commande « screen », le « prompt » reste occupé le temps que l’image est affiché. De plus, si vous retiré le paramètre « -t », il restera actif indéfiniment, mis à par par « CTRL+C » en mode interactif ou par un pkill pngview par exemple.

Pour utiliser le script proprement, suivez cet exemple; /home/pi/icon.sh 5000 icon_name. Ce qui aurait pour résultat d’afficher durant 5000ms (ou 5s) le fichier « icon_name.png » (le .png est inclus dans le script) dans le dossier « /home/pi/icons ».

Exemple avec un Script eSpeak

Requière « eSpeak », installez le via ce guide : https://raspberry-pi.fr/faire-parler-raspberry-pi-espeak/ . Mais ajouter s’y tout les variantes en exécutant par la suite de ce guide, cette commande;
sudo apt-get install mbrola-fr*

Télécharger ce fichier pour l’image « sound.png » sound

  1. Créer un fichier « talk.sh » avec Nano;
    nano /home/pi/talk.sh
  2. Ajouter ces lignes dans le document ouvert avec Nano;
    #!/bin/bash
    /home/pi/icon.sh 5000 sound
    /usr/bin/espeak -p 30 -s 100 -l 1 -a 150 -b 1 -v $1 "$2"
    Sauvegardez avec « CTRL+X », « O » pour Oui écrire les lignes,
  3. Rendez le fichier exécutable; chmod +x /home/pi/talk.sh

Lorsque vous désirez faire parler votre Pi avec eSpeak, utilisez cette commande;
/home/pi/talk.sh "mb-fr1+f5" "Bonjour à vous, je peux maintenant vous parler."
La commande exige 2 valeurs, la première est le pack de langue à utiliser, le second est le texte à dire. La commande est optimisé pour mon PiZero avec la lecture d’une phrase à la fois.

Pour comprendre les paramètres donnés à eSpeak;

  • -p 30 : Un pitch de 30, défaut 50,
  • -s 100 : Une lecture de 100 mots minutes, défaut 150, min 80, max 200,
  • -l 1 : Prend en charge les caractères UTF-8, défaut « false »,
  • -a 150 : volume à 150%, défaut 100, min 0, max 200,
  • -v X : utiliser le dictionnaire vocal X, défaut « en » (ENglish mon ami, Anglais).

D’autres paramètres existes, avec espeak --help

Le pack de langue contient plusieurs versions masculine et féminine du français, mais attention, j’ai pas encore trouver la belle voix sexy de Google assistant. Pour changer de version, remplacer, le « +f5 » de la commande d’exemple par une valeur de « f0 » à « f9 », la valeur de « f1 » à « f5 » sont les voix féminines, le reste sont masculines. Si vous n’inscrivez que « mb-fr1 », vous aurez celle par défaut, et si vous changez vous par exemple « mb-fr2 », et bien ça ne marchera pas, c’est vraiment en ajoutant « +f# » que vous accédez aux variantes.

Collection d’icônes
Voici quelques icones pratique que je partage avec vous pour vous aider à démarrer;
bell bomb bug cancel cd clock clock_red cog connect controller cross date delete disconnect disk error exclamation feed heart hourglass information joystick key keyboard lightning lock lock_open shield sound sound_low sound_mute sound_none star stop tick time transmit transmit_blue transmit_error weather_clouds weather_cloudy weather_lightning weather_rain weather_snow weather_sun webcam webcam_error world wrench wrench_orange