mausi_mick
06.05.2020, 20:20
Habe mich in letzter Zeit mit Voice Recognition beschäftigt und überlegt, ob man damit einen kleinen Roboter steuern kann.
Er sollte nur wenige Befehle abarbeiten wie vor, zurück, links, rechts und auch ein paar Zahlen für Distanzen und Winkel.
Alexa wollte ich dabei meiden/schonen.
Vor Jahrzehnten hat es auf dem Sinclair ZX81 ? sowas gegeben, in Z80 Assembler, da der Programmspeicher sehr klein (1KB ?) war.
Auch war die Hardware lausig (Lautsprecher als Mikrophon, Programm-Sicherung auf Sinclair-Floppy).
Das Ergebnis war auch eher bescheiden ...
Müsste heute eigentlich besser gehen, auch wenn man nicht auf Alexa hört oder umgekehrt.
Hatte noch ein Voice-Recognition Module V3 von Elechouse rumliegen, vor ein paar Jahren besorgt.
Es gibt auch noch Software für Arduino (UNO/Nano) incl. lib. im Netz.
Ich konnte das Module leider nicht vom ESp32 oder STM32-MapleMini direkt ansteuern, dadurch ist der Aufbau etwas komplizierter geworden:
- Verbindung Voice-Module mit Arduino Nano über SoftSerial (RX,TX)
- Verbindung Nano mit ESP32-Sendmodule mit Serial2
- Verbindung ESP32 Sender zum ESP32 Empfänger mit "ESP32-Now" Protokoll oder was immer das ist.
- Verbindung ESP32 zum Maple-Mini , der den Roboter (u.a 2 Schrittmotoren an A4988 und einen Servo) ansteuert über Serial3
Die ESP32-NOW schafft wohl Distanzen von mehr als 100 m (im Freifeld).
Problematisch war die Programmierung des Moduls:
Man kann wohl maximal 80 Sprachbefehle "eingeben" (ich vermute noch mehr, der Speicher ist wohl auf 255/256 begrenzt), aber leider sind nur sieben gleichzeitig verfügbar.
Ich benutze zur Zeit drei Böcke mit je 7 Befehlen oder anderen Steuerungswerten:
Im 1. hab ich Kommandos hinterlegt: Go/Forward, Backword, Left, Right, Start und Stop .
Im 2. Distanzen , die der Roboter geradeaus fahren soll: 10mm, 20mm,50mm,100mm,200mm,500mm und 1000mm
Im 3. Winkel, um die sich der Roboter um seine Achse drehen soll: 2°, 6°,15°,30°,45°,60° und 90°
Die Erkennungsrate ist meist gut, aber bei für ihn wohl ähnlich klingenden Worten wie fünf / fünfzig etc. hat er seine Probleme.
Ich überlege, ob ich die Zahlen in englisch "eingebe", da klingt zumindest five und fifty anders , wobei er wohlbei fifteen auch ins grübeln kommt, aber das verwende ich ja nur bei Winkeln.
...
Er sollte nur wenige Befehle abarbeiten wie vor, zurück, links, rechts und auch ein paar Zahlen für Distanzen und Winkel.
Alexa wollte ich dabei meiden/schonen.
Vor Jahrzehnten hat es auf dem Sinclair ZX81 ? sowas gegeben, in Z80 Assembler, da der Programmspeicher sehr klein (1KB ?) war.
Auch war die Hardware lausig (Lautsprecher als Mikrophon, Programm-Sicherung auf Sinclair-Floppy).
Das Ergebnis war auch eher bescheiden ...
Müsste heute eigentlich besser gehen, auch wenn man nicht auf Alexa hört oder umgekehrt.
Hatte noch ein Voice-Recognition Module V3 von Elechouse rumliegen, vor ein paar Jahren besorgt.
Es gibt auch noch Software für Arduino (UNO/Nano) incl. lib. im Netz.
Ich konnte das Module leider nicht vom ESp32 oder STM32-MapleMini direkt ansteuern, dadurch ist der Aufbau etwas komplizierter geworden:
- Verbindung Voice-Module mit Arduino Nano über SoftSerial (RX,TX)
- Verbindung Nano mit ESP32-Sendmodule mit Serial2
- Verbindung ESP32 Sender zum ESP32 Empfänger mit "ESP32-Now" Protokoll oder was immer das ist.
- Verbindung ESP32 zum Maple-Mini , der den Roboter (u.a 2 Schrittmotoren an A4988 und einen Servo) ansteuert über Serial3
Die ESP32-NOW schafft wohl Distanzen von mehr als 100 m (im Freifeld).
Problematisch war die Programmierung des Moduls:
Man kann wohl maximal 80 Sprachbefehle "eingeben" (ich vermute noch mehr, der Speicher ist wohl auf 255/256 begrenzt), aber leider sind nur sieben gleichzeitig verfügbar.
Ich benutze zur Zeit drei Böcke mit je 7 Befehlen oder anderen Steuerungswerten:
Im 1. hab ich Kommandos hinterlegt: Go/Forward, Backword, Left, Right, Start und Stop .
Im 2. Distanzen , die der Roboter geradeaus fahren soll: 10mm, 20mm,50mm,100mm,200mm,500mm und 1000mm
Im 3. Winkel, um die sich der Roboter um seine Achse drehen soll: 2°, 6°,15°,30°,45°,60° und 90°
Die Erkennungsrate ist meist gut, aber bei für ihn wohl ähnlich klingenden Worten wie fünf / fünfzig etc. hat er seine Probleme.
Ich überlege, ob ich die Zahlen in englisch "eingebe", da klingt zumindest five und fifty anders , wobei er wohlbei fifteen auch ins grübeln kommt, aber das verwende ich ja nur bei Winkeln.
...