RDK: Comunicación por puerto serie
Introducción
Este repositorio proporciona código de ejemplo en Python para la comunicación entre la plataforma RDK X5 (Raspberry Pi) y el módulo de interacción por voz de IA, y admite dos modos de comunicación: I2C y UART.
Módulo de reconocimiento de voz: admite reconocimiento de voz sin conexión y emite el ID del comando tras el reconocimiento
Funciones de reproducción: admite reproducción pasiva, reproducción de palabras de función y reproducción de palabras de comando
Protocolo de comunicación: dirección I2C 0x2A, velocidad en baudios UART 115200
Lenguaje de programación: Python 3
Conexión del hardware
Conexión general
Importante: ¡asegúrese de que todos los dispositivos compartan una tierra común!
Conexión de la versión UART
Nota: por defecto se utiliza el dispositivo de puerto serie /dev/ttyAMA0
Conexión mediante cable de datos Type-C (alternativa a UART)
Si se utiliza un módulo adaptador USB-TTL:
Nota: en este caso el dispositivo de puerto serie suele ser /dev/ttyUSB0

Configuración del entorno
Requisitos del sistema
RDK X5
Sistema Ubuntu / Debian
Python 3.7+
Instalar paquetes de dependencias
# Actualizar los paquetes
sudo apt update
sudo apt upgrade -y
# Instalar las bibliotecas de Python
sudo apt install -y python3-pip
# Instalar pyserial
pip3 install pyserialHabilitar la interfaz de puerto serie
# Abrir la herramienta de configuración
sudo raspi-config
# Seleccionar Interface Options → Serial
Select: No (shell) → Yes (hardware serial port)
# Surte efecto tras reiniciar
sudo rebootUso de la versión UART
Comprobar los archivos de código
cd UART_Voice
ls -la
# Debería verse uart_voice.pyConfigurar el dispositivo de puerto serie
Edite el archivo uart_voice.py y modifique el dispositivo de puerto serie:
# Conexión directa UART (predeterminada)
SERIAL_PORT = '/dev/ttyAMA0'
# o usar un USB-TTL
SERIAL_PORT = '/dev/ttyUSB0'
# Velocidad en baudios
BAUD_RATE = 115200Ejecutar el programa
Otorgar permiso de ejecución
chmod +x uart_voice.py
# Ejecutar (se necesita sudo para acceder al puerto serie)
sudo python3 uart_voice.pyEjecutar la prueba
Tras un inicio correcto se mostrará:
Speech Serial Opened! Baudrate=115200Diga una palabra de comando al módulo de voz y se mostrará el ID correspondiente:
Speech Serial Opened! Baudrate=115200
ID:1
ID:4
ID:10Detener el programa
Pulse Ctrl + C para detener el programa
Solución de problemas
Q1: No se encuentra el dispositivo de puerto serie
A: Compruebe:
Compruebe si el puerto serie está habilitado (raspi-config)
Compruebe si el nombre del dispositivo es correcto
UART directo:
/dev/ttyAMA0USB-TTL:
/dev/ttyUSB0o/dev/ttyUSB1
Compruebe si la conexión del hardware es correcta
Compruebe si el puerto serie está ocupado por otro programa
# Ver los puertos serie disponibles
ls /dev/tty* | grep ttyQ2: El ID del comando solo muestra 0 o no aparece
A: Comportamiento normal:
0 = no se ha reconocido ningún comando válido
el ID solo se emite cuando se dice una palabra de comando válida
active primero el módulo y luego diga el comando
Q3: La precisión de reconocimiento no es alta
A: Sugerencias de optimización:
Asegúrese de que el entorno sea silencioso y que el ruido de fondo no sea demasiado alto
Mantenga una distancia moderada respecto al micrófono (10-50cm)
Hable a un ritmo moderado y articule con claridad
Q4: Comunicación por puerto serie anómala
A: Compruebe:
Si TX/RX están conectados en cruz (TX del módulo → RX de la RPi)
Si la velocidad en baudios es 115200
Si comparten tierra común
Si el puerto serie está ocupado por otro proceso
# Comprobar si el puerto serie está ocupado
sudo lsof /dev/ttyAMA0Soporte técnico
Si tiene problemas, compruebe lo siguiente:
Si el cableado del hardware es correcto (¡la tierra común es muy importante!)
Si la velocidad en baudios del puerto serie es 115200
Si hay permisos suficientes para acceder a la interfaz de hardware
Comandos de depuración habituales
ls -l /dev/ttyAMA0 # Ver los dispositivos de puerto serie
groups # Ver los permisos del grupo de usuarios
