RDK: IIC 통신
소개
이 저장소는 RDK X5(Raspberry Pi) 플랫폼과 AI 음성 인터랙션 모듈 간의 통신을 위한 Python 예제 코드를 제공하며, I2C 와 UART 두 가지 통신 방식을 지원합니다.
음성 인식 모듈: 오프라인 음성 인식을 지원하며, 인식 후 명령 ID 를 출력합니다
재생 기능: 수동 재생, 기능어 재생, 명령어 재생을 지원합니다
통신 프로토콜: I2C 주소 0x2A, UART 보드레이트 115200
프로그래밍 언어: Python 3
하드웨어 연결
공통 연결
중요 안내: 모든 장치가 공통 접지되었는지 확인하십시오!
I2C 버전 연결
주의: 기본적으로 I2C 버스 5(BCM 번호)를 사용합니다

환경 설정
시스템 요구 사항
RDK X5
Ubuntu / Debian 시스템
Python 3.7+
의존성 패키지 설치
# 소프트웨어 패키지 업데이트
sudo apt update
sudo apt upgrade -y
# Python 라이브러리 설치
sudo apt install -y python3-pip python3-smbus i2c-toolsI2C 인터페이스 활성화
# 설정 도구 열기
sudo raspi-config
# Interface Options → I2C → Enable 선택
# 재부팅 후 적용
sudo reboot하드웨어 인터페이스 테스트
# I2C 장치 테스트
sudo i2cdetect -y 5IIC 버전 사용
코드 파일 확인
cd IIC_Voice
ls -la
# iic_voice.py가 보여야 함I2C 버스 설정
iic_voice.py 파일을 편집하여 필요한 매개변수를 수정합니다:
# I2C 장치 주소
DEVICE_ADDRESS = 0x2A
# 레지스터 주소
REG_RESULT = 0xDA
# I2C 버스 번호(실제 연결에 맞게 수정)
bus = smbus.SMBus(5) # I2C 버스 5프로그램 실행
# 실행 권한 부여
chmod +x iic_voice.py
# 실행(sudo 권한으로 I2C 접근 필요)
sudo python3 iic_voice.py실행 테스트
정상적으로 시작하면 다음이 표시됩니다:
Speech Serial Opened! Baudrate=115200음성 모듈에 명령어를 말하면 해당하는 ID 가 표시됩니다:
Speech Serial Opened! Baudrate=115200
ID:1
ID:4
ID:10프로그램 중지
Ctrl + C 를 눌러 프로그램을 중지합니다:
Program terminated자주 묻는 질문
Q1: I2C 작업 권한 부족
A: 사용자를 I2C 사용자 그룹에 추가:
sudo usermod -aG i2c $USER
# 다시 로그인하면 적용또는 sudo 로 프로그램을 실행합니다
Q2: I2C 장치가 스캔되지 않음
A: 확인 사항:
I2C 가 활성화되었는지 확인 (raspi-config)
SDA/SCL 이 반대로 연결되지 않았는지 확인
공통 접지되었는지 확인
장치 전원이 켜졌는지 확인
# I2C 장치 스캔
sudo i2cdetect -y 5
# 0x2A가 보이면 장치 연결 정상Q3: 명령 ID 가 0 만 표시되거나 표시되지 않음
A: 정상적인 현상:
0 = 유효한 명령이 인식되지 않음
유효한 명령어를 말해야만 ID 가 출력됨
먼저 모듈을 웨이크하고, 그다음 명령을 말하기
Q4: 인식 정확도가 높지 않음
A: 최적화 제안:
환경이 조용한지 확인하고 배경 소음이 너무 크지 않아야 함
마이크와의 거리를 적절하게 유지 (10-50cm)
말하는 속도를 적절하게 하고 발음을 명확하게
기술 지원
문제가 있는 경우 다음을 확인하십시오:
하드웨어 배선이 올바른지 (공통 접지가 매우 중요합니다!)
시리얼 포트 보드레이트가 115200 인지
I2C 주소가 올바른지 (0x2A)
하드웨어 인터페이스에 접근할 권한이 충분한지
자주 사용하는 디버깅 명령
ls -l /dev/i2c* # I2C 장치 확인
groups # 사용자 그룹 권한 확인
