수행기록퀘스트3
퀘스트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 다운로드
로그인 후
참가 상태를 확인할 수 있습니다.