IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Polices Truetype Micropython pour afficheurs matriciels
Un tutoriel d'Hervé Troadec

Le , par naute

70PARTAGES

9  0 
Bonjour à tous ,

J'ai le plaisir de vous proposer le tutoriel
Polices Truetype Micropython pour afficheurs matriciels

portant sur la manipulation des polices Truetype ou Opentype avec MicroPython pour l'affichage sur écrans matriciels pilotés par microcontrôleur.


MicroPython implémente la classe FrameBuffer pour gérer l’affichage sur les écrans matriciels tels que les écrans OLED, LCD ou TFT. Cette classe fournit, entre autres, une fonction destinée à afficher du texte sur ces écrans.
Pour afficher du texte, cette fonction doit disposer d’une fonte au format bitmap. FrameBuffer fournit donc une fonte de ce type. Cette fonte est à chasse fixe et chaque caractère est dessiné dans une matrice de 8×8 pixels. Si, compte tenu des dimensions courantes des écrans, elle permet un remplissage optimal de la zone d’affichage, elle présente malgré tout trois inconvénients majeurs :
• sa taille est insuffisante pour assurer un confort de lecture correct ;
• elle n’est actuellement pas modifiable, et rien ne laisse penser qu’elle le sera dans un avenir proche ;
• elle ne dispose que du sous-ensemble imprimable des caractères ASCII, donc codés sur 7 bits, s’étendant de 32 à 126, ce qui interdit notamment l’affichage des signes diacritiques utilisés dans la langue française.
Dans ce tutoriel, nous allons voir comment générer des fontes bitmap à partir des fontes Truetype vectorielles et comment les utiliser pour réaliser un affichage digne de ce nom, dans les limites, bien sûr, des contraintes liées au matériel.
Nous verrons également comment optimiser l’utilisation de la RAM en pré-compilant les fichiers.
Bonne lecture,
amicalement,
naute
Vous avez lu gratuitement 3 720 articles depuis plus d'un an.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer à vous proposer des publications.

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de f-leb
Responsable Arduino et Systèmes Embarqués https://www.developpez.com
Le 22/07/2026 à 20:54
Testé et approuvé avec des adaptations pour un Oled SH1106 qui ressemble physiquement au SSD1306 du tuto (même taille, même PCB bleu, même dalle, même connecteur GND-VCC-SCL-SDA, même sérigraphie...), mais avec un contrôleur différent qui ne dispose pas de support officiel par MicroPython, donc il faut chercher un peu dans la communauté.

Très efficace la police 7segments pour ce genre d'afficheurs...

Merci pour ce tuto
2  0 
Avatar de naute
Rédacteur https://www.developpez.com
Le 23/07/2026 à 9:29
Bonjour Fabien ,

et merci.

Citation Envoyé par f-leb Voir le message
Testé et approuvé avec des adaptations pour un Oled SH1106 qui ressemble physiquement au SSD1306 du tuto (même taille, même PCB bleu, même dalle, même connecteur GND-VCC-SCL-SDA, même sérigraphie...), mais avec un contrôleur différent qui ne dispose pas de support officiel par MicroPython, donc il faut chercher un peu dans la communauté.
Remarque très pertinente qui va probablement éviter bien des galères . Je ne connaissais pas l'existence de ce module avant que tu ne m'en parles. Ton expérience démontre en plus qu'un matériel non officiellement supporté est potentiellement utilisable ici, ce qui augmente d'autant le champ d'application et du matériel en lui-même, et du tutoriel.

Amicalement,
Hervé
0  0