issue173:micro-ci_micro-la
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
issue173:micro-ci_micro-la [2021/09/29 08:15] – d52fr | issue173:micro-ci_micro-la [2021/10/03 17:19] (Version actuelle) – andre_domenech | ||
---|---|---|---|
Ligne 10: | Ligne 10: | ||
I was able to gain a tremendous amount of information on using the SSD1302 from the web. One of the most useful websites was the Random Nerds Tutorials site. Their page for this section is https:// | I was able to gain a tremendous amount of information on using the SSD1302 from the web. One of the most useful websites was the Random Nerds Tutorials site. Their page for this section is https:// | ||
+ | |||
+ | Ce mois-ci, nous allons continuer à jouer avec l' | ||
+ | |||
+ | Passons directement à de nouvelles choses que nous pouvons faire. | ||
+ | |||
+ | Graphiques simples | ||
+ | |||
+ | REMARQUE : Le code présenté ici a été développé avec l' | ||
+ | |||
+ | Afin de réaliser des graphiques simples comme des lignes, des cercles, etc., vous devez télécharger un pilote graphique pour le SSD1302. Vous pouvez l' | ||
+ | |||
+ | J'ai pu obtenir une grande quantité d' | ||
+ | |||
**We’ll start (right) with the normal import and I2C setup code… This is for the ESP32/ | **We’ll start (right) with the normal import and I2C setup code… This is for the ESP32/ | ||
Ligne 26: | Ligne 39: | ||
oled.show()** | oled.show()** | ||
+ | |||
+ | Nous allons commencer (à droite) par le code normal d' | ||
+ | |||
+ | Maintenant que les préliminaires nécessaires sont terminés, nous pouvons nous concentrer sur la façon de dessiner nos graphiques. | ||
+ | |||
+ | Ligne simple | ||
+ | |||
+ | Nous allons commencer par dessiner une ligne de la position 0,0 à la position 128, sur la ligne inférieure de l' | ||
+ | |||
+ | line(x0, y0, x1, y1, color) | ||
+ | |||
+ | Nous le coderons donc comme suit : | ||
+ | |||
+ | graphics.line(0, | ||
+ | |||
+ | oled.show() | ||
+ | |||
**By using oled_height as our y1 parameter, we can ensure that this will work for both 128x64 and 128x32 displays. Now, sleep for 2 seconds, then clear the display and we will move on to the next demo. | **By using oled_height as our y1 parameter, we can ensure that this will work for both 128x64 and 128x32 displays. Now, sleep for 2 seconds, then clear the display and we will move on to the next demo. | ||
Ligne 48: | Ligne 78: | ||
oled.fill(0)** | oled.fill(0)** | ||
+ | |||
+ | En utilisant oled_height comme paramètre y1, nous pouvons nous assurer que cela fonctionnera pour les écrans 128x64 et 128x32. Maintenant, sleep pendant 2 secondes, puis effacez l' | ||
+ | |||
+ | sleep(2) | ||
+ | |||
+ | oled.fill(0) | ||
+ | |||
+ | Rectangle | ||
+ | |||
+ | Ensuite, nous allons dessiner un rectangle. Les paramètres de la fonction rectangle sont : | ||
+ | |||
+ | rect(x0, y0, largeur, hauteur, couleur) | ||
+ | |||
+ | Nous allons dessiner un rectangle de 0,0 à 50,20. De cette façon, il fonctionnera sur l'un ou l' | ||
+ | |||
+ | graphics.rect(0, | ||
+ | |||
+ | oled.show() | ||
+ | |||
+ | sleep(2) | ||
+ | |||
+ | oled.fill(0) | ||
+ | |||
**Filled Rectangle | **Filled Rectangle | ||
Ligne 60: | Ligne 113: | ||
oled.fill(0)** | oled.fill(0)** | ||
+ | |||
+ | Rectangle rempli | ||
+ | |||
+ | Pour créer un rectangle rempli, nous allons utiliser une fonction très similaire, fill_rect, avec les mêmes paramètres que précédemment. | ||
+ | |||
+ | graphics.fill_rect(0, | ||
+ | |||
+ | oled.show() | ||
+ | |||
+ | sleep(2) | ||
+ | |||
+ | oled.fill(0) | ||
+ | |||
**Circles | **Circles | ||
Ligne 90: | Ligne 156: | ||
oled.fill(0)** | oled.fill(0)** | ||
+ | |||
+ | Cercles | ||
+ | |||
+ | Les cercles sont tout aussi simples que les rectangles. Les fonctions sont circle et fill_circle. Elles utilisent toutes deux la même liste de paramètres. | ||
+ | |||
+ | circle(x0, y0, rayon, couleur) | ||
+ | |||
+ | fill_circle(x0, | ||
+ | |||
+ | Encore une fois, nous utiliserons des paramètres qui fonctionneront sur l'un ou l' | ||
+ | |||
+ | # Cercle (x0, y0, rayon, couleur) | ||
+ | |||
+ | graphics.circle(64, | ||
+ | |||
+ | oled.show() | ||
+ | |||
+ | sleep(2) | ||
+ | |||
+ | oled.fill(0) | ||
+ | |||
+ | # Cercle rempli | ||
+ | |||
+ | graphics.fill_circle(64, | ||
+ | |||
+ | oled.show() | ||
+ | |||
+ | sleep(2) | ||
+ | |||
+ | oled.fill(0) | ||
+ | |||
**Triangles | **Triangles | ||
Ligne 122: | Ligne 219: | ||
oled.show()** | oled.show()** | ||
+ | |||
+ | Triangles | ||
+ | |||
+ | Les fonctions triangle sont similaires aux fonctions rect et circle, mais possèdent un troisième ensemble de coordonnées. | ||
+ | |||
+ | triangle(x0, | ||
+ | |||
+ | fill_triangle(x0, | ||
+ | |||
+ | Comme pour les dernières fonctions, nous utiliserons des coordonnées qui s' | ||
+ | |||
+ | graphics.triangle(0, | ||
+ | |||
+ | oled.show() | ||
+ | |||
+ | sleep(2) | ||
+ | |||
+ | oled.fill(0) | ||
+ | |||
+ | oled.show() | ||
+ | |||
+ | # Triangle rempli | ||
+ | |||
+ | graphics.fill_triangle(0, | ||
+ | |||
+ | oled.show() | ||
+ | |||
+ | sleep(2) | ||
+ | |||
+ | oled.fill(0) | ||
+ | |||
+ | oled.show() | ||
+ | |||
**Easy enough, right? | **Easy enough, right? | ||
Ligne 132: | Ligne 262: | ||
I originally tested this code on the ESP32, but I was able to get it to run on the RPi Pico. The only thing you have to make sure of is the I2C setup. Between the information from last month and the information in the code above, you should have no problems getting things to work. Just in case you have forgotten, I got this demo from Random Nerds Tutorials web site. You can find the link in the text above.** | I originally tested this code on the ESP32, but I was able to get it to run on the RPi Pico. The only thing you have to make sure of is the I2C setup. Between the information from last month and the information in the code above, you should have no problems getting things to work. Just in case you have forgotten, I got this demo from Random Nerds Tutorials web site. You can find the link in the text above.** | ||
+ | |||
+ | C'est assez facile, non ? | ||
+ | |||
+ | Sur le dépôt, le fichier pour cette section s' | ||
+ | |||
+ | Défilement de l' | ||
+ | |||
+ | Parfois, vous voulez faire quelque chose de plus agréable qu'un affichage statique où le texte est écrasé au fur et à mesure. Le défilement du texte depuis le côté ou le haut, suivi d'une pause de quelques secondes, puis une évacuation hors de l' | ||
+ | |||
+ | À l' | ||
+ | |||
**Getting Started | **Getting Started | ||
Ligne 143: | Ligne 284: | ||
Now that we have all of our support functions coded (final ones shown top right), we can start using them. Each demo portion is fairly long, so we’ll just loop three times. The original code (next page, on the left) had this as a forever loop.** | Now that we have all of our support functions coded (final ones shown top right), we can start using them. Each demo portion is fairly long, so we’ll just loop three times. The original code (next page, on the left) had this as a forever loop.** | ||
- | *Once the demo is finished, clear the display. | + | Mise en route |
+ | |||
+ | Comme je le fais la plupart du temps, nous allons commencer (en haut à droite) par la section d' | ||
+ | |||
+ | Maintenant que nous avons mis en place le texte des « écrans », nous devons créer une liste de listes (au milieu à droite) que nous passerons dans les fonctions que nous allons créer. Chaque entrée de la liste est configurée comme X (colonne), Y (ligne) et message. Dans le code ci-dessus, nous avons créé trois messages comme « screen1 », deux messages comme « screen2 » et un message comme « screen3 ». Il nous suffit donc de définir l' | ||
+ | |||
+ | À ce stade (en bas à droite), nous pouvons créer notre première fonction de support. Celle-ci s' | ||
+ | |||
+ | Maintenant que nous avons codé toutes nos fonctions de support (les dernières en haut à droite), nous pouvons commencer à les utiliser. Chaque partie de la démo est assez longue, donc nous allons simplement boucler trois fois. Dans le code original (page suivante, à gauche), il s' | ||
+ | |||
+ | |||
+ | **Once the demo is finished, clear the display. | ||
# Clear the OLED | # Clear the OLED | ||
Ligne 156: | Ligne 308: | ||
Until next time, as always; stay safe, healthy, positive and creative!** | Until next time, as always; stay safe, healthy, positive and creative!** | ||
+ | |||
+ | Une fois la démo terminée, effacez l' | ||
+ | |||
+ | # Clear the OLED | ||
+ | |||
+ | oled.fill(0) | ||
+ | |||
+ | oled.show() | ||
+ | |||
+ | Maintenant que vous avez vu les fonctions qui fonctionnent de gauche à droite et de haut en bas, vous pouvez essayer de créer des fonctions qui défilent de droite à gauche et de bas en haut. | ||
+ | |||
+ | J'ai pris toute la place que je devais prendre et c'est tout pour ce mois-ci. Vous pouvez trouver le code des deux projets (aux formats Pico et ESP) dans mon dépôt github à l' | ||
+ | |||
+ | Jusqu' | ||
+ | |||
+ | |||
+ | |||
+ | // Textes en noir dans les encadrés : // | ||
+ | p. 33 : | ||
+ | **For the RPi Pico, I used GP8 and GP9 (physical pins 11 and 12) for the connection to the I2C bus. The code for the Pico will be…** | ||
+ | Pour le RPi Pico, j'ai utilisé GP8 et GP9 (picots physiques 11 et 12) pour les connexions au bus I2C. Le code pour le Pico sera : | ||
+ | |||
+ | **From here the code for all three microcontrollers will be the same.** | ||
+ | À partir d'ici, le code est le même pour les 3 microcontrôleurs. | ||
+ | |||
+ | p. 35 : | ||
+ | **At this point, let’s set up a few simple lines of text that will embody our “screens” that will be scrolled.** | ||
+ | Arrivé ici, paramétrons quelques simples lignes de texte qui peupleront nos « écrans » qui défileront. | ||
+ | |||
+ | **The next function will take the data that is already on the screen and scroll it off the display towards the right side. This function has a speed parameter.** | ||
+ | Le fonction suivante prendra les données qui sont déjà à l' | ||
+ | |||
+ | p. 36 : | ||
+ | **Here is the scroll vertically from top to bottom, pausing when the screen is full.** | ||
+ | Voici le déroulement vertical du haut vers le bas, avec un arrêt quand l' | ||
+ | |||
+ | **This is the function that will scroll the data off the bottom of the screen.** | ||
+ | Voici la fonction qui évacuera les données par le bas de l' | ||
+ | |||
+ | **Finally, here is the continuous vertical scroll support function.** | ||
+ | Enfin, voici la fonction qui prend en charge le déroulement vertical continu. | ||
+ | |||
issue173/micro-ci_micro-la.1632896118.txt.gz · Dernière modification : 2021/09/29 08:15 de d52fr