samedi 11 juin 2022

Écran OLED à rotation automatique (Rasperry Pi Pico)

Dans cet article, je programme le Raspberry Pi Pico en Micropython de façon à ce que le texte affiché sur un petit écran OLED SH1106 se mette à jour selon l'orientation de l'écran.  L'orientation de l'écran est mesurée au moyen d'un accéléromètre-gyro MPU-6050.


L'image ci-dessous illustre le comportement du circuit, similaire à celui d'un téléphone ou d'une tablette: le texte affiché sur l'écran OLED est toujours orienté de façon à pouvoir être lu par la personne qui fait face à l'écran. Si on tourne l'écran, le texte se met à jour automatiquement.



Connexions

Mon afficheur OLED SH1106 et l'accéléromètre MPU-6050 communiquent tous les deux en I2C. Je les ai donc branchés à deux canaux I2C différents.

  • Broche GND de l'écran OLED: Broche GND du Raspberry Pi Pico
  • Broche VCC de l'écran OLED: Sortie 3,3 V du Raspberry Pi Pico
  • Broche SCL de l'écran OLED: Broche GP7 du Raspberry Pi Pico
  • Broche SDA de l'écran OLED: Broche GP6 du Raspberry Pi Pico

  • Broche VCC du MPU-6050: Sortie 3,3 V du Raspberry Pi Pico
  • Broche GND du MPU-6050: Broche GND du Raspberry Pi Pico
  • Broche SCL du MPU-6050: Broche GP9 du Raspberry Pi Pico
  • Broche SDA du MPU-6050: Broche GP8 du Raspberry Pi Pico

L'accéléromètre doit rester dans le même plan que l'écan OLED, avec l'axe des x pointant vers le bas de l'écran, et l'axe des y vers la droite.

Installation des bibliothèques Micropython

Pour l'accéléromètre MPU-6050, j'utilise, comme la dernière fois, les fichiers "imu.py" et "vector3d.py" disponibles sur le dépôt Github micropython-mpu9x50

Ce ne sont pas tous les pilotes SH1106 qui permettent de contrôler la rotation de l'image affichée. Pour cette raison, c'est important d'utiliser cette version récente du pilote SH1106.

Trois fichiers doivent donc être copiés dans la mémoire flash du Raspberry Pi Pico.


Script Micropython

Voici le programme. L'accéléromètre est régulièrement interrogé afin de connaître l'orientation de l'écran. Si on constate qu'un changement dans la rotation de l'écran nécessite une mise à jour de l'affichage, on redessine à nouveau le texte affiché, dans la nouvelle orientation. Notez que les seules orientations acceptées par la bibliothèque sont 0, 90, 180 et 270.  (0 et 180 correspondent à une orientation de type "paysage" alors que les deux autres sont pour une orientation "portrait").

-

-


À lire aussi:


Yves Pelletier (TwitterFacebook)


Aucun commentaire:

Enregistrer un commentaire