# Fluid Ardule v1 설계 개념 및 작업 지시서 (UNO 단일보드 버전) ## 1. 프로젝트 목표 Fluid Ardule v1은 **Arduino UNO 하나만 사용하여 Raspberry Pi 기반 MIDI 시스템을 제어하는 최소 조작반**을 만드는 것을 목표로 한다. 설계 원칙: - MCU는 **Arduino UNO 단일 보드** - **MIDI DIN I/O는 외부 USB MIDI 인터페이스**에 맡김 - Arduino는 **UI 조작반 역할**에 집중 - **LCD Keypad Shield 기반 빠른 프로토타입** - 향후 **Pro Micro 또는 커스텀 PCB로 확장 가능** 주요 기능: - MIDI Program Change - MIDI Channel 선택 - 실시간 CC 제어 - Raspberry Pi MIDI player 제어 - Panic / Reset 이 장치는 기본적으로 **작은 MIDI performance controller** 역할을 한다. --- # 2. 전체 시스템 구조 ## 하드웨어 구성 ``` Arduino UNO ├ LCD Keypad Shield (1602 LCD + 5 buttons) ├ Rotary Encoder (push 포함) ├ Potentiometer 1개 ├ Status LED 3개 └ USB → Raspberry Pi ``` ## MIDI 경로 ``` USB Keyboard → Raspberry Pi Arduino UNO → USB Serial → Raspberry Pi (control) Raspberry Pi → USB MIDI interface → DIN MIDI → Sound Module ``` 예: - Roland SC-D70 - 다른 GM module --- # 3. LCD Keypad Shield 사용 핀 일반적인 DFRobot LCD Keypad Shield 기준 사용 핀 ``` D4 D5 D6 D7 D8 D9 D10 A0 (버튼) ``` 버튼 구성 ``` SELECT RIGHT UP DOWN LEFT ``` 버튼은 **저항 사다리 방식으로 A0 하나로 읽는다**. --- # 4. UNO 사용 가능 핀 LCD Shield 장착 후 남는 핀 ## Digital ``` D2 D3 D11 D12 D13 ``` ## Analog ``` A1 A2 A3 A4 A5 ``` --- # 5. 추천 핀맵 ## Encoder ``` D2 → Encoder A D3 → Encoder B A1 → Encoder Push Switch ``` D2/D3는 interrupt 가능 → 엔코더 처리에 적합 --- ## LED ``` D11 → MIDI Activity D12 → PLAY 상태 D13 → MODE 상태 ``` D13은 UNO 내장 LED와 연결되어 디버깅에 유리하다. --- ## Potentiometer ``` A2 → Pot 입력 ``` 가능한 기능 - Master volume - Expression - Assignable CC --- # 6. 배선 ## Encoder ``` Encoder A → D2 Encoder B → D3 Encoder Switch → A1 GND → GND ``` ## LED 각 LED ``` Arduino pin → 330Ω → LED → GND ``` ## Potentiometer ``` 좌측 → GND 우측 → 5V 중앙 → A2 ``` --- # 7. 버튼 입력 값 (예시) A0에서 읽히는 값 | Button | Analog 값 | |------|------| SELECT | ~0 | RIGHT | ~100 | UP | ~250 | DOWN | ~400 | LEFT | ~600 | NONE | ~1023 | 코드에서는 **범위 비교 방식**으로 처리한다. --- # 8. UI 설계 개념 입력 장치 역할 ``` Buttons → 메뉴 이동 Encoder → 값 변경 Encoder Push → 선택/확정 Pot → 실시간 컨트롤 ``` 출력 장치 ``` LCD → 상태 표시 LED → 빠른 상태 표시 ``` --- # 9. 기본 화면 (Home Screen) 예: ``` CH01 Piano VOL100 PAN64 ``` 동작 ``` Encoder rotate → Volume 변경 Encoder push → 파라미터 선택 ``` --- # 10. 메뉴 구조 ``` MAIN MENU │ ├ PROGRAM ├ CHANNEL ├ CONTROL ├ PLAYER └ SYSTEM ``` --- # 11. PROGRAM 메뉴 ``` PROGRAM 001 GrandPiano ``` 동작 ``` Encoder rotate → Program change Encoder push → confirm LEFT → back ``` --- # 12. CHANNEL 메뉴 ``` CHANNEL 01 ``` ``` Encoder rotate → 1~16 ``` --- # 13. CONTROL 메뉴 예 ``` CONTROL MODULATION ``` Pot 동작 ``` Pot → CC 값 변경 ``` 가능한 항목 ``` MODULATION EXPRESSION FILTER REVERB CHORUS ``` --- # 14. PLAYER 메뉴 ``` PLAYER STOP ``` Encoder ``` rotate → PLAY / STOP / NEXT push → 실행 ``` --- # 15. SYSTEM 메뉴 ``` SYSTEM PANIC ``` 가능한 항목 ``` PANIC GM RESET GS RESET DEVICE INFO ``` --- # 16. LED 동작 | LED | 기능 | |----|----| LED1 | MIDI activity | LED2 | PLAY 상태 | LED3 | MODE 상태 | 예 ``` MODE LED ON → 메뉴 모드 ``` --- # 17. v1 설계 철학 Fluid Ardule v1은 완성형 워크스테이션이 아니라 **실험 가능한 조작반 프로토타입**이다. 검증 목표 - 버튼 5개 + Encoder UI 사용성 - LCD 1602 기반 메뉴 구조 - 실시간 CC 컨트롤 - MIDI Player 제어 검증 후 확장 - Pro Micro 통합 - DIN MIDI 직접 구현 - Custom PCB 설계