Wrote README.md
This commit is contained in:
@@ -1,157 +1,52 @@
|
|||||||
# 🎭 StageControl - 연극 공연용 블루투스 음성 제어 앱
|
# OM-robot-arm-controller
|
||||||
|
|
||||||
연극 공연 현장에서 배우가 음성 명령으로 아두이노 소품을 제어하는 Android 앱입니다.
|
## Project structure
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 📁 프로젝트 구조
|
|
||||||
|
|
||||||
```
|
```
|
||||||
StageControl/
|
StageControl/
|
||||||
├── app/
|
├── app/
|
||||||
│ ├── src/main/
|
│ ├── src/main/
|
||||||
│ │ ├── java/com/stage/control/
|
│ │ ├── java/com/stage/control/
|
||||||
│ │ │ ├── MainActivity.java # 메인 화면 + 블루투스 + 음성인식
|
│ │ │ ├── MainActivity.java # Main UI + bluetooth + voice recognization
|
||||||
│ │ │ └── DeviceListActivity.java # 블루투스 장치 목록 선택
|
│ │ │ └── DeviceListActivity.java # bluetooth selection
|
||||||
│ │ ├── res/
|
│ │ ├── res/
|
||||||
│ │ │ ├── layout/
|
│ │ │ ├── layout/
|
||||||
│ │ │ │ ├── activity_main.xml # 메인 UI
|
│ │ │ │ ├── activity_main.xml # Main UI
|
||||||
│ │ │ │ └── activity_device_list.xml
|
│ │ │ │ └── activity_device_list.xml
|
||||||
│ │ │ ├── values/
|
│ │ │ ├── values/
|
||||||
│ │ │ │ ├── colors.xml # 어두운 무대 테마 색상
|
│ │ │ │ ├── colors.xml
|
||||||
│ │ │ │ ├── strings.xml
|
│ │ │ │ ├── strings.xml
|
||||||
│ │ │ │ └── themes.xml
|
│ │ │ │ └── themes.xml
|
||||||
│ │ │ └── drawable/
|
│ │ │ └── drawable/
|
||||||
│ │ │ └── card_bg.xml # 카드 배경 모양
|
│ │ │ └── card_bg.xml
|
||||||
│ │ └── AndroidManifest.xml
|
│ │ └── AndroidManifest.xml
|
||||||
│ └── build.gradle
|
│ └── build.gradle
|
||||||
├── build.gradle
|
├── build.gradle
|
||||||
├── settings.gradle
|
├── settings.gradle
|
||||||
└── arduino/
|
└── arduino/
|
||||||
└── StageControl.ino # 아두이노 수신 코드
|
└── StageControl.ino # Arduino connection
|
||||||
```
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 🚀 빌드 방법
|
## Voice action
|
||||||
|
|
||||||
### 요구사항
|
| 음성 | 전송 명령 |
|
||||||
- Android Studio Hedgehog (2023.1) 이상
|
|----------------|---|
|
||||||
- Android SDK 34
|
| 동작 1 / 동작1 / 1번 | `1` |
|
||||||
- JDK 8 이상
|
| 동작 2 / 동작2 / 2번 | `2` |
|
||||||
|
| 정지 / stop / 스톱 | `S` |
|
||||||
### 빌드 단계
|
| 홈 / home / 처음 | `H` |
|
||||||
|
|
||||||
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)
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 📱 앱 사용 방법
|
## Arduino setup
|
||||||
|
|
||||||
### 1. HC-05 블루투스 페어링 (먼저 해야 함)
|
### HC-05
|
||||||
1. 안드로이드 설정 → 블루투스
|
|
||||||
2. HC-05 장치 페어링 (기본 PIN: `1234` 또는 `0000`)
|
|
||||||
|
|
||||||
### 2. 앱 실행 흐름
|
| Arduino | HC-05 |
|
||||||
```
|
|-------------| ----- |
|
||||||
앱 실행
|
| 5V | VCC |
|
||||||
→ [블루투스 연결] 버튼 클릭
|
| GND | GND |
|
||||||
→ HC-05 장치 선택
|
| Pin 10 (RX) | TX |
|
||||||
→ 연결 완료 (Connected: HC-05)
|
| Pin 11 (TX) | RX (전압분배 필요: 1kΩ + 2kΩ) |
|
||||||
→ [🎤 음성 명령] 버튼 클릭
|
|
||||||
→ 명령 말하기
|
|
||||||
→ 아두이노로 명령 전송
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 🎙 지원 음성 명령
|
|
||||||
|
|
||||||
| 말하는 내용 | 전송 명령 | 설명 |
|
|
||||||
|---|---|---|
|
|
||||||
| "동작 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)
|
|
||||||
@@ -27,8 +27,7 @@ public class GeminiHelper {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public GeminiHelper() {
|
public GeminiHelper() {
|
||||||
// Using gemini-1.5-flash for stability and free tier
|
GenerativeModel gm = new GenerativeModel("gemini-3.5-flash", API_KEY);
|
||||||
GenerativeModel gm = new GenerativeModel("gemini-1.5-flash", API_KEY);
|
|
||||||
model = GenerativeModelFutures.from(gm);
|
model = GenerativeModelFutures.from(gm);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user