code Python pour optimiser l'affichage sur display OLED SSD1036

Python est le langage de prédilection du Raspberry Pi

Modérateurs : Francois, Manfraid

Répondre
thierry35
Messages : 1
Enregistré le : mar. 12 mai 2020 22:01

code Python pour optimiser l'affichage sur display OLED SSD1036

Message par thierry35 » mar. 12 mai 2020 22:20

Bonsoir à tous,

J'utilise un affichage OLED SSD1306 128x64 connecté sur le port I2C d'un raspberry py zero, la librairie python pour gérer l'affichage est la librairie luma (toutefois, je pense qu'avec la librairie Adafruit ma question serait la même). Le fonctionnement est OK.
Je m'interroge par contre sur la meilleure façon de coder l'affichage en python car des parties de mon affichage ne changent jamais. Par exemple : le rectangle extérieur et le rectangle partie basse des 2 premières lignes draw.rectangle ci-dessous :

with canvas(device) as draw:
draw.rectangle((0, 0 ,127, 63), outline="white", fill="black")
draw.rectangle((0, 50 ,128, 64), outline="white", fill="white")
draw.text((34, 20), 'Hello World', font=font2, fill="white")

Ma question est de savoir comment éviter de redessiner à chaque fois les 2 rectangles pour ne changer que le texte hello world dans différentes fonctions. Est-il possible avec cette librairie ou une autre de rendre persistantes des parties de l'affichage pour n'en modifier que certaines.
Un autre exemple serait l'affichage d'une image d'un thermomètre où seule la valeur de la température change, sans recharger l'image à chaque rafraîchissement de la valeur numérique de température.

Merci d'avance pour votre aide.
Thierry

destroyedlolo
Raspinaute
Messages : 1583
Enregistré le : dim. 10 mai 2015 18:44
Localisation : Dans la campagne à côté d'Annecy
Contact :

Re: code Python pour optimiser l'affichage sur display OLED SSD1036

Message par destroyedlolo » mer. 13 mai 2020 11:40

Salut,

Je ne peux répondre pour Python car je ne le fais qu'en C.

Lors de mes recherches, j'ai vu un projet GitHub ou le gars ne mettait a jour que les parties endommagées comme tu le demandes.
Cependant, elle était vraiment basic, il manquait beaucoup de fonctionnalité.
La librairie "ADAFruit" (qui est en fait un portage python -> C++) rafraichie tout l'écran.

[HS]
A ce propos, la librairie originale comportaient des bugs et des limitations : j'ai fait mon propre fork qui corrigent les bugs que j'y ai trouvé, corrige l'interface C qui ne fonctionnait pas et a ajouter quelques fonctions utiles (patterns, cercles, sauvegarde, ...).
Je pensais y ajouter le rafraichissement uniquement des zones endommagés mais ca demandait beaucoup d'efforts pour pas grand chose pour mon utilisation.
[/HS]

A+
  • BananaPI : Gentoo, disque SATA de 2 To
  • Domotique : 1-wire, TéléInfo, Tablette passée sous Gentoo, ESP8266
  • Multimedia par DNLA
  • Et pleins d'idées ... et bien sûr, pas assez de temps.
Un descriptif de ma domotique 100% fait maison.

Répondre

Retourner vers « Python »