Ecran normal de la loupe

Projet Loupe Numérique – Etape 3 : Afficher la caméra à l’écran

Restituer l’affichage de la caméra sur l’écran

Encore une fois, le site du constructeur de l’écran a apporté de bonnes choses pour cette réalisation. Je vais tenter une illustration / adaptation / traduction à notre habitude.

Nous utilisons toujours la connexion SSH.

1. Téléchargement de l’outil dédié et son installation

wget http://www.waveshare.com/wiki/File:RPi-Camera-Driver-for-GPIO-LCD.zip
unzip camera.zip
  • wget, nous l’avons utilisé précédemment pour le driver de l’écran
  • unzip permet de décompresser d’autres types de fichiers (pour les fichiers zip en l’occurrence)

2. Activer cet outil

cd camera
sudo chmod 777 Camera
sudo cp update\ camera/95-stmpe.rules /etc/udev/rules.d/
  • cd se positionne dans le répertoire créé lors de la décompression
  • chmod 777 rend exécutable et modifiable par tout le monde le script Camera
  • cp update\ … va déclarer une nouvelle règle concernant cet outil

3. Créer un fichier wheezy.list.

sudo nano /etc/apt/sources.list.d/wheezy.list

dont le contenu est

deb http://archive.raspbian.org/raspbian wheezy main
Un premier fichier coloré
Un premier fichier coloré

Quittez (Ctrl + X) en sauvegardant

4. Créer un fichier 10defaultRelease.

sudo nano /etc/apt/apt.conf.d/10defaultRelease

dont le contenu est

APT::Default-release \"stable";
Un fichier simple
Un fichier simple

Quittez (Ctrl + X) en sauvegardant

5. Créer un fichier libsdl

sudo nano /etc/apt/preferences.d/libsdl

dont le contenu est

Package: libsdl1.2debian
Pin: release n=jessie
Pin-Priority: -10
Package: libsdl1.2debian
Pin: release n=wheezy
Pin-Priority: 900
Un fichier un peu plus long
Un fichier un peu plus long

Quittez (Ctrl + X) en sauvegardant

6. Ajouter des librairies

Exécuter les commandes suivantes (les unes après les autres)

sudo apt-get update
sudo apt-get -y --force-yes install libsdl1.2debian/wheezy
sudo apt-get install evtest tslib libts-bin xinput
sudo apt-get install python-pip 
sudo apt-get install python2.7-dev
sudo pip install picamera==1.10 
sudo reboot

Avec ces commandes, on installe tour à tour plusieurs librairies nécessaires au bon fonctionnement

7. Calibrer l’écran (facultatif)

sudo TSLIB_FBDEVICE=/dev/fb1 TSLIB_TSDEVICE=/dev/input/touchscreen ts_calibrate

En exécutant cette commande, nous lançons un petit utilitaire qui va vous aider à calibrer l’écran et améliorer sa précision.

8. Essayer l’appareil photo

cd /home/pi/camera/
./Camera
  • La première ligne va se positionner dans le bon répertoire
  • La seconde va lancer l’appareil photo

Sur l’écran du Raspberry, vous devriez alors avoir l’affichage de ce qui se passe de l’autre côté de l’oeil de la caméra avec deux boutons :

  • un pour faire le paramétrage
  • un pour voir les photos prises

Et pour prendre une photo, il suffit d’appuyer sur l’écran, en dehors de ces deux boutons.

Pour quitter l’appareil photo, vous pouvez passer soit par le paramétrage, soit depuis le SSH en appuyant sur Ctrl + C (ce qui permet de quitter quasiment toutes les commandes existantes).

9. Créer la loupe

Et bien, j’en suis là pour le moment…

Une autre façon non viable pour le projet

Pour l’affichage de la vidéo, j’ai aussi essayé une approche avec l’utilisation de VLC qui peut servir dans certains projets, mais pas celui de départ.

sudo apt-get install vlc

Forcément, au bout de quelques secondes, le Raspberry nous demande s’il peut utiliser les quelques mégas nécessaires à l’installation du logiciel, nous répondons naturellement Y

Question habituelle pendant l'installation de VLC
Question habituelle pendant l’installation de VLC

Une fois installé, nous allons essayer de partager le flux de la caméra

raspivid -t 0 -n --width 640 --height 480 -o - | cvlc stream:///dev/stdin --sout '#standard{access=http,mux=ts,dst=:8090}' :demux=h264
  • raspivid est l’outil qui collecte la vidéo depuis la caméra
  • -t 0 pour indiquer que cela se fait tout de suite
  • — width 640 — height 480 pour définir une résolution assez base (la résolution cible de l’écran)
  • -o – pour orienter le flux vers la sortie standard
  • | pour que les deux commandes soient associées (comme si nous lancions en même temps les deux commandes)
  • cvlc est un composant de VLC qui va partager la vidéo sur le réseau
  • stream:///dev/stdin on lit le flux standard
  • –sout ‘#standard{access=http,mux=ts,dst=:8090}’ :demux=h264 et VLC le renvoie vers le flux web sur le port 8090 au format h264
Des messages un peu barbare
Des messages un peu barbare

D’ailleurs, vu les messages indiqués, je suis sceptique quant au fonctionnement optimal de l’ensemble, mais vous constaterez ci-dessous que ça fonctionne à peu près.

Du coup, depuis le PC, nous pouvons maintenant lire le flux depuis VLC, également installé sur le PC :

Menu "Média" > Ouvrir un flux réseau > http://192.168.0.44:8090 (à remplacer par l'adresse IP de votre raspberry)
Ouverture du flux depuis un PC
Ouverture du flux depuis un PC

L’image apparaît dans VLC. Par contre, il y a beaucoup de latence : quasiment 3,5 secondes entre un mouvement (ou un réglage) et sa répercution sur l’écran du PC (dans une configuration Raspberry branché en Ethernet sur une Freebox, qui diffuse un Wifi auquel accède le PC).

Tada !!!
Tada !!!

De cette façon là, plusieurs PC peuvent se connecter en même temps à la caméra, mais si on essaye le faire depuis le Raspberry lui même, c’est affreusement coûteux en ressources (utilisation à 99% du CPU).

 

 

Laissez un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *