수행기록퀘스트4

최종결과물 정리 - SAEBA
2022. 7. 3 (일) 15:45 saeba 조회 491 좋아요 0 스크랩 0 댓글 0

운동 자세 트레이너  - 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. 최종 결과물 동영상

로그인 후
참가 상태를 확인할 수 있습니다.