# 🎭 StageControl - μ—°κ·Ή κ³΅μ—°μš© λΈ”λ£¨νˆ¬μŠ€ μŒμ„± μ œμ–΄ μ•± μ—°κ·Ή 곡연 ν˜„μž₯μ—μ„œ λ°°μš°κ°€ μŒμ„± λͺ…λ ΉμœΌλ‘œ 아두이노 μ†Œν’ˆμ„ μ œμ–΄ν•˜λŠ” Android μ•±μž…λ‹ˆλ‹€. --- ## πŸ“ ν”„λ‘œμ νŠΈ ꡬ쑰 ``` StageControl/ β”œβ”€β”€ app/ β”‚ β”œβ”€β”€ src/main/ β”‚ β”‚ β”œβ”€β”€ java/com/stage/control/ β”‚ β”‚ β”‚ β”œβ”€β”€ MainActivity.java # 메인 ν™”λ©΄ + λΈ”λ£¨νˆ¬μŠ€ + μŒμ„±μΈμ‹ β”‚ β”‚ β”‚ └── DeviceListActivity.java # λΈ”λ£¨νˆ¬μŠ€ μž₯치 λͺ©λ‘ 선택 β”‚ β”‚ β”œβ”€β”€ res/ β”‚ β”‚ β”‚ β”œβ”€β”€ layout/ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ activity_main.xml # 메인 UI β”‚ β”‚ β”‚ β”‚ └── activity_device_list.xml β”‚ β”‚ β”‚ β”œβ”€β”€ values/ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ colors.xml # μ–΄λ‘μš΄ λ¬΄λŒ€ ν…Œλ§ˆ 색상 β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ strings.xml β”‚ β”‚ β”‚ β”‚ └── themes.xml β”‚ β”‚ β”‚ └── drawable/ β”‚ β”‚ β”‚ └── card_bg.xml # μΉ΄λ“œ λ°°κ²½ λͺ¨μ–‘ β”‚ β”‚ └── AndroidManifest.xml β”‚ └── build.gradle β”œβ”€β”€ build.gradle β”œβ”€β”€ settings.gradle └── arduino/ └── StageControl.ino # 아두이노 μˆ˜μ‹  μ½”λ“œ ``` --- ## πŸš€ λΉŒλ“œ 방법 ### μš”κ΅¬μ‚¬ν•­ - Android Studio Hedgehog (2023.1) 이상 - Android SDK 34 - JDK 8 이상 ### λΉŒλ“œ 단계 1. **Android Studioμ—μ„œ ν”„λ‘œμ νŠΈ μ—΄κΈ°** ``` File β†’ Open β†’ StageControl 폴더 선택 ``` 2. **Gradle Sync** ``` File β†’ Sync Project with Gradle Files ``` 3. **μ•± λΉŒλ“œ 및 μ„€μΉ˜** ``` Run β†’ Run 'app' ``` λ˜λŠ” APK 생성: ``` Build β†’ Build Bundle(s)/APK(s) β†’ Build APK(s) ``` --- ## πŸ“± μ•± μ‚¬μš© 방법 ### 1. HC-05 λΈ”λ£¨νˆ¬μŠ€ νŽ˜μ–΄λ§ (λ¨Όμ € ν•΄μ•Ό 함) 1. μ•ˆλ“œλ‘œμ΄λ“œ μ„€μ • β†’ λΈ”λ£¨νˆ¬μŠ€ 2. HC-05 μž₯치 νŽ˜μ–΄λ§ (κΈ°λ³Έ PIN: `1234` λ˜λŠ” `0000`) ### 2. μ•± μ‹€ν–‰ 흐름 ``` μ•± μ‹€ν–‰ β†’ [λΈ”λ£¨νˆ¬μŠ€ μ—°κ²°] λ²„νŠΌ 클릭 β†’ HC-05 μž₯치 선택 β†’ μ—°κ²° μ™„λ£Œ (Connected: HC-05) β†’ [🎀 μŒμ„± λͺ…λ Ή] λ²„νŠΌ 클릭 β†’ λͺ…λ Ή λ§ν•˜κΈ° β†’ μ•„λ‘μ΄λ…Έλ‘œ λͺ…λ Ή 전솑 ``` --- ## πŸŽ™ 지원 μŒμ„± λͺ…λ Ή | λ§ν•˜λŠ” λ‚΄μš© | 전솑 λͺ…λ Ή | μ„€λͺ… | |---|---|---| | "λ™μž‘ 1" / "λ™μž‘1" / "1번" | `1` | 첫 번째 λ™μž‘ | | "λ™μž‘ 2" / "λ™μž‘2" / "2번" | `2` | 두 번째 λ™μž‘ | | "μ •μ§€" / "stop" / "μŠ€ν†±" | `S` | μ •μ§€ | | "ν™ˆ" / "home" / "처음" | `H` | ν™ˆ μœ„μΉ˜ 볡귀 | --- ## πŸ”Œ 아두이노 μ—°κ²° ### HC-05 λ°°μ„  ``` Arduino Uno HC-05 ───────────────────────── 5V β†’ VCC GND β†’ GND Pin 10 (RX) β†’ TX Pin 11 (TX) β†’ RX (μ „μ••λΆ„λ°° ν•„μš”: 1kΞ© + 2kΞ©) ``` ### Arduino IDE μ—…λ‘œλ“œ 1. `arduino/StageControl.ino` μ—΄κΈ° 2. λ³΄λ“œ: Arduino Uno 선택 3. 포트 선택 ν›„ μ—…λ‘œλ“œ 4. HC-05 μ—°κ²° ν›„ μ‹œλ¦¬μ–Ό λͺ¨λ‹ˆν„°(9600 baud)둜 확인 --- ## 🎨 UI λ””μžμΈ - **λ°°κ²½**: 거의 κ²€μ • (`#0D0D0D`) - λ¬΄λŒ€ μ–΄λ‘μš΄ ν™˜κ²½ μ΅œμ ν™” - **ν…μŠ€νŠΈ**: 큰 흰색 글씨 - λ©€λ¦¬μ„œλ„ 확인 κ°€λŠ₯ - **μƒνƒœ 색상**: - 🟒 연결됨: μ΄ˆλ‘μƒ‰ - 🟑 μ—°κ²° 쀑: λ…Έλž€μƒ‰ - πŸ”΄ λ―Έμ—°κ²°: 빨간색 - **전솑 λͺ…λ Ή**: 초둝 λŒ€ν˜• ν…μŠ€νŠΈ (60sp) - μ¦‰μ‹œ 확인 κ°€λŠ₯ --- ## πŸ”’ ν•„μš” κΆŒν•œ | κΆŒν•œ | μš©λ„ | |---|---| | BLUETOOTH / BLUETOOTH_ADMIN | λΈ”λ£¨νˆ¬μŠ€ κΈ°λ³Έ (Android 10) | | BLUETOOTH_CONNECT / BLUETOOTH_SCAN | λΈ”λ£¨νˆ¬μŠ€ (Android 12+) | | ACCESS_FINE_LOCATION | λΈ”λ£¨νˆ¬μŠ€ μŠ€μΊ” (Android 10-11) | | RECORD_AUDIO | μŒμ„± 인식 | | INTERNET | Google μŒμ„± 인식 API | --- ## ⚠️ 문제 ν•΄κ²° | 증상 | ν•΄κ²° 방법 | |---|---| | μž₯치 λͺ©λ‘μ΄ λΉ„μ–΄ 있음 | μ„€μ •μ—μ„œ HC-05 λ¨Όμ € νŽ˜μ–΄λ§ | | μ—°κ²° μ‹€νŒ¨ | HC-05 전원 확인, PIN μž¬μž…λ ₯ | | μŒμ„± 인식 λΆˆκ°€ | 인터넷 μ—°κ²° 확인, 마이크 κΆŒν•œ ν—ˆμš© | | λͺ…령이 아두이노에 μ•ˆ 듀어감 | HC-05 baud rate 확인 (9600) | --- ## πŸ“‹ 개발 ν™˜κ²½ - **μ–Έμ–΄**: Java - **μ΅œμ†Œ SDK**: Android 10 (API 29) - **νƒ€κ²Ÿ SDK**: Android 14 (API 34) - **λΈ”λ£¨νˆ¬μŠ€**: Classic SPP (UUID: 00001101-...) - **μŒμ„± 인식**: Android SpeechRecognizer (Google)