Investigation and plan
My task is to create a project that in theory could help a person’s mental and or physical well-being using microbit and document the process. I will make an embedded system that can in some way track or help the user mentally or physically, make an analysis software code to graph the data of the user and make a prediction based off the information recieved, finally I will make a website showing the process of making the project.
- My chosen idea
When I first thought of mental and physical well-being, what instantly came to mind was addictive substances such as vapes becoming a massive problem for young people. While it's a lot more of a social issue that can’t be fixed with just microbits, I thought maybe I could find a way to help show your progress while trying to quit.
The idea is that you can input how much you are craving a vape on to your microbit on a
1-5 scale, it will live graph your data, and then whenever you wanted to view the data it would generate an excel file with the data.
In theory, viewing the data could act as a potential motivator to quit as you better your progress.
- Rejected ideas
• "Workout intensity playlist"
Crafting the "workout intensity playlist" turned into a more intricate idea than initially anticipated. The concept was straightforward: leverage the microbit's Bluetooth connectivity to sync with your phone, then curate a playlist based on the intensity of your workout inputted on the microbit. However, the development for this project stretched beyond my estimated worktime.
• "Hydration reminder"
Making a “Hydration reminder” crossed my mind as it is simple, yet effective. I couldn't think of any way to expand upon this idea, making me want to choose something else.
• "Comfort level tracker"
Considering a "comfort level" project seemed like a solid idea. It involves tracking light sources, heat, and more, which could be useful for the microbit to help people decide if a room is suitable for relaxation or studying. However, as much as it's a good concept, it felt a bit too simple for the capabilities of the microbit, pushing me to opt for something a bit more challenging.
design, implimentation and testing
Firstly, I created a Microsoft MakeCode project where users can input their "addictivity" rate. The addictivity variable ranges from 0 to 5, with 5 indicating a strong craving for a drug and 0 indicating no thoughts about it.
Visually, the variable is represented by a "staircase" style image, and a smiley or sad face depending on its value. to link the variable to the A and B buttons, I used a "change variable by 1" block. Pressing A decreases the value by 1, and pressing B increases it by 1.
Lastly, I added a visual graph using "function plotgraph" and "serial write line" blocks. This allows users to select their addictivity level and see it displayed visually on the micro:bit screen.
Now, when the user changes the variable it shows up on the data simulator in makecode. This data is tracked on what time you changed the variable value and what variable level "addictivity" is currently at.
This data can be automatically graphed and displayed in excel by simply pressing the download button in the top left of the data terminal. The only next step I had to code was the analysis software to analyse the data in this excel or csv file.
I coded the excel file reader in python, users input the file path of their downloaded excel file and it automatically reads the data in the columns to make the prediction of the users well being.
A video of the embedded system and the analysis code is in the downloaded folder for this project called IMG_0.
Making the website itself ended up being more complicated than I expected. I used a website IDE for microbit called Neocities to have a way to download my website, but also so I could have the project on the intenet. I borrowed assets from W3 school's free website templates to make the website user friendly, intuitive and interactive. I was able to add sidebars, headings, back to top buttons and in general have more control over the feel of the website.