Une fois que mon écran OLED miniature fonctionne sur le Raspberry Pi, j’ai décidé de créer un script Python pour générer un diaporama d’images. Le script que j’ai créé lit les images d’un répertoire qu’il redimensionne et convertit avant de les afficher à l’écran.
Écran OLED de 0,9 pouces
Pour utiliser le script de diaporama, vous devez avoir l’écran OLED connecté à votre Pi via l’interface I2C et vérifier qu’il fonctionne à l’aide des exemples de scripts Adafruit.
Vous trouverez tous les détails de la configuration de l’affichage dans mon Utilisation d’un module d’affichage I2C OLED avec le Raspberry Pi.
Télécharger le diaporama Python Script
Assurez-vous que vous êtes dans le répertoire personnel :
cd ~
Créez un répertoire pour stocker le script et les images :
mkdir slideshow
et accédez à ce nouveau répertoire :
cd slideshow
Maintenant, le script du diaporama peut être téléchargé depuis mon référentiel BitBucket directement sur votre Pi en utilisant :
wget https://bitbucket.org/MattHawkinsUK/rpispy-misc/raw/master/oled/oled_slideshow.py
Simplifions le nom du script et renommez-le en utilisant :
mv oled_slideshow.py slideshow.py
Remplir le répertoire avec des images
Vous pouvez trouver vos propres images, mais pour commencer, vous pouvez télécharger ces exemples d’images sur votre Pi :
wget https://bitbucket.org/MattHawkinsUK/rpispy-misc/raw/master/oled/terminator.pbm wget https://bitbucket.org/MattHawkinsUK/rpispy-misc/raw/master/oled/robocop.pbm wget https://bitbucket.org/MattHawkinsUK/rpispy-misc/raw/master/oled/cyberman.pbm
Utilisez la commande suivante pour lister les fichiers dans le répertoire du diaporama et vérifier que les images sont au même endroit que le script du diaporama :
ls -l
Vous devriez voir les fichiers suivants répertoriés :
- diaporama.py
- terminateur.pbm
- robocop.pbm
- cyberman.pbm
Exécuter l’exemple de script
Le script peut être exécuté à l’aide de Python 2 ou Python 3.
L’exécution sous Python 3 se fait en utilisant :
python3 slideshow.py
Vous pouvez modifier le délai entre chaque image en spécifiant le délai sur la ligne de commande sous forme d’entier :
python3 slideshow.py 4
Augmenter la vitesse du bus I2C
Ceci est facultatif mais pour améliorer le taux de rafraîchissement de l’écran, vous pouvez augmenter la vitesse du bus de l’interface I2C. Cela peut être fait en suivant le didacticiel Changer la vitesse du bus Raspberry Pi I2C.
Le diaporama en action
Le diaporama devrait ressembler à ceci :
Conseils de résolution d’image
Le script examine la résolution de l’image et la redimensionne si elle ne correspond pas à la taille d’affichage.
Le redimensionnement des images prend plus de temps, donc avec des délais plus petits, le temps de traitement accru peut être visible. Cela est particulièrement vrai si les images sont toutes de tailles différentes et prendront un temps légèrement différent à traiter. Pour cette raison, vous souhaiterez peut-être redimensionner toutes vos images à une taille commune avant qu’elles ne soient placées dans le répertoire avec le script.
De nombreuses modifications peuvent être apportées à ce script. Peut-être que les images pourraient être créées automatiquement par la caméra Pi et que le script du diaporama les afficherait ensuite à l’écran ?
Dépannage
Enfin si vous rencontrez des problèmes voici quelques points à considérer :
- Avez-vous réussi à configurer l’écran et à faire fonctionner les exemples Adafruit ?
- Avez-vous téléchargé le script oled_slideshow.py dans le même répertoire que vos images ?
- Essayez d’exécuter le script avec seulement quelques images