fb7e3cede789a67cbf501f1bbec2184d894c1941
🎭 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 이상
빌드 단계
-
Android Studio에서 프로젝트 열기
File → Open → StageControl 폴더 선택 -
Gradle Sync
File → Sync Project with Gradle Files -
앱 빌드 및 설치
Run → Run 'app'또는 APK 생성:
Build → Build Bundle(s)/APK(s) → Build APK(s)
📱 앱 사용 방법
1. HC-05 블루투스 페어링 (먼저 해야 함)
- 안드로이드 설정 → 블루투스
- 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 업로드
arduino/StageControl.ino열기- 보드: Arduino Uno 선택
- 포트 선택 후 업로드
- 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)
Languages
HTML
84.1%
Java
14.5%
C++
1.4%