Inhaltsverzeichnis:

Ultraschallvermeidungsroboter mit Arduino - Gunook
Ultraschallvermeidungsroboter mit Arduino - Gunook

Video: Ultraschallvermeidungsroboter mit Arduino - Gunook

Video: Ultraschallvermeidungsroboter mit Arduino - Gunook
Video: DIY Radar With Ultrasonic Sensor And Chat-GPT Generated Arduino Code | Coders Cafe 2024, November
Anonim
Image
Image
Ultraschallvermeidungsroboter mit Arduino
Ultraschallvermeidungsroboter mit Arduino

In diesem Tutorial zeige ich Ihnen, wie Sie Ihren eigenen Hindernisvermeidungsroboter bauen können! Wir werden das Arduino UNO Board und einen Ultraschallsensor verwenden. Erkennt der Roboter ein Objekt vor ihm, scannt er mit Hilfe eines kleinen Servomotors den Bereich links und rechts ab, um die beste Abbiegemöglichkeit zu finden. Es hat auch eine Benachrichtigungs-LED, einen Summer, der einen Ton abspielt, wenn ein Objekt erkannt wird, und eine Taste zum Ändern der Funktion des Roboters (angehalten/vorwärts bewegen).

Es ist ganz einfach, es zu machen!

Schritt 1: Dinge, die gemacht werden müssen

Dinge, die Sie machen müssen!
Dinge, die Sie machen müssen!
Dinge, die Sie machen müssen!
Dinge, die Sie machen müssen!
Dinge, die Sie machen müssen!
Dinge, die Sie machen müssen!
Dinge, die Sie machen müssen!
Dinge, die Sie machen müssen!

Für dieses Projekt benötigen Sie:

  1. Arduino UNO (bei Gearbest.com kaufen)
  2. Mini-Steckbrett (bei Gearbest.com kaufen)
  3. L298-Motortreibermodul (bei Gearbest.com kaufen)
  4. 2x Gleichstrommotoren mit Rädern HC-SR04 Ultraschallsensor (bei Gearbest.com kaufen)
  5. Mikro-Servomotor (bei Gearbest.com kaufen)
  6. Taste Rote LED220 Ohm Widerstand9V Batteriehalter (mit oder ohne Strombuchse)
  7. 8 Distanzstücke (männlich-weiblich),
  8. 8 Muttern und 8 Schrauben benötigen Sie auch eine große (Metall)

Büroklammer und eine Wulst, um das hintere Stützrad zu machen.

Für die Roboterbasis habe ich ein Acryllic Chasis von Aliexpress verwendet. Sie können auch ein Stück Holz oder Metall (oder zwei elektrische Platten) verwenden.

Die Kosten für das gesamte Projekt betragen etwa 20 $

Werkzeuge: Bohrmaschine Sekundenkleber Crew-Fahrer Heißkleber (optional) Leistung:

Wir verwenden eine 9V-Batterie, um unseren Roboter mit Strom zu versorgen, da er klein und billig ist, aber nicht sehr leistungsstark und nach etwa einer Stunde leer ist. Überlegen Sie, ob Sie einen wiederaufladbaren Akku (min. 6 V, max. 7 V) verwenden möchten, der leistungsstärker, aber auch teurer und größer als der 9-V-Akku ist

Schritt 2: Konzepte verstehen

Konzepte verstehen
Konzepte verstehen
Konzepte verstehen
Konzepte verstehen
Konzepte verstehen
Konzepte verstehen

Ziel ist es, den Roboter auf Hindernisse vor ihm aufmerksam zu machen, damit er die Richtung ändern und ihnen ausweichen kann. Im vorherigen Artikel haben wir den Roboter bewegt – jetzt geben wir ihm etwas Autonomie.

Ultraschallsensor

Der HC-SR04 ist ein Schaltkreis, der mithilfe von Ultraschallwellen eine Entfernung zu Objekten von bis zu 4 Metern messen kann. Es sendet einen Ping (wie ein U-Boot) und misst die Zeit (in Mikrosekunden) zwischen dem Senden und Empfangen von etwas zurück. Diese Zeit wird dann durch 2 geteilt, während sich die Welle hin und her bewegt. Und dann durch 29 dividieren, um eine Entfernung in Zentimetern (oder 74 für Zoll) zu erhalten, da der Schall 29,4 µs pro Zentimeter (340 m/s) zurücklegt. Der Sensor ist mit ~3 mm Toleranz sehr genau und lässt sich leicht in Arduino integrieren.

Schnittstelle des Ultraschallsensors mit dem AVR-Mikrocontroller

Jeder autonome Roboter sollte über eine Hindernisvermeidung und einen angebrachten Distanzmesssensor verfügen. Ein IR-Transceiver-Paar oder ein Graustufensensor können problemlos für die Hinderniserkennung im Bereich von 1 cm bis 10 cm arbeiten. IR-Entfernungsmesser (zB scharfe) können eine Entfernung zum nächsten Hindernis mit einer Reichweite von bis zu 100cm messen. IR-Sensoren werden jedoch durch Sonnenlicht und andere Lichtquellen beeinträchtigt. IR-Entfernungsmesser haben eine geringere Reichweite und sind auch teuer für das, was sie tun. Ultraschallsensoren (auch als Ultraschall-Näherungssensoren oder Sonar für die Geeks bekannt) erledigen diese Aufgaben zu einem vernünftigen Preis und mit außergewöhnlicher Genauigkeit. Der Bereich liegt zwischen 3 cm und 350 cm mit einer Genauigkeit von ~ 3 mm. Wenn Sie einen dieser Ultraschallsensoren in unseren Roboter einbinden, kann er sowohl als Hindernisvermeider als auch als Distanzmesssensor fungieren.

„Ultraschall“bezieht sich auf alles, was über den Frequenzen des hörbaren Schalls liegt und umfasst nominell alles über 20.000 Hz oder 20 kHz! Preisgünstige Ultraschallsensoren für die Robotik arbeiten im Allgemeinen in einem Bereich von 40 kHz bis 250 kHz, während diejenigen, die in medizinischen Geräten verwendet werden, bis zu 10 MHz reichen.

Schritt 3: Benötigte Werkzeuge

Werkzeuge benötigt
Werkzeuge benötigt
Werkzeuge benötigt
Werkzeuge benötigt
Werkzeuge benötigt
Werkzeuge benötigt
Werkzeuge benötigt
Werkzeuge benötigt
  1. Multimeter
  2. Steckbrett
  3. Spitzzange
  4. Abisolierzange
  5. Kabelschneider
  6. Klebepistole

MultimeterEin Multimeter ist eigentlich ein einfaches Gerät, das hauptsächlich verwendet wird, um Spannung und Widerstand zu messen und festzustellen, ob ein Stromkreis geschlossen ist. Ähnlich wie beim Debuggen von Computercode hilft Ihnen das Multimeter beim „Debuggen“Ihrer elektronischen Schaltungen.

Baumaterial

Ein leicht verfügbarer Vorrat an dünnem Holz und/oder Plexiglas zur Herstellung des mechanischen Rahmens ist sehr nützlich. Metalle wie Aluminium und Stahl sind oft auf diejenigen beschränkt, die Zugang zu einer Maschinenwerkstatt haben, obwohl dünnes Aluminium mit einer Schere geschnitten und von Hand gebogen werden kann. Mechanische Rahmen können sogar aus Haushaltsgegenständen wie Kunststoffbehältern gebaut werden.

Obwohl auch andere Materialien wie Kunststoffe (außer Plexiglas) oder exotischere Materialien wie Glasfaser und Kohlefaser möglich sind, werden sie in dieser Anleitung nicht berücksichtigt. Mehrere Hersteller haben festgestellt, dass es für die meisten Bastler nicht einfach ist, ihre eigenen mechanischen Teile herzustellen, und haben modulare mechanische Teile entwickelt. Führend in diesem Bereich ist Lynxmotion, das eine breite Palette von Roboterdesigns sowie die erforderlichen Teile für die Herstellung Ihrer eigenen kundenspezifischen Roboter anbietet.

Handwerkzeuge

Schraubendreher und Zangen verschiedener Typen und Größen (einschließlich Juwelier-Werkzeugset: kleine Schraubendreher, die üblicherweise in Dollar-Läden erhältlich sind) sind erforderlich. Wichtig ist auch ein Bohrer (vorzugsweise eine Bohrmaschine für gerade Löcher). Eine Handsäge zum Schneiden von Baumaterialien (oder eine Oberfräse) ist ebenfalls ein wichtiger Vorteil. Wenn das Budget es zulässt, ist eine kleine Tischbandsäge (200 USD) definitiv ein Werkzeug, das Sie in Betracht ziehen sollten.

Lötfreies Steckbrett

Mit einem lötfreien Steckbrett können Sie Ihr Layout optimieren und Komponenten problemlos anschließen. Zusammen mit einem lötfreien Steckbrett sollten Sie ein vorgeformtes Überbrückungskabel-Kit kaufen, das aus vorgeschnittenen und gebogenen Drähten besteht, die mit einem lötfreien Steckbrett verwendet werden sollen. Das macht Verbindungen sehr einfach.

Kleines Schraubendreher-Set

Diese kleinen Schraubendreher werden bei der Arbeit mit Elektronik benötigt. Zwinge sie jedoch nicht zu sehr – ihre Größe macht sie zerbrechlicher.

Normales Schraubendreher-Set

Alle Werkstätten benötigen ein Multitool oder ein Werkzeugset, das flache / Phillips- und andere Schraubendreherköpfe enthält.

Spitzzange

Ein Satz Spitzzangen ist unglaublich nützlich bei der Arbeit mit kleinen Komponenten und Teilen und ist eine sehr kostengünstige Ergänzung Ihres Werkzeugkastens. Diese unterscheiden sich von normalen Zangen dadurch, dass sie an einen Punkt kommen, der in kleine Bereiche gelangen kann.

Abisolierzangen/Schneider

Sie planen, beliebige Drähte zu durchtrennen, eine Abisolierzange erspart Ihnen viel Zeit und Mühe. Eine Abisolierzange entfernt bei sachgemäßer Anwendung nur eine Kabelisolierung und verursacht keine Knicke oder Beschädigungen der Leiter. Die andere Alternative zu einer Abisolierzange ist eine Schere, obwohl das Endergebnis unordentlich sein kann. Schere, Lineal, Kugelschreiber, Markerstift, Exacto-Messer (oder ein anderes Handschneidewerkzeug) Diese sind in jedem Büro unverzichtbar.

Schritt 4: Cocepts zum Codieren von AVR

Cocepts zum Codieren von AVR
Cocepts zum Codieren von AVR

Berechnung der Schallgeschwindigkeit relativ zu Ultraschallsensoren

Kleine Mathematik, aber keine Angst. Es ist einfacher als Sie denken.

Schallgeschwindigkeit in trockener Luft bei Raumtemperatur (~20°C) = 343 Meter/Sekunde

Damit die Schallwelle auf das nahe gelegene Objekt trifft und eine Hin- und Rückfahrt macht = 343/2 = 171,5 m/da die maximale Reichweite eines billigen Ultraschallsensors nicht mehr als 5 Meter beträgt (Hin- und Rückweg), wäre es sinnvoller, ändern Sie die Einheiten in Zentimeter und Mikrosekunden.

1 Meter = 100 Zentimeter1 Sekunde = 10^6 Mikrosekunden = (s / 171,5) x (m / 100 cm) x ((1x10^6)/s) = (1/171,5) x (1/100) x (1000000/ 1) = 58,30903790087464 us/cm = 58,31 us/cm (auf zwei Stellen runden, um die Berechnung zu erleichtern)Daher beträgt die Zeit, die ein Impuls benötigt, um zu einem Objekt zu wandern und 1 Zentimeter zurückzuprallen, 58,31 Mikrosekunden.

der kleine Hintergrund zu AVR-Taktzyklen

Um die AVR-Taktzyklen zu verstehen, braucht es ein ganz anderes Kapitel, aber wir werden kurz verstehen, wie es funktioniert, um unsere Berechnungen zu vereinfachen

Für unser Beispiel verwenden wir das AVR Draco Board mit einem 8-Bit AVR – Atmega328P Mikrocontroller. Der Einfachheit halber werden wir die Einstellungen eines Mikrocontrollers nicht optimieren. Keine Sicherungsbits berührt; Kein externer Kristall angebracht; Keine Kopfschmerzen. In der Werkseinstellung läuft es auf einem internen 8-MHz-Oszillator mit einem /8-Prescaler; Wenn Sie dies alles nicht verstehen, bedeutet dies einfach, dass der Mikrocontroller mit einem internen 1-MHz-RC-Oszillator läuft und jeder Taktzyklus 1 Mikrosekunde dauert.

1 2 1MHz = von 1000000 Zyklen pro Sekunde Daher 1s/1000000 = 1/1000000 = 1us

AVR-Uhren und Entfernungsumrechnung

Wir sind fast da! Sobald wir wissen, wie man AVR-Taktzyklen in die von Schallwellen zurückgelegte Entfernung umwandelt, ist die Implementierung der Logik in ein Programm einfach.

Wir wissen, dass die Geschwindigkeit des Ultraschalls in einer idealen Umgebung beträgt: 58,31 us/cm

Wir wissen, dass die Auflösung des AVR-Mikrocontrollers 1 us/Taktzyklus (CLK) beträgt.

Daher beträgt die vom Schall zurückgelegte Strecke pro Taktzyklus (CLK):

1 2 3 = (58,31 us/cm) x (1us/clk) = 58,31 Taktzyklen / cm oder = 1/58,31 cm/clk

Wenn die Anzahl der Taktzyklen bekannt ist, die der Schall benötigt, um sich fortzubewegen und zurückzuprallen, können wir die Entfernung leicht berechnen. Wenn der Sensor beispielsweise 1000 Taktzyklen braucht, um sich zu bewegen und zurückzuprallen, dann beträgt der Abstand von einem Sensor zum nächsten Objekt = 1000/58,31 = 17,15 cm (ca.)

Macht jetzt alles Sinn? Nein? Lies es nochmals

Wenn Ihnen die oben genannte Logik klar ist, werden wir sie in einem realen Szenario implementieren, indem wir einen kostengünstigen HC-SR04-Ultraschallsensor an unser AVR-Arduino-Board anschließen.

Schritt 5: Hardwareverbindungen:

Hardware-Anschlüsse
Hardware-Anschlüsse
Hardware-Anschlüsse
Hardware-Anschlüsse
Hardware-Anschlüsse
Hardware-Anschlüsse
Hardware-Anschlüsse
Hardware-Anschlüsse

Arduino Board macht es einfach, beliebige externe Sensoren anzuschließen und die Ergebnisse auch auf dem LCD anzuzeigen. Für die Ultraschall-Entfernungsmessung verwenden wir ein kostengünstiges HC-SR04-Modul. Das Modul hat 4 Pins, die an die Mikrocontrollerplatine angeschlossen werden können: VCC, TRIG, ECHO und GND.

Verbinden Sie den VCC-Pin mit 5V und den GND-Pin mit Masse auf der Arduino-Platine.

TRIG-Pin und ECHO-Pin können mit allen verfügbaren Pins auf der Platine verbunden werden. Das Senden von mindestens 10us „high“-Signal an den Trigger-Pin sendet acht 40-kHz-Schallwellen und zieht den Echo-Pin hoch. Wenn der Schall von einem nahegelegenen Objekt abprallt und zurückkehrt, wird er vom Empfangswandler erfasst und der Echostift wird auf „low“gezogen.

Andere Varianten von Ultraschall-Sensormodulen sind auch mit nur 3 Pins erhältlich. Das Funktionsprinzip ist immer noch das gleiche, aber die Funktionalität von Trigger- und Echo-Pins sind in einem einzigen Pin zusammengefasst.

Nach dem Anschließen können Trigger- und Echo-Pins per Software konfiguriert werden. Um dieses Beispiel einfach zu halten, verwenden wir in diesem Beispiel keine Interrupt-Pins (oder Input Capture Pin). Wenn wir keine bestimmten Interrupt-Pins verwenden, haben wir auch die Freiheit, das Modul mit allen verfügbaren Pins auf der Platine zu verbinden.

Schritt 6: Code

CodeDer folgende Code enthält nur eine „Ultraschall“-Erweiterung zur DC-Motorsteuerung mit einer H-Brücke aus dem vorherigen Artikel. Wenn der Roboter ein Hindernis vor sich erkennt, dreht er sich um (zufälliger Grad) und bewegt sich weiter vorwärts. Diese Funktionalität könnte leicht erweitert werden, um sich gleichzeitig zu drehen und Hindernisse zu erkennen – der Roboter würde sich also nicht zufällig drehen, sondern nur dann vorwärts fahren, wenn kein Objekt erkannt wird.

Für Code-Erläuterungen siehe Youtube-Video, das auf dem Kanal aufgeführt ist.

Schritt 7: Video

Sehen Sie sich das Video für den gesamten Prozess an.

Empfohlen: