Inhaltsverzeichnis:
- Schritt 1: Ressourcen
- Schritt 2: Funktionsweise der Infraroterkennung verstehen (optional)
- Schritt 3: Zusammenbau der IR-LEDs
- Schritt 4: Infrarotpaare testen - Schaltung
- Schritt 5: Infrarotpaare testen - Basiscode
- Schritt 6: Infrarotpaare testen - Hardware + Software
- Schritt 7: Fehlerbehebung (bei Problemen mit dem letzten Schritt)
- Schritt 8: Zweites IR-Paar
- Schritt 9: Erkennen von Infrarotinterferenzen (optional)
- Schritt 10: Hinzufügen weiterer IR-Paare
- Schritt 11: Fünf IR-Paare - Schaltung
- Schritt 12: Fünf IR-Paare - Code
Video: Boe-Bot mit Infrarotdetektoren - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:18
Dieses anweisbare zeigt, wie man einen Boe-Bot baut und codiert, der ein Labyrinth mit Infrarotdetektoren navigieren kann, um Hindernisse zu vermeiden. Dies ist eine leicht verständliche Anleitung, die einfache Anpassungen an Ihre Bedürfnisse ermöglicht. Dies erfordert ein grundlegendes Verständnis von Schaltung und Programmierung. Für dieses Projekt benötigen Sie die BASIC Stamp IDE-Software. Hier kostenlos zum Download. Sowie der Boe-Bot-Roboter
Schritt 1: Ressourcen
Elektronische Bauteile
Boe-Bot mit Anschlusskabel Parallax Store - BoeBot Kit
5 Infrarot-LEDs Parallax Store - IR-Sender-Montagesatz
5 Infrarot-Schild-Baugruppen
5 Infrarot-Detektoren Parallax Store - BoeBot IR-Empfänger
Widerstände
- (2) 4,7 kΩ ABRA-Elektronik - 4,7 kΩ
- (5) 220 ABRA-Elektronik - 220
- (2) 1 kΩ ABRA-Elektronik - 1 kΩ
- (5) 2 k ABRA-Elektronik - 2 kΩ
Verschiedene Kabel ABRA Electronics - 22 Gauge Wire
3 LEDs ABRA Electronics - 5mm rote LED
Unterstützung
Rechner
BASIC Stempeleditor - (Freeware)
Werkzeuge
Drahtschneider ABRA Electronics - Drahtschneider (optional)
Abisolierzange ABRA Electronics - Abisolierzange
Sonstiges
Wände (um ein Labyrinth zu bauen)
Schritt 2: Funktionsweise der Infraroterkennung verstehen (optional)
Infrarot-Scheinwerfer
Das Infrarot-Objekterkennungssystem, das wir auf dem Boe-Bot aufbauen werden, ist in vielerlei Hinsicht wie die Scheinwerfer eines Autos. Wenn das Licht der Scheinwerfer eines Autos von Hindernissen reflektiert wird, erkennen Ihre Augen die Hindernisse und Ihr Gehirn verarbeitet sie und lässt Ihren Körper das Auto entsprechend steuern. Der Boe-Bot verwendet Infrarot-LEDs für Scheinwerfer. Sie senden Infrarot aus, und in einigen Fällen wird das Infrarot von Objekten reflektiert und in Richtung des Boe-Bot zurückgeworfen. Die Augen des Boe-Bot sind die Infrarotdetektoren. Die Infrarotdetektoren senden Signale, die anzeigen, ob sie von einem Objekt reflektiertes Infrarot erkennen oder nicht. Das Gehirn des Boe-Bot, die BASIC Stamp, trifft basierend auf diesem Sensoreingang Entscheidungen und steuert die Servomotoren an. Abbildung 7-1 Objekterkennung mit IR-Scheinwerfern Die IR-Detektoren verfügen über eingebaute optische Filter, die nur sehr wenig Licht zulassen, mit Ausnahme des 980-nm-Infrarots, das wir mit dem internen Fotodiodensensor erkennen möchten. Der Infrarotdetektor verfügt außerdem über einen elektronischen Filter, der nur Signale um 38,5 kHz durchlässt. Mit anderen Worten, der Detektor sucht nur nach Infrarot, das 38.500 Mal pro Sekunde ein- und ausgeschaltet wird. Dies verhindert IR-Interferenzen durch übliche Quellen wie Sonnenlicht und Innenbeleuchtung. Sonnenlicht ist eine Gleichstromstörung (0 Hz), und die Innenbeleuchtung neigt dazu, je nach Hauptstromquelle in der Region entweder mit 100 oder 120 Hz ein- und auszuschalten. Da 120 Hz außerhalb der 38,5 kHz Bandpassfrequenz des elektronischen Filters liegen, wird es von den IR-Detektoren vollständig ignoriert.
-Paralax-Studentenführer
Schritt 3: Zusammenbau der IR-LEDs
Setzen Sie die IR-LED in den größeren Teil des Gehäuses ein
Umschließen Sie den klaren Teil der LED mit dem kleineren Teil des Gehäuses
Schritt 4: Infrarotpaare testen - Schaltung
Bevor wir zu tief ins Detail gehen, testen wir, ob das IR-Paar funktioniert (eine Infrarot-LED und ein Infrarot-Detektor).
Bauen Sie zunächst die obige Schaltung auf dem Steckbrett auf, das oben auf Ihrem Boe-Bot montiert ist
Schritt 5: Infrarotpaare testen - Basiscode
Natürlich müssen wir Code schreiben, damit unsere IR-Paare funktionieren
Dazu wird der FREQOUT-Befehl verwendet. Dieser Befehl wurde für Audiotöne entwickelt, kann jedoch verwendet werden, um Frequenzen im Infrarotbereich zu erzeugen. Für diesen Test verwenden wir den Befehl:
FREQOUT 8, 1, 38500
Dadurch wird eine Frequenz von 38,5 kHz mit einer Dauer von 1 ms an P8 gesendet. Die an P8 angeschlossene Infrarot-LED-Schaltung sendet diese Frequenz. Wenn das Infrarotlicht von einem Objekt in seinem Weg zum Boe-Bot zurückreflektiert wird, sendet der Infrarotdetektor der BASIC Stamp ein Signal, um ihn darüber zu informieren, dass das reflektierte Infrarotlicht erkannt wurde.
Der Schlüssel zum Funktionieren eines IR-Paares besteht darin, 1 ms von 38,5 kHz FREQOUT zu senden und die Ausgabe des IR-Detektors sofort in einer Variablen zu speichern.
Dieses Beispiel zeigt das Speichern des IR-Detektorwerts in einer Bitvariablen namens irDectectLeft
FREQOUT 8, 1, 38500
irDetectLeft = IN9
Der Ausgangszustand des IR-Detektors, wenn kein IR-Signal erkannt wird, ist hoch. Wenn der IR-Detektor die 38500-Hz-Oberschwingung sieht, die von einem Objekt reflektiert wird, ist seine Ausgabe niedrig. Der Ausgang des IR-Detektors bleibt nur für den Bruchteil einer Millisekunde niedrig, nachdem der FREQOUT-Befehl das Senden der Harmonischen abgeschlossen hat. Daher ist es wichtig, den Ausgang des IR-Detektors unmittelbar nach dem Senden des FREQOUT-Befehls in einer Variablen zu speichern. Der von der Variablen gespeicherte Wert kann dann im Debug Terminal angezeigt oder für Navigationsentscheidungen des Boe-Bot verwendet werden.
Schritt 6: Infrarotpaare testen - Hardware + Software
Nachdem Sie nun die Grundlagen kennen, können wir die Hardware und Software zusammenstellen, um ein Paar zusammen zu testen und Echtzeit-Feedback zu erhalten, was das IR-Paar erkennt
Sie können versuchen, den Code selbst zu erstellen, oder den folgenden Code verwenden
' {$STEMPEL BS2}
' {$PBASIC 2.5} irDetectLeft VAR Bit DO FREQOUT 8, 1, 38500 irDetectLeft = IN9 DEBUG HOME, "irDetectLeft = ", BIN1 irDetectLeft PAUSE 100 LOOP
- Lassen Sie den Boe-Bot am seriellen Kabel angeschlossen, da Sie das DEBUG-Terminal verwenden, um Ihr IR-Paar zu testen.
- Platzieren Sie einen Gegenstand, wie Ihre Hand oder ein Blatt Papier, etwa einen Zoll vom linken IR-Paar entfernt
- Stellen Sie sicher, dass das Debug Terminal eine 0 anzeigt, wenn Sie ein Objekt vor dem IR-Paar platzieren, und wenn Sie das Objekt vor dem IR-Paar entfernen, zeigt es eine 1 an.
- Wenn das Debug-Terminal nicht die erwarteten Werte anzeigt, versuchen Sie die Schritte im Schritt zur Fehlerbehebung.
Schritt 7: Fehlerbehebung (bei Problemen mit dem letzten Schritt)
DEBUG Terminal zeigt unerwartete Werte an
Überprüfen Sie den Stromkreis auf Kurzschlüsse, falsch platzierte oder fehlende Anschlüsse, beschädigte Komponenten, falsche Widerstände oder andere sichtbare Probleme
Überprüfen Sie das Programm auf logische oder Syntaxfehler - Wenn Sie im letzten Schritt Ihren eigenen Code verwendet haben, ziehen Sie in Betracht, den bereitgestellten Code zu verwenden
Immer 0, auch wenn sich keine Gegenstände vor dem Boe-Bot befinden
Überprüfen Sie, ob sich in der Nähe Objekte befinden, die das Infrarotsignal reflektieren. Der Tisch vor dem Boe-Bot könnte die Ursache sein. Bewegen Sie den Boe-Bot in einen offenen Raum, damit die IR-LED und der Detektor nicht von nahegelegenen Objekten reflektiert werden.
Lesen ist die meiste Zeit 1 wenn sich kein Objekt vor dem Boe-Bot befindet, flackert aber gelegentlich auf 0
Es kann zu Interferenzen durch eine nahegelegene Leuchtstoffröhre kommen; Schalten Sie alle Leuchtstofflampen in der Nähe aus und wiederholen Sie Ihre Tests. Wenn das Problem weiterhin besteht, kann Schritt 9 das Problem aufdecken
Schritt 8: Zweites IR-Paar
Jetzt, da Sie das Programm für das linke IR haben, sind Sie an der Reihe, die Schaltung zu erstellen und das rechte IR-Paar zu programmieren
- Ändern Sie die DEBUG-Anweisung, den Titel und die Kommentare so, dass sie auf das richtige IR-Paar verweisen.
- Ändern Sie den Variablennamen von irDetectLeft in irDetectRight. Sie müssen dies an vier Stellen im Programm tun.
- Ändern Sie das Pin-Argument des FREQOUT-Befehls von 8 auf 2.
- Ändern Sie das von der irDetectRight-Variablen überwachte Eingangsregister von IN9 auf IN0.
- Wiederholen Sie die Testschritte in dieser Aktivität für das rechte IR-Paar; mit der IR-LED-Schaltung an P2 und dem Detektor an P0 angeschlossen.
Schritt 9: Erkennen von Infrarotinterferenzen (optional)
Unabhängig davon, ob Sie Probleme mit der Erkennung von Signalen haben, die nicht erkannt werden sollten, oder ob Sie Ihre IR-Erkennung an einem anderen Ort demonstrieren möchten, sollten Sie auf Interferenzen testen.
Das Konzept dieses Testprogramms ist ziemlich einfach, Sie erkennen nach Infrarotsignalen, ohne welche auszusenden.
Sie können genau die gleiche Schaltung verwenden, müssen jedoch den Code ändern. Sie können Ihren eigenen Code schreiben, aber Sie können den folgenden Code verwenden:
' {$STEMPEL BS2}
' {$PBASIC 2.5} irDetectLeft VAR Bit DO irDetectLeft = IN9 irDetectRight = IN0 IF IN9 = 0 ODER IN0 = 0 THEN DEBUG "Störung erkannt" PAUSE 100 LOOP
Wenn Störungen auftreten, ermitteln Sie die wahrscheinliche Quelle und schalten Sie sie aus/beseitigen Sie sie oder verlegen Sie Ihren Boe-Bot an einen anderen Ort.
Schritt 10: Hinzufügen weiterer IR-Paare
Wenn Sie mehr Genauigkeit bei der Bewegung Ihres Boe-Bots wünschen, können Sie weitere IR-Paare hinzufügen. 3 Verbessert die Leistung erheblich im Vergleich zu zwei; Sie können ein mittleres Paar verwenden, um nach einem direkten Hindernis zu suchen, und zwei seitliche IRs verwenden, um zu bestimmen, wie weit Sie sich wenden müssen. Der Nachteil des 3-IR-Paar-Designs besteht jedoch darin, dass Sie möglicherweise wissen, wann Sie gegen eine Wand rutschen, da das mittlere IR-Paar verwendet wird, um Hindernisse zu erkennen. Um dieses Problem zu lösen, können Sie jeder Seite ein IR-Paar mit einem hohen Widerstandswert hinzufügen - daher wird das Infrarotsignal nur erkannt, wenn sich der Boe-Bot in einem sanften Winkel an einer Seite oder einer Wand befindet.
Schritt 11: Fünf IR-Paare - Schaltung
Seien Sie vorsichtig, wenn Sie die beiden IR-LEDs auf die Seite richten, da ein Verdrehen dazu führen kann, dass sich die Kabel berühren und einen Kurzschluss verursachen.
Schritt 12: Fünf IR-Paare - Code
Sie können versuchen, Ihren Boe-Bot zu programmieren, bevor Sie diesen Code verwenden:
' {$STAMP BS2}' {$PBASIC 2.5} 'Fünf IR-Paar-Deatection-Code 'Matthew Shaw '8. Mai 2019 (Version 7) 'Erkennung von Objekten und grundlegende logische Verarbeitung zum Lösen von Labyrinthen
irDetectLeft VAR Bit 'Variable für links
irDetectCentre VAR Bit 'Variable für Mitte irDetectRight VAR Bit 'Variable für rechte Seite irDetectLSide VAR Bit 'Variable für linke Seite irDetectRSide VAR Bit 'Variable für rechte Seite irDetectLSideFar VAR Bit 'Variable für linke Seite niederohmig irDetectRSideFar VAR Bit 'Variable für rechte Seite 'VariVariable für linke Seite
mloop VAR-Wort
Lmotor PIN 15 'Der linke Motor ist an Pin 14 angeschlossen, Impulse gehen hier durch
Rmotor PIN 14 'rechts = 15
'Geschwindigkeiten sind -> 650-750-850
LFast CON 850 'Konstant für linken Motor bei voller Geschwindigkeit RFast CON 650 'Konstant für rechten Motor bei voller Geschwindigkeit
LStop CON 750 'Konstant für linken Motor bei voller Geschwindigkeit
RStop CON 650 'Konstant für rechten Motor bei voller Geschwindigkeit
LMid CON 830 'Konstant für linken Motor bei mittlerer Geschwindigkeit
RMid CON 700 'Konstant für rechten Motor bei mittlerer Geschwindigkeit
LSlow CON 770 'Konstant für linken Motor bei minimaler Drehzahl
RSlow CON 730 'Konstant für rechten Motor bei minimaler Drehzahl
LRev CON 650 'Konstant für linken Motor bei voller Geschwindigkeit im Rückwärtsgang
RRev CON 850 'Konstant für linken Motor bei voller Geschwindigkeit im Rückwärtsgang
FREQOUT 7, 1, 38500 'linke Seite
irDetectLeft = IN8
FREQOUT 6, 1, 38500 'Mitte
irDetectCenter = IN5
FREQOUT 3, 1, 38500 'rechte Seite
irDetectRight = IN2
FREQOUT 10, 1, 38500 'Links schließen
irDetectLside = IN11
FREQOUT 1, 1, 38500 'rechts Schließen
irDetectRside = IN0
FREQOUT 9, 1, 38500
irDetectLSideFar = IN11
FREQOUT 4, 1, 38500 'rechte Seite
irDetectRSideFar = IN0
WENN irDetectLSide = 0 AND irDetectRSide = 0 DANN Haupt-'STARTBEFEHL winken Sie mit den Händen an den beiden seitlichen Detektoren vorbei, um das Programm zu starten
Hauptsächlich:
PAUSE 1000 DO
PULSOUT Lmotor, LFast 'linker Motor läuft mit voller Geschwindigkeit
PULSOUT Rmotor, RFast 'Rechter Motor läuft auf Hochtouren
FREQOUT 6, 1, 38500 'Mitte
irDetectCenter = IN5
FREQOUT 10, 1, 38500 'Links schließen
irDetectLside = IN11
FREQOUT 1, 1, 38500 'rechte Seite
irDetectRside = IN0
WENN irDetectLSide = 0 UND irDetectRside = 1 DANN
DO PULSOUT Lmotor, LFast
FREQOUT 6, 1, 38500 'Mitte
irDetectCentre = IN5 WENN irDetectCentre = 0 DANN Cent
FREQOUT 10, 1, 38500 'Links schließen
irDetectLside = IN11
FREQOUT 3, 1, 38500 'rechte Seite
irDetectRight = IN2
SCHLEIFE BIS irDetectLSide = 1 ODER irDetectRSide = 0
ELSEIF irDetectLSide = 1 UND irDetectRSide = 0 THEN
DO PULSOUT Rmotor, RFast
FREQOUT 6, 1, 38500 'Mitte
irDetectCentre = IN5 WENN irDetectCentre = 0 DANN Cent
FREQOUT 10, 1, 38500 'Links schließen
irDetectLside = IN11
FREQOUT 3, 1, 38500 'rechte Seite
irDetectRight = IN2
SCHLEIFE BIS irDetectLSide = 0 ODER irDetectRSide = 1
'ENDIF
WENN irDetectCentre = 0 DANN 'START
FREQOUT 7, 1, 38500 'linke Seite irDetectLeft = IN8
FREQOUT 6, 1, 38500 'Mitte
irDetectCenter = IN5
FREQOUT 3, 1, 38500
irDetectRight = IN2
PAUSE 1000 'Pause, um das erkannte Signal anzuzeigen
WENN (irDetectLeft = 1 AND irDetectRight = 0) THEN ' Dauer auswerten
GOSUB links abbiegen
ELSEIF (irDetectLeft = 0 UND irDetectRight = 1) DANN
GOSUB drehenRechts
ELSEIF (irDetectLeft = 1 UND irDetectRight = 1) DANN
GOSUB turnEntscheiden
ANDERS
GOSUB turnReverse
ENDIF
ENDIF 'ENDE
SCHLEIFE
ENDE
Biegen Sie links ab:
DO PULSOUT Lmotor, LRev FREQOUT 8, 1, 38500 irDetectLeft = IN9 FREQOUT 5, 1, 38500 irDetectCentre = IN4 FREQOUT 2, 1, 38500 irDetectRight = IN0 LOOP BIS IN0 = 1 RETURN
Biegen Sie rechts ab:
DO PULSOUT Rmotor, RRev FREQOUT 8, 1, 38500 irDetectLeft = IN9 FREQOUT 5, 1, 38500 irDetectCentre = IN4 FREQOUT 2, 1, 38500 irDetectRight = IN0 LOOP BIS IN9 = 1
RÜCKKEHR
drehenUmkehren:
FOR mLoop = 0 TO 50 PULSOUT Rmotor, RRev PULSOUT Lmotor, LRev PAUSE 20 PULSOUT Lmotor, LRev PAUSE 20 NEXT DO PULSOUT Rmotor, RRev FREQOUT 8, 1, 38500 irDetectLeft = IN9 FREQOUT 5, 1, 38500 irDetectCentre = IN4 FREQOUT 2, 1, 38500 irDetectRight = IN0 LOOP BIS IN9 = 1
RÜCKKEHR
turnDecide: 'braucht einen geringeren Widerstand, um weiter zu sehen
FREQOUT 9, 1, 38500
irDetectLSideFar = IN11
FREQOUT 4, 1, 38500 'rechte Seite
irDetectRSideFar = IN0
WENN (irDetectLSideFar = 1 AND irDetectRSideFar = 0) THEN ' Dauer auswerten
GOSUB links abbiegen
ELSEIF (irDetectLSideFar = 0 UND irDetectRSideFar = 1) DANN
GOSUB drehenRechts
ELSEIF (irDetectLSideFar = 1 UND irDetectRSideFar = 1) DANN
GOSUB links abbiegen
ANDERS
GOSUB turnReverse
ENDIF
RÜCKKEHR
Empfohlen:
Heimwerken -- Einen Spinnenroboter herstellen, der mit einem Smartphone mit Arduino Uno gesteuert werden kann – wikiHow
Heimwerken || Wie man einen Spider-Roboter herstellt, der mit einem Smartphone mit Arduino Uno gesteuert werden kann: Während man einen Spider-Roboter baut, kann man so viele Dinge über Robotik lernen. Wie die Herstellung von Robotern ist sowohl unterhaltsam als auch herausfordernd. In diesem Video zeigen wir Ihnen, wie Sie einen Spider-Roboter bauen, den wir mit unserem Smartphone (Androi
Bewegungsaktivierte Cosplay Wings mit Circuit Playground Express - Teil 1: 7 Schritte (mit Bildern)
Bewegungsaktivierte Cosplay-Flügel mit Circuit Playground Express - Teil 1: Dies ist Teil 1 eines zweiteiligen Projekts, in dem ich Ihnen meinen Prozess zur Herstellung eines Paars automatisierter Feenflügel zeige. Der erste Teil des Projekts ist der Mechanik der Flügel, und der zweite Teil macht es tragbar und fügt die Flügel hinzu
Raspberry Pi mit Node.js mit der Cloud verbinden – wikiHow
So verbinden Sie Raspberry Pi mit Node.js mit der Cloud: Dieses Tutorial ist nützlich für alle, die einen Raspberry Pi mit Node.js mit der Cloud, insbesondere mit der AskSensors IoT-Plattform, verbinden möchten. Sie haben keinen Raspberry Pi? Wenn Sie derzeit keinen Raspberry Pi besitzen, empfehle ich Ihnen, sich einen Raspberry Pi zuzulegen
DIY Circuit Activity Board mit Büroklammern - HERSTELLER - STEM: 3 Schritte (mit Bildern)
DIY Circuit Activity Board mit Büroklammern | HERSTELLER | STEM: Mit diesem Projekt können Sie den Weg des elektrischen Stroms ändern, um durch verschiedene Sensoren zu laufen. Mit diesem Design können Sie zwischen dem Aufleuchten einer blauen LED oder dem Aktivieren eines Summers wechseln. Sie haben auch die Wahl, einen lichtabhängigen Widerstand mit
Beginnen Sie mit Light Painting (kein Photoshop): 5 Schritte (mit Bildern)
Beginnend mit Light Painting (kein Photoshop): Ich habe vor kurzem eine neue Kamera gekauft und einige ihrer Funktionen untersucht, als ich im Internet auf Light Painting oder Langzeitbelichtung gestoßen bin. Die meisten von uns werden die Grundform des Lightpaintings mit einem Foto in einer Stadt mit einer Straße gesehen haben