RDK: Comunicação IIC
Introdução
Este repositório fornece um código de exemplo em Python para a comunicação entre a plataforma RDK X5 (Raspberry Pi) e o módulo de interação por voz com IA, com suporte a dois modos de comunicação: I2C e UART.
Módulo de reconhecimento de fala: oferece suporte a reconhecimento de fala offline e gera o ID do comando após o reconhecimento
Função de reprodução: oferece suporte a reprodução passiva, reprodução de palavras de função e reprodução de palavras de comando
Protocolo de comunicação: endereço I2C 0x2A, taxa de transmissão UART 115200
Linguagem de programação: Python 3
Conexão de hardware
Conexão geral
Aviso importante: certifique-se de que todos os dispositivos estejam aterrados em comum!
Conexão da versão I2C
Atenção: por padrão, usa-se o barramento I2C 5 (numeração BCM)

Configuração do ambiente
Requisitos do sistema
RDK X5
Sistema Ubuntu / Debian
Python 3.7+
Instalar os pacotes de dependência
# Atualizar os pacotes
sudo apt update
sudo apt upgrade -y
# Instalar as bibliotecas Python
sudo apt install -y python3-pip python3-smbus i2c-toolsHabilitar a interface I2C
# Abrir a ferramenta de configuração
sudo raspi-config
# Selecionar Interface Options → I2C → Enable
# Reiniciar para aplicar
sudo rebootTestar a interface de hardware
# Testar o dispositivo I2C
sudo i2cdetect -y 5Uso da versão IIC
Verificar os arquivos de código
cd IIC_Voice
ls -la
# Você deve ver iic_voice.pyConfigurar o barramento I2C
Edite o arquivo iic_voice.py e modifique os parâmetros necessários:
# Endereço do dispositivo I2C
DEVICE_ADDRESS = 0x2A
# Endereço do registrador
REG_RESULT = 0xDA
# Número do barramento I2C (modificar conforme a conexão real)
bus = smbus.SMBus(5) # Barramento I2C 5Executar o programa
# Conceder permissão de execução
chmod +x iic_voice.py
# Executar (requer permissão sudo para acessar o I2C)
sudo python3 iic_voice.pyTeste de execução
Após a inicialização normal, será exibido:
Speech Serial Opened! Baudrate=115200Diga uma palavra de comando ao módulo de voz e o ID correspondente será exibido:
Speech Serial Opened! Baudrate=115200
ID:1
ID:4
ID:10Parar o programa
Pressione Ctrl + C para parar o programa:
Program terminatedSolução de problemas
Q1: Permissão insuficiente para operações I2C
R: Adicione o usuário ao grupo de usuários I2C:
sudo usermod -aG i2c $USER
# Faça login novamente para aplicarOu execute o programa com sudo
Q2: O dispositivo I2C não é encontrado na varredura
R: Verifique:
Confirme se o I2C está habilitado (raspi-config)
Verifique se SDA/SCL estão invertidos
Verifique se há aterramento em comum
Verifique se o dispositivo está energizado
# Escanear os dispositivos I2C
sudo i2cdetect -y 5
# Se aparecer 0x2A, o dispositivo está conectado corretamenteQ3: O ID do comando mostra apenas 0 ou não é exibido
R: Comportamento normal:
0 = nenhum comando válido reconhecido
O ID só é gerado quando se diz uma palavra de comando válida
Ative o módulo primeiro e depois diga o comando
Q4: Taxa de reconhecimento baixa
R: Sugestões de otimização:
Garanta um ambiente silencioso e evite ruído de fundo alto
Mantenha uma distância moderada do microfone (10-50cm)
Fale em velocidade moderada e com pronúncia clara
Suporte técnico
Em caso de problemas, verifique:
Se o cabeamento do hardware está correto (o aterramento em comum é muito importante!)
Se a taxa de transmissão da porta serial é 115200
Se o endereço I2C está correto (0x2A)
Se há permissões suficientes para acessar a interface de hardware
Comandos de depuração comuns
ls -l /dev/i2c* # Ver os dispositivos I2C
groups # Ver as permissões do grupo de usuários
