Inhaltsverzeichnis:

Gestengesteuerter Roboter mit Arduino - Gunook
Gestengesteuerter Roboter mit Arduino - Gunook

Video: Gestengesteuerter Roboter mit Arduino - Gunook

Video: Gestengesteuerter Roboter mit Arduino - Gunook
Video: Fischertechnik BBC Buggy mit Arduino Mega und Liniensensor im Labyrinth 2024, Juni
Anonim
Gestengesteuerter Roboter mit Arduino
Gestengesteuerter Roboter mit Arduino

Roboter werden in vielen Bereichen wie Bauwesen, Militär, Fertigung, Montage usw. eingesetzt. Roboter können autonom oder halbautonom sein. Autonome Roboter benötigen kein menschliches Eingreifen und können je nach Situation selbstständig agieren. Teilautonome Roboter arbeiten nach Anweisungen des Menschen. Diese halbautonomen können per Fernbedienung, Telefon, Gesten usw. gesteuert werden. Wir haben zuvor einige IoT-basierte Roboter gebaut, die über den Webserver gesteuert werden können.

Im heutigen Artikel werden wir einen gestengesteuerten Roboter mit Arduino, MPU6050 Beschleunigungsmesser, nRF24L01 Transceiver-Paar und L293D-Motortreibermodul bauen. Wir werden diesen Roboter in zwei Teile konstruieren. Einer ist der Sender und der andere ist der Empfänger. Der Senderabschnitt besteht aus einem Arduino Uno, einem MPU6050-Beschleunigungsmesser und einem Gyroskop und nRF24L01, während der Empfängerabschnitt aus einem Arduino Uno, nRF24L01, zwei Gleichstrommotoren und einem L293D-Motortreiber besteht. Der Sender fungiert als Fernbedienung, um den Roboter zu steuern, wobei sich der Roboter gemäß den Gesten bewegt.

Schritt 1: Erforderliche Komponenten

Erforderliche Komponenten
Erforderliche Komponenten
Erforderliche Komponenten
Erforderliche Komponenten
  • Arduino Uno (2)
  • NRF24L01 (2)
  • MPU6050DC-Motor (2)
  • L293D Motortreibermodul
  • Teig

MPU6050 Beschleunigungsmesser und Gyroskop Das MPU6050 Sensormodul ist ein komplettes 6-Achsen (3-Achsen Beschleunigungsmesser und 3-Achsen Gyroskop) mikroelektromechanisches System. Das Sensormodul MPU6050 verfügt außerdem über einen Temperatursensor auf dem Chip. Es verfügt über einen I2C-Bus und eine zusätzliche I2C-Bus-Schnittstelle, um mit den Mikrocontrollern und anderen Sensorgeräten wie 3-Achsen-Magnetometer, Drucksensor usw. zu kommunizieren. Das MPU6050-Sensormodul wird verwendet, um Beschleunigung, Geschwindigkeit, Orientierung, Verschiebung und einige andere Bewegungen zu messen -bezogene Parameter. Dieses Sensormodul verfügt außerdem über einen eingebauten digitalen Bewegungsprozessor, der komplexe Berechnungen durchführen kann.

NRF24L01 Transceiver-Modul

nRF24L01 ist ein Single-Chip-Funk-Transceiver für das weltweite 2,4 - 2,5 GHz ISM-Band. Der Transceiver besteht aus einem vollständig integrierten Frequenzsynthesizer, einem Leistungsverstärker, einem Quarzoszillator, einem Demodulator, einem Modulator und einer Enhanced ShockBurs Protocol Engine. Ausgangsleistung, Frequenzkanäle und Protokoll-Setup sind einfach über eine SPI-Schnittstelle programmierbar. Der Betriebsspannungsbereich dieses Transceiver-Moduls beträgt 1,9 V bis 3,6 V. Es verfügt über integrierte Power-Down- und Standby-Modi, die es energiesparend und leicht realisierbar machen.

Schritt 2: Arbeiten des handgestengesteuerten Roboters mit Arduino

Funktionsweise eines handgestengesteuerten Roboters mit Arduino
Funktionsweise eines handgestengesteuerten Roboters mit Arduino
Funktionsweise eines handgestengesteuerten Roboters mit Arduino
Funktionsweise eines handgestengesteuerten Roboters mit Arduino

Um die Funktionsweise dieses Arduino-Gestensteuerungsautos zu verstehen, teilen wir dieses Projekt in zwei Teile auf. Der erste Teil ist der Senderteil (Remote), in dem der Beschleunigungssensor MPU6050 kontinuierlich Signale über Arduino und nRF-Sender an den Empfänger (Roboter) sendet.

Der zweite Teil ist der Empfängerteil (Roboterauto), in dem der nRF-Empfänger die übertragenen Daten empfängt und an Arduino sendet, der sie weiterverarbeitet und den Roboter entsprechend bewegt.

Der Beschleunigungssensor MPU6050 liest die XYZ-Koordinaten und sendet die Koordinaten an den Arduino. Für dieses Projekt benötigen wir nur X- und Y-Koordinaten. Arduino überprüft dann die Koordinatenwerte und sendet die Daten an den nRF-Sender. Die übertragenen Daten werden vom nRF-Empfänger empfangen. Der Empfänger sendet die Daten an das Arduino der Empfängerseite. Arduino übergibt die Daten an den Motortreiber-IC und der Motortreiber dreht die Motoren in die gewünschte Richtung.

Schritt 3: Schaltplan

Schaltplan
Schaltplan
Schaltplan
Schaltplan

Dieser Handgesten-gesteuerte Roboter mit Arduino-Hardware ist in zwei Abschnitte unterteilt

  1. Sender
  2. Empfänger

Schritt 4: Senderschaltung für Arduino Gestengesteuertes Auto

Senderschaltung für Arduino Gestengesteuertes Auto
Senderschaltung für Arduino Gestengesteuertes Auto
Senderschaltung für Arduino Gestengesteuertes Auto
Senderschaltung für Arduino Gestengesteuertes Auto
Senderschaltung für Arduino Gestengesteuertes Auto
Senderschaltung für Arduino Gestengesteuertes Auto

Der Senderabschnitt dieses Projekts besteht aus MPU6050 Beschleunigungsmesser und Gyroskop, nRF24L01Transceiver und Arduino Uno. Der Arduino erhält kontinuierlich Daten vom MPU6050 und sendet diese Daten an den nRF-Sender. RF-Sender überträgt die Daten in die Umgebung.

Schritt 5: Empfängerschaltung für Arduino Gestengesteuertes Auto

Empfängerschaltung für Arduino Gestengesteuertes Auto
Empfängerschaltung für Arduino Gestengesteuertes Auto
Empfängerschaltung für Arduino Gestengesteuertes Auto
Empfängerschaltung für Arduino Gestengesteuertes Auto
Empfängerschaltung für Arduino Gestengesteuertes Auto
Empfängerschaltung für Arduino Gestengesteuertes Auto

Die Empfängersektion dieses gestengesteuerten Roboters besteht aus Arduino Uno, nRF24L01 Transceiver, 2 DC-Motoren und einem Motortreibermodul. Der Empfänger NRF24L01 empfängt die Daten vom Sender und sendet sie an Arduino. Dann bewegt Arduino entsprechend den empfangenen Signalen die DC-Motoren.

Schritt 6: Programmerklärung

Für gestengesteuerte Roboter mit Arduino ist der vollständige Code hier verfügbar. Nachfolgend erklären wir das Programm Zeile für Zeile.

Senderseitiges Programm

In diesem Programm liest Arduino die Daten von MPU6050 und sendet sie an den Sender nRF 24L01.

1. Starten Sie das Programm, indem Sie die erforderlichen Bibliotheksdateien hinzufügen. Sie können die Bibliotheksdateien über die angegebenen Links herunterladen.

SPI.h

nRF24L01.h

Wire.h

MPU6050.h

2. Definieren Sie dann die Variablen für die Daten des MPU6050 Gyroskops und des Beschleunigungsmessers. Hier werden nur Beschleunigungsmesserdaten verwendet.

3. Definieren Sie die Radio-Pipe-Adressen für die CN- und CSN-Pins der Kommunikations- und nRF-Sender.

4. Starten Sie in der Funktion void setup() den seriellen Monitor. Und initialisieren Sie auch die Draht- und Funkkommunikation. Mit radio.setDataRate wird die Datenübertragungsrate eingestellt.

5. Lesen Sie die MPU6050-Sensordaten aus. Hier verwenden wir nur Beschleunigungsmesserdaten in X- und Y-Richtung.

6. Übertragen Sie abschließend die Sensordaten mit der Funktion radio.write.

Empfängerseitiges Programm

1. Starten Sie das Programm wie gewohnt, indem Sie die benötigten Bibliotheksdateien einbinden.

2. Definieren Sie die Radio-Pipe-Adressen für die CN- und CSN-Pins der Kommunikations- und nRF-Sender.

3. Definieren Sie die linken und rechten DC-Motorpins.

4. Prüfen Sie nun, ob das Radio verfügbar ist oder nicht. Wenn ja, lesen Sie die Daten.

5. Vergleichen Sie nun die empfangenen Daten und fahren Sie die Motoren entsprechend den Bedingungen.

Schritt 7: Testen des handgestengesteuerten Roboters mit Arduino

Sobald die Hardware fertig ist, verbinden Sie die Arduinos der Sender- und Empfängerseite mit Ihrem Laptop und laden Sie den Code hoch. Bewegen Sie dann den Beschleunigungsmesser MPU6050, um das Roboterauto zu steuern.

Die komplette Funktionsweise des Gestengesteuerten Roboters finden Sie im Video.

Empfohlen: