수행기록퀘스트4
운동 자세 트레이너 - SAEBA
1.소개
코로나로 인해 비대면 생활에 대한 비중이 늘면서 불편해진 활동들이 많아졌다.
그 중 대표적인 하나가 개개인의 운동에 대한 제약일텐데 기존 헬스장에서 트레이너를 통해 운동하고
배우던 것들을 아직까지 비대면이라 하기 힘들거나 꺼려지는 경우가 많을 것이다.
이런 경우에 대하여 도움을 줄 수 있는 나만의 미니 셀프 트레이너를 만들려고 한다.
3축 가속도 센서를 이용하여 미리 저장된 운동 동작에 대한 정보를 매칭하여 각 운동 동작에 대한
도움을 주는 장치이다.
2초기 계획한 시스템 구조
- 초기 계획한 HW 구조
- 초기 계획한 SW구조
3.하드웨어 주요 부품 목록
- STM32G07x Disco 보드
- STM32G07x Disco용 LCD 보드
- ST SensorTile.Box + Jtag케이블 및 sub보드
- J-Link Debugger
- 전선,드라이버.
3.1부품 사양/특징
- STM32G07x Disco 보드 : STM32G07x(64Mhz) mcu를 사용한 저가 보드
-LCD 보조 보드: LCD : 320x240 LCD , spi nor-flash 내장.
- SensorTile.Box 모듈 보드
@ STM32L4R9(120MHz) + 온도/습도/자기/대기압/오디오 센서 + 6축IMU센서 내장.
6축IMU센서로는 ST LSM6DSOX 사용(1.71V~3.6V) <- 이번에 사용할 센서임
-> ±2/±4/±8/±16g 로 accelerometer full scale설정 가능.
-> ±125/±250/±500/±2000 dsp 로 gyro full scale 설정 가능
-> 통신선 연결 : spi 또는 i2c & Mipi I3C
4. SW 작업 리스트
센서(sensorTileBox mcu 제어)
데이터 취득
데이터 분석 및 LPF 검토 -> ACC센서값 안정화 처리
UART통신(sensorTileBox mcu & UI보드 mcu)
통신 규약 정의
통신 코드 작성 1( 센서 보드 mcu 코드)
통신 코드 작성 2 ( UI 보드 mcu 코드)
UI 처리
TouchGfx MVP 구조대로 코드 데이터 처리 코드 작성.
UI 구상 및 적용
5.개발 툴 목록
- 보드1: 센서보드(제공받음)
- 보드2: LCD보드 + stm32g071보드(LCD제어용 보드)
- Jlink 장비(디버깅툴)
- compiler : IAR 9.20.4(센서보드용), CubeIDE(LCD제어용)
-보드간 선 연결
- 센서보드에서 BLE에 연결된 UART를 끊고 LCD보드로 연결.
6.소프트웨어에 대한 설명
-> 실제 SW 구현은 개인사정으로 센서쪽만 구현이 된 상태입니다. LCD보드쪽 UI처리를 구현하지 못하였습니다. 그래서 PC에 연결하여 대략적인 동작을 보여드리겠습니다.
6.1센서 보드 펌웨어
코드 실행 순서
6.1.1 MCU 초기화(clock초기화 -> gpio초기화 -> mcu peripheral 초기화)
6.1.2 센서보드 초기화(각 센서칩 초기화 및 가속도센서 초기화(+/-2G)
6.1.3 do{//반복 루프
센서값 읽기
센서값 필터링 ( moving average filter 적용)
운동 자세 판단
센서값 및 모션결과 UART로 보내기
}while(1)
플로우차트 그림
6.2sensor보드 설치
- x축은 아래로 향하고 z축은 정면을 향하도록 다리종아리에 설치하는 조건으로 프로그램 했음.
6.3테스트 운동 자세 종류
- fw1에서 감지하도록 한 동작들은 다음 4가지 자세임.
pose0(stand 상태)
pose1(다리를 뒤 -45도 들때)
pose2(엎드린상태, 엉덩이는 올린 상태)
pose3(다리 앞으로 45도 들어올린 상태)
6.4 GUI 보드 펌웨어
- 전달 받은 자세 결과를 Display에 표현하려 하였으나 일정내에 개발진행 못했음.(개인적인 일정이 너무 많아서 못했음)
7. 최종 결과물 동영상
로그인 후
참가 상태를 확인할 수 있습니다.