I decided to open up my undergrad thesis project just to expose what my research is, but without really share the paper since I'm not sure if it's okay, and my Journal isn't published just yet, not sure also if it will be.
My thesis involve few skills that I learned over the years which is Electronics, Embedded System Programming, Machine Learning, and 3D Designs/Printing.
My thesis itself is titled Perangkat Wearable Untuk Deteksi Orang Jatuh Berbasis Edge Computing Dan Machine Learning
or Edge Computing And Machine Learning Based Fall Detection Wearable Device
in english.
I believe my thesis is quite 'novel' among my peers in my Uni, especially during the rise of Computer Vision and LLM during that time, doing small is in my opinion a unique path, not only because the recent LLM advancement actually cause computing demand to the roof, and those melting GPU, bla bla bla, its nice to keep things small.
This thesis uses few tools i know, it actually squeeze my brain like sponge.
- Kicad to design PCB.
- PlatformIO as sort of IDE/Compiler for coding the firmware, with C++ as the code, and Arduino as the Platform
- Onshape to create the strap
- Neovim to edit the codes
- Tectonic to compile the LaTeX (YES I USE LATEX BITCH)
- Edge Impulse so i can easily train the model and convert it to Arduino library
Penelitian mengenai deteksi jatuh sudah pernah dilakukan sebelumnya, salah satu penelitian yang dilakukan menggunakan Xbox Kinect dan metode AdaBoost dan Thresholding yang dimana Kinect yang digunakan memiliki area deteksi yang terbatas, penelitian lain menggunakan perangkat wearable yang dimana mengatasi permasalahan tersebut, akan tetapi metode Detection Threshold yang digunakan menghasilkan akurasi yang cukup rendah dan tidak memiliki metode untuk mengenali pola.
Penelitian ini dilakukan dengan merancang perangkat wearable lalu mengaplikasikan TinyML untuk memungkinkan mikrokontroler menggunakan Machine Learning secara langsung. Penelitian ini menggunakan ESP32 sebagai mikrokontroler dan juga MPU6050 sebagai sensor utamanya dengan Arduino sebagai framework untuk merancang firmware. Dataset yang digunakan merupakan dataset yang dikumpulkan secara pribadi. Model machine learning dirancang menggunakan Edge Impulse dan Tensorflow sebagai framework, model menggunakan Spectral Analysis dari Edge Impulse sebagai Feature Extractor dan juga Artificial Neural Network sebagai metode klasifikasi.
Dari hasil penelitian yang diperoleh, ESP32 dapat digunakan untuk memproses Machine Learning secara langsung, dengan akurasi sebesar 70.83% ketika menggunakan dataset yang digunakan, dan ESP32 dapat memproses data dalam waktu 11ms, dan juga dapat digunakan untuk mengirimkan notifikasi ketika pengguna jatuh.
Kata Kunci: Machine Learning, Mikrokontroler, ESP32, TinyML, Tensorflow.
Research on fall detection has been conducted previously. One such study utilized the Xbox Kinect with the AdaBoost and Thresholding methods. However, the Kinect used in that study had a limited detection area. Another study employed wearable devices which resolved such issue, although the Detection Threshold method the study used resulted in relatively low accuracy and lacked the capability to recognize patterns.
This research involves designing a wearable device and implementing TinyML to enable microcontrollers to directly utilize Machine Learning. The study uses the ESP32 microcontroller and the MPU6050 as its primary sensor, with Arduino as the framework for developing the firmware. The dataset used was collected independently. The Machine Learning model was designed using Edge Impulse and TensorFlow as the frameworks. The model utilizes Spectral Analysis from Edge Impulse as the Feature Extractor and Artificial Neural Networks (ANN) as the classification method.
The results of the research show that the ESP32 can process Machine Learning directly, achieving an accuracy of 70.83% with the dataset used. The ESP32 is capable of processing data in 11 milliseconds and can also send notifications when a fall is detected.
Keywords: Machine Learning, Microcontroller, ESP32, TinyML, TensorFlow.
Since this is a monorepo consist of few different seperate projects for this thesis, I will explain the directories started from the one i'm working on the first.
schematics
is the electronics, component footprints, etc. Fabricate yourself its just single layer PCB, I make sure that way.data-gathering-firmware
is the first firmware, to gather the data, that will be stored to the Micro SD card.printed-strap
is the...strap for the PCB, simple shit so I can wear it, 3D printed.static-buffer-firmware
is the firmware to test the model once I get it trained, to make sure the ESP32 is able to infer the data.inference-firmware
the actual shit.
Pretty sure my lecturer will lecture me get it if i share the whole thing, so there are few things i left out.
- the dataset i create
- the model
- the thesis draft LOL