Outils pour utilisateurs

Outils du site


issue169: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
issue169:micro-ci_micro-la [2021/06/07 14:16] andre_domenechissue169:micro-ci_micro-la [2021/06/08 15:12] (Version actuelle) auntiee
Ligne 1: Ligne 1:
 **Many people think that the RPi Pico is a great little microprocessor, but because there is no “direct” support for networking, it’s not really worth it, even at its very low purchase price. I asked the MicroPython group if they thought that there was any update on networking support within MicroPython for the Pico, I was told that, at this point, there is no plan to provide that support, again due to the lack of networking hardware on the Pico. While I, too, am frustrated at the lack of networking, all is not lost. The Arduino Nano RP2040 is still in development and is supposed to have not only Wifi support, but also bluetooth, and a 9-axis IMU, and a microphone that should also support MicroPython. I’m guessing that it should be available in the next month or so, but we still don’t know how much it’s going to cost. For now, a couple of options are already available.** **Many people think that the RPi Pico is a great little microprocessor, but because there is no “direct” support for networking, it’s not really worth it, even at its very low purchase price. I asked the MicroPython group if they thought that there was any update on networking support within MicroPython for the Pico, I was told that, at this point, there is no plan to provide that support, again due to the lack of networking hardware on the Pico. While I, too, am frustrated at the lack of networking, all is not lost. The Arduino Nano RP2040 is still in development and is supposed to have not only Wifi support, but also bluetooth, and a 9-axis IMU, and a microphone that should also support MicroPython. I’m guessing that it should be available in the next month or so, but we still don’t know how much it’s going to cost. For now, a couple of options are already available.**
  
-Beaucoup de gens pensent que le RPi Pico est un excellent petit microprocesseur, mais qu'en raison de l'absence de support « direct » pour la mise en réseau, il n'en vaut pas vraiment la peine, même à son prix d'achat très bas. J'ai demandé au groupe MicroPython s'il pensait qu'il y aurait une mise à jour du support réseau dans MicroPython pour le Picoon m'a répondu que, pour le moment, il n'y a pas de plan pour fournir ce support, encore une fois à cause du manque de matériel réseau sur le Pico. Bien que je sois moi aussi frustré par l'absence de réseau, tout n'est pas perdu. L'Arduino Nano RP2040 est toujours en développement et est censé avoir non seulement un support Wifi, mais aussi Bluetooth, un IMU 9 axes et un microphone qui devrait également supporter MicroPython. Je suppose qu'il devrait être disponible d'ici un mois environ, mais nous ne savons toujours pas combien il va coûter. Pour l'instant, quelques options sont déjà disponibles.+Beaucoup de gens pensent que le RPi Pico est un excellent microprocesseur, mais qu'en raison de l'absence de support « direct » pour la mise en réseau, il n'en vaut pas vraiment la peine, même à son prix d'achat très bas. J'ai demandé au groupe MicroPython s'il pensait qu'il y aurait une mise à jour du support réseau dans MicroPython pour le Pico et on m'a répondu que, pour le moment, il n'y a pas de plan pour fournir ce support, encore une fois à cause du manque de matériel réseau sur le Pico. Bien que je sois moi aussi frustré par l'absence de réseau, tout n'est pas perdu. L'Arduino Nano RP2040 est toujours en développement et est censé avoir non seulement un support Wifi, mais aussi Bluetooth, un IMU 9 axes et un microphone qui devrait également supporter MicroPython. Je suppose qu'il devrait être disponible d'ici un mois environ, mais nous ne savons toujours pas combien il va coûter. Pour l'instant, quelques options sont déjà disponibles.
  
  
Ligne 10: Ligne 10:
 The good folks at Adafruit have a small networking coprocessor called the AirLift that will allow the Pico to connect to the internet and do just about anything that you need. You have to use CircuitPython on the Pico, but the project works well. You can find this project at https://learn.adafruit.com/quickstart-rp2040-pico-with-wifi-and-circuitpython .** The good folks at Adafruit have a small networking coprocessor called the AirLift that will allow the Pico to connect to the internet and do just about anything that you need. You have to use CircuitPython on the Pico, but the project works well. You can find this project at https://learn.adafruit.com/quickstart-rp2040-pico-with-wifi-and-circuitpython .**
  
-Pour l'anecdote, fin avril 2021, le plus récent firmware pour la RPi Pico, l'ESP8266 et l'ESP32 est maintenant au niveau 1.15. Vous pouvez dès maintenant télécharger le dernier firmware à l'adresse https://micropython.org/download/Ceci étant dit, tout ce qui est présenté ce mois-ci fonctionnera au niveau 1.14. Vous trouverez une liste des modifications apportées aux différents ports à l'adresse https://github.com/micropython/micropython/releases/tag/v1.15.+Pour l'anecdote, fin avril 2021, le plus récent firmware pour la RPi Pico, l'ESP8266 et l'ESP32 est maintenant au niveau 1.15. Vous pouvez dès maintenant télécharger le dernier firmware à l'adresse https://micropython.org/download/Cela étant dit, tout ce qui est présenté ce mois-ci fonctionnera au niveau 1.14. Vous trouverez une liste des modifications apportées aux différents ports à l'adresse https://github.com/micropython/micropython/releases/tag/v1.15.
  
 Comme je l'ai mentionné le mois dernier, le module WiFi ESP-01 est disponible, mais jusqu'à présent, je n'ai pas été en mesure de le faire fonctionner suffisamment bien pour vraiment le suggérer. J'essaie toujours d'avancer avec lui mais je n'ai fait que des progrès limités. Comme je l'ai mentionné le mois dernier, le module WiFi ESP-01 est disponible, mais jusqu'à présent, je n'ai pas été en mesure de le faire fonctionner suffisamment bien pour vraiment le suggérer. J'essaie toujours d'avancer avec lui mais je n'ai fait que des progrès limités.
Ligne 23: Ligne 23:
 J'ai essayé ce projet et il fonctionne et fonctionne bien. Il y a cependant deux gros inconvénients pour moi. Le premier, c'est que le projet doit être réalisé sous CircuitPython. Le second est que l'AirLift est environ deux fois plus cher que la RPi Pico. J'ai essayé ce projet et il fonctionne et fonctionne bien. Il y a cependant deux gros inconvénients pour moi. Le premier, c'est que le projet doit être réalisé sous CircuitPython. Le second est que l'AirLift est environ deux fois plus cher que la RPi Pico.
  
-Si vous voulez une solution purement MicroPython qui soit moins chère, vous n'êtes PAS à court de chance. Il existe un projet réalisé par certains des développeurs de MicroPython qui répond à vos attentes. Vous pouvez trouver le dépôt à l'adresse https://github.com/peterhinch/micropython-mqtt. En gros, vous utilisez le RPi Pico et le connectez à un ESP8266 via une interface à 5 fils (plus 5Vdc et masse). Cela permet au Pico de faire fonctionner des choses comme un capteur de température et de transmettre les données via Internet à un serveur MQTT (broker), local ou hébergé sur Internet. Lorsque j'ai découvert cela (grâce au groupe MicroPython), j'ai tout laissé tomber et j'ai sorti une carte ESP8266 NodeMCU que j'avais achetée peu après avoir acheté la RPi Pico. Vous pouvez trouver différentes cartes ESP8266 sur Internet pour environ 6 $ US, ce qui en fait une option à prix raisonnable.+Si vous voulez une solution purement MicroPython qui est moins chère, vous n'êtes PAS à court de chance. Il existe un projet réalisé par certains des développeurs de MicroPython qui répond à vos attentes. Vous pouvez trouver le dépôt à l'adresse https://github.com/peterhinch/micropython-mqtt. En gros, vous utilisez le RPi Pico et le connectez à un ESP8266 via une interface à 5 fils (plus 5Vdc et masse). Cela permet au Pico de faire fonctionner des choses comme un capteur de température et de transmettre les données via Internet à un serveur MQTT (broker), local ou hébergé sur l'Internet. Lorsque j'ai découvert cela (grâce au groupe MicroPython), j'ai tout laissé tomber et j'ai sorti une carte ESP8266 NodeMCU que j'avais achetée peu après avoir acheté la RPi Pico. Vous pouvez trouver différentes cartes ESP8266 sur Internet pour environ 6 $ US, ce qui en fait une option à prix raisonnable.
  
  
Ligne 32: Ligne 32:
 Le projet du mois Le projet du mois
  
-Nous allons donc utiliser ce projet comme projet du mois. Ce projet sera décomposé en plusieurs parties, la première sera d'utiliser le capteur de température interne du Pico pour obtenir la température, puis nous installerons la carte ESP8266 et la connecterons au Picoet enfin nous enverrons les données via Internet à un serveur MQTT. Je vous expliquerai deux options de serveur, l'une basée sur un ordinateur Raspberry Pi local, et l'autre allant vers un serveur Internet gratuit. Lorsque nous aurons terminé, vous saurez comment utiliser le capteur de température interne et comment transmettre ces données à un serveur MQTT.+Nous allons donc utiliser ce projet comme projet du mois. Ce projet sera décomposé en plusieurs parties, la première sera d'utiliser le capteur de température interne du Pico pour obtenir la température, puis nous installerons la carte ESP8266 et la connecterons au Pico etenfinnous enverrons les données via Internet à un serveur MQTT. Je vous expliquerai deux options de serveur, l'une basée sur un ordinateur Raspberry Pi local, et l'autre allant vers un serveur Internet libre. Lorsque nous aurons terminé, vous saurez comment utiliser le capteur de température interne et comment transmettre ces données à un serveur MQTT.
  
  
Ligne 54: Ligne 54:
 temperature = 27 - (reading - 0.706) / 0.001721** temperature = 27 - (reading - 0.706) / 0.001721**
  
-Bien qu'il s'agisse d'une bonne façon de visualiser la gamme de tensions, et que 65 535 soit un moyen facile de visualiser le fait que vous recevez la totalité des 3,3 volts, cela ne parle pas tout à fait à l'esprit de la plupart des gens. Nous pouvons donc appliquer un peu de mathématiques pour convertir cette valeur en une valeur qui indique la tension « réelle » appliquée à la broche. Puisque nous savons que la tension maximale est de 3,3 volts, et que nous savons que lorsque cette tension est appliquée à la broche, l'ADC répondra avec 65 535 à cette tension, nous pouvons simplement créer un facteur de conversion en divisant 3,3 par 65 535. Maintenant, nous pouvons voir la tension réelle appliquée à la broche d'entrée de l'ADC. Testons cela en prenant 65 535 et en le multipliant par (3,3 / 65535). Cela nous donne 0,000050355 par unité. Donc, si nous avons une entrée de 65535 et que nous appliquons notre facteur de conversion, nous obtiendrons 3,3. Incroyable !+Bien qu'il s'agisse d'une bonne façon de visualiser la gamme de tensions, et que 65 535 soit un moyen facile de visualiser le fait que vous recevez la totalité des 3,3 volts, cela ne parle pas tout à fait à l'esprit de la plupart des gens. Nous pouvons donc appliquer un peu de mathématiques pour convertir cette valeur en une valeur qui indique la tension « réelle » appliquée à la broche. Puisque nous savons que la tension maximale est de 3,3 volts, et que nous savons que lorsque cette tension est appliquée à la broche, l'ADC répondra avec 65 535 à cette tension, nous pouvons simplement créer un facteur de conversion en divisant 3,3 par 65 535. Maintenant, nous pouvons voir la tension réelle appliquée à la broche d'entrée de l'ADC. Testons cela en prenant 65 535 et en le multipliant par (3,3/65535). Cela nous donne 0,000050355 par unité. Donc, si nous avons une entrée de 65535 et que nous appliquons notre facteur de conversion, nous obtiendrons 3,3. Incroyable !
  
 Nous savons donc maintenant que le capteur de température du Pico renvoie un nombre entier que nous pouvons utiliser pour obtenir la valeur de la température. Cependant, il existe une autre formule spécifique au Pico pour obtenir notre valeur finale. Cette formule est la suivante : Nous savons donc maintenant que le capteur de température du Pico renvoie un nombre entier que nous pouvons utiliser pour obtenir la valeur de la température. Cependant, il existe une autre formule spécifique au Pico pour obtenir notre valeur finale. Cette formule est la suivante :
  
-température = 27 - (lecture - 0,706) / 0,001721+température = 27 - (lecture - 0,706)/0,001721
  
  
Ligne 92: Ligne 92:
 sensor_temp = machine.ADC(4) sensor_temp = machine.ADC(4)
  
-facteur_de_conversion = 3.3 / (65535)+facteur_de_conversion = 3.3/(65535)
  
-Nous entrons dans une boucle "forever(voir ci-dessus) : lire le capteur de température, appliquer le facteur de conversion, puis appliquer la formule magique pour obtenir la température en degrés centigrades. Nous imprimons la température dans la console, puis nous dormons pendant 2 secondes avant de tout recommencer. (Si vous ne pouvez pas penser en degrés C, appliquez la formule pour convertir en Fahrenheit.)+Nous entrons dans une boucle « forever » (voir ci-dessus) : lire le capteur de température, appliquer le facteur de conversion, puis appliquer la formule magique pour obtenir la température en degrés centigrades. Nous imprimons la température dans la console, puis nous dormons pendant 2 secondes avant de tout recommencer. (Si vous ne pouvez pas penser en degrés C, appliquez la formule pour convertir en Fahrenheit.)
  
-Si vous le souhaitez, vous pouvez certainement ajouter un affichage (comme nous l'avons fait le mois dernier) pour fournir la lecture sans avoir à avoir Thonny (ou l'IDE de votre choix) visible en permanence.+Si vous le souhaitez, vous pouvez certainement ajouter un affichage (comme nous l'avons fait le mois dernier) pour fournir la lecture sans que Thonny (ou l'IDE de votre choix) doit être visible en permanence.
  
 Maintenant que nous avons fait cela, passons au téléchargement du projet de logiciel MQTT. Maintenant que nous avons fait cela, passons au téléchargement du projet de logiciel MQTT.
Ligne 164: Ligne 164:
 Hard resetting via RTS pin...** Hard resetting via RTS pin...**
  
-Sur ma machine, j'obtiens une liste de 17 lignes de long et 6 colonnes de large. Au milieu se trouve le port auquel je suis connecté, qui, pour moi, est dev/ttyACM0. Il est important de connaître ce nom de port, car vous devez l'utiliser lorsque vous saisissez les lignes de commande dans le terminal. Il y a deux étapes, la première est d'effacer le contenu de la mémoire flash existante, et la seconde est de charger le firmware modifié.+Sur ma machine, j'obtiens une liste de 17 lignes de long et 6 colonnes de large. Quelque part au milieu se trouve le port auquel je suis connecté, qui, pour moi, est dev/ttyACM0. Il est important de connaître ce nom de port, car vous devez l'utiliser lorsque vous saisissez les lignes de commande dans le terminal. Il y a deux étapes, la première est d'effacer le contenu de la mémoire flash existante, et la seconde est de charger le firmware modifié.
  
 Maintenant, en utilisant le même terminal que nous venons d'utiliser pour trouver le port série, entrez la commande suivante, en remplaçant le port par celui de votre machine.  Maintenant, en utilisant le même terminal que nous venons d'utiliser pour trouver le port série, entrez la commande suivante, en remplaçant le port par celui de votre machine. 
Ligne 170: Ligne 170:
 esptool.py --port /dev/ttyACM0 --baud 115200 erase_flash esptool.py --port /dev/ttyACM0 --baud 115200 erase_flash
  
-Cela prend généralement une minute environ pour se terminer. Vous devriez voir quelque chose comme ceci :+Cela prend généralement une minute environ. Vous devriez voir quelque chose comme ceci :
  
 esptool.py v3.0 esptool.py v3.0
Ligne 212: Ligne 212:
 Hash of data verified.** Hash of data verified.**
  
-Une fois la mémoire effacée, nous devons charger le nouveau firmware. Dans le terminal, assurez-vous que vous êtes dans le dossier bridge et entrez la commande suivante (en remplaçant à nouveau la définition du port par celle de votre choix) :+Une fois la mémoire effacée, il faut charger le nouveau firmware. Dans le terminal, assurez-vous que vous êtes dans le dossier bridge et entrez la commande suivante (en remplaçant à nouveau la définition du port par celle de votre choix) :
  
 esptool.py --port /dev/ttyACM0 --baud 115200 write_flash --verify --flash_size=detect -fm qio 0 firmware-combined.bin esptool.py --port /dev/ttyACM0 --baud 115200 write_flash --verify --flash_size=detect -fm qio 0 firmware-combined.bin
Ligne 257: Ligne 257:
 Hard resetting via RTS pin... Hard resetting via RTS pin...
  
-Pendant le processus de flashage, une LED doit clignoter sur la carte ESP8266 au fur et à mesure que les blocs du firmware sont écrits. Lorsque le processus est terminé, la LED doit cesser de clignoter. Si elle continue à clignoter, quelque chose s'est produit et vous devez recommencer en effaçant le firmware et en le réinstallant.+Pendant le flashage, une LED doit clignoter sur la carte ESP8266 au fur et à mesure que les blocs du firmware sont écrits. Lorsque le processus est terminé, la LED doit cesser de clignoter. Si elle continue à clignoter, quelque chose s'est produit et vous devez recommencer en effaçant le firmware et en le réinstallant.
  
 Nous pouvons maintenant passer à l'installation des connexions à notre Pico. Nous pouvons maintenant passer à l'installation des connexions à notre Pico.
Ligne 272: Ligne 272:
 Quel que soit le dispositif que vous allez utiliser comme carte ESP8266, vous devez vous assurer que vous téléchargez le dernier brochage de cette carte, car les différents fabricants peuvent modifier les brochages. Dans mon cas, le pinout de la carte NodeMCU ESP8266 se trouve sur https://components101.com/development-boards/nodemcu-esp8266-pinout-features-and-datasheet. Quel que soit le dispositif que vous allez utiliser comme carte ESP8266, vous devez vous assurer que vous téléchargez le dernier brochage de cette carte, car les différents fabricants peuvent modifier les brochages. Dans mon cas, le pinout de la carte NodeMCU ESP8266 se trouve sur https://components101.com/development-boards/nodemcu-esp8266-pinout-features-and-datasheet.
  
-Assurez-vous maintenant d'orienter la carte et le pinout et commencez à placer vos cavaliers. Heureusement, les broches de données de ma carte NodeMCU sont toutes marquées et elles correspondent aux broches de la Mini dans le tableau ci-dessous. J'ai vérifié les fils que j'ai connectés à la carte NodeMCU au moins trois fois, puis j'ai fait les connexions à la plaque d'essai sur laquelle j'avais monté le Pico et je les ai vérifiées à nouveau. Qu'est-ce que je peux dire ? Je déteste faire fumer les cartes. Bien sûr, j'ai fait cela avec les cartes débranchées. J'ai copié le tableau ici (à gauche) pour vous faciliter la tâche.+Assurez-vous maintenant d'orienter la carte et le pinout et commencez à placer vos cavaliers. Heureusement, les broches de données de ma carte NodeMCU sont toutes marquées et elles correspondent aux broches de la Mini dans le tableau ci-dessous. J'ai vérifié les fils que j'ai connectés à la carte NodeMCU au moins trois fois, puis j'ai fait les connexions à la plaque d'essai sur laquelle j'avais monté le Pico et je les ai vérifiées à nouveau. Qu'est-ce que je peux dire ? Je déteste faire exploser les cartes. Bien sûr, j'ai fait cela avec les cartes débranchées. J'ai copié le tableau ici (à gauche) pour vous faciliter la tâche.
  
  
Ligne 485: Ligne 485:
 Réflexions finales Réflexions finales
  
-Pour votre information, je vais mettre le RPi Pico « en pause » pour ainsi dire, et me pencher sur un autre microcontrôleur populaire, le ESP-32. Ce sera sous la forme de la carte SparkFun Thing Plus ESP-32 WROOM (https://www.sparkfun.com/products/15663) que vous pouvez vous procurer pour environ $21.00 USD. Vous pouvez trouver d'autres cartes de type clone pour environ $11.00 USD si votre budget ne vous permet pas d'aller plus loin. Nous utiliserons un écran OLED SSD1306 ainsi que le BMP180 et un module de température/humidité Adafruit SI7021 (https://www.adafruit.com/product/3251 - environ $9.00 USD) pour montrer les différentes manières de programmer les deux modules. Pendant que vous y êtes, vous pourriez envisager de vous procurer quelques câbles Stemma QT/Qwiic. Il y a deux types que je vous suggère :+Pour votre information, je vais mettre le RPi Pico « en pause » pour ainsi dire, et me pencher sur un autre microcontrôleur populaire, le ESP-32. Ce sera sous la forme de la carte SparkFun Thing Plus ESP-32 WROOM (https://www.sparkfun.com/products/15663) que vous pouvez vous procurer pour environ 21 $ US. Vous pouvez trouver d'autres cartes de type clone pour environ 11 $ US si votre budget ne vous permet pas d'aller plus loin. Nous utiliserons un écran OLED SSD1306 ainsi que le BMP180 et un module de température/humidité Adafruit SI7021 (https://www.adafruit.com/product/3251 - environ 9 $ US) pour montrer les différentes manières de programmer les deux modules. Pendant que vous y êtes, vous pourriez envisager de vous procurer quelques câbles Stemma QT/Qwiic. Il y a deux types que je vous suggère :
 ••Le premier a une prise molex aux deux extrémités, ce qui permet de connecter rapidement des périphériques I2C à la Thing Plus (https://www.adafruit.com/product/4210) et à d'autres types de microcontrôleurs. ••Le premier a une prise molex aux deux extrémités, ce qui permet de connecter rapidement des périphériques I2C à la Thing Plus (https://www.adafruit.com/product/4210) et à d'autres types de microcontrôleurs.
 ••L'autre a une fiche molex à une extrémité et des broches mâles normales pour une utilisation sur une plaque d'essai (https://www.adafruit.com/product/4209). ••L'autre a une fiche molex à une extrémité et des broches mâles normales pour une utilisation sur une plaque d'essai (https://www.adafruit.com/product/4209).
Ligne 498: Ligne 498:
 Until next time, as always; stay safe, healthy, positive and creative!** Until next time, as always; stay safe, healthy, positive and creative!**
  
-Nous reviendrons sur le RPi Pico dans quelques mois, car j'ai beaucoup de choses à faire avec le Pico.+Nous reviendrons au RPi Pico dans quelques mois, car j'ai beaucoup de choses à faire avec le Pico.
  
 Je travaille également sur une liste de capteurs et d'écrans « indispensables », ainsi que sur leur approvisionnement et leur conditionnement. J'essaierai de vous en faire part dans l'article du mois prochain. Je travaille également sur une liste de capteurs et d'écrans « indispensables », ainsi que sur leur approvisionnement et leur conditionnement. J'essaierai de vous en faire part dans l'article du mois prochain.
  
-J'ai occupé beaucoup trop de pages du magazine ce mois-ci, je vais donc vous souhaiter bonne chance et beaucoup de bonheur.+J'ai occupé beaucoup trop de pages du magazine ce mois-ci, je vais donc vous souhaiter bonne chance et beaucoup de bons moments.
  
 Jusqu'à la prochaine fois, comme toujours : restez en sécurité, en bonne santé, positifs et créatifs ! Jusqu'à la prochaine fois, comme toujours : restez en sécurité, en bonne santé, positifs et créatifs !
  
  
issue169/micro-ci_micro-la.1623068192.txt.gz · Dernière modification : 2021/06/07 14:16 de andre_domenech