STM32_Quest_AI_Elliot_2022

사용 기술
콘테스트 프로젝트 진행 상황
각 Quest를 단계적으로 완성하는 프로젝트입니다.
Quest 1: STM32퀘스트챌린지.Q1.결과제출
2022.08.07
[STM32CubeMX 설치]

[Get FP-AI-SENSING1]

[X-CUBE-AI 설치]

[Analize 결과]


[Show graph 결과]

[첨부파일: network_analyze_report.txt]
Quest 2: Neural Network Model을 만드는 개발 환경을 구축
2022.08.28
[Quest 2] Neural Network Model을 만드는 개발 환경을 구축
* 설치한 개발툴
- Anaconda3-2022.05-Windows-x86_64.exe
- pycharm-community-2022.2.exe
* 아나콘다 참조 싸이트
https://anaconda.cloud/getting-started-with-anaconda-distribution-notebook
* 아나콘다 설치

* 아나콘다 네비게이터에서 환경 설정
.png)
* Python 3.7 패키지 설치


* tensorflow, tensorflow-base, tensorflow-datasets, Keras, keras-applications, keras-base를 설치


* Python IDE 에서 RunMe.py 빌드 시 모듈에러
- numpy등 추가 모듈 설치
* HAR 폴더안에 Log_data 폴더를 새로 생성합니다.

* IoT01-MemsAnn_03_Oct_19_10h_01m_26s.csv 복사
* Dataset 다운로드 & 복사




* Cube_AI network Analize Report

Quest 3: STM32 퀘스트 챌린지 Q3 B-L475E-IOT01A 보드에 바이너리 파일 라이팅하기
2022.09.08
1. CleanSensing1.bat 실행
B-L475E-IOT01A1보드의 펌웨어를 클리어 하기 위한 Batch파일을 실해하기 위해서는 몇가지 수정이 필요합니다.
그리고, STM32툴을 사용하다보면 256자가 넘는 긴~ 폴더명으로 인해 오류가 생기는 일이 잦습니다.
다음 파일들을 D:\Temp 와 같이 루트 디렉토리에 임시 폴더를 만들어 복사 한 후
BATCH파일의 내용을 다음과 같이 수정하고 실행 하시면 됩니다.
* CleanSENSING1.BAT
* SENSING1.BIN
* sensing1_bl.bin
@echo off
set CUBE_PROG="C:\Program Files\STMicroelectronics\STM32Cube\STM32CubeProgrammer\bin\STM32_Programmer_CLI.exe"
set NAMESENSING1=D:\Temp\sensing1
set BOOTLOADER="D:\Proj\STM32CubeFunctionPack_SENSING1_V4.0.3\Utilities\BootLoader\STM32L476RG\BootLoaderL4.bin"
color 0F
echo /******************************************/
echo Clean FP-AI-SENSING1
echo /******************************************/
echo Full Chip Erase
echo /******************************************/
%CUBE_PROG% -c port=swd mode=UR reset=HWrst -e all
echo /******************************************/
echo Install BootLoader
echo /******************************************/
%CUBE_PROG% -c port=swd mode=UR reset=HWrst -d %BOOTLOADER% 0x08000000 -v
echo /******************************************/
echo Install FP-AI-SENSING1
echo /******************************************/
%CUBE_PROG% -c port=swd mode=UR reset=HWrst -d %NAMESENSING1%.bin 0x08004000 -v
echo /******************************************/
echo Dump FP-AI-SENSING1 + BootLoader
echo /******************************************/
set offset_size=0x4000
for %%I in (%NAMESENSING1%.bin) do set application_size=%%~zI
echo %NAMESENSING1%.bin size is %application_size% bytes
set /a size=%offset_size%+%application_size%
echo Dumping %offset_size% + %application_size% = %size% bytes ...
echo ..........................
%CUBE_PROG% -c port=swd mode=UR reset=HWrst -u 0x08000000 %size% %NAMESENSING1%_BL.bin
echo /******************************************/
echo Reset STM32
echo /******************************************/
%CUBE_PROG% -c port=swd mode=UR reset=HWrst -rst
if NOT "%1" == "SILENT" pause
2.STM32CubeIDE에서 FP-AI-SENSING1프로젝트를 Import 하고, Build를 완료
*Build 전 부팅 메시지
UART Initialized
OK Accelero/Gyroscope Sensor
OK Magneto Sensor
OK Humidity/Temperature1 Sensor
OK Pressure/Temperature2 Sensor
Disabled Accelero Sensor
Disabled Gyroscope Sensor
Disabled Magneto Sensor
Disabled Humidity Sensor
Disabled Temperature Sensor1
Disabled Pressure Sensor
Disabled Temperature Sensor2
Attempting to read STM32.TXT...
FatFs volume ready
------------------------------------------------------------
STMicroelectronics AI-SENSING1
Version 4.0.3
STM32L475R-IoT01A1 board
(HAL 1.10.0_0)
Compiled Apr 13 2021 10:25:31 (IAR)
------------------------------------------------------------
Meta Data Manager read from Flash
Meta Data Manager version=1.0.0
Generic Meta Data found:
NODE_NAME Size=8 [bytes]
SERVER: BLE Stack Initialized
BoardName= IAI_403
BoardMAC = c2:55:05:07:9a:9f
HW & SW Service W2ST added successfully
Console Service W2ST added successfully
Config Service W2ST added successfully
Testing BootLoaderCompliance:
Version 2.0.0
MagicNum OK
MaxSize = 507904
OTAStartAdd OK
OTADoneAdd OK
BootLoader Compliant with FOTA
Console command server.
Type 'help' to view a list of registered commands.
$
3.STM32CubeProgrammer를 실행하고 B-L475E-IOT01A1 보드를 연결하고 \STM32CubeFunctionPack_SENSING1_V4.0.3\Projects\B-L475E-IOT01A\Applications\SENSING1\Binary 의 경로에 부트로더 바이너리 “SENSING1_BL.bin” 파일을 라이팅
* Build후 부팅 메시지
------------------------------------------------------------
STMicroelectronics AI-SENSING1
Version 4.0.3
STM32L475R-IoT01A1 board
(HAL 1.10.0_0)
Compiled Sep 8 2022 11:22:05 (GCC) <<< BUILD완료
------------------------------------------------------------
Meta Data Manager read from Flash
Meta Data Manager version=1.0.0
Generic Meta Data found:
NODE_NAME Size=8 [bytes]
4.B-L475E-IOT01A1 보드에 연결된 BLE 모듈인 BlueNRG의 Device Name을 Code에서 최대 7개의 글자 내에서 설정합니다. 설정 후 STBLESensor App에서 본인이 설정한 Device Name이 보이도록 아래와 같이 보드와 호스트 디바이스가 보이도록 촬영후에 제출
static void Init_BlueNRG_Stack(void)
{
char BoardName[8] = {'E','L','L','I','O','T','7'};
uint16_t service_handle, dev_name_char_handle, appearance_char_handle;
int ret;
for(int i=0; i<7; i++) {
NodeName[i+1] = BoardName[i];
}
//BoardName[7]= 0;
#ifdef MAC_SENSING1
{
uint8_t tmp_bdaddr[6]= {MAC_SENSING1};
int32_t i;
for(i=0;i<6;i++) {
bdaddr[i] = tmp_bdaddr[i];
}
}
#endif /* MAC_SENSING1 */
5. 스마트폰의 Mobile App Store에서 STBLESensor Application을 다운로드 받습니다. STBLESensor App에서 Activity Recognition을 클릭합니다. 아래와 같이 B-L475-IOT01A1 보드를 손으로 흔들어 보면서 Activity Recognition의 결과가 달라지는 과정을 담은 동영상을 촬영하여 제출합니다. ( 보드를 흔들면서 Activity Recognition 결과가 달라지는 과정이 포함된 10초 이내의 동영상으로 촬영)
Quest 4: STM32_AI_Quest4 Dataset 구성하기
2022.09.16
B-L475E-IOT01A1 보드와 STBLESensor Mobile App을 사용하여 Jogging, Stationary, Stairs, Walking을 라벨링하여 로깅한 파일을 제출합니다


Quest 5: 새로 생성한 학습된 Model을 STM32Cube.AI를 사용하여 프로젝트에 적용하기
2022.09.25
새로 생성한 학습된 Model을 STM32Cube.AI를 사용하여 프로젝트에 적용하기.
Mobile App과 B-L475-IOT01A1 보드를 이용하여 Human Activity Recognition 을 진행하는 짧은 영상을 레코딩하여 업로드합니다.
* Pycharm에서 Dataset 재생성



*CubeMX project에 에서 Cube-AI 5.0 추가 및 network 추가



* project 소스 코드 생성 후 Cube-AI-Sensing1 project폴더로 생성된 소스로 교체

* CubeIDE에서 B-L475E-IOT01A1보드 프로젝트 RE-Build

이런 과정으로 데이터세트 및 펌웨어 빌드 후 동영상을 제작했습니다.
프로젝트 갤러리
프로젝트 제작 과정과 최종 결과물을 담은 이미지 갤러리입니다.






.png)










프로젝트 자료실
프로젝트를 재현하거나 학습하는데 필요한 모든 자료를 제공합니다.
등록된 자료가 없습니다.
프로젝트 소개
사용 기술
코드 & 회로도
등록된 코드/회로 자료가 없습니다.
댓글 0개
아직 댓글이 없습니다. 첫 댓글을 남겨보세요!

