Table des matières:

Boe-Bot avec détecteurs infrarouges : 12 étapes (avec photos)
Boe-Bot avec détecteurs infrarouges : 12 étapes (avec photos)

Vidéo: Boe-Bot avec détecteurs infrarouges : 12 étapes (avec photos)

Vidéo: Boe-Bot avec détecteurs infrarouges : 12 étapes (avec photos)
Vidéo: SWITCHBOT indoor caméra : une caméra IP WIFI à bas prix avec des supers fonctionnalités 2024, Novembre
Anonim
Boe-Bot avec détecteurs infrarouges
Boe-Bot avec détecteurs infrarouges

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)

Comprendre le fonctionnement de la détection infrarouge (facultatif)
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

Assemblage des LED IR
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

Test de paires infrarouges - Circuit
Test de paires infrarouges - Circuit
Test de paires infrarouges - Circuit
Test de 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

Test des paires infrarouges - Matériel + Logiciel
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

  1. Laissez le Boe-Bot connecté au câble série, car vous utiliserez le terminal DEBUG pour tester votre paire IR.
  2. Placez un objet, comme votre main ou une feuille de papier, à environ un pouce de la paire IR gauche
  3. 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.
  4. 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

Deuxième paire IR
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

  1. Modifiez l'instruction DEBUG, le titre et les commentaires pour faire référence à la bonne paire IR.
  2. Remplacez le nom de la variable irDetectLeft par irDetectRight. Vous devrez le faire à quatre endroits dans le programme.
  3. Modifiez l'argument Pin de la commande FREQOUT de 8 à 2.
  4. Modifiez le registre d'entrée surveillé par la variable irDetectRight de IN9 à IN0.
  5. 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)

Détection des interférences infrarouges (facultatif)
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

Ajouter plus de paires IR
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

Cinq paires IR - Circuit
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

Cinq paires IR - Code
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é: