FPGA 센서 허브는 GY-521을 I²C로 읽어 자세를 계산하고, AXI4-Stream으로 출력 코어에 직접 보냅니다. BTN0~BTN3는 별도 AXI GPIO에 연결되며 Bosio 창 관리자 데몬이 Linux에서 읽습니다.
GY-521 연결
| GY-521 | PYNQ-Z2 Pmod B | 비고 |
|---|---|---|
| VCC | 3V3 | 5V를 연결하지 않습니다 |
| GND | GND | 공통 접지 |
| SDA | JB 물리 3번, JB2_P | FPGA T11 |
| SCL | JB 물리 4번, JB2_N | FPGA T10 |
| AD0 | GND 또는 미연결 | 기본 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에서 버튼만 확인하는 방법이 있습니다.