Outils pour utilisateurs

Outils du site


issue177:micro-ci_micro-la

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
issue177:micro-ci_micro-la [2022/02/01 08:43] d52frissue177:micro-ci_micro-la [2022/02/02 09:04] (Version actuelle) d52fr
Ligne 9: Ligne 9:
 Une fois de plus, nous allons traiter de l'écran SSD1306, mais cette fois-ci, nous allons parler de la création de polices personnalisées. Cette fois, nous allons (comme le sous-titre le suggère) créer des polices spéciales à utiliser sur notre écran OLED. Dans l'ensemble, le code devrait fonctionner correctement sur les Raspberry Pi Pico, ESP32 et ESP8266. Le seul problème pourrait être l'utilisation de la mémoire en raison de la taille des fichiers de police. Une fois de plus, nous allons traiter de l'écran SSD1306, mais cette fois-ci, nous allons parler de la création de polices personnalisées. Cette fois, nous allons (comme le sous-titre le suggère) créer des polices spéciales à utiliser sur notre écran OLED. Dans l'ensemble, le code devrait fonctionner correctement sur les Raspberry Pi Pico, ESP32 et ESP8266. Le seul problème pourrait être l'utilisation de la mémoire en raison de la taille des fichiers de police.
  
-Dans le numéro 172, partie 6, du Full Circle Magazine, j'ai présenté la bibliothèque Micropython Font To Py de Peter Hinch, mais seulement une petite partie de ce paquet. Nous avons utilisé quelques-unes de ses polices et sa bibliothèque writer. Si vous ne l'avez pas déjà récupérée, voici où vous pouvez l'obtenir. https://github.com/peterhinch/micropython-font-to-py+Dans le numéro 172 du Full Circle Magazine, partie 6 de la rubrique, j'ai présenté la bibliothèque Micropython Font To Py de Peter Hinch, mais seulement une petite partie de ce paquet. Nous avons utilisé quelques-unes de ses polices et sa bibliothèque writer. Si vous ne l'avez pas encore récupérée, voici où vous pouvez l'obtenir. https://github.com/peterhinch/micropython-font-to-py
  
  
Ligne 53: Ligne 53:
 return ssd** return ssd**
  
-Vous devez modifier le fichier ssd1306_setup.py pour qu'il supporte la configuration I2C de notre Pico. Cependant, il n'y a que quelques endroits que vous devez changer. Vers le haut du fichier, après les commentaires, vous trouverez les lignes de code suivantes.+Vous devez modifier le fichier ssd1306_setup.py pour qu'il supporte la configuration I2C de notre Pico. Cependant, il n'y a que quelques endroits que vous devez changer. Vers le haut du fichier, après les commentaires, vous trouverez les lignes de code suivantes :
  
 import machine import machine
Ligne 63: Ligne 63:
 HEIGHT = const(64) HEIGHT = const(64)
  
-Vous devez modifier WIDTH et HEIGHT pour qu'elles correspondent à votre écran. Vous pouvez utiliser un écran OLED plus petit (128x32 pixels), mais vous devrez modifier le code plus tard car il suppose que vous faites tenir le texte sur 64 rangées de pixels.+Vous devez modifier WIDTH et HEIGHT pour qu'elles correspondent à votre écran. Il est possible d'utiliser un écran OLED plus petit (128x32 pixels), mais vous devrez modifier le code plus tard car il suppose que vous faites tenir le texte sur 64 rangées de pixels.
  
-Maintenant, au bas du fichier, vous verrez les lignes de code suivantes.  Assurez-vous de changer le i2c = machine.I2C(2) en i2c = machine.I2C(0).+Maintenant, au bas du fichier, vous verrez les lignes de code suivantes.  Assurez-vous de changer le i2c = machine.I2C(2) en i2c = machine.I2C(0) :
  
 else: else:
Ligne 98: Ligne 98:
 Enregistrez votre fichier. Copiez les fichiers Writer.py et ssd1306_setup.py sur le Pico, s'ils n'y sont pas déjà. Enregistrez votre fichier. Copiez les fichiers Writer.py et ssd1306_setup.py sur le Pico, s'ils n'y sont pas déjà.
  
-Nous pouvons maintenant créer nos fichiers de police spéciaux. L'idée est de convertir une police de votre système en un fichier que Micropython peut utiliser. Dans cet article, nous allons utiliser le fichier ttf Ubuntu-Regular. Vous devriez l'avoir sur votre système normal de bureau/portable. Si ce n'est pas le cas, vous pouvez le trouver sur Internet.+Nous pouvons maintenant créer nos fichiers de police spéciaux. L'idée est de convertir une police de votre système en un fichier que Micropython peut utiliser. Dans cet article, nous allons utiliser le fichier ttf Ubuntu Regular. Vous devriez l'avoir sur votre système normal de bureau/portable. Si ce n'est pas le cas, vous pouvez le trouver sur l'Internet.
  
-Pour pouvoir utiliser l'utilitaire de conversion, vous devez avoir installé la bibliothèque freetype sur votre ordinateur de bureau ou portable (pas sur votre microcontrôleur). Vous pouvez l'installer facilement en utilisant+Pour pouvoir utiliser l'utilitaire de conversion, vous devez avoir installé la bibliothèque freetype sur votre ordinateur de bureau ou portable (pas sur votre microcontrôleur). Vous pouvez l'installer facilement en utilisant :
  
 pip install freetype-py pip install freetype-py
  
-ou+ou :
  
 pip3 install freetype-py pip3 install freetype-py
  
-Maintenant que nous avons pris soin de toutes nos dépendances, nous pouvons commencer à travailler avec le programme font_to_py. Vous devez travailler dans une session de terminal pour les étapes suivantes.+Maintenant que nous nous sommes occupés de toutes nos dépendances, nous pouvons commencer à travailler avec le programme font_to_py. Vous devez travailler dans une session de terminal pour les étapes suivantes.
  
-La ligne de commande doit être+La ligne de commande doit être :
  
 font_to_py.py {chemin complet du fichier de polices} {taille} {-x} {nom du fichier à sauvegarder} font_to_py.py {chemin complet du fichier de polices} {taille} {-x} {nom du fichier à sauvegarder}
Ligne 129: Ligne 129:
 ubuntu12.py written successfully.** ubuntu12.py written successfully.**
  
-Vous DEVEZ inclure un chemin d'accès complet à la police que vous souhaitez utiliser. Sur mon système, il y a deux emplacements pour les polices. Le premier dans /usr/share/fonts/truetype (pour les polices truetype) et ensuite chaque police a son propre dossier. Le second est un dossier caché dans mon répertoire personnel qui s'appelle .fonts. Je garde les polices spéciales dans ce dossier. L'un ou l'autre chemin est vu par mon système comme un dossier de polices. Vous pouvez utiliser à peu près n'importe quelle police .ttf, mais je ne vois pas vraiment de raison de m'amuser avec des polices trop fantaisistes, trop grandes ou trop petites, c'est pourquoi j'ai choisi Ubuntu-Regular.+Il est OBLIGATOIRE d'inclure un chemin d'accès complet à la police que vous souhaitez utiliser. Sur mon système, il y a deux emplacements pour les polices. Le premier est dans /usr/share/fonts/truetype (pour les polices truetype) et ensuite chaque police a son propre dossier. Le second est un dossier caché dans mon répertoire personnel qui s'appelle .fonts. Je garde les polices spéciales dans ce dossier. L'un ou l'autre chemin est vu par mon système comme un dossier de polices. Vous pouvez utiliser à peu près n'importe quelle police .ttf, mais je ne vois vraiment pas de raison de m'amuser avec des polices trop fantaisistes, trop grandes ou trop petites, c'est pourquoi j'ai choisi Ubuntu Regular.
  
 Vous devez également vous assurer d'inclure le paramètre -x lorsque vous créez le fichier de police. Cela permet de s'assurer que la police est mappée horizontalement. Cette information n'est pas incluse directement dans le fichier readme et il m'a fallu près d'une heure pour tout décortiquer et comprendre pourquoi mes polices ne fonctionnaient pas. Voici la session de terminal que j'ai effectuée lorsque j'ai créé ma police. Nous allons créer une police de 12 points, je l'ai donc enregistrée sous le nom de ubuntu12.py. Vous devez également vous assurer d'inclure le paramètre -x lorsque vous créez le fichier de police. Cela permet de s'assurer que la police est mappée horizontalement. Cette information n'est pas incluse directement dans le fichier readme et il m'a fallu près d'une heure pour tout décortiquer et comprendre pourquoi mes polices ne fonctionnaient pas. Voici la session de terminal que j'ai effectuée lorsque j'ai créé ma police. Nous allons créer une police de 12 points, je l'ai donc enregistrée sous le nom de ubuntu12.py.
Ligne 174: Ligne 174:
 Now we need to do the same thing but this time make the font a 16 point font.  We’ll keep the font as Ubuntu-Regular.** Now we need to do the same thing but this time make the font a 16 point font.  We’ll keep the font as Ubuntu-Regular.**
  
-Nous pouvons maintenant voir que les caractères ont une hauteur de 12 pixels et une largeur de 11 pixels. Cela nous aidera à déterminer le nombre de caractères que vous pouvez faire tenir sur une ligne et le nombre de lignes que vous pouvez faire tenir sur l'écran 128x64. Maintenant que nous avons créé la police, nous allons faire un test rapide. Peter a fourni un utilitaire pour faire cela. Il s'appelle font_test.py. Vous fournissez le nom de la police comme premier paramètre et ce que vous voulez afficher comme deuxième paramètre. Voici la sortie du terminal que j'ai obtenue.+Nous pouvons maintenant voir que les caractères ont une hauteur de 12 pixels et une largeur de 11 pixels. Cela nous aidera à déterminer le nombre de caractères que vous pouvez faire tenir sur une ligne et le nombre de lignes que vous pouvez faire tenir sur l'écran 128x64. Maintenant que nous avons créé la police, nous allons faire un test rapide. Peter a fourni un utilitaire pour faire cela. Il s'appelle font_test.py. Vous fournissez le nom de la police comme premier paramètre et ce que vous voulez afficher comme deuxième paramètre. Voici la sortie du terminal que j'ai obtenue :
  
 $ python font_test.py ubuntu12 Hello $ python font_test.py ubuntu12 Hello
Ligne 202: Ligne 202:
 ............................ ............................
  
-Maintenant, nous devons faire la même chose, mais cette fois-ci en utilisant une police de 16 points. Nous allons garder la police Ubuntu-Regular.+Maintenant, nous devons faire la même chose, mais cette fois-ci en utilisant une police de 16 points. Nous allons garder la police Ubuntu Regular.
  
  
Ligne 310: Ligne 310:
 J'ai connecté mon Pico au port USB et j'ai lancé Thonny. Comme j'ai travaillé avec mon ESP32 et mon ESP8266, j'ai dû cliquer sur le coin inférieur droit pour m'assurer qu'il était connecté au RPi Pico. J'ai connecté mon Pico au port USB et j'ai lancé Thonny. Comme j'ai travaillé avec mon ESP32 et mon ESP8266, j'ai dû cliquer sur le coin inférieur droit pour m'assurer qu'il était connecté au RPi Pico.
  
-J'ai utilisé la commande du menu Fichier Ouvrir et sélectionné « Cet ordinateur ». J'ai navigué jusqu'à l'endroit où j'avais créé et enregistré les fichiers de police et j'ai transféré le fichier ubuntu12.py en premier. Une fois qu'il s'est affiché dans une fenêtre d'édition, j'ai sélectionné la commande de menu Fichier Enregistrer la copie et, cette fois, j'ai choisi « Raspberry Pi Pico », puis j'ai nommé le fichier ubuntu12.py. J'ai répété le processus avec la police 16 points, en l'enregistrant sous le nom de ubuntu16.py.+J'ai utilisé la commande du menu File Open et sélectionné « This computer ». J'ai navigué jusqu'à l'endroit où j'avais créé et enregistré les fichiers de police et j'ai transféré le fichier ubuntu12.py en premier. Une fois qu'il s'est affiché dans une fenêtre d'édition, j'ai sélectionné la commande de menu File Save Copy et, cette fois, j'ai choisi « Raspberry Pi Pico », puis j'ai nommé le fichier ubuntu12.py. J'ai répété le processus avec la police 16 points, en l'enregistrant sous le nom de ubuntu16.py.
  
-Maintenant, ouvrez un nouvel onglet d'édition dans Thonny et nous allons commencer à écrire le code pour le Pico. Tout d'abord, nous allons (comme toujours) configurer les importations.+Maintenant, ouvrez un nouvel onglet d'édition dans Thonny et nous allons commencer à écrire le code pour le Pico. Tout d'abord, nous allons (comme toujours) configurer les importations :
  
 import machine import machine
Ligne 349: Ligne 349:
 Nous terminons par un appel à ssd.show() afin d'afficher réellement les données que nous venons d'envoyer, puis nous dormirons pendant 3 secondes et après ce délai de 3 secondes, nous effacerons l'affichage avec ssd.fill(0) qui éteint tous les pixels. Nous terminons par un appel à ssd.show() afin d'afficher réellement les données que nous venons d'envoyer, puis nous dormirons pendant 3 secondes et après ce délai de 3 secondes, nous effacerons l'affichage avec ssd.fill(0) qui éteint tous les pixels.
  
-Ensuite, nous afficherons les mêmes données dans une police de 16 points. Comme la police est de 16 points, nous ne pouvons pas faire tenir tout le texte sur un seul écran comme nous le faisions avec la police de 12 points. Nous allons le diviser en deux parties, les deux premières lignes de caractères de l'alphabet, les chiffres 1 à 0 et ensuite quelques caractères décalés. Remarquez que nous devons également décaler certains caractères d'une ligne à l'autre pour que le tout tienne. Nous pousserons les données vers l'écran pour les afficher, nous resterons en veille pendant 3 secondes et nous effacerons l'écran à nouveau.+Ensuite, nous afficherons les mêmes données dans une police de 16 points. Comme la police est de 16 points, nous ne pouvons pas faire tenir tout le texte sur un seul écran comme nous le faisions avec la police de 12 points. Nous allons le diviser en deux parties, les deux premières lignes de caractères de l'alphabet, les chiffres 1 à 0 et ensuite quelques caractères décalés. Remarquez que nous devons également décaler certains caractères d'une ligne à l'autre pour que le tout tienne. Nous enverrons les données vers l'écran pour les afficher, nous resterons en veille pendant 3 secondes et nous effacerons l'écran à nouveau.
  
  
Ligne 453: Ligne 453:
   ssd.show()   ssd.show()
  
-Enfin, nous appelons la fonction du code pour que tout démarre.+Enfin, nous appelons la fonction du code pour que tout démarre :
  
 test() test()
Ligne 465: Ligne 465:
 À ce stade, vous devriez être en mesure de choisir une police de votre choix et de la convertir pour qu'elle fonctionne sur votre microcontrôleur en support de vos propres programmes. À ce stade, vous devriez être en mesure de choisir une police de votre choix et de la convertir pour qu'elle fonctionne sur votre microcontrôleur en support de vos propres programmes.
  
-Jusqu'à la prochaine fois, comme toujours restez en sécurité, en bonne santé, positif et créatif !+Jusqu'à la prochaine fois, comme toujoursrestez en sécurité, en bonne santé, positif et créatif !
  
issue177/micro-ci_micro-la.1643701426.txt.gz · Dernière modification : 2022/02/01 08:43 de d52fr