RDK: Communication par port série
Introduction
Ce dépôt fournit un exemple de code Python pour la communication entre la plateforme RDK X5 (Raspberry Pi) et le module d'interaction vocale AI, prenant en charge les deux modes de communication I2C et UART.
Module de reconnaissance vocale : prend en charge la reconnaissance vocale hors ligne et affiche l'ID de commande après reconnaissance
Fonction de diffusion : prend en charge la diffusion passive, la diffusion de mots de fonction et la diffusion de mots de commande
Protocole de communication : adresse I2C 0x2A, débit en bauds UART 115200
Langage de programmation : Python 3
Connexion matérielle
Connexion générale
Remarque importante : assurez-vous que tous les appareils partagent la même masse !
Connexion de la version UART
Attention : utilise par défaut le dispositif de port série /dev/ttyAMA0
Connexion par câble de données Type-C (alternative UART)
Si vous utilisez un module adaptateur USB-TTL :
Attention : dans ce cas, le dispositif de port série est généralement /dev/ttyUSB0

Configuration de l'environnement
Configuration système requise
RDK X5
Système Ubuntu / Debian
Python 3.7+
Installer les paquets de dépendances
# Mettre à jour les paquets
sudo apt update
sudo apt upgrade -y
# Installer les bibliothèques Python
sudo apt install -y python3-pip
# Installer pyserial
pip3 install pyserialActiver l'interface du port série
# Ouvrir l'outil de configuration
sudo raspi-config
# Sélectionner Interface Options → Serial
Select: No (shell) → Yes (hardware serial port)
# Prend effet après redémarrage
sudo rebootUtilisation de la version UART
Vérifier les fichiers de code
cd UART_Voice
ls -la
# Vous devriez voir uart_voice.pyConfigurer le dispositif de port série
Modifiez le fichier uart_voice.py et changez le dispositif de port série :
# Connexion directe UART (par défaut)
SERIAL_PORT = '/dev/ttyAMA0'
# Ou utiliser un USB-TTL
SERIAL_PORT = '/dev/ttyUSB0'
# Débit en bauds
BAUD_RATE = 115200Exécuter le programme
Attribution de l'autorisation d'exécution
chmod +x uart_voice.py
# Exécuter (les droits sudo sont nécessaires pour accéder au port série)
sudo python3 uart_voice.pyTest d'exécution
Après un démarrage normal, l'affichage suivant apparaît :
Speech Serial Opened! Baudrate=115200Prononcez un mot de commande vers le module vocal et l'ID correspondant s'affiche :
Speech Serial Opened! Baudrate=115200
ID:1
ID:4
ID:10Arrêter le programme
Appuyez sur Ctrl + C pour arrêter le programme
Dépannage
Q1 : le dispositif de port série est introuvable
R : vérifiez :
Vérifiez si le port série est activé (raspi-config)
Vérifiez si le nom du dispositif est correct
UART direct :
/dev/ttyAMA0USB-TTL :
/dev/ttyUSB0ou/dev/ttyUSB1
Vérifiez si la connexion matérielle est correcte
Vérifiez si le port série est occupé par un autre programme
# Afficher les ports série disponibles
ls /dev/tty* | grep ttyQ2 : l'ID de commande n'affiche que 0 ou ne s'affiche pas
R : phénomène normal :
0 = aucune commande valide reconnue
L'ID n'est affiché que si un mot de commande valide est prononcé
Réveillez d'abord le module, puis dites la commande
Q3 : le taux de reconnaissance n'est pas élevé
R : suggestions d'optimisation :
Assurez-vous que l'environnement est calme et que le bruit de fond n'est pas trop important
Gardez une distance appropriée par rapport au microphone (10-50cm)
Adoptez un débit de parole modéré et une prononciation claire
Q4 : anomalie de communication du port série
R : vérifiez :
Si TX/RX sont connectés en croisé (TX du module → RX du RPi)
Si le débit en bauds est 115200
Si les masses sont communes
Si le port série est occupé par un autre processus
# Vérifier l'occupation du port série
sudo lsof /dev/ttyAMA0Support technique
En cas de problème, veuillez vérifier :
Si le câblage matériel est correct (la masse commune est très importante !)
Si le débit en bauds du port série est 115200
Si vous disposez d'autorisations suffisantes pour accéder à l'interface matérielle
Commandes de débogage courantes
ls -l /dev/ttyAMA0 # Afficher les périphériques série
groups # Vérifier les permissions des groupes d'utilisateurs
