BOSIO × BoAYo 개발 문서 전체 소스 ↗
핵심 시스템 · 센서와 버튼

GY-521 · Pmod B · BTN

직접 AXI4-Stream 센서 경로와 PYNQ 버튼 입력을 설명합니다.

FPGA 센서 허브는 GY-521을 I²C로 읽어 자세를 계산하고, AXI4-Stream으로 출력 코어에 직접 보냅니다. BTN0~BTN3는 별도 AXI GPIO에 연결되며 Bosio 창 관리자 데몬이 Linux에서 읽습니다.

GY-521 연결

GY-521PYNQ-Z2 Pmod B비고
VCC3V35V를 연결하지 않습니다
GNDGND공통 접지
SDAJB 물리 3번, JB2_PFPGA T11
SCLJB 물리 4번, JB2_NFPGA T10
AD0GND 또는 미연결기본 I²C 주소
INT미연결현재 미사용

실시간 자세 경로

MPU6050FPGA I²C 센서 허브mrad 자세 AXI4-Stream출력 코어HDMI

센서 허브는 시작 때 자이로 측정값 256개를 모아 영점을 보정합니다. 약 2.7초 뒤부터 14바이트 측정값을 반복해 읽고, 자이로·가속도 값을 상보 필터로 결합해 약 100Hz로 자세를 보냅니다. GY-521에는 자기계가 없어 yaw 값은 오래 사용하면 드리프트가 쌓일 수 있습니다.

yaw·pitch·roll은 각각 부호 있는 32비트 정수이며 단위는 mrad입니다. 장착 방향 때문에 움직임이 반대로 보이면 출력 코어 레지스터에서 해당 축만 반전할 수 있습니다. 배선을 연결할 때는 센서 허브 원본 문서의 핀 배치를 확인하세요.

PYNQ-Z2 버튼

BTN0~BTN3는 출력 코어나 센서 허브와 별개인 4비트 AXI GPIO 입력입니다. 현재 비트스트림의 GPIO 주소는 0x41200000입니다. Bosio 데몬은 버튼의 눌림·뗌을 각 앱에 따로 전달하므로 한 앱이 이벤트를 읽어도 다른 앱의 이벤트는 사라지지 않습니다.

버튼현재 BoAYo 동작
BTN0 / BTN1하나뿐인 런처 패널을 현재 시선에서 열기
BTN2시선 중심 클릭. 누른 채 움직이면 캡션 조작
BTN3입력 이벤트만 제공하며 기본 UI 기능은 없음

USB 마우스의 왼쪽 버튼도 창을 클릭하고 드래그할 수 있습니다. 서비스를 시작한 뒤 마우스를 연결했다면 서비스를 재시작해 입력 장치를 다시 찾게 하세요. 버튼 입력 문서에는 핀 번호와 Linux에서 버튼만 확인하는 방법이 있습니다.

BOSIO × BoAYo · 문서 저장소 · 구현 원본은 각 소스 저장소에서 확인하세요.