수행기록퀘스트3

머신러닝 도우미
2022. 6. 26 (일) 03:22 최종수정 2022. 6. 26 (일) 17:50 Tiel 조회 583 좋아요 1 스크랩 1 댓글 0

퀘스트3 내용 작성.

작성자: Tiel ( 2022.06.25 )

개발 툴 목록
 - compiler: IAR ewarm 8.40, CubeIDE 1.80
 - Stlink
 - 개발보드 2장(SensorTileBox, Stm32H7B3I-DK)
 - Battery
   
소프트웨어 설명


FW1. 인체 동작 감지 FW ( 제공받은 보드 사용)
   ->인체 동작 3 가지(멈춤, 걷기, 조깅)를 감지하는 FW.
   ->raw data에 대한 cnn처리를 적용하여 classification 처리함.
   ->수집된 raw data를 아래 학습 코드를 이용하여 사전 훈련을 하여 cnn모델을 학습한다.
   ->학습된 모델을 이용하여 mcu ai 코드에 적용함
   ->행동감지 결과는 0(No motion),1(걷기), 2(조깅) 세 가지이며 결과는 uart2를 통해 Display보드로 전송.

   (FW 흐름)
   read acc.x/y/z  ( from 6dof sensor)
   gather raw data -> save to buffer
   if buffer is full, run action_detection code
   send action result to display bard via uart.

 

  (모델학습코드)
1초에 30번조검으로 각 모션별로 가속도센서 3축에 대한 센서 데이타를 수집한 후 다음과 같은
학습 코드로 학습후 modle.h5저장하였다.

model = tf.keras.models.Sequential([
  tf.keras.layers.Conv1D(filters=16, kernel_size=3, activation='relu', input_shape=(30, 3)),
  tf.keras.layers.Conv1D(filters=8, kernel_size=3, activation='relu'),
  tf.keras.layers.Flatten(),
  tf.keras.layers.Dense(64, activation='relu'),
  tf.keras.layers.Dense(3, activation='softmax')
])
model.compile(optimizer='adam',
              loss='spars_categorical_crossentropy',
              metrics=['accuracy'])
model.fit(x_train, y_train, epochs=30)
test_loss, test_acc = model.evaluate(x_test,  y_test, verbose=2)
 

FW2. Display 표현 및 운동량 측정을 위한 FW ( 보유 중인 보드 사용)
   -> touch gfx gui를 이용하여 각 행동별 운동시간 표시, 현재 운동 강도, 소비 열량을 계산하여 표시
   
   (FW흐름 - 위 그림에서 H7B3I_DK SW흐름도 참조)
   Wait information data
   Receive action_result from sensor board via uart4
   accumulate each action's info, calories and exercise-intensity, etc.
   update action information to display-process.

화면사진

 

동작구현 상태

-> FW1 : 100% 구현(완료)

->FW2 : 화면 구성(100%), Uart 통신코드(50%), 기타코드(30%)

   -> 아직 수신이 제대로 되지 않는 상태이다보니 좀 지연된 상태임.(HW 문제일듯한 한데 아직 원인을 찾는중이나 측정장비가 없어서 해결에 시간이 걸리고 있음)

   -> 계속 통신에 문제가 있을경우 다른 시뮬레이션으로 대체할 가능성도 있음.

 

첨부소스파일: default_...7z 파일: FW1코드,  Quest_june_har_tiel.7z: FW2코드  를 압축해서 1개로 첨부함

첨부파일
Usart2_연결_D5(Tx)_D6(Rx).png 다운로드

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