별도의 조절 장치를 갖고 있지 않은 GM sound module의 활용도를 높이기 위한 Arduino Nano 기반의 MIDI Controller(Nano Ardule)를 제작한다. Ardule은 Arduino + Module의 합성어이며, 프랑스어로 ‘어려운’(arduous)이라는 뜻도 갖고 있다. 2개 프로그램의 layer/split이 가능하며, 음색 설정을 user program/combi 형태로 microSD 카드에 저장하고 로드할 수 있다. 또한 카드에 저장된 type 0 MIDI 파일을 재생하는 기능도 갖고 있다. 이 프로젝트는 GM 명령어를 공부하고 아두이노 활용의 익히기 위한 목적도 있다.
74HC595 시프트레지스터 IC를 쓰지 않는 조건으로 설계했기 때문에 아두이노 나노의 모든 핀이 다 쓰이고 있다.
Arduino 핀 | 기능 | 설명 또는 역할 |
---|---|---|
D0 | MIDI IN (RX) | 키보드에서 MIDI 수신 |
D1 | MIDI OUT (TX) | GM 음원으로 MIDI 전송 |
D2 | Rotary Encoder CLK | 회전 신호 A (인터럽트 가능) |
D3 | Rotary Encoder DT | 회전 신호 B (인터럽트 가능) |
D4 | Encoder SW (버튼) | 로터리 인코더 버튼 입력 |
D5 | SPLIT 버튼 | 스플릿 기능 진입 |
D6 | STOP/EXIT 버튼 | 편집 모드/재생 종료 |
D7 | SAVE 버튼 | 현재 설정 저장 |
D8 | LOAD 버튼 | 저장된 프로그램 로드 |
D9 | MIDI Activity LED | MIDI IN/OUT 동작 표시용 |
D10 | microSD CS | SD 카드 선택 신호 |
D11 | microSD MOSI | SPI 데이터 출력 |
D12 | microSD MISO | SPI 데이터 입력 |
D13 | microSD SCK | SPI 클럭 |
A0 | Part A LED | Part A 활성 표시 |
A1 | Part B LED | Part B 활성 표시 |
A2 | Drums LED | Drums 모드 표시 |
A3 | PLAY/PAUSE 버튼 | MIDI 재생 제어 |
A4 | LCD SDA | I2C LCD 데이터 |
A5 | LCD SCL | I2C LCD 클럭 |
A6 | PART SELECT 버튼 | 파트 선택 |