Raspberry Pi Pico - Capteur de vitesse optique à fente IR
Dans ce guide, nous allons apprendre à installer et à utiliser le capteur de vitesse optique à fente IR avec le Raspberry Pi Pico. Nous couvrirons les points suivants :
- Comment le capteur en forme de U voit un objet à l'intérieur de sa fente.
- Comment connecter le capteur de vitesse à un Raspberry Pi Pico.
- Comment programmer le Raspberry Pi Pico pour compter chaque objet qui passe dans la fente.
- Comment programmer le Raspberry Pi Pico pour transformer les impulsions d'un disque codeur en une valeur de vitesse en tr/min (RPM).

Matériel Requis
Ou vous pouvez acheter les kits suivants:
| 1 | × | Kit de Capteurs DIYables (18 capteurs/écrans) |
À Propos du Capteur de Vitesse Optique à Fente IR
Regardez ce module de côté et vous voyez la lettre U. On l'appelle de plusieurs façons : fourche optique, interrupteur optique, capteur à fente ou capteur IR en U. Son travail est toujours le même. Il indique au Raspberry Pi Pico si quelque chose se trouve dans l'espace entre ses deux bras.
Avec un disque codeur, le capteur devient un tachymètre. Vous pouvez lire la vitesse d'un moteur ou d'une roue de robot, compter les tours pour trouver une distance, compter des pièces sur un petit tapis roulant, ou l'utiliser comme fin de course qui ne touche jamais rien.
| Capteur de vitesse optique à fente IR | |
|---|---|
| Type de capteur | photoélectrique à fente (LED IR + phototransistor NPN) |
| Largeur de la fente | 5.9 mm |
| Tension de fonctionnement | 3.3V à 5V DC |
| Sortie | numérique (TTL), LOW quand bloqué, HIGH quand libre |
| Conditionnement du signal | trigger de Schmitt intégré |
| Fixation | trous pour vis M3 aux deux extrémités |
| Broches | 3 (VCC, GND, OUT) |
Brochage

Il n'y a que trois broches sur le module :
- Broche VCC : à connecter à la broche 3V3(OUT) du Raspberry Pi Pico (3,3 volts). Le module accepte de 3,3 volts à 5 volts.
- Broche GND : à connecter à n'importe quelle broche GND du Raspberry Pi Pico (0 volt).
- Broche OUT : à connecter à une broche GPIO du Raspberry Pi Pico (GP15 dans ce guide). Elle donne un signal numérique.
L'ordre des broches peut changer d'un lot à l'autre. Lisez les petites étiquettes de votre propre module avant de le câbler.
Pourquoi pas 5 volts ? La broche OUT monte aussi haut que la tension VCC. Le Pico est une carte de 3,3 volts, et ses broches GPIO n'aiment pas le 5 volts. Alimentez donc le capteur depuis 3V3(OUT), et le signal ne dépassera jamais 3,3 volts.
Comment Ça Marche

Un bras du U contient une LED infrarouge. L'autre bras contient un phototransistor NPN. Ils se font face de chaque côté de la fente de 5,9 mm.
- Fente vide : la lumière infrarouge atteint le phototransistor, et la broche OUT est HIGH (valeur 1 en MicroPython).
- Fente bloquée : une carte ou une dent d'un disque arrête la lumière, et la broche OUT est LOW (valeur 0).
Une puce à trigger de Schmitt sur la carte met le signal en forme. Le Pico reçoit un 0 ou un 1 net, sans valeurs intermédiaires instables, donc le code n'a pas besoin d'anti-rebond.
Gardez deux choses en tête :
- Utilisez un objet opaque. Un morceau de plastique transparent peut laisser passer la lumière infrarouge, et le capteur ne le verra pas.
- Quelques modules d'autres marques fonctionnent à l'envers. Si le Shell indique « bloquée » alors que la fente est vide, échangez les tests 0 et 1 dans le premier script. Le script de tr/min compte un front par dent, donc il fonctionne avec les deux types.
Schéma de Câblage
Le trigger de Schmitt intégré donne déjà un signal propre, donc vous n'avez besoin d'aucune résistance supplémentaire ; prenez simplement l'alimentation sur la broche 3,3 volts du Pico.

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.
Code Raspberry Pi Pico - Compter les Objets dans la Fente
Le premier script vérifie la broche OUT encore et encore. Il affiche une ligne seulement quand l'état change. Chaque fois que la fente passe de libre à bloquée, le compteur augmente de un.
Étapes Rapides
Veuillez suivre ces instructions étape par étape :
- Assurez-vous que l'IDE Thonny est installé sur votre ordinateur.
- Assurez-vous que le firmware MicroPython est installé sur votre Raspberry Pi Pico.
- Si c'est la première fois que vous utilisez un Raspberry Pi Pico, consultez le tutoriel Raspberry Pi Pico - Premiers pas. pour des instructions détaillées.
- Câblez le capteur de vitesse au Raspberry Pi Pico selon le schéma fourni. Vérifiez bien que VCC va vers 3V3(OUT), et non vers VBUS.
- Connectez le Raspberry Pi Pico à votre ordinateur avec un câble Micro USB.
- Lancez l'IDE Thonny sur votre ordinateur.
- Dans l'IDE Thonny, sélectionnez l'interpréteur MicroPython (Raspberry Pi Pico) en vous rendant dans Outils Options.
- Dans l'onglet Interpréteur, sélectionnez MicroPython (Raspberry Pi Pico) dans le menu déroulant.
- Assurez-vous que le port correct est sélectionné. L'IDE Thonny devrait détecter automatiquement le port.
- Copiez le code ci-dessus et collez-le dans l'éditeur de l'IDE Thonny.
- Enregistrez le script sur votre Raspberry Pi Pico en :
- Cliquant sur le bouton Enregistrer, ou en utilisant les touches Ctrl+S.
- Dans la boîte de dialogue d'enregistrement, sélectionnez Raspberry Pi Pico.
- Enregistrez le fichier sous main.py
- Cliquez sur le bouton vert Exécuter (ou appuyez sur F5) pour exécuter le script.
- Glissez un morceau de carton dans la fente, puis retirez-le. Faites-le trois fois. Votre doigt fonctionne aussi.
- Consultez le message dans le Shell en bas de Thonny.
Si vous nommez votre script main.py et que vous l'enregistrez dans le répertoire racine du Raspberry Pi Pico, il s'exécutera automatiquement à chaque mise sous tension ou réinitialisation du Pico.
Code Raspberry Pi Pico - Mesurer la Vitesse d'un Moteur (tr/min)
Maintenant, mesurons la vitesse à laquelle quelque chose tourne. Pour cela, vous avez besoin d'un disque codeur : une fine roue avec des fentes découpées sur son bord. Fixez le disque sur l'axe du moteur ou sur la roue. Ses dents doivent passer dans la fente du capteur sans frotter dessus.
Un disque qui tourne produit des impulsions très rapidement. Une simple boucle qui lit la broche pourrait en manquer certaines. Ce script utilise donc une interruption. Avec Pin.irq() et Pin.IRQ_FALLING, MicroPython appelle une petite fonction au moment où le signal passe de HIGH à LOW. Cela arrive une fois pour chaque dent qui entre dans la fente, donc une dent donne exactement un comptage.
Une fois par seconde, la boucle principale prend le comptage et le remet à zéro. Ensuite, elle fait le calcul :
- Le disque de cet exemple a 20 fentes, donc un tour complet donne 20 impulsions.
- Impulsions en 1 seconde × 60 = impulsions en 1 minute.
- Impulsions en 1 minute ÷ 20 = tours en 1 minute, ce qui donne les tr/min (RPM).
Le disque à 20 fentes est celui qui est souvent fourni avec les moteurs à réducteur TT. Si votre disque a un nombre de fentes différent, changez SLOTS_PER_TURN en haut du script.
Étapes Rapides
Le câblage reste le même. Seul le script change :
- Copiez le code ci-dessus dans un nouvel onglet de Thonny.
- Enregistrez-le sur le Raspberry Pi Pico sous le nom main.py. Cela remplace le premier script.
- Cliquez sur le bouton vert Exécuter (ou appuyez sur F5).
- Faites tourner le disque avec la main, ou laissez le moteur le faire tourner. Pour piloter un moteur depuis le Pico, consultez le tutoriel Raspberry Pi Pico - moteur à courant continu..
- Consultez le message dans le Shell en bas de Thonny. Une nouvelle ligne apparaît chaque seconde.
Dans cet essai, le moteur a tourné à environ 300 tr/min (RPM), puis il s'est arrêté. La valeur monte et descend un peu car la fenêtre de comptage dure une seconde. Une roue peut aussi vous donner la distance : un tour fait avancer le robot de la circonférence de la roue (π × diamètre), donc distance totale = nombre de tours × π × diamètre.
Voulez-vous détecter un objet à quelques centimètres de distance, et non dans une fente ? Essayez le tutoriel Raspberry Pi Pico - Capteur d'évitement d'obstacles.. Pour un bouton qui indique aussi le sens de rotation, consultez le tutoriel Raspberry Pi Pico - Encodeur rotatif..