User Tools

Site Tools


nano_ardule_midi_controller

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
nano_ardule_midi_controller [2025/08/05 23:31] – [참고] hyjeongnano_ardule_midi_controller [2025/08/08 06:47] (current) – [참고] hyjeong
Line 36: Line 36:
   * Ardule의 MIDI OUT → GM 사운드 모듈 연결   * Ardule의 MIDI OUT → GM 사운드 모듈 연결
   * 전원 On 시 PART A LED 점등. 기본 악기는 GM #0 (어쿠스틱 그랜드 피아노)   * 전원 On 시 PART A LED 점등. 기본 악기는 GM #0 (어쿠스틱 그랜드 피아노)
-  * 로터리 인코더 회전 → 볼륨 조절   +  * 로터리 인코더를 돌려서 볼륨 조절   
-  * 인코더 버튼 → 'Program Change' 진입. 회전으로 선택 후 STOP/EXIT으로 복귀.   +  * 인코더 버튼을 누르면 'Program Change' 진입. 인코더를 돌려서 원하는 프그램을 선택 후 STOP/EXIT 버튼을 눌러 복귀.   
-  * 변경값은 회전 멈춘 후 0.2초 뒤 전송됨 (LCD에 전송 완료 표시) +    * 변경값은 회전 멈춘 후 0.2초 뒤 전송됨 (LCD에 전송 완료 표시)
   * LOAD 버튼 → 저장된 프로그램 로드. 인코더로 선택, STOP/EXIT으로 복귀   * LOAD 버튼 → 저장된 프로그램 로드. 인코더로 선택, STOP/EXIT으로 복귀
   * PART A 또는 B만 선택된 상태에서 LOAD → UsrPrg## 목록에서만 선택 가능   * PART A 또는 B만 선택된 상태에서 LOAD → UsrPrg## 목록에서만 선택 가능
   * PART SELECT 순환: A → B → A+B → A (A+B 시 LED 동시 점등)   * PART SELECT 순환: A → B → A+B → A (A+B 시 LED 동시 점등)
-  * PART SELECT 더블클릭 → DRUMS 모드(CH10 출력). 한 번 더 누르면 이전 상태로 복귀+  * PART SELECT 더블클릭DRUMS 모드(CH10 출력). 한 번 더 누르면 이전 상태로 복귀
   * PLAY/PAUSE + STOP/EXIT 동시 누름 → Transpose 설정 진입   * PLAY/PAUSE + STOP/EXIT 동시 누름 → Transpose 설정 진입
  
Line 88: Line 87:
     * 인코더 버튼 → 카테고리 전환     * 인코더 버튼 → 카테고리 전환
     * 인코더 회전 → 값 조절     * 인코더 회전 → 값 조절
- +  * **설정 항목 (기본값):** 
-  * 설정 항목 (기본값): +    Part A default instrument: [0] 
-    1. Part A default instrument: [0] +    Part B default instrument: [48] 
-    2. Part B default instrument: [48] +    Part A channel: [1] (1~9, 11~16) 
-    3. Part A channel: [1] (1~9, 11~16) +    Part B channel: [2] (1~9, 11~16) 
-    4. Part B channel: [2] (1~9, 11~16) +    Alternative Part A channel: [14] 
-    5. Alternative Part A channel: [14] +    Alternative Part B channel: [15] 
-    6. Alternative Part B channel: [15] +    인코더 대기 시간(초): [0.2] (0.1~1.0) 
-    7. 인코더 대기 시간(초): [0.2] (0.1~1.0) +    MIDI file 정지 시 리와인드: [Y] 
-    8. MIDI file 정지 시 리와인드: [Y] +    MIDI file 연속 재생: [N] 
-    9. MIDI file 연속 재생: [N] +    곡 간 정지 시간(초): [5] (0~10) 
-    10. 곡 간 정지 시간(초): [5] (0~10) +    Dump settings to microSD card: [N]
-    11. Dump settings to microSD card: [N]+
  
   * EXIT 버튼 → 초기 상태로 복귀   * EXIT 버튼 → 초기 상태로 복귀
Line 107: Line 105:
 ==== 아두이노 나노의 핀 연결 ==== ==== 아두이노 나노의 핀 연결 ====
 74HC595 시프트레지스터 IC를 쓰지 않는 조건으로 설계했기 때문에 아두이노 나노의 모든 핀이 다 쓰이고 있다.  74HC595 시프트레지스터 IC를 쓰지 않는 조건으로 설계했기 때문에 아두이노 나노의 모든 핀이 다 쓰이고 있다. 
-^ 기능               ^ 설명 또는 역할             ^ Arduino 핀 + 
-| Rotary Encoder CLK | 회전 신호 A (인터럽트 가능) | D2 +^ Arduino 핀 ^ 기능 ^ 설명 또는 역할 ^ 
-| Rotary Encoder DT  | 회전 신호 B (인터럽트 가능) | D3 +| D0  | MIDI IN (RX)           | 키보드에서 MIDI 수신                  | 
-| Encoder SW (버튼)  | 로터리 인코더 버튼 입력     | A0 +| D1  | MIDI OUT (TX)          | GM 음원으로 MIDI 전송                 | 
-PART SELECT 버튼   | 파트 선택                   | D4 | +| D2  | Rotary Encoder CLK     | 회전 신호 A (인터럽트 가능)           
-| SPLIT 버튼         | 스플릿 기능 진입            | D5 +| D3  | Rotary Encoder DT      | 회전 신호 B (인터럽트 가능)           
-LOAD 버튼          저장된 프로그램 로드        | D6 +| D4  | Encoder SW (버튼)      | 로터리 인코더 버튼 입력               
-| SAVE 버튼          | 현재 설정 저장              | D7 +D5  <color #ed1c24>SPLIT 버튼</color>             | 스플릿 기능 진입                      
-PLAY/PAUSE 버튼    | MIDI 재생 제어              A6 +D6  | <color #ed1c24>STOP/EXIT 버튼</color>         편집 모/재생 종료                   
-STOP/EXIT 버튼     편집 모드/재생 종료         A7 | +D7  | <color #ed1c24>SAVE 버튼</color>              | 현재 설정 저장                        
-| LCD SDA            | I2C LCD 데이터               | A4 +D8  | <color #ed1c24>LOAD 버튼</color>              저장된 프로그램 로드                  
-LCD SCL            | I2C LCD 클럭                 | A5 | +D9  <color #22b14c>MIDI Activity LED</color>      MIDI IN/OUT 동작 표시용               | 
-| microSD CS         | SD 카드 선택 신호            | D9 +D10 | microSD CS             | SD 카드 선택 신호                     
-| microSD MOSI       | SPI 데이터 출력              | D11 +| D11 | microSD MOSI           | SPI 데이터 출력                       
-| microSD MISO       | SPI 데이터 입력              | D12 +| D12 | microSD MISO           | SPI 데이터 입력                       
-| microSD SCK        | SPI 클럭                     | D13 +| D13 | microSD SCK            | SPI 클럭                              
-MIDI OUT (TX)      | GM 음원으로 MIDI 전송        | D1 | +A0  <color #22b14c>Part A LED</color>             | Part A 활성 표시                      
-| MIDI IN (RX)       | 키보드에서 MIDI 수신         | D0 | +A1  | <color #22b14c>Part B LED</color>             | Part B 활성 표시                      
-| MIDI Activity LED  MIDI IN/OUT 동작 표시용      | D8 | +A2  | <color #22b14c>Drums LED</color>              | Drums 모드 표시                       | 
-Part A LED         | Part A 활성 표시             | A1 +| A3  |<color #ed1c24> PLAY/PAUSE 버튼 </color>       | MIDI 재생 제어                        | 
-| Part B LED         | Part B 활성 표시             | A2 +| A4  | LCD SDA                | I2C LCD 데이터                        | 
-| Drums LED          | Drums 모드 표시              | A3 |+| A5  | LCD SCL                | I2C LCD 클럭                          | 
 +| A6  | <color #ed1c24>PART SELECT 버튼</color>       | 파트 선택                             | 
 + 
 +  * **D0/D1 (RX/TX)**: MIDI IN/OUT으로 사용할 수 있지만, USB 시리얼 통신과 공유되므로, 업로드 후에는 Arduino가 리셋되거나 통신 충돌이 일어날 수 있음. 사용 시 신중히 처리 필요 (예: 업로드 후 MIDI 회로 자동 연결 또는 점퍼). 
 +  * **SPI (D10–D13)**: microSD 카드에 적합하게 잘 배정됨. 
 +  * **A4/A5**: I²C LCD에 올바르게 사용됨. 
 +  * **A6**: 입력 전용 아날로그 핀이므로 버튼용으로 적절.
  
 === MIDI IN & OUT  === === MIDI IN & OUT  ===
Line 138: Line 142:
   * [[https://www.dosdays.co.uk/media/dream/SAM9703.PDF|SAM9703 데이터시트]]   * [[https://www.dosdays.co.uk/media/dream/SAM9703.PDF|SAM9703 데이터시트]]
 {{ :pictures:sam9703.png?400 |}} {{ :pictures:sam9703.png?400 |}}
 +  * Arduino Nano pinout: [[https://www.tech-sparks.com/arduino-nano-pinout-guide/|출처]] [[https://content.arduino.cc/assets/Pinout-NANO_latest.pdf|공식 웹사이트의 자료]]
 +{{ :pictures:arduino_nano_pinout.png?400 |}}
   * [[roland_gs_variation_table|Roland GS Variation Table]]   * [[roland_gs_variation_table|Roland GS Variation Table]]
 +  * [[https://mitxela.com/other/ca33.pdf|MMA MIDI 1.0 Electrical Specification]]
nano_ardule_midi_controller.1754436679.txt.gz · Last modified: by hyjeong