Thingy-91-Condition-Based-Maintenance

所属分类:collect
开发工具:C
文件大小:0KB
下载次数:2
上传日期:2023-01-13 11:29:49
上 传 者sh-1993
说明:  带车载故障分类器的Simple IoT LTE低功耗振动传感器,Edge Impulse Machine Learning Prize in Make it Smart with Nordic Thingy:91
(Simple IoT LTE low power vibration sensor with on board fault classifier, Edge Impulse Machine Learning Prize winner in Make it Smart with Nordic Thingy:91)

文件列表:
pipeline.jpg (93594, 2023-01-13)
testbench.jpg (7129586, 2023-01-13)
thingy/ (0, 2023-01-13)
thingy/.vscode/ (0, 2023-01-13)
thingy/.vscode/settings.json (347, 2023-01-13)
thingy/application/ (0, 2023-01-13)
thingy/application/CMakeLists.txt (863, 2023-01-13)
thingy/application/edge-impulse-sdk/ (0, 2023-01-13)
thingy/application/edge-impulse-sdk/.mbedignore (244, 2023-01-13)
thingy/application/edge-impulse-sdk/CMSIS/ (0, 2023-01-13)
thingy/application/edge-impulse-sdk/CMSIS/Core/ (0, 2023-01-13)
thingy/application/edge-impulse-sdk/CMSIS/Core/Include/ (0, 2023-01-13)
thingy/application/edge-impulse-sdk/CMSIS/Core/Include/cachel1_armv7.h (12070, 2023-01-13)
thingy/application/edge-impulse-sdk/CMSIS/Core/Include/cmsis_armcc.h (27945, 2023-01-13)
thingy/application/edge-impulse-sdk/CMSIS/Core/Include/cmsis_armclang.h (48289, 2023-01-13)
thingy/application/edge-impulse-sdk/CMSIS/Core/Include/cmsis_armclang_ltm.h (55893, 2023-01-13)
thingy/application/edge-impulse-sdk/CMSIS/Core/Include/cmsis_compiler.h (9481, 2023-01-13)
thingy/application/edge-impulse-sdk/CMSIS/Core/Include/cmsis_gcc.h (63516, 2023-01-13)
thingy/application/edge-impulse-sdk/CMSIS/Core/Include/cmsis_iccarm.h (28497, 2023-01-13)
thingy/application/edge-impulse-sdk/CMSIS/Core/Include/cmsis_version.h (1676, 2023-01-13)
thingy/application/edge-impulse-sdk/CMSIS/Core/Include/core_armv81mml.h (276216, 2023-01-13)
thingy/application/edge-impulse-sdk/CMSIS/Core/Include/core_armv8mbl.h (115040, 2023-01-13)
thingy/application/edge-impulse-sdk/CMSIS/Core/Include/core_armv8mml.h (182732, 2023-01-13)
thingy/application/edge-impulse-sdk/CMSIS/Core/Include/core_cm0.h (41679, 2023-01-13)
thingy/application/edge-impulse-sdk/CMSIS/Core/Include/core_cm0plus.h (49913, 2023-01-13)
thingy/application/edge-impulse-sdk/CMSIS/Core/Include/core_cm1.h (42662, 2023-01-13)
thingy/application/edge-impulse-sdk/CMSIS/Core/Include/core_cm23.h (121592, 2023-01-13)
thingy/application/edge-impulse-sdk/CMSIS/Core/Include/core_cm3.h (109568, 2023-01-13)
thingy/application/edge-impulse-sdk/CMSIS/Core/Include/core_cm33.h (189065, 2023-01-13)
thingy/application/edge-impulse-sdk/CMSIS/Core/Include/core_cm35p.h (189082, 2023-01-13)
thingy/application/edge-impulse-sdk/CMSIS/Core/Include/core_cm4.h (121014, 2023-01-13)
thingy/application/edge-impulse-sdk/CMSIS/Core/Include/core_cm55.h (278468, 2023-01-13)
thingy/application/edge-impulse-sdk/CMSIS/Core/Include/core_cm7.h (138990, 2023-01-13)
thingy/application/edge-impulse-sdk/CMSIS/Core/Include/core_sc000.h (46598, 2023-01-13)
thingy/application/edge-impulse-sdk/CMSIS/Core/Include/core_sc300.h (108560, 2023-01-13)
... ...

# Thingy-91-Condition-Based-Maintenance Repository for [Condition Based Maincenance](https://www.electromaker.io/project/view/contactless-condition-based-maintenance-of-dc-motor), which was submitted for [Make it smart with Nordic Thingy:91](https://www.electromaker.io/contest/make-it-smart-with-nordic-thingy-91) and has won "Edge Impulse Machine Learning Prize". The main part of this project is a simple Thingy:91 based IoT sensor for condition based maintenance of power generators. The sensor uses built in high G accelerometer to perform vibration classification using FFT, PCA and simple feedforward neural network on the edge. Sensor's outputs are RGB LED visuals (alerts, warnings, info) along with MQTT messages sent over LTE. Sensor's pipeline can be seen below: ![Sensor's pipeline](pipeline.jpg) This repository contains source code for the sensor itself as well as project files for simple Arduino based test bench that was used to simulate motor's vibrations during different types of defects. The test bench can be seen here: ![Testbench](testbench.jpg) ## Folder structure ### Thingy:91 sensor project files * thingy * application - source code for the uC application * pca_dataset_collector - Python 3 script that is used to collect samples from the sensor and create C source code with custom PCA algorithm * neural_dataset_collector - Python 3 script to collect Edge Impulse friendly dataset from PCA samples obtained from the sensor ### Test bench project files * workbench * controller - Arduino / PlatformIO source code for the workbench controller * gui - Python 3 / Qt5 GUI application to control state of the workbench via serial port and MODBUS * schematics - KiCAD schematic of the workbench * stl - files 3D printable motor and sensors mounts ## Recreating the project ### Test bench 1. Print files from workbench/stl folder and assemble as in image above 2. Connect electronics as in workbench/schematics 3. Upload workbench/controller to Arduino UNO using [PlatformIO](https://platformio.org/install/ide?install=vscode) 4. Now you can run workbench/gui and controll the state of the of the workbench ### Sensor (default) 1. Simply upload the ready to use code from this repo using nrf SDK 1.9.1 and [nRF Connect for VS Code](https://www.nordicsemi.com/Products/Development-tools/nRF-Connect-for-VS-Code) ### Sensor (full pipeline) 1. Uncomment `//#define PRINT_MAGNITUDES` in thingy/application/main.cpp and upload the code to Thingy:91 2. Run thingy/pca_dataset_collector/pca_sample_collector.py for some time changing test bench's state 3. Run thingy/pca_dataset_collector/pca_creator.py 4. Copy thingy/pca_dataset_collector/pca.h and pca.c to thingy/application/include and src folders 5. Comment `//#define PRINT_MAGNITUDES` and uncomment `//#define PRINT_PCA`, then upload the code again 6. Open thingy/neural_sample_collector and change label to given use case (i.e "bearing_fault"), then run it for some time with test bench in the same use case (i.e in bearing fault simulation). Repeat for each use case ("bearing_fault", "motor_throttle", "running", "stopped") 7. Create Edge Impulse model (20Hz sampling frequency, 50ms window increase and 500ms window size) and generate C++ library 8. Overwrite content in thingy/application with source code obtained from new C++ library 10. Comment `//#define PRINT_PCA` and upload the code again 11. Done!

近期下载者

相关文件


收藏者