Sprachgesteuerter Roboter mit Arduino Nano bauen
Komponenten und Zubehör
| Komponente | Menge |
|---|---|
| Arduino Nano R3 | 1 |
| L298N Motortreiber | 1 |
| HC-05 Bluetooth-Modul | 1 |
Benötigte Werkzeuge
- Heißklebepistole
Apps und Onlinedienste
- Arduino IDE
Über dieses Projekt
Roboter sind cool. Ein Roboter, der per Sprachbefehl steuerbar ist, noch cooler. Mit Arduino geht das günstig und einfach anzupassen.
Schritt 1: Benötigte Teile
Elektronik:
- Arduino Nano – 1×
- L298N Motortreiber-Modul – 1×
- HC-05 Bluetooth-Modul – 1×
- DC-Motoren mit passenden Rädern – 2×
- Multifunktions-Roboter-PCB – 1× (Link)
- Einige Steckerleisten (Male/Female Header)
Gehäuse:
- PVC-Platte
- Heißklebepistole
Software:
- Arduino IDE
- Eigene Android-App (selbst entwickelt)
Schritt 2: Prinzip – Wie funktioniert es?
Der Arduino allein kann keine Spracherkennung leisten. Aber: Das PCB hat einen Port für das Bluetooth-Modul. So kann der Arduino kabellos mit einem Smartphone kommunizieren. Die App nutzt die Google Speech-to-Text API (benötigt Internet), wandelt Sprache in Text um und sendet Befehle via Bluetooth an den Arduino.
Beispiel: Sage ich „Vorwärts“, sendet die App ‚F‘ an den Arduino → Roboter fährt vorwärts.
Schritt 3: Gehäuse bauen
Chassis aus 13×13,5 cm PVC-Platte – leicht mit Messer zu schneiden und gut zu kleben. Motoren und Räder werden im Board-Bereich montiert und verklebt. Das Design ist frei wählbar.
Schritt 4: Schaltung aufbauen oder PCB nutzen?
Statt Breadboard-Verdrahtung (fehleranfällig) wurde ein eigenes PCB entworfen (EasyEDA, Bestellung bei PCBWay: 10 Stk. Mehrlayer für 5 $). Falls kein PCB möglich: Fritzing-Schaltplan im Code-Bereich zum Nachbau auf Breadboard/Veroboard.
Schritt 5: Elektronik verbinden
Motoren an Motortreiber:
- Motor 1 → eine Seite des Treibers
- Motor 2 → andere Seite
Motortreiber an Arduino (Steuerpins):
- Motor 1 → Arduino Pin 2 und 3
- Motor 2 → Arduino Pin 4 und 5
Bluetooth-Modul HC-05:
- TX → Arduino RX
- RX → Arduino TX
- VCC → 5 V
- GND → GND
Stromversorgung: 7,4 V Akku an Motortreiber-Eingang sowie Arduino VIN und GND. Gemeinsame Masse (Common Ground) erforderlich.
Schritt 6: Arduino programmieren
Einfaches Programm: Prüft empfangene Zeichen und steuert Motoren entsprechend.
- ‚F‘ – Vorwärts
- ‚B‘ – Rückwärts
- ‚L‘ – Links
- ‚R‘ – Rechts
Bluetooth läuft über Serial mit 9600 Baud.
/**** Arduino Speech/Voice Controlled Robot ***
* by Ashraf Minhaj
* ashraf_minhaj@yahoo.com
*/
int lm1 = 4, lm2 = 5; // linker Motor
int rm1 = 2, rm2 = 3; // rechter Motor
char val;
void setup() {
pinMode(lm1, OUTPUT); pinMode(lm2, OUTPUT);
pinMode(rm1, OUTPUT); pinMode(rm2, OUTPUT);
Serial.begin(9600);
}
void loop() {
while (Serial.available() == 0); // Warten auf Daten
val = Serial.read();
// Serial.print(val);
if (val == 'F') { // Vorwärts
digitalWrite(lm1, HIGH); digitalWrite(rm1, HIGH);
digitalWrite(lm2, LOW); digitalWrite(rm2, LOW);
}
else if (val == 'B') { // Rückwärts
digitalWrite(lm2, HIGH); digitalWrite(rm2, HIGH);
digitalWrite(lm1, LOW); digitalWrite(rm1, LOW);
}
else if (val == 'R') { // Rechts
digitalWrite(lm1, HIGH); digitalWrite(rm2, HIGH);
digitalWrite(lm2, LOW); digitalWrite(rm1, LOW);
}
else if (val == 'L') { // Links
digitalWrite(lm2, HIGH); digitalWrite(rm1, HIGH);
digitalWrite(lm1, LOW); digitalWrite(rm2, LOW);
}
else { // Stopp
digitalWrite(lm1, LOW); digitalWrite(rm1, LOW);
digitalWrite(lm2, LOW); digitalWrite(rm2, LOW);
}
delay(10);
}
Schritt 7: App für Speech-to-Text
App erstellt mit MIT App Inventor – anpassbar. .aia-Datei herunterladen.
Funktionsweise:
- Bluetooth-Verbindung zum HC-05 (Standard-PIN: 1234 oder 0000)
- Google Speech-to-Text API wandelt Sprache in Text
- Text in Kleinbuchstaben umwandeln
- If-Else-Prüfung: „forward“ → ‚F‘ senden, „backward“ → ‚B‘, etc.
Als APK bauen, auf Handy installieren.
Schritt 8: Roboter starten und losfahren!
Akku anschließen, App starten, per Sprachbefehl steuern – fertig!
Danke fürs Lesen. Schaut auch mein neuestes Projekt an!
Code-Schnipsel
Setup-Funktion
void setup() {
pinMode(lm1, OUTPUT); pinMode(lm2, OUTPUT);
pinMode(rm1, OUTPUT); pinMode(rm2, OUTPUT);
Serial.begin(9600);
}
Vollständiger Loop-Code
void loop() {
while (Serial.available() == 0);
val = Serial.read();
if (val == 'F') {
digitalWrite(lm1, HIGH); digitalWrite(rm1, HIGH);
digitalWrite(lm2, LOW); digitalWrite(rm2, LOW);
}
else if (val == 'B') {
digitalWrite(lm2, HIGH); digitalWrite(rm2, HIGH);
digitalWrite(lm1, LOW); digitalWrite(rm1, LOW);
}
else if (val == 'R') {
digitalWrite(lm1, HIGH); digitalWrite(rm2, HIGH);
digitalWrite(lm2, LOW); digitalWrite(rm1, LOW);
}
else if (val == 'L') {
digitalWrite(lm2, HIGH); digitalWrite(rm1, HIGH);
digitalWrite(lm1, LOW); digitalWrite(rm2, LOW);
}
else {
digitalWrite(lm1, LOW); digitalWrite(rm1, LOW);
digitalWrite(lm2, LOW); digitalWrite(rm2, LOW);
}
delay(10);
}
GitHub Repository: github.com/ashraf-minhaj/speech-controlled-robot
Schaltplan
Fritzing-Datei: speech-controlled-robot-schematic_hUoWKpapKe.fzz
Herstellungsprozess
- Bluetooth-gesteuerter Raspberry Pi Roboter mit Audio-Feedback bauen
- Internet-gesteuerter Video-Streaming-Roboter mit Arduino & Raspberry Pi bauen
- Sprachgesteuerter Roboter mit Windows 10 IoT Core auf Raspberry Pi 2 bauen
- WLAN-gesteuerter Raspberry Pi Roboter mit Python bauen – Schritt-für-Schritt
- Altes RC-Auto per Xbox-Controller & Arduino zum Joystick-Fahrzeug umbauen
- Autonomer Linienfolger-Roboter mit Arduino UNO
- Arduino-basierter 6-DoF Roboterarm mit Nunchuk-Steuerung
- Ethernet-gesteuerter Roboterarm: Fernsteuerung leicht gemacht
- MobBob: Eigenen Arduino-Roboter bauen, per Android-Smartphone steuern
- PiBot: Arduino-gesteuerter Klavierroboter für präzise Musikwiedergabe