Zum Inhalt springen

#24 Labyrinth-Navigationsroboterprojekt mit PicoBricks

01 Nov 2023
#24 Maze Navigating Robot Project With PicoBricks
Wie wäre es mit Bauen Sie Ihren eigenen autonomen Labyrinth-Lösungsroboter? In diesem Projekt werden wir Zeuge eines Autos, das mithilfe von LDR-Sensoren, Motortreibern und Servomotoren das Labyrinth selbstständig löst. Sie können finden Python-Codes Und Schaltplan für Anfänger in unserem Artikel.

Programmiererziehung ist so alt wie die Geschichte der Programmiersprachen. Heutzutage werden verschiedene Produkte verwendet, um die Programmiererziehung bekannter zu machen und sie spannend und unterhaltsam zu gestalten. Das erste davon sind Lernroboter. Das Vorbereiten und Programmieren von Robotern verbessert die Ingenieurs- und Programmierfähigkeiten von Kindern. Robotik-Wettbewerbe werden von Institutionen und Organisationen organisiert, um die Programmiererziehung bekannter zu machen und Lehrer und Schüler zu ermutigen. Einer dieser Wettbewerbe ist der Labyrinthlöser-Roboter Wettbewerbe. Diese Roboter lernen, das Labyrinth zu lösen, indem sie im Labyrinth umherwandern und zum Ausgangspunkt zurückkehren. Wenn sie das Labyrinth dann erneut beginnen, versuchen sie, ihr Ziel auf dem kürzesten Weg zu erreichen. Beim Erlernen des Labyrinths nutzen Roboter Infrarot- oder Ultraschall-Abstandssensoren.

Intelligente Roboterstaubsauger, die in Privathaushalten und am Arbeitsplatz eingesetzt werden, arbeiten ebenfalls mit einer Logik, die den Algorithmen von Labyrinth-Löser-Robotern ähnelt. Dank ihrer Algorithmen, die die Hindernisse ständig überprüfen und kartieren, versuchen sie, ihre Aufgaben zu erledigen, ohne mit Dingen zusammenzustoßen. Die meisten intelligenten Staubsauger sind mit LIDAR- und Infrarotsensoren ausgestattet, die für hochpräzise Lasermessungen und Hinderniserkennung ausgelegt sind.

In diesem Projekt werden wir einen einfachen Roboter bauen, mit dem Sie durch Ihr eigenes Labyrinth navigieren können.

Details und Algorithmus des Labyrinthroboters

In diesem Projekt verwenden wir die 2WD-Roboterauto-Bausatz das kommt mit dem Set. Wir werden den Ultraschall-Abstandssensor HC-SR04 verwenden, damit der Roboter die Wände vor ihm erkennen und über seine Bewegungen entscheiden kann. Im Labyrinth scannt der Roboter den Raum vor dem Auto und bewegt sich vorwärts, wenn dieser leer ist. Wenn sich im Umkreis von 5 cm eine Wand (Hindernis) befindet, biegt das Auto nach rechts ab und misst den Abstand erneut. Ist der neue Abstand rechts größer als 5 cm, setzt er seinen Weg fort. Wenn es weniger ist, dreht es sich nach links und bewegt sich vorwärts. Indem wir nach rechts und links abbiegen, steuern wir das Fahrzeug, um voranzukommen und das Labyrinth zu verlassen.

Komponenten

  • 1X PicoBricks
  • 1X HC-SR04 Ultraschallsensor
  • 2X Gleichstrommotor
  • Überbrückungskabel
  • Einfache Verbindungskabel

Schaltplan

Sie können die Module von Picobricks ohne Verkabelung programmieren und betreiben. Wenn Sie die Module getrennt von der Platine verwenden möchten, sollten Sie die Modulverbindungen mit Grove-Kabeln herstellen.

Bauphasen des Projekts

Sie können das Roboterauto bauen, indem Sie die Schritte für den Zusammenbau des 2WD-Roboterautos im sprachgesteuerten Autoprojekt befolgen.

Wir werden das Bluetooth-Modul HC05 in diesem Projekt nicht verwenden.

Um den Ultraschall-Abstandssensor HC-SR04 am Roboter zu montieren, können Sie die benötigten Teile von herunterladen Link hier und auf dem 3D-Drucker ausdrucken und am Fahrzeug montieren.

Nach dem Zusammenbau des Roboters können Sie Pappkartons verwenden, um das Labyrinth zu bauen. Sie können Wände aus Pappe herstellen oder 3D-gedruckte Wände verwenden, um die Wände mit Heißkleber zu verbinden und so das Labyrinth zu bauen.

 

Registerkarte „Mikroblöcke ausführen“.

MicroBlocks-Codes des Labyrinth-Lösungsroboters

Sie können auf die Microblocks-Codes des Projekts zugreifen, indem Sie das Bild auf die Registerkarte „Microblocks Run“ ziehen oder auf klicken Taste.

 

MicroPython-Codes der PicoBricks

 


vom Maschinenimport-Pin
aus utime import schlaf
Zeit importieren

# Bibliotheken definieren
Trigger = Pin(15, Pin.OUT)
echo = Pin(14, Pin.IN)
# Sensorpins definieren
m1 = Pin(21, Pin.OUT)
m2 = Pin(22, Pin.OUT)
# DC-Motor-Pins definieren
m1.low()
m2.low()

signaloff = 0
signalon = 0

def getDistance():
   trigger.low()
   utime.sleep_us(2)
   trigger.high()
   utime.sleep_us(5)
   trigger.low()
   while echo.value() == 0:
       signaloff = utime.ticks_us()
   while echo.value() == 1:
       signalon = utime.ticks_us()
   timepassed = signalon – signaloff
   Distanz = (verstrichene Zeit * 0,0343) / 2
   Rückweg

# Entfernung berechnen
Maß = 0

während True:
    Measure = int(getDistance())
    drucken (messen)
    wenn Maß > 5:
        m1.high()
        m2.high()
        sleep(1) # Wenn der Abstand größer als 5 ist, fahren die Räder geradeaus
    anders:
        m1.low()
        m2.low()
        Schlaf(0,5)
        m1.high()
        m2.low()
        Schlaf(0,5)
        Measure = int(getDistance())
        wenn Maß < 5:
            m1.low()
            m2.low()
            Schlaf(0,5)
            m1.low()
            m2.high()
            sleep(0.5) # Wenn der Abstand weniger als 5 beträgt, warten Sie und bewegen Sie sich in eine beliebige Richtung. Wenn der Abstand weniger als 5 beträgt, bewegen Sie sich in die entgegengesetzte Richtung

Arduino C-Codes 


#include 
#define TRIGGER_PIN 15
#define ECHO_PIN 14
#define MAX_DISTANCE 400
// Sensorpins definieren
NewPing-Sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);

void setup() {
  pinMode(21, OUTPUT);
  pinMode(22, OUTPUT); // DC-Motor-Pins definieren
}

void loop() {
  Verzögerung(50);
  int distance = sonar.ping_cm();
  Nach vorne();
  if(Abstand < 5){
    Stoppen();
    Verzögerung (1000);
    Biegen Sie rechts ab();
    Verzögerung (1000);
    int distance = sonar.ping_cm();
    if(Abstand < 5){
      Stoppen();
      Verzögerung (1000);
      Biegen Sie links ab();
      Verzögerung (500);
      // Wenn der Abstand weniger als 5 beträgt, warten Sie, biegen Sie rechts ab; Wenn der Abstand erneut weniger als 5 beträgt, bewegen Sie sich in die entgegengesetzte Richtung
    }
  }
}

void Forward(){
  digitalWrite(21, HIGH);
  digitalWrite(22, HIGH); // Wenn der Abstand größer als 5 ist, fahren Sie geradeaus
}

void Turn_Left(){
  digitalWrite(21, LOW);
  digitalWrite(22, HIGH); // Biegen Sie links ab
}

void Turn_Right(){
  digitalWrite(21, HIGH);
  digitalWrite(22, LOW); // Biegen Sie rechts ab
}

void Stop(){
  digitalWrite(21, LOW);
  digitalWrite(22, LOW); // Warten
}

FAQ

Was ist der Algorithmus des Roboters im Labyrinthläufer?

Der Algorithmus des Roboters im Labyrinthläufer beinhaltet typischerweise eine Wegfindungstechnik wie den A*-Algorithmus (A-Stern). Dieser Algorithmus findet effizient den kürzesten Weg durch das Labyrinth, indem er Aspekte der Best-First-Suche und des Dijkstra-Algorithmus kombiniert und dabei zwischen Erkundung und der Entfernung des Ziels abwägt.

Was sind die Vorteile eines Labyrinth-Lösungsroboters?

Zu den Vorteilen eines Labyrinthlösungsroboters gehören verbesserte Fähigkeiten zur Problemlösung, effiziente Navigation in komplexen Umgebungen, die Fähigkeit, aus Erfahrungen zu lernen und sich anzupassen, Potenzial für Such- und Rettungseinsätze sowie die Entwicklung fortschrittlicher Algorithmen, die in verschiedenen Bereichen wie Robotik und KI anwendbar sind und Automatisierung.

Was ist der a*-Labyrinth-Lösungsalgorithmus?

Der A*-Labyrinth-Lösungsalgorithmus ist eine Wegfindungs- und Graph-Traversal-Technik, die zum effizienten Finden des kürzesten Weges durch ein Labyrinth verwendet wird. Es kombiniert Funktionen des Dijkstra-Algorithmus und einer heuristischen Suche wie Greedy Best-First-Search, um die Wegfindung zu optimieren, indem sowohl die Kosten für das Erreichen eines Knotens als auch eine Schätzung der Entfernung zum Ziel berücksichtigt werden.

Vorheriger Beitrag
Nächster Beitrag

Danke fürs Abonnieren!

Diese E-Mail wurde registriert!

Shoppen Sie den Look
Wählen Sie Optionen

Bearbeitungsoption

Benachrichtigung wieder auf Lager

Vergleichen

Produkt ArtikelnummerBewertungBeschreibung Sammlung Verfügbarkeit Produktart Andere Details
this is just a warning
Anmeldung
Einkaufswagen
0 Artikel
Same Day Shipping No Extra Costs
Easy Returns Guarantee Return with Ease
Secure Checkout Secure Payment