vendredi 27 décembre 2019

Les 10 billets les plus populaires de 2019

En guise de bilan annuel, je me suis amusé à compiler, parmi les 76 (!) billets publiés dans ce blog en 2019, ceux qui ont reçu le plus grand nombre de visites.

Notez que la méthodologie employée favorise nettement les billets publiés en début d'année, qui ont profité de plusieurs mois pour accumuler des visites... Néanmoins, je constate que je suis toujours aussi nul pour prévoir lesquels de mes articles attireront l'attention du plus grand nombre de lecteurs!

1) Module RFID-RC522 et ESP8266 / ESP32 
(2 février, 1174 visites)

Le projet complet consiste à afficher dans une page web la liste des 10 plus récentes détections d'un tag RFID, mais certaines informations devraient vous être utiles pour n'importe quel autre projet impliquant un module RFID-RC522 branché à un ESP8266 ou à un ESP32. La première version de cet article ne concernait que l'ESP8266; pendant l'été, je l'ai mis à jour pour que ça fonctionne aussi avec l'ESP32.




2) Kit: fréquencemètre et testeur de quartz 
(4 janvier, 1049 visites)

Compte tenu de son prix très bas, les possibilités de cet appareil de mesure facile à assembler sont plutôt intéressantes.



3) Programmer l'ESP32 avec l'IDE Arduino 
(16 juillet, 897 visites)

L'ESP32 a certainement été le sujet principal de mes billets publiés pendant l'été. Ce premier billet montre surtout comment ajouter les cartes ESP32 aux menus de l'IDE Arduino grâce au gestionnaire de cartes.



4) Afficheur LCD 2 X 16 et cartes STM32 
(2 janvier, 824 visites)

Le tout premier billet de l'année 2019 concernait l'utilisation d'un classique LCD affichant 2 lignes de 16 caractères avec la carte STM32 Blue Pill (programmée avec l'IDE Arduino). Presqu'un an plus tard, je viens tout juste de terminer la mise à jour de cet article, afin d'inclure d'autres modèles de cartes STM32 (la Nucleo, entre autres).




5) Microscope USB 
(5 juin,752 visites)

Malgré son bas prix, ce microscope très facile à utiliser m'a permis d'obtenir rapidement des images assez impressionnantes. Son support, difficile à ajuster avec précision, est son principal inconvénient.



6) Utilisation du moteur pas à pas d'un lecteur de CD (Arduino) 
(8 juin, 746 visites)

Dans le passé, j'avais déjà publié plusieurs articles concernant l'utilisation d'un moteur pas à pas, mais celui-ci s'intéresse de façon spécifique à la réutilisation du mécanisme responsable de positionner le laser d'un lecteur de CD/CD-ROM/DVD. On obtient un mécanisme qui permet un déplacement linéaire très précis, mais limité à environ 4 cm.



7) Écran OLED SH1106 I2C et Arduino 
(26 janvier, 728 visites)

En utilisant une bibliothèque appropriée, ce n'est pas trop difficile d'écrire et de dessiner sur ce petit écran monochrome. Un peu plus tard dans l'année, j'ai aussi appris à l'utiliser avec les cartes STM32, ESP8266 et ESP32, ainsi qu'avec le Raspberry Pi.


8) Écran couleur KMR-1.8 SPI (ST7735) et Arduino 
(10 février, 557 visites)

Encore mieux que l'écran OLED mentionné plus haut: ce petit écran qui affiche des images en couleur d'excellente qualité.  Ce premier test a fait au moyen d'une carte Arduino Uno, mais j'ai nettement préféré mes essais subséquents effectués au moyen de cartes plus puissantes et fonctionnant à un niveau logique plus approprié (STM32, ESP8266 et ESP32, Raspberry Pi).



9) Mesure d'une tension analogique avec une carte STM32 
(10 mars, 553 visites)

Écrit à l'origine pour la carte Blue Bill, cet article a ensuite été mis à jour pour utiliser le nouveau STM32 Core dans l'IDE Arduino, avec un choix de cartes plus diversifié. Vous y apprendrez entre autres choses comment régler l'ADC à sa pleine résolution de 12 bits.



10) Synthèse sonore avec Mozzi et Arduino (1) 
(7 avril, 552 visites)

Mozzi est une bibliothèque spécialement conçue pour générer des sons avec votre Arduino: nous pouvons contrôler la fréquence, le volume, le timbre, l'enveloppe, et même faire de l'échantillonnage (sampling). J'ai fait tous mes tests avec un Arduino Uno, mais je soupçonne qu'une carte plus rapide permettrait plus de possibilités: à essayer en 2020, peut-être...


On se reparle en 2020, si par hasard je trouve quelque chose d'autre à raconter. 😃

Yves Pelletier   (TwitterFacebook)

mardi 17 décembre 2019

Mon beau sapin, roi des forêts, que j'aime tes transistors!

Voici une petite décoration qu'on peut s'amuser à fabriquer soi-même: un mini sapin de Noël en carton, décoré par 16 LEDs clignotantes.






Circuit

Ne cherchez pas d'Arduino dans ce projet: le circuit est constitué de 2 transistors PNP, 2 condensateurs de 47 µF, 16 LEDs et 12 résistances.

(vous pouvez cliquer sur le schéma du circuit pour l'agrandir)

Q1 et Q2 sont des transistors PNP. J'ai utilisé deux transistors 2N3906, mais n'importe quelle paire de transistors PNP à usage général devrait faire l'affaire.

La fréquence de clignotement des LEDs peut être modifiée en changeant les condensateurs C1 et C2, ou les résistances R1 et R2. Avec des condensateurs de 33 µF, par exemple,  le clignotement sera plus rapide.

La valeur de la résistance de protection de chaque LED a été déterminée par expérimentation, afin que la luminosité des LEDs soit à peu près uniforme d'une couleur à l'autre. Sur le schéma, les LEDs L1, L12, L15 et L16 sont bleues, L3, L4, L13, L14 sont rouges, L5, L6, L11, L12 sont vertes et L7, L8, L9, L10 sont jaunes.

Le nombre de LEDs peut être diminué, ou augmenté (à la condition de ne pas dépasser le courant maximal que peuvent supporter vos transistors).

J'ai conçu le circuit pour une alimentation de 5 V, mais ça tolère très bien 9 V (ça ne fonctionne plus très bien en bas de 4 V).

Les 8 LEDs de gauche sont toutes allumées en même temps pendant que les 8 autres LEDs sont éteintes, et vice versa.

Tests sur breadboard

Un test du circuit sur breadboard vous permettra de modifier des résistances si certaines LEDs sont trop ou pas assez lumineuses, si la fréquence de clignotement ne vous convient pas, etc.



Fabrication de l'arbre

Je ne m'éterniserai pas sur le découpage d'une forme d'arbre dans un morceau de carton...



Ensuite, on perce des trous pour y insérer nos LEDs, et on construit le circuit à l'arrière de l'arbre, qui se transforme rapidement en un entremêlement de spaghetti, que vous pourrez ensuite choisir de dissimuler, ou pas...



À lire aussi

D'autre projets pour Noël: une boîte cadeau lumineuse, animée et musicale ainsi qu'un répertoire de mélodies de Noël à jouer par l'Arduino.

Yves Pelletier   (TwitterFacebook)

mercredi 11 décembre 2019

Graphique en temps réel des mesures prises par un Arduino

Cet article a été mis à jour le 7 juillet 2022 (compatibilité Python 3).

Notre objectif consiste à présenter à l'écran d'un ordinateur, sous la forme d'un graphique cartésien qui se met à jour en temps réel, les mesures prises par un capteur branché à une carte Arduino, elle-même branchée à un des ports USB de l'ordinateur. Pour ce faire, nous utiliserons un script en langage Python ainsi que les bibliothèques matplotlib et pyserial.

Circuit

Pour mes tests, j'ai utilisé en guise de capteur un simple potentiomètre contrôlant la tension à l'entrée A0 d'un Arduino Uno. Il va sans dire qu'en modifiant légèrement le sketch, vous pouvez remplacer ce potentiomètre par n'importe quel type de capteur.

Sketch de l'Arduino

Comme vous pouvez le constater ci-dessous, le sketch versé dans l'Arduino est plutôt bref. Il se limite à attendre la réception d'un message UART en provenance de l'ordinateur. Chaque fois que l'Arduino reçoit le caractère 'e", il envoie à l'ordinateur un message constitué de la mesure de l'entrée analogique A0 et de l'instant où cette mesure à été prise. Ce temps est remis à zéro lors de la réception du caractère 'i'.

-
-

Installation des bibliothèques matplotlib et pyserial

Le script en Python qui sera exécuté sur l'ordinateur aura besoin de la bibliothèque pyserial, qui gère la communication série, et de la bibliothèque matplotlib, qui se spécialise dans la présentation de données sous forme de graphique.

On peut les installer avec pip:

pip install pyserial
pip install matplotlib

Vous trouverez quelques informations supplémentaires concernant l'utilisation de ces bibliothèques dans ces récents billets, qui sont les précurseurs du présent article: Communiquer en Python avec un Arduino (pyserial) et Rasbperry Pi, présenter les mesures sous forme de graphique cartésien (matplotlib).

Script en Python pour l'ordinateur

Le script fait d'abord un scan des ports série actifs: s'il n'en trouve qu'un seul, il établit la connexion avec ce port. S'il en trouve plusieurs, il demande à l'utilisateur de choisir le port série souhaité. L'utilisateur doit également choisir à quelle fréquence les mesures seront prises (dans mon cas, le maximum était d'environ 1000 mesures par seconde; au-delà, le graphique ne se trace pas).

Le script envoie ensuite le message 'i' à l'Arduino afin de remettre son chronomètre à zéro, et lui envoie régulièrement le signal 'e' pour lui demander une nouvelle mesure, qui est ajoutée au graphique.

-
-

Résultat

Voici un exemple de graphique tracé pendant que je tourne lentement le bouton du potentiomètre.





À lire aussi

Puisque je m'intéresse beaucoup à l'utilisation de l'Arduino comme instrument de mesure scientifique, d'autres façons d'arriver à des résultats similaires ont été explorés dans le passé: graphique cartésien sur Android (avec MIT App Inventor 2), graphique cartésien sur écran OLED SH1106 ou sur LCD Nokia 5110,  envoi des données à un tableur (Excel ou Libre Office Calc), utilisation d'une carte Leonardo pour écrire les données dans un tableur, utilisation du service en ligne Carriots, enregistrement des données sur une carte SD, etc.

Personnellement, j'aime bien la solution abordée dans le présent article: il est facile de modifier le script Python selon nos besoins.

Yves Pelletier   (TwitterFacebook)