Outils pour utilisateurs

Outils du site


issue172: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
issue172:micro-ci_micro-la [2021/08/31 13:17] auntieeissue172:micro-ci_micro-la [2021/08/31 17:14] (Version actuelle) auntiee
Ligne 42: Ligne 42:
 And use the defined pins for bus 0 (or 1). This, however, created a number of problems, since there were so many options for the I2C bus pins. So, to be safe and avoid confusion, always define your pins.** And use the defined pins for bus 0 (or 1). This, however, created a number of problems, since there were so many options for the I2C bus pins. So, to be safe and avoid confusion, always define your pins.**
  
-Si, par contre, vous voulez utiliser le support du logiciel I2C, vous pouvez le faire comme ceci...+Si, par contre, vous voulez utiliser le support du logiciel I2C, vous pouvez le faire comme ceci :
  
 from machine import Pin, SoftI2C from machine import Pin, SoftI2C
Ligne 50: Ligne 50:
 i2c = SoftI2C(scl=Pin(5), sda=Pin(4), freq=100000) i2c = SoftI2C(scl=Pin(5), sda=Pin(4), freq=100000)
  
-Très similaire, mais, bien sûr, si vous utilisez la solution logicielle, vous devez vraiment vous assurer de définir les broches. Dans les versions précédentes du firmware MicroPython du RPi, vous pouviez simplement utiliser+Très similaire, mais, bien sûr, si vous utilisez la solution logicielle, vous devez vraiment vous assurer de définir les broches. Dans les versions précédentes du firmware MicroPython du RPi, vous pouviez simplement utiliser :
  
 i2c = I2C(0) i2c = I2C(0)
Ligne 141: Ligne 141:
 display.show() display.show()
  
-Sauvegardez le fichier en tant que displaybasic1.py et exécutez-le. Si tout fonctionne correctement, vous verrez quelque chose comme ceci.+Sauvegardez le fichier en tant que displaybasic1.py et exécutez-le. Si tout fonctionne correctement, vous verrez quelque chose comme ceci :
  
  
Ligne 158: Ligne 158:
 That’s it.  We’ll look at the graphics capability and other options of the “regular” driver in a later article. If you get the expected results, then we’ll look at the library we downloaded earlier.** That’s it.  We’ll look at the graphics capability and other options of the “regular” driver in a later article. If you get the expected results, then we’ll look at the library we downloaded earlier.**
  
-Examinons de plus près quelques unes des lignes de code. Lorsque nous créons l'objet d'affichage, nous envoyons au pilote la largeur et la hauteur en pixels de l'écran et le bus sur lequel il se trouve. Si vous utilisez un écran plus petit ou plus grand, vos valeurs seront un peu différentes.+Examinons de plus près quelques-unes des lignes de code. Lorsque nous créons l'objet d'affichage, nous envoyons au pilote la largeur et la hauteur en pixels de l'écran et le bus sur lequel il se trouve. Si vous utilisez un écran plus petit ou plus grand, vos valeurs seront un peu différentes.
  
 display = ssd1306.SSD1306_I2C(128, 64, i2c) display = ssd1306.SSD1306_I2C(128, 64, i2c)
Ligne 199: Ligne 199:
 Affichages améliorés Affichages améliorés
  
-Si vous faites partie des personnes chanceuses qui ont une excellente vue, vous pouvez lire l'écran à une distance d'un mètre ou plus sans problème. Cependant, pour un vieil homme comme moi, bien que l'écran soit lumineux, essayer de lire quoi que ce soit à plus de 40 cm de distance est une épreuve. Ne serait-il pas agréable de pouvoir utiliser une police plus grande et plus dense ? C'est ce que nous voulons parler ici. (Je sais, il m'a fallu 4 pages pour arriver à la vraie raison pour laquelle nous sommes ici. Désolé pour ça).+Si vous faites partie des personnes chanceuses qui ont une excellente vue, vous pouvez lire l'écran à une distance d'un mètre ou plus sans problème. Cependant, pour un vieil homme comme moi, bien que l'écran soit lumineux, essayer de lire quoi que ce soit à plus de 40 cm de distance est une épreuve. Ne serait-il pas agréable de pouvoir utiliser une police plus grande et plus dense ? C'est ce dont nous voulons parler ici. (Je sais, il m'a fallu 4 pages pour arriver à la vraie raison pour laquelle nous sommes ici. Désolé.)
  
 Le zip de distribution de micropython-font-to-py contient un très grand nombre de fichiers, mais nous n'avons besoin que de quelques-uns pour l'instant. Dans le dossier writer, vous devez copier les fichiers suivants sur votre microcontrôleur : font6.py, font10.py, courier20.py, freesans20.py, ssd1306_setup.py et writer.py. Le zip de distribution de micropython-font-to-py contient un très grand nombre de fichiers, mais nous n'avons besoin que de quelques-uns pour l'instant. Dans le dossier writer, vous devez copier les fichiers suivants sur votre microcontrôleur : font6.py, font10.py, courier20.py, freesans20.py, ssd1306_setup.py et writer.py.
Ligne 213: Ligne 213:
 from ssd1306 import SSD1306_SPI, SSD1306_I2C from ssd1306 import SSD1306_SPI, SSD1306_I2C
  
-Si vous utilisez un ssd1306 qui a une résolution de 128x64, alors vous n'avez rien à changer ici. Cependant, si vous utilisez un ssd1306 128x32, changez la valeur de la hauteur à 32. Je le montre commenté ici.+Si vous utilisez un ssd1306 qui a une résolution de 128x64, vous n'avez rien à changer ici. Cependant, si vous utilisez un ssd1306 128x32, changez la valeur de la hauteur à 32. Je le montre commenté ici :
  
 WIDTH = const(128) WIDTH = const(128)
Ligne 237: Ligne 237:
 import time** import time**
  
-L'autre chose qui doit être modifiée se trouve dans la fonction de configuration, vers la fin de la fonction. La première partie vous permet d'utiliser un écran basé sur SPI. Je l'ai juste mis ici pour référence. Comme ce pilote a été écrit à l'origine pour la Pyboard, nous devrons en modifier quelques éléments. Afin de rendre les choses plus faciles pour nos trois microcontrôleurs possibles, j'ai commenté tout ce qui se trouve dans la partie I2C de la fonction, sauf la partie qui suit le dernier else. Assurez-vous de fixer l'indentation de façon à ce que la partie inférieure du code tombe sous l'instruction if de départ (if use_spi :). Une fois encore, assurez-vous que les numéros des broches I2C correspondent à votre configuration (code ci-dessus).+L'autre chose qui doit être modifiée se trouve dans la fonction de configuration, vers la fin de la fonction. La première partie vous permet d'utiliser un écran basé sur SPI. Je l'ai mis ici uniquement pour référence. Comme ce pilote a été écrit à l'origine pour la Pyboard, nous devrons en modifier quelques éléments. Afin de rendre les choses plus faciles pour nos trois microcontrôleurs possibles, j'ai commenté tout ce qui se trouve dans la partie I2C de la fonction, sauf la partie qui suit le dernier else. Assurez-vous de fixer l'indentation de façon à ce que la partie inférieure du code tombe sous l'instruction if de départ (if use_spi:). Une fois encore, assurez-vous que les numéros des broches I2C correspondent à votre configuration (code ci-dessus).
  
 A ce stade, nous devons modifier ou créer le fichier writer_demo.py. Je vais laisser de côté la plupart des commentaires ici, mais ils seront dans mon fichier de diffusion. A ce stade, nous devons modifier ou créer le fichier writer_demo.py. Je vais laisser de côté la plupart des commentaires ici, mais ils seront dans mon fichier de diffusion.
Ligne 300: Ligne 300:
 Save the file as writer_demo2.py (just to make sure the original one is still there), and run the program. There is a chance that, if you are using the ESP8266, then you might get a memory error when you try to run it. The author’s documentation suggests that you should be able to use the file writer_minimal.py to replace writer.py. However, when I tried to use it, I got errors. So, if you are having memory issues, try to remove any unused files from your device and/or try a smaller font file.** Save the file as writer_demo2.py (just to make sure the original one is still there), and run the program. There is a chance that, if you are using the ESP8266, then you might get a memory error when you try to run it. The author’s documentation suggests that you should be able to use the file writer_minimal.py to replace writer.py. However, when I tried to use it, I got errors. So, if you are having memory issues, try to remove any unused files from your device and/or try a smaller font file.**
  
-Vous voudrez également inclure la ligne suivante (première ligne en dessous). Elle garantit que l'affichage commence à la ligne 0, colonne 0, au démarrage. Les étapes suivantes consistent à obtenir l'heure et la date actuelles (time.localtime()) et à les formater pour afficher la date sur la première ligne et l'heure sur la deuxième ligne. Enfin, nous utilisons ssd.show() pour afficher réellement les informations. Les informations que nous obtenons de l'appel localtime sont retournées sous la forme (2021, 8, 4, 8, 52, 49, 2, 216). Année, Mois, Jour, Heure, Minute, Seconde, Millisecondes. Rappelez-vous que les données sont basées sur des zéros, donc les informations de date sont dt[1], dt[2], dt[0] pour ces fous d'Américains. Si vous vivez dans un pays plus sain, n'hésitez pas à le formater comme vous le souhaitez ! (code affiché ci-dessus)+Vous voudrez également inclure la ligne suivante (première ligne en dessous). Elle garantit que l'affichage commence à la ligne 0, colonne 0, au démarrage. Les étapes suivantes consistent à obtenir l'heure et la date actuelles (time.localtime()) et à les formater pour afficher la date sur la première ligne et l'heure sur la deuxième ligne. Enfin, nous utilisons ssd.show() pour afficher réellement les informations. Les informations que nous obtenons de l'appel localtime sont retournées sous la forme (2021, 8, 4, 8, 52, 49, 2, 216). Année, Mois, Jour, Heure, Minute, Seconde, Millisecondes. Rappelez-vous que les données sont basées sur des zéros, donc les informations de date sont dt[1], dt[2], dt[0] pour ces fous d'Américains. Si vous vivez dans un pays plus sain, n'hésitez pas à le formater comme vous le souhaitez ! (code affiché ci-dessus).
  
 C'est ici que je m'écarte (encore plus) du code de démonstration fourni par l'auteur. Je veux montrer comment afficher l'heure toutes les secondes et ce qu'il faut faire pour écraser l'information précédente. J'ai choisi de faire cela pour une période de 2 minutes. Si vous pensez que c'est trop long ou trop court, allez-y et changez la valeur 120 dans la boucle for. C'est ici que je m'écarte (encore plus) du code de démonstration fourni par l'auteur. Je veux montrer comment afficher l'heure toutes les secondes et ce qu'il faut faire pour écraser l'information précédente. J'ai choisi de faire cela pour une période de 2 minutes. Si vous pensez que c'est trop long ou trop court, allez-y et changez la valeur 120 dans la boucle for.
Ligne 308: Ligne 308:
 Enfin, nous appelons notre fonction de test pour commencer à nous amuser. Enfin, nous appelons notre fonction de test pour commencer à nous amuser.
  
-test(Faux)+test(False)
  
-Enregistrez le fichier en tant que writer_demo2.py (juste pour être sûr que l'original est toujours là)et exécutez le programme. Il est possible que, si vous utilisez l'ESP8266, vous obteniez une erreur de mémoire lorsque vous essayez de l'exécuter. La documentation de l'auteur suggère que vous devriez pouvoir utiliser le fichier writer_minimal.py pour remplacer writer.py. Cependant, lorsque j'ai essayé de l'utiliser, j'ai eu des erreurs. Donc, si vous avez des problèmes de mémoire, essayez de supprimer tous les fichiers inutilisés de votre appareil et/ou essayez un fichier de police plus petit.+Enregistrez le fichier en tant que writer_demo2.py (juste pour être sûr que l'original est toujours là) et exécutez le programme. Il est possible que, si vous utilisez l'ESP8266, vous obteniez une erreur de mémoire lorsque vous essayez de l'exécuter. La documentation de l'auteur suggère que vous devriez pouvoir utiliser le fichier writer_minimal.py pour remplacer writer.py. Cependant, lorsque j'ai essayé de l'utiliser, j'ai eu des erreurs. Donc, si vous avez des problèmes de mémoire, essayez de supprimer tous les fichiers inutilisés de votre appareil et/ou essayez un fichier de police plus petit.
  
  
Ligne 341: Ligne 341:
 Vous pouvez voir que les trois polices générées par le pilote Writer sont bien meilleures à distance que le pilote de base. Même en utilisant la police 6.py, le texte est assez facile à lire à environ 60 cm et, au moins pour moi, la police 10.py est la meilleure si l'on considère la lisibilité à distance et la taille de la mémoire. Vous pouvez voir que les trois polices générées par le pilote Writer sont bien meilleures à distance que le pilote de base. Même en utilisant la police 6.py, le texte est assez facile à lire à environ 60 cm et, au moins pour moi, la police 10.py est la meilleure si l'on considère la lisibilité à distance et la taille de la mémoire.
  
-Comme je l'ai suggéré précédemment, il y en a beaucoup plus dans le pilote ssd1306 "originalet dans le programme d'écriture amélioré. De plus, nous n'avons utilisé qu'une petite partie du référentiel font-to-py. Il s'agit, comme son nom l'indique, d'un programme d'aide qui vous permettra de créer vos propres fichiers de police (à partir de fichiers de police ttf) qui pourront être utilisés dans vos propres programmes. Nous verrons tout cela dans des articles ultérieurs.+Comme je l'ai suggéré précédemment, il y en a beaucoup plus dans le pilote ssd1306  « original » et dans le programme d'écriture amélioré. De plus, nous n'avons utilisé qu'une petite partie du dépôt font-to-py. Il y a, comme son nom l'indique, d'un programme d'aide qui vous permettra de créer vos propres fichiers de police (à partir de fichiers de police ttf) qui pourront être utilisés dans vos propres programmes. Nous verrons tout cela dans des articles ultérieurs.
  
 Vous trouverez l'ensemble du code et des fichiers d'images sur mon dépôt github à l'adresse https://github.com/gregwa1953/FCM172_MicroThisMicroThat. Vous trouverez l'ensemble du code et des fichiers d'images sur mon dépôt github à l'adresse https://github.com/gregwa1953/FCM172_MicroThisMicroThat.
issue172/micro-ci_micro-la.1630408626.txt.gz · Dernière modification : 2021/08/31 13:17 de auntiee