Table des matières:
- Étape 1: Ressources
- Étape 2: Comprendre le fonctionnement de la détection infrarouge (facultatif)
- Étape 3: Assemblage des LED IR
- Étape 4: Test des paires infrarouges - Circuit
- Étape 5: Test des paires infrarouges - Code de base
- Étape 6: Test des paires infrarouges - Matériel + Logiciel
- Étape 7: Dépannage (pour les problèmes liés à la dernière étape)
- Étape 8: Deuxième paire IR
- Étape 9: Détection des interférences infrarouges (facultatif)
- Étape 10: ajouter plus de paires IR
- Étape 11: Cinq paires IR - Circuit
- Étape 12: Cinq paires IR - Code
Vidéo: Boe-Bot avec détecteurs infrarouges : 12 étapes (avec photos)
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:07
Cette instructable montrera comment construire et coder un Boe-Bot qui peut naviguer dans un labyrinthe à l'aide de détecteurs infrarouges pour éviter les obstacles. Il s'agit d'un guide facile à suivre qui permet des modifications faciles pour répondre à vos besoins. Cela nécessite une compréhension de base des circuits et de la programmation. Vous aurez besoin du logiciel IDE BASIC Stamp pour ce projet. Téléchargement gratuit ici. Ainsi que le robot Boe-Bot
Étape 1: Ressources
Composants electroniques
Boe-Bot avec câble de connexion Parallax Store - Kit BoeBot
Magasin de parallaxe de 5 LED infrarouges - Kit d'assemblage d'émetteur IR
5 assemblages de boucliers infrarouges
5 détecteurs infrarouges Parallax Store - Récepteur IR BoeBot
Résistances
- (2) 4,7 kΩ Électronique ABRA - 4,7 kΩ
- (5) 220 Ω Electronique ABRA - 220 Ω
- (2) 1 kΩ Electronique ABRA - 1 kΩ
- (5) 2 k Électronique ABRA - 2 kΩ
Câblage assorti ABRA Electronics - Fil de calibre 22
3 LED's ABRA Electronics - LED rouge 5mm
Soutien
Ordinateur
Éditeur de tampons BASIC - (logiciel gratuit)
Outils
Coupe-fil ABRA Electronics - Coupe-fil (en option)
Pince à dénuder ABRA Electronics - Pince à dénuder
Divers
Murs (pour construire un labyrinthe)
Étape 2: Comprendre le fonctionnement de la détection infrarouge (facultatif)
Phares infrarouges
Le système de détection d'objets infrarouge que nous allons construire sur le Boe-Bot est comme les phares d'une voiture à plusieurs égards. Lorsque la lumière des phares d'une voiture se reflète sur les obstacles, vos yeux détectent les obstacles et votre cerveau les traite et oblige votre corps à guider la voiture en conséquence. Le Boe-Bot utilisera des LED infrarouges pour les phares. Ils émettent de l'infrarouge et, dans certains cas, l'infrarouge se réfléchit sur les objets et rebondit en direction du Boe-Bot. Les yeux du Boe-Bot sont les détecteurs infrarouges. Les détecteurs infrarouges envoient des signaux indiquant s'ils détectent ou non les infrarouges réfléchis par un objet. Le cerveau du Boe-Bot, le BASIC Stamp, prend des décisions et actionne les servomoteurs en fonction de cette entrée de capteur. Figure 7-1 Détection d'objets avec les phares IR Les détecteurs IR ont des filtres optiques intégrés qui permettent très peu de lumière à l'exception de l'infrarouge 980 nm que nous voulons détecter avec son capteur photodiode interne. Le détecteur infrarouge dispose également d'un filtre électronique qui ne laisse passer que les signaux d'environ 38,5 kHz. En d'autres termes, le détecteur ne recherche que l'infrarouge qui clignote 38 500 fois par seconde. Cela empêche les interférences IR provenant de sources courantes telles que la lumière du soleil et l'éclairage intérieur. La lumière du soleil est une interférence CC (0 Hz) et l'éclairage intérieur a tendance à clignoter à 100 ou 120 Hz, selon la source d'alimentation principale de la région. Étant donné que 120 Hz est en dehors de la fréquence passe-bande de 38,5 kHz du filtre électronique, il est complètement ignoré par les détecteurs IR.
-Guide de l'étudiant paralaxe
Étape 3: Assemblage des LED IR
Insérez la LED IR dans la plus grande partie du boîtier
Joindre la partie claire de la LED avec la plus petite partie du boîtier
Étape 4: Test des paires infrarouges - Circuit
Avant d'aller trop loin dans quoi que ce soit, nous allons tester pour nous assurer que la paire IR fonctionne (une LED infrarouge et un détecteur infrarouge).
Commencez par construire le circuit ci-dessus sur la maquette montée sur le dessus de votre Boe-Bot
Étape 5: Test des paires infrarouges - Code de base
Bien sûr, nous devrons écrire du code pour que nos paires IR fonctionnent
Pour ce faire, va utiliser la commande FREQOUT. Cette commande a été conçue pour les tonalités audio, mais elle peut être utilisée pour produire des fréquences dans la plage infrarouge. Pour ce test nous utiliserons la commande:
FREQOUT 8, 1, 38500
cela enverra une fréquence de 38,5 kHz qui dure 1 ms à P8. Le circuit LED infrarouge connecté à P8 diffusera cette fréquence. Si la lumière infrarouge est réfléchie vers le Boe-Bot par un objet sur son chemin, le détecteur infrarouge enverra au BASIC Stamp un signal pour lui faire savoir que la lumière infrarouge réfléchie a été détectée.
La clé pour faire fonctionner une paire IR est d'envoyer 1 ms de FREQOUT 38,5 kHz et de stocker immédiatement la sortie du détecteur IR dans une variable.
Cet exemple montre le stockage de la valeur du détecteur IR dans une variable de bit nommée irDectectLeft
FREQOUT 8, 1, 38500
irDetectGauche = IN9
L'état de sortie du détecteur IR lorsqu'il ne voit aucun signal IR est élevé. Lorsque le détecteur IR voit l'harmonique 38500 Hz réfléchie par un objet, sa sortie est faible. La sortie du détecteur IR ne reste basse que pendant une fraction de milliseconde après que la commande FREQOUT a fini d'envoyer l'harmonique, il est donc essentiel de stocker la sortie du détecteur IR dans une variable immédiatement après l'envoi de la commande FREQOUT. La valeur stockée par la variable peut ensuite être affichée dans le terminal de débogage ou utilisée pour les décisions de navigation par le Boe-Bot.
Étape 6: Test des paires infrarouges - Matériel + Logiciel
Maintenant que vous connaissez les bases, nous pouvons assembler le matériel et le logiciel pour tester une paire ensemble et obtenir un retour en temps réel de ce que la paire IR détecte.
Vous pouvez essayer de créer le code vous-même ou utiliser le code ci-dessous
' {$STAMP BS2}
' {$PBASIC 2.5} irDetectLeft VAR Bit DO FREQOUT 8, 1, 38500 irDetectLeft = IN9 DEBUG HOME, "irDetectLeft = ", BIN1 irDetectLeft PAUSE 100 BOUCLE
- Laissez le Boe-Bot connecté au câble série, car vous utiliserez le terminal DEBUG pour tester votre paire IR.
- Placez un objet, comme votre main ou une feuille de papier, à environ un pouce de la paire IR gauche
- Vérifiez que lorsque vous placez un objet devant la paire IR, le terminal de débogage affiche un 0, et lorsque vous supprimez l'objet devant la paire IR, il affiche un 1.
- Si le terminal de débogage n'affiche pas les valeurs attendues, essayez les étapes de l'étape de dépannage.
Étape 7: Dépannage (pour les problèmes liés à la dernière étape)
DEBUG Terminal affichant des valeurs inattendues
Vérifiez le circuit pour les courts-circuits, les connecteurs égarés ou manquants, les composants endommagés, les résistances incorrectes ou tout autre problème visible
Vérifiez le programme à partir d'erreurs logiques ou de syntaxe - Si vous avez utilisé votre propre code pour la dernière étape, envisagez d'utiliser le code fourni
Obtenant toujours 0, même lorsqu'il n'y a pas d'objets est placé devant le Boe-Bot
Vérifiez s'il y a des objets à proximité qui reflètent le signal infrarouge. La table devant le Boe-Bot pourrait en être la cause. Déplacez le Boe-Bot dans un espace ouvert afin que la LED IR et le détecteur ne puissent pas se refléter sur un objet à proximité.
La lecture est à 1 la plupart du temps lorsqu'il n'y a pas d'objet devant le Boe-Bot, mais scintille à 0 occasionnellement
Il peut y avoir des interférences d'une lumière fluorescente à proximité; Éteignez toutes les lampes fluorescentes à proximité et répétez vos tests. Si le problème persiste, l'étape 9 peut révéler le problème
Étape 8: Deuxième paire IR
Maintenant que vous avez le programme pour l'IR gauche, c'est à votre tour de faire le circuit et de programmer la paire IR droite
- Modifiez l'instruction DEBUG, le titre et les commentaires pour faire référence à la bonne paire IR.
- Remplacez le nom de la variable irDetectLeft par irDetectRight. Vous devrez le faire à quatre endroits dans le programme.
- Modifiez l'argument Pin de la commande FREQOUT de 8 à 2.
- Modifiez le registre d'entrée surveillé par la variable irDetectRight de IN9 à IN0.
- Répétez les étapes de test de cette activité pour la bonne paire IR; avec le circuit LED IR connecté à P2 et le détecteur connecté à P0.
Étape 9: Détection des interférences infrarouges (facultatif)
Que vous rencontriez des problèmes de détection de signaux qui ne devraient pas être détectés ou que vous prévoyiez de démontrer votre détection IR dans un autre endroit, vous souhaiterez peut-être tester les interférences.
Le concept de ce programme de test est assez simple, vous détectez les signaux infrarouges sans en envoyer.
Vous pouvez utiliser exactement le même circuit mais vous devrez modifier le code. vous pouvez choisir d'écrire votre propre code, mais vous pouvez utiliser le code fourni ci-dessous:
' {$STAMP BS2}
' {$PBASIC 2.5} irDetectLeft VAR Bit DO irDetectLeft = IN9 irDetectRight = IN0 SI IN9 = 0 OU IN0 = 0 ALORS DEBUG "Interférence détectée" PAUSE 100 BOUCLE
Si vous rencontrez des interférences, déterminez la source probable et éteignez/supprimez-la ou déplacez l'endroit où vous utilisez votre Boe-Bot.
Étape 10: ajouter plus de paires IR
Si vous désirez plus de précision dans le mouvement de votre Boe-Bot, vous voudrez peut-être ajouter plus de paires IR. 3 Améliore considérablement les performances par rapport à deux; vous pouvez utiliser une paire centrale pour rechercher un obstacle direct et utiliser deux IR latéraux pour déterminer de combien il faut tourner. Cependant, l'inconvénient de la conception à 3 paires IR est que vous pouvez savoir quand vous glissez contre un mur, car la paire IR centrale est utilisée pour détecter les obstacles. Pour résoudre ce problème, vous pouvez ajouter une paire IR de chaque côté avec une valeur de résistance élevée. Par conséquent, le signal infrarouge ne sera détecté que si le Boe-Bot est proche du côté ou d'un mur à un angle faible.
Étape 11: Cinq paires IR - Circuit
Soyez prudent lorsque vous dirigez les deux LED IR sur le côté car les tordre peut provoquer le contact des fils et provoquer un court-circuit.
Étape 12: Cinq paires IR - Code
Vous pouvez essayer de programmer votre Boe-Bot avant d'utiliser ce code:
' {$STAMP BS2}' {$PBASIC 2.5} 'Code de détection de cinq paires IR 'Matthew Shaw '8 mai 2019 (Version 7) 'Détection d'objets et traitement logique de base pour résoudre des labyrinthes
irDetectLeft VAR Bit 'Variable pour la gauche
irDetectCentre VAR Bit 'Variable pour le centre irDetectRight VAR Bit 'Variable pour la droite irDetectLSide Bit VAR 'Variable pour le côté gauche irDetectRSide VAR Bit 'Variable pour le côté droit irDetectLSideFar Bit VAR 'Variable pour le côté gauche à faible résistance irDetectV Bit
mloop VAR mot
Lmotor PIN 15 'Le moteur gauche est connecté à la broche 14, les impulsions passent par ici
BROCHE Rmoteur 14' droite = 15
'les vitesses sont -> 650-750-850
LFast CON 850' Constante pour moteur gauche à pleine vitesse RFast CON 650' Constante pour moteur droit à pleine vitesse
LStop CON 750' Constante pour moteur gauche à pleine vitesse
RStop CON 650' Constante pour moteur droit à pleine vitesse
LMid CON 830' Constante pour moteur gauche à vitesse moyenne
RMid CON 700' Constante pour moteur droit à vitesse moyenne
LSlow CON 770' Constante pour moteur gauche à vitesse minimale
RSlow CON 730' Constante pour moteur droit à vitesse minimale
LRev CON 650' Constante pour moteur gauche à pleine vitesse en marche arrière
RRev CON 850' Constante pour moteur gauche à pleine vitesse en marche arrière
FREQOUT 7, 1, 38500' côté gauche
irDetectGauche = IN8
FREQOUT 6, 1, 38500' centre
irDetectCentre = IN5
FREQOUT 3, 1, 38500' côté droit
irDetectRight = IN2
FREQOUT 10, 1, 38500' Gauche Fermer
irDetectLside = IN11
FREQOUT 1, 1, 38500' à droite Fermer
irDetectRSide = IN0
FREQOUT 9, 1, 38500
irDetectLsideFar = IN11
FREQOUT 4, 1, 38500' côté droit
irDetectRSideFar = IN0
SI irDetectLSide = 0 ET irDetectRSide = 0 ALORS COMMANDE DE DÉMARRAGE principale passez vos mains devant les deux détecteurs latéraux pour démarrer le programme
Principale:
PAUSE 1000 FAIRE
PULSOUT Lmotor, LFast 'le moteur gauche tourne à pleine vitesse
PULSOUT Rmotor, RFast 'Le moteur droit tourne à pleine vitesse
FREQOUT 6, 1, 38500' centre
irDetectCentre = IN5
FREQOUT 10, 1, 38500' Gauche Fermer
irDetectLside = IN11
FREQOUT 1, 1, 38500' côté droit
irDetectRSide = IN0
SI irDetectLside = 0 ET irDetectRSide = 1 ALORS
DO PULSOUT Lmoteur, LFast
FREQOUT 6, 1, 38500' centre
irDetectCentre = IN5 SI irDetectCentre = 0 ALORS cent
FREQOUT 10, 1, 38500' Gauche Fermer
irDetectLside = IN11
FREQOUT 3, 1, 38500' côté droit
irDetectRight = IN2
BOUCLE JUSQU'À irDetectLside = 1 OU irDetectRSide = 0
ELSEIF irDetectLside = 1 AND irDetectRSide = 0 ALORS
DO PULSOUT Rmoteur, RFast
FREQOUT 6, 1, 38500' centre
irDetectCentre = IN5 SI irDetectCentre = 0 ALORS cent
FREQOUT 10, 1, 38500' Gauche Fermer
irDetectLside = IN11
FREQOUT 3, 1, 38500' côté droit
irDetectRight = IN2
BOUCLE JUSQU'À irDetectLside = 0 OU irDetectRSide = 1
'FIN SI
SI irDetectCentre = 0 ALORS 'START
FREQOUT 7, 1, 38500' côté gauche irDetectLeft = IN8
FREQOUT 6, 1, 38500' centre
irDetectCentre = IN5
FRÉQUENCE 3, 1, 38500
irDetectRight = IN2
PAUSE 1000 'pause pour afficher le signal détecté
SI (irDetectLeft = 1 AND irDetectRight = 0) ALORS ' évalue la durée
GOSUB tourner à gauche
ELSEIF (irDetectLeft = 0 ET irDetectRight = 1) ALORS
GOSUB tourner à droite
ELSEIF (irDetectLeft = 1 AND irDetectRight = 1) ALORS
GOSUB tourDécide
AUTRE
GOSUB tournerReverse
FIN SI
ENDIF' FIN
BOUCLE
FINIR
Tourner à gauche:
DO PULSOUT Lmotor, LRev FREQOUT 8, 1, 38500 irDetectLeft = IN9 FREQOUT 5, 1, 38500 irDetectCentre = IN4 FREQOUT 2, 1, 38500 irDetectRight = IN0 BOUCLE JUSQU'A IN0 = 1 RETOUR
Tournez à droite:
DO PULSOUT Rmotor, RRev FREQOUT 8, 1, 38500 irDetectLeft = IN9 FREQOUT 5, 1, 38500 irDetectCentre = IN4 FREQOUT 2, 1, 38500 irDetectRight = IN0 BOUCLE JUSQU'A IN9 = 1
REVENIR
tournerReverse:
FOR mLoop = 0 à 50 PULSOUT Rmoteur, RRev PULSOUT Lmoteur, LRev PAUSE 20 PULSOUT Lmoteur, LRev PAUSE 20 NEXT DO PULSOUT Rmoteur, RRev FREQOUT 8, 1, 38500 irDetectLeft = IN9 FREQOUT 5, 1, 38500 irDetectCentre = IN4 FREQOUT 2, 1, 38500 irDetectRight = IN0 BOUCLE JUSQU'À IN9 = 1
REVENIR
turnDecide: « utilise une résistance plus faible pour voir plus loin
FREQOUT 9, 1, 38500
irDetectLsideFar = IN11
FREQOUT 4, 1, 38500' côté droit
irDetectRSideFar = IN0
SI (irDetectLSideFar = 1 AND irDetectRSideFar = 0) ALORS ' évalue la durée
GOSUB tourner à gauche
ELSEIF (irDetectLSideFar = 0 AND irDetectRSideFar = 1) ALORS
GOSUB tourner à droite
ELSEIF (irDetectLSideFar = 1 AND irDetectRSideFar = 1) ALORS
GOSUB tourner à gauche
AUTRE
GOSUB tournerReverse
FIN SI
REVENIR
Conseillé:
Prenez de superbes photos avec un iPhone : 9 étapes (avec photos)
Prenez de superbes photos avec un iPhone : la plupart d'entre nous ont un smartphone partout avec nous ces jours-ci, il est donc important de savoir comment utiliser l'appareil photo de votre smartphone pour prendre de superbes photos ! Je n'ai un smartphone que depuis quelques années et j'aime avoir un appareil photo décent pour documenter les choses que je
Plateforme avec des niveaux infinis sur GameGo avec Makecode Arcade : 5 étapes (avec photos)
Plateforme avec des niveaux infinis sur GameGo avec Makecode Arcade : GameGo est une console portable de jeu rétro compatible Microsoft Makecode développée par TinkerGen STEM education. Il est basé sur la puce STM32F401RET6 ARM Cortex M4 et est destiné aux éducateurs STEM ou simplement aux personnes qui aiment s'amuser à créer un jeu vidéo rétro
Comment créer des détecteurs de fumée/alcool et des alarmes incendie LoT avec NodeMCU ESP8266 Blynk DHT11, MQ-2, MQ-3 : 7 étapes
Comment faire un détecteur de fumée/alcool LoT et des alarmes incendie avec NodeMCU ESP8266 Blynk DHT11, MQ-2, MQ-3: Plus de détails, vous pouvez regarder ma vidéo Youtube
Alertes push Arduino pour sonnette, alarme antivol, détecteurs de fumée, etc. : 8 étapes
Alertes push Arduino pour sonnette, alarme antivol, détecteurs de fumée, etc. : notifications IoT de votre sonnette, alarme antivol, détecteurs de fumée, etc. Tous les détails sur mon site Web iciÀ propos de Arduino Push Alert Box Utilise un Arduino Uno et Ethernet Shield basé sur la puce Wiznet W5100 pour
Lancez votre diaporama de photos de vacances avec une touche de magie ! : 9 étapes (avec photos)
Lancez votre diaporama de photos de vacances avec une touche de magie ! : Au fil des ans, j'ai pris l'habitude d'emporter une petite figurine avec moi en voyage : j'achète souvent un petit artoy vierge (comme celui sur la photo) et je peins il correspond au drapeau et au thème du pays que je visite (dans ce cas, la Sicile). T