Teachable Machine을 활용한 FSR 센서 프로젝트
개요
Google의 Teachable Machine을 사용하여 FSR 센서 데이터를 학습시키고, 제스처나 압력 패턴을 인식하는 AI 모델을 만들 수 있습니다.
Teachable Machine 3단계 프로세스
Teachable Machine은 다음 3단계로 작동합니다:
- 수집 (Gather): 훈련 데이터 수집
- 학습 (Train): 모델 훈련
- 내보내기 (Export): 모델 활용
훈련 옵션 설정
주요 설정 항목
- Epochs: 학습 반복 횟수
- Batch Size: 한 번에 처리할 데이터 크기
- Learning Rate: 학습 속도 조절
FSR 센서와 연동하기
1. 데이터 수집
FSR 센서에서 다양한 압력 패턴 데이터를 수집합니다:
// Arduino 코드 예제
int fsrPin = A0;
int fsrReading;
void setup() {
Serial.begin(9600);
}
void loop() {
fsrReading = analogRead(fsrPin);
Serial.println(fsrReading);
delay(100); // 100ms 간격으로 데이터 수집
}
2. 클래스 정의
압력 패턴에 따른 클래스를 정의합니다:
클래스 | 압력 범위 | 용도 |
---|---|---|
없음 | 0-100 | 터치 없음 |
약함 | 100-400 | 가벼운 터치 |
중간 | 400-700 | 일반 누름 |
강함 | 700-1023 | 강한 압력 |
3. 모델 학습
- Teachable Machine 웹사이트 접속
- "New Project" → "Standard image model" 선택
- 각 클래스별로 샘플 수집
- "Train Model" 클릭
- 학습 완료 후 테스트
4. 모델 내보내기 및 활용
학습된 모델을 다양한 형식으로 내보낼 수 있습니다:
- TensorFlow.js
- Arduino
- Python
// 웹 브라우저에서 실행
const URL = "https://teachablemachine.withgoogle.com/models/YOUR_MODEL/";
const model = await tmImage.load(URL + "model.json", URL + "metadata.json");
// Arduino Nano 33 BLE Sense
#include <TensorFlowLite.h>
// 모델 로드 및 추론 코드
import tensorflow as tf
model = tf.keras.models.load_model('model.h5')
# 예측 수행
predictions = model.predict(sensor_data)
활용 예제
1. 자세 인식 방석
FSR 센서 매트릭스를 사용하여 앉은 자세를 분류:
- 바른 자세
- 구부정한 자세
- 한쪽으로 기운 자세
2. 보행 패턴 분석
신발 깔창에 FSR 센서를 부착하여:
- 정상 보행
- 절뚝거림
- 뛰기/걷기 구분
3. 악력 측정 및 재활
손가락별 압력을 측정하여:
- 악력 수준 평가
- 재활 진행도 추적
- 운동 패턴 인식
주의사항
주의
- 충분한 양의 학습 데이터 확보 필요 (클래스당 최소 100개 이상)
- 센서 노이즈 제거를 위한 필터링 적용
- 실제 환경과 유사한 조건에서 데이터 수집