RDK: Serielle Kommunikation
Einführung
Dieses Repository stellt Python-Beispielcode für die Kommunikation zwischen der Plattform RDK X5 (Raspberry Pi) und dem AI-Sprachinteraktionsmodul bereit und unterstützt zwei Kommunikationsmethoden: I2C und UART.
Spracherkennungsmodul: Unterstützt Offline-Spracherkennung und gibt nach der Erkennung die Befehls-ID aus
Ansagefunktion: Unterstützt passive Ansage, Funktionswort-Ansage und Befehlswort-Ansage
Kommunikationsprotokoll: I2C-Adresse 0x2A, UART-Baudrate 115200
Programmiersprache: Python 3
Hardwareanschluss
Allgemeine Verbindung
Wichtiger Hinweis: Vergewissern Sie sich, dass alle Geräte eine gemeinsame Masse haben (GND)!
Verbindung der UART-Version
Hinweis: Standardmäßig wird das serielle Gerät /dev/ttyAMA0 verwendet
Type-C-Datenkabelverbindung (UART-Alternative)
Bei Verwendung eines USB-TTL-Adaptermoduls:
Hinweis: In diesem Fall ist das serielle Gerät normalerweise /dev/ttyUSB0

Umgebungskonfiguration
Systemanforderungen
RDK X5
Ubuntu-/Debian-System
Python 3.7+
Abhängigkeitspakete installieren
# Softwarepakete aktualisieren
sudo apt update
sudo apt upgrade -y
# Python-Bibliothek installieren
sudo apt install -y python3-pip
# pyserial installieren
pip3 install pyserialSerielle Schnittstelle aktivieren
# Konfigurationstool öffnen
sudo raspi-config
# Interface Options → Serial auswählen
Select: No (shell) → Yes (hardware serial port)
# Nach Neustart wirksam
sudo rebootVerwendung der UART-Version
Codedateien prüfen
cd UART_Voice
ls -la
# uart_voice.py sollte angezeigt werdenSerielles Gerät konfigurieren
Bearbeiten Sie die Datei uart_voice.py und ändern Sie das serielle Gerät:
# UART-Direktverbindung (Standard)
SERIAL_PORT = '/dev/ttyAMA0'
# Oder USB-TTL verwenden
SERIAL_PORT = '/dev/ttyUSB0'
# Baudrate
BAUD_RATE = 115200Programm ausführen
Ausführungsberechtigung erteilen
chmod +x uart_voice.py
# Ausführen (sudo-Rechte für den Zugriff auf die serielle Schnittstelle erforderlich)
sudo python3 uart_voice.pyTest ausführen
Nach einem normalen Start wird Folgendes angezeigt:
Speech Serial Opened! Baudrate=115200Sprechen Sie das Befehlswort zum Sprachmodul, und die entsprechende ID wird angezeigt:
Speech Serial Opened! Baudrate=115200
ID:1
ID:4
ID:10Programm beenden
Drücken Sie Ctrl + C, um das Programm zu beenden
Häufig gestellte Fragen
Q1: Serielles Gerät nicht gefunden
A: Prüfen Sie:
Prüfen Sie, ob die serielle Schnittstelle aktiviert ist (raspi-config)
Prüfen Sie, ob der Gerätename korrekt ist
UART-Direktverbindung:
/dev/ttyAMA0USB-TTL:
/dev/ttyUSB0oder/dev/ttyUSB1
Prüfen Sie, ob die Hardwareverbindung korrekt ist
Prüfen Sie, ob die serielle Schnittstelle von einem anderen Programm belegt ist
# Verfügbare serielle Ports anzeigen
ls /dev/tty* | grep ttyQ2: Befehls-ID zeigt nur 0 an oder wird nicht angezeigt
A: Normales Phänomen:
0 = kein gültiger Befehl erkannt
Eine ID wird erst ausgegeben, wenn ein gültiges Befehlswort gesprochen wird
Wecken Sie zuerst das Modul und sprechen Sie dann den Befehl
Q3: Geringe Erkennungsgenauigkeit
A: Optimierungsvorschläge:
Sorgen Sie für eine ruhige Umgebung; der Hintergrundlärm sollte nicht zu laut sein
Halten Sie einen angemessenen Abstand zum Mikrofon ein (10-50cm)
Sprechen Sie in angemessenem Tempo und deutlich
Q4: Anomalie bei der seriellen Kommunikation
A: Prüfen Sie:
Ob TX/RX überkreuz verbunden sind (Modul TX → RPi RX)
Ob die Baudrate 115200 beträgt
Ob eine gemeinsame Masse vorhanden ist
Ob die serielle Schnittstelle von einem anderen Prozess belegt ist
# Prüfen, ob die serielle Schnittstelle belegt ist
sudo lsof /dev/ttyAMA0Technischer Support
Bei Problemen prüfen Sie bitte:
Ob die Hardwareverkabelung korrekt ist (eine gemeinsame Masse ist sehr wichtig!)
Ob die Baudrate der seriellen Schnittstelle 115200 beträgt
Ob ausreichende Berechtigungen für den Zugriff auf die Hardwareschnittstelle vorhanden sind
Häufig verwendete Debug-Befehle
ls -l /dev/ttyAMA0 # Serielle Geräte anzeigen
groups # Benutzergruppen-Berechtigungen anzeigen
