RDK: IIC-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 I2C-Version
Hinweis: Standardmäßig wird der I2C-Bus 5 verwendet (BCM-Nummerierung)

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 python3-smbus i2c-toolsI2C-Schnittstelle aktivieren
# Konfigurationstool öffnen
sudo raspi-config
# Interface Options → I2C → Enable auswählen
# Nach Neustart wirksam
sudo rebootHardwareschnittstelle testen
# I2C-Gerät testen
sudo i2cdetect -y 5Verwendung der IIC-Version
Codedateien prüfen
cd IIC_Voice
ls -la
# iic_voice.py sollte angezeigt werdenI2C-Bus konfigurieren
Bearbeiten Sie die Datei iic_voice.py und ändern Sie die erforderlichen Parameter:
# I2C-Geräteadresse
DEVICE_ADDRESS = 0x2A
# Registeradresse
REG_RESULT = 0xDA
# I2C-Busnummer (je nach tatsächlicher Verbindung anpassen)
bus = smbus.SMBus(5) # I2C-Bus 5Programm ausführen
# Ausführungsrechte vergeben
chmod +x iic_voice.py
# Ausführen (sudo-Rechte für den I2C-Zugriff erforderlich)
sudo python3 iic_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:
Program terminatedHäufig gestellte Fragen
Q1: Unzureichende Berechtigung für I2C-Vorgänge
A: Fügen Sie den Benutzer zur I2C-Benutzergruppe hinzu:
sudo usermod -aG i2c $USER
# Wirkt nach erneutem AnmeldenOder führen Sie das Programm mit sudo aus
Q2: I2C-Gerät kann nicht gescannt werden
A: Prüfen Sie:
Vergewissern Sie sich, dass I2C aktiviert ist (raspi-config)
Prüfen Sie, ob SDA/SCL vertauscht sind
Prüfen Sie, ob eine gemeinsame Masse vorhanden ist
Prüfen Sie, ob das Gerät mit Strom versorgt ist
# I2C-Geräte scannen
sudo i2cdetect -y 5
# Wenn 0x2A erscheint, ist das Gerät korrekt verbundenQ3: 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
Q4: 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
Technischer 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 die I2C-Adresse korrekt ist (0x2A)
Ob ausreichende Berechtigungen für den Zugriff auf die Hardwareschnittstelle vorhanden sind
Häufig verwendete Debug-Befehle
ls -l /dev/i2c* # I2C-Geräte anzeigen
groups # Benutzergruppen-Berechtigungen anzeigen
