Inhaltsverzeichnis:
- Schritt 1: Komponentenliste
- Schritt 2: Gehirn des Projekts - ESP8266-Entwicklungsboard (Wemos D1 Mini)
- Schritt 3: Motortreiber - L293d
- Schritt 4: PCF8574 - ein I/O-Port-Expander
- Schritt 5: Schaltpläne
- Schritt 6: Code
Video: Wi-Fi-gesteuerter 4-Rad-Roboter - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:20
Für dieses Projekt entwickeln wir einen 4-Rad-Roboter mit ESP8266, der über ein Wi-Fi-Netzwerk gesteuert wird. Der Roboter kann über einen gewöhnlichen Internetbrowser, über eine HTML-Schnittstelle oder auch über eine mobile Android-Anwendung gesteuert werden. Der ESP8266-Chip ist ein leistungsstarker und günstiger Mikrocontroller, der nicht nur einfach zu bedienen ist, sondern auch über eine integrierte Wi-Fi-Konnektivität verfügt. Dies ist genau der perfekte Chip, um Roboter von Ihrem Computer oder Mobilgerät aus fernzusteuern.
Um diesen Chip in unser Projekt zu integrieren, können wir eine Vielzahl von Entwicklungsboards verwenden, die auf diesem Mikrocontroller basieren.
1. Adafruit Feather Huzzah - Es wird von Adafruit hergestellt und hat leicht verfügbare Anweisungen und Unterstützung. Es hat ein Li-Po-Ladegerät auf der Platine selbst, so dass es bei tragbaren Projekten sehr praktisch ist.
2. NodeMCU ESP8266 - Das Board ist Open Source und verfügt über eine hervorragende Dokumentation, sodass der Einstieg sehr einfach ist.
3. Sparkfun ESP8266 - Es ist wie der Huzzah mit einem Netzschalter und einer externen Antenne für eine längere WLAN-Reichweite.
4. Wemos D1 Mini - Es ist das kleinste aller Boards, aber dies hat keinen Einfluss auf die Leistung.
Für mein Projekt verwende ich Wemos D1 Mini, um einen Wi-Fi-gesteuerten 4-Rad-Roboter zu erstellen. Sie können jedoch jedes ESP8266-Entwicklungsboard verwenden und denselben Arduino-Code verwenden, ohne dass Änderungen erforderlich sind. Ich habe eine Platine für dieses Projekt entworfen, aber Sie können eine Punktplatine verwenden, um die Schaltung zu implementieren oder sogar Ihre eigene Platine zu entwerfen.
Und wir werden das 4WD-Roboter-Chassis-Kit verwenden, wie im obigen Bild gezeigt, da es ideal für Heimwerker ist und das wirtschaftlichste Roboter-Auto-Kit mit einfacher mechanischer Struktur ist.
Merkmale dieses Kits:-
1. Kommt mit vier separaten BO-Kunststoffmotoren mit Getriebe, es ist gut für die Manövrierfähigkeit.
2. Großes, robustes Acryl-Chassis ermöglicht eine große Erweiterbarkeit für Heimwerker.
3. Smart Car Chassis-Kit mit Allradantrieb. Sehr einfach zu installieren, fügen Sie einfach einen Mikrocontroller (wie Arduino) und Sensormodule hinzu, um einen vollständig autonomen Roboter zu bauen
Schritt 1: Komponentenliste
Wemos D1 Mini [Anzahl – 1]
L293d Motortreiber-IC [Anzahl – 2]
PCF8574 Port-Expander-IC [Anzahl – 1]
12V Lithium-Ionen-Akku [Anzahl – 1]
WLAN-gesteuerte Roboterplatine [Anzahl – 1]
4WD Robot Smart Car Chassis Kit [Anzahl – 1]
Schritt 2: Gehirn des Projekts - ESP8266-Entwicklungsboard (Wemos D1 Mini)
Wemos D1 Mini ist ein Mini-WLAN-Entwicklungsboard mit 4 MB Flash basierend auf dem ESP-8266-Chip.
- Hat 11 digitale Input/Output-Pins, alle Pins haben Interrupt/Pwm/I2C/One-Wire-Unterstützung (außer D0)
- Hat 1 analogen Eingang (3,2 V max. Eingang)
- Verfügt über einen Micro-USB-Anschluss zur Programmierung sowie eine Stromversorgung.
Dieses Board basiert auf ESP8266 und ist daher Arduino IDE-kompatibel, daher kann es mit Arduino oder auch mit dem Lua-Compiler programmiert werden. Es unterstützt auch sowohl die serielle als auch die OTA-Programmierung.
Wir werden das Wemos D1 Mini mit Arduino IDE programmieren. Um das Board mit der Arduino IDE zu programmieren, müssen folgende Voraussetzungen erfüllt sein.
Erfordernis:-
- CH340G-Treiber
- Installieren Sie die neueste Arduino-IDE von der Arduino-Website.
- Ein Micro-USB-Kabel zum Programmieren
Nach der Installation des Treibers und der Arduino-Software müssen Sie "Arduino Core for ESP8266 WiFi Chip" in der Arduino IDE installieren, damit wir den ESP8266-Chip aus der Arduino-Umgebung programmieren können. Mit diesem ESP8266 Arduino-Kern können Sie Skizzen mit bekannten Arduino-Funktionen und -Bibliotheken schreiben und direkt auf dem ESP8266 ausführen, ohne dass ein externer Mikrocontroller erforderlich ist.
Der ESP8266 Arduino Core wird mit Bibliotheken geliefert, um über WLAN mit TCP und UDP zu kommunizieren, HTTP-, mDNS-, SSDP- und DNS-Server einzurichten, OTA-Updates durchzuführen, ein Dateisystem im Flash-Speicher zu verwenden, mit SD-Karten, Servos, SPI- und I2C-Peripheriegeräten zu arbeiten.
Laden Sie das folgende Dokument herunter, um eine Vorstellung davon zu bekommen, wie Sie den Esp8266-Arduino-Kern installieren.
Schritt 3: Motortreiber - L293d
Der Motortreiber ist ein IC für Motoren, mit dem Sie die Arbeitsgeschwindigkeit und -richtung von zwei Motoren gleichzeitig steuern können.
L293d wurde entwickelt, um bidirektionale Antriebsströme bei Spannungen von 5 V bis 36 V bereitzustellen. L293D kann 2 Gleichstrommotoren gleichzeitig antreiben.
L293D ist ein 16-Pin-Motortreiber-IC. Es gibt 4 INPUT-Pins, 4 OUTPUT-Pins und 2 ENABLE-Pins für jeden Motor.
L293D-Funktionen:
600mA Ausgangsstromkapazität pro Kanal
Takt- und Richtungssteuerung gegen den Uhrzeigersinn für einzelne Kanäle
Pin-Beschreibung von L293d:
- Pin 1: Wenn Enable1 HIGH ist, funktioniert der linke Teil des ICs, d.h. der mit Pin 3 und Pin 6 verbundene Motor dreht sich.
- Pin 2: Eingang 1, wenn dieser Pin HIGH ist, fließt der Strom durch Ausgang 1.
- Pin 3: Ausgang 1, dieser Pin ist mit einer Klemme des Motors verbunden.
- Pin 4/5: GND-Pins
- Pin 6: Ausgang 2, dieser Pin ist mit einer Klemme des Motors verbunden.
- Pin 7: Eingang 2, wenn dieser Pin HIGH ist, fließt der Strom durch Ausgang 2.
- Pin 8: VCC2, dieser Pin wird verwendet, um die angeschlossenen Motoren von 5 V bis maximal 36 V zu versorgen, abhängig vom angeschlossenen Motor.
- Pin 9: Wenn Enable 2 HIGH ist, funktioniert der rechte Teil des ICs, d.h. der Motor, der mit Pin 11 und Pin 14 verbunden ist, dreht sich.
- Pin 10: Eingang 4, wenn dieser Pin HIGH ist, fließt der Strom durch Ausgang 4.
- Pin 11: Ausgang 4, dieser Pin ist mit einer Klemme des Motors verbunden.
- Pin 12/13: GND-Pins
- Pin 14: Ausgang 3, dieser Pin ist mit einer Klemme des Motors verbunden.
- Pin 15: Eingang 3, wenn dieser Pin HIGH ist, fließt der Strom durch Ausgang 3.
- Pin 16: VCC1, für die Logikversorgung des ICs, d. h. 5 V.
Sie können also sehen, dass Sie 3 digitale Pins benötigen, um jeden Motor zu steuern (ein Pin für die Geschwindigkeitssteuerung und zwei Pins für die Richtungssteuerung). Wenn ein L293d zwei Gleichstrommotoren steuert, benötigen wir zwei L293d-ICs, um vier Gleichstrommotoren zu steuern. Wir werden für dieses Projekt BO-Motoren aus Kunststoff verwenden. Sie sehen also, dass wir 12 digitale Pins benötigen, um alle vier DC-Motoren unabhängig mit Geschwindigkeits- und Richtungssteuerung zu steuern.
Aber wenn Sie sehen, dass Wemos D1 mini nur 11 digitale I/O-Pins und 1 analogen Pin hat. Um dieses Problem zu lösen, werden wir die vier Enable-Pins (zwei Enable-Pins des ersten L293d und zwei Enable-Pins des anderen L293d) direkt mit den Wemos Digital-Pins verbinden, während alle acht Eingangspins (vier des ersten L293d und vier des anderen L293d) mit PCF8574 (Ein I/O-Port-Expander) über I2C.
Schritt 4: PCF8574 - ein I/O-Port-Expander
Wemos D1 Mini (d. h. ESP8266) hat einen Mangel an Eingangs-/Ausgangspins. Wir können die digitalen Ein-/Ausgangspins mit einem I/O-Expander-IC wie PCF8574, einem 8-Bit-I/O-Expander, erhöhen.
Einer der Vorteile der Verwendung des PCF8574A I/O-Expanders besteht darin, dass er den I2C-Bus verwendet, der nur zwei Datenleitungen benötigt, nämlich Takt (SCK) und Daten (SDA). Daher können Sie mit diesen beiden Leitungen bis zu acht Pins desselben Chips steuern. Durch Ändern der drei Adresspins jedes PCF8574 können wir insgesamt 64 Pins steuern.
Dieser 8-Bit-Eingang/Ausgang (I/O)-Expander für den bidirektionalen Zweileitungsbus (I2C) ist für den VCC-Betrieb von 2,5 V bis 6 V ausgelegt. Das Gerät PCF8574 bietet über die I2C-Schnittstelle [Serial Clock (SCL), Serial Data (SDA)] eine universelle Remote-I/O-Erweiterung für die meisten Mikrocontroller-Familien.
Der Baustein verfügt über einen quasi-bidirektionalen 8-Bit-I/O-Port (P0–P7), einschließlich verriegelter Ausgänge mit Hochstromtreiberfähigkeit für die direkte Ansteuerung von LEDs. Jeder quasi-bidirektionale E/A kann ohne die Verwendung eines Datenrichtungs-Steuersignals als Eingang oder Ausgang verwendet werden. Beim Einschalten sind die I/Os hoch.
Siehe die untenstehende PDF-Datei "PCF8574_With_L293d" für das Anschlussdiagramm von PCF8574 mit den beiden L293d-ICs
Schritt 5: Schaltpläne
Ich habe Kicad für das PCB-Design verwendet.
Laden Sie das untenstehende schematische PDF herunter, um Ihre eigene Leiterplatte zu entwerfen oder auf einer Punktleiterplatte zu implementieren.
Schritt 6: Code
Verbinden Sie sich mit dem folgenden WLAN-Zugangspunkt:-
// Benutzerdefinierte Netzwerkanmeldeinformationenconst char* ssid = "WiFi_Robot";
const char* Passwort = "Automate@111";
Nachdem Sie sich mit dem obigen Zugangspunkt verbunden haben, gehen Sie in einem Webbrowser zum folgenden Link:-
192.168.4.1
Sie erhalten folgende Meldung:-
"Hallo von Roboter!"
192.168.4.1/fw
Dadurch bewegt sich der Roboter vorwärts
192.168.4.1/bk
Dadurch bewegt sich der Roboter rückwärts
192.168.4.1/lt
Dadurch bewegt sich der Roboter nach links
192.168.4.1/rt
Dadurch bewegt sich der Roboter nach rechts
192.168.4.1/st
Dadurch stoppt der Roboter
Wenn Sie möchten, können Sie den Roboter auch über die Android-App von Robo India steuern.
{Suchen Sie nach der Android-App "WiFi Robot Controller" im Playstore von Robo India}
[Anmerkung: Ich bin in keiner Weise mit Robo India verbunden und dies dient nicht der Werbung, dies ist mein persönliches Projekt!]
Arbeitsvideo des Projekts:-