Inhaltsverzeichnis:

Wie erstelle ich einen DIY-Arduino-Hindernisvermeidungsroboter zu Hause - Gunook
Wie erstelle ich einen DIY-Arduino-Hindernisvermeidungsroboter zu Hause - Gunook

Video: Wie erstelle ich einen DIY-Arduino-Hindernisvermeidungsroboter zu Hause - Gunook

Video: Wie erstelle ich einen DIY-Arduino-Hindernisvermeidungsroboter zu Hause - Gunook
Video: How to build an autonomous lawn mower; Introduction 2024, November
Anonim
Image
Image

Hallo Leute, In diesem Instructable machen Sie ein Hindernis, das Roboter vermeidet. Dieses Instructable beinhaltet den Bau eines Roboters mit einem Ultraschallsensor, der nahe gelegene Objekte erkennen und ihre Richtung ändern kann, um diese Objekte zu vermeiden. Der Ultraschallsensor wird an einem Servomotor befestigt, der ständig links und rechts nach Objekten im Weg sucht.

Also, ohne weitere Umschweife, los geht's!

Schritt 1: Was Sie in diesem Projekt benötigen:

Was Sie in diesem Projekt benötigen
Was Sie in diesem Projekt benötigen
Was Sie in diesem Projekt benötigen
Was Sie in diesem Projekt benötigen

Hier ist die Teileliste:

1) Arduino Uno

2) Motortreiberschild

3) Getriebemotor, Rahmen und Rädersatz

4) Servomotor

5) Ultraschallsensor

6) Lithium-Ionen-Akku (2x)

7) Batteriehalter

8) Männlicher und weiblicher Überbrückungsdraht

9) Lötkolben

10) Ladegerät

Schritt 2: Schaltplan

Schaltplan
Schaltplan

Arbeiten:

Bevor Sie mit der Arbeit an dem Projekt beginnen, ist es wichtig zu verstehen, wie der Ultraschallsensor funktioniert. Das Grundprinzip der Funktionsweise des Ultraschallsensors ist wie folgt:

Mit einem externen Triggersignal wird der Trig-Pin des Ultraschallsensors für mindestens 10 µs auf logisch hoch gesetzt. Ein Schallimpuls vom Sendermodul wird gesendet. Dieser besteht aus 8 Impulsen von 40KHz.

Die Signale kehren nach dem Auftreffen auf eine Oberfläche zurück und der Empfänger erkennt dieses Signal. Der Echo-Pin ist ab dem Zeitpunkt des Sendens des Signals und des Empfangens hoch. Diese Zeit kann durch entsprechende Berechnungen in Entfernung umgerechnet werden.

Das Ziel dieses Projekts ist es, einen Roboter mit Ultraschallsensor und Arduino zu implementieren, der Hindernisse ausweicht. Alle Anschlüsse erfolgen nach Schaltplan. Im Folgenden wird die Arbeitsweise des Projekts erläutert.

Wenn der Roboter eingeschaltet ist, laufen beide Motoren des Roboters normal und der Roboter bewegt sich vorwärts. Während dieser Zeit berechnet der Ultraschallsensor kontinuierlich den Abstand zwischen Roboter und reflektierender Oberfläche.

Diese Informationen werden vom Arduino verarbeitet. Wenn der Abstand zwischen dem Roboter und dem Hindernis weniger als 15 cm beträgt, stoppt der Roboter und scannt mit Servomotor und Ultraschallsensor nach links und rechts nach der neuen Entfernung. Wenn der Abstand zur linken Seite größer ist als der zur rechten Seite, bereitet sich der Roboter auf eine Linkskurve vor. Aber zuerst fährt es ein wenig zurück und aktiviert dann den linken Radmotor in umgekehrter Richtung.

Wenn der rechte Abstand größer ist als der linke Abstand, bereitet der Roboter eine Rechtsdrehung vor. Dieser Vorgang dauert ewig und der Roboter bewegt sich weiter, ohne auf ein Hindernis zu stoßen.

Schritt 3: Programmierung von Arduino UNO

#enthalten

#enthalten

#enthalten

# TRIG_PIN A1 definieren

# ECHO_PIN A0 definieren

# MAX_DISTANCE 200. definieren

# define MAX_SPEED 255 // Setzt die Geschwindigkeit von DC-Motoren

# definiere MAX_SPEED_OFFSET 20

NewPing-Sonar (TRIG_PIN, ECHO_PIN, MAX_DISTANCE);

AF_DCMotor motor3(3, MOTOR34_1KHZ);

AF_DCMotor motor4(4, MOTOR34_1KHZ); Servo-Myservo;

boolean goesForward = false;

int-Abstand = 100; int speedSet = 0;

Leere Einrichtung () {

myservo.attach(10);

myservo.write(115); Verzögerung (2000); Abstand = readPing(); Verzögerung (100); Abstand = readPing(); Verzögerung (100); Abstand = readPing(); Verzögerung (100); Abstand = readPing(); Verzögerung (100); }

Leere Schleife () {

int-AbstandR = 0; int-AbstandL = 0; Verzögerung (40);

if (Abstand <= 15) { moveStop(); Verzögerung (100); rückwärts bewegen(); Verzögerung (300); moveStop(); Verzögerung (200); distanceR = lookRight(); Verzögerung (200); AbstandL = lookLeft(); Verzögerung (200);

if (AbstandR >= AbstandL) {

Biegen Sie rechts ab(); moveStop(); aufrechtzuerhalten. Sonst { turnLeft(); moveStop(); } } sonst { moveForward(); } Abstand = readPing(); }

int lookRight() {

myservo.write(50); Verzögerung (500); int-Abstand = readPing(); Verzögerung (100); myservo.write(115); Rückweg; }

int lookLeft() {

myservo.write(170); Verzögerung (500); int-Abstand = readPing(); Verzögerung (100); myservo.write(115); Rückweg; Verzögerung (100); }

int readPing() {

Verzögerung (70); int cm = sonar.ping_cm(); wenn (cm == 0) {cm = 250; } zurück cm; }

void moveStop() {

motor3.run (FREIGABE);

motor4.run (FREIGABE); }

void moveForward() {

if (!goesForward) {

gehtForward = wahr;

motor3.run (FOWARD);

motor4.run (FOWARD); for (speedSet = 0; speedSet < MAX_SPEED; speedSet += 2) // langsam die Geschwindigkeit erhöhen, um die Batterien nicht zu schnell zu entladen {

motor3.setSpeed (speedSet);

motor4.setSpeed (speedSet); Verzögerung(5); } } }

void moveBackward() {

gehtForward = false;

motor3.run (RÜCKWÄRTS);

motor4.run (RÜCKWÄRTS); for (speedSet = 0; speedSet < MAX_SPEED; speedSet += 2) // langsam die Geschwindigkeit erhöhen, um die Batterien nicht zu schnell zu entladen {

motor3.setSpeed (speedSet);

motor4.setSpeed (speedSet); Verzögerung(5); } }

void turnRight() {

motor3.run (FOWARD);

motor4.run (RÜCKWÄRTS); Verzögerung (500);

motor3.run (FOWARD);

motor4.run (FOWARD); }

void turnLeft() {

motor3.run (RÜCKWÄRTS);

motor4.run (FOWARD); Verzögerung (500);

motor3.run (FOWARD);

motor4.run (FOWARD); }

1) Laden Sie die Arduino Desktop-IDE herunter und installieren Sie sie

  • Windows -
  • Mac OS X -
  • Linux -

2) Laden Sie die NewPing-Bibliotheksdatei (Ultraschallsensorfunktionsbibliothek) herunter und fügen Sie sie in den Arduino-Bibliotheksordner ein.

  1. Laden Sie die NewPing.rar unten herunter
  2. Extrahieren Sie es in den Pfad - C:\Arduino\libraries

3) Laden Sie den Code über ein USB-Kabel auf das Arduino-Board hoch

Download-Code:

Schritt 4: Großartig

Jetzt ist Ihr Roboter bereit, jedem Hindernis auszuweichen…

Fragen beantworte ich gerne

E-Mail an mich: [email protected]

Website:

Abonniere meinen YouTube-Kanal:

Instagram:

Facebook:

Danke schön:)

Empfohlen: