Files
om_arm_control_app/README.md
T
2026-08-10 19:44:09 +09:00

158 lines
4.1 KiB
Markdown

# 🎭 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)