To create your simple AI exercise timer, you’ll train a machine learning (or ML) model.
This model will recognise when you’re exercising and when you’re not exercising.
You’ll then combine the model with some ready-made code for an exercise timer...
before downloading it to your micro:bit and using it in real life.
Click ‘Open in micro:bit CreateAI’ to launch the project.
The project comes with 3 samples of movement data for exercising
and 3 samples of movement data for not exercising.
You’ll need to add more samples by recording your own movement data.
micro:bit CreateAI collects movement data samples using the accelerometer
(or movement sensor) on the micro:bit. You will wear a micro:bit and battery
pack on your wrist or ankle, so that you can move freely to record your own movement data samples.
To get started, you need to set up the data collection micro:bit.
Connect the wrist-worn micro:bit to CreateAI. If your computer has Bluetooth enabled then you
will just need 1 micro:bit and a USB data lead. If you don’t have a Bluetooth connection,
you’ll be prompted to use 2 micro:bits. The second micro:bit will remain connected
to the USB cable and act as a radio link to the data collection micro:bit.
Follow the instructions on screen to connect.
Once your data collection micro:bit is connected
you’ll see the lines on the live graph change as you move your micro:bit about.
You’re now ready to add your own movement data samples.
As this project already includes some data samples, we suggest you just add
1 more sample for each action for now, and spend more time collecting and analysing data later.
Decide what ‘exercising’ action you are going to do.
This could be running, walking briskly, jumping, boxing, dancing, or any other exercise.
Make sure the micro:bit is attached to the wrist or ankle that will be moving.
To add data to a specific action, select it by clicking on it.
You will get a 3 second countdown before a 1 second recording starts.
Click record and start moving right away to ensure you get a clean data sample.
A clean sample is one where you are moving for the entire sample,
you don’t start late or finish moving early. Next try adding an extra data sample
to the ‘not exercising’ data set. Select it by clicking on the action,
then stay still, or only move very slightly as you record the sample.
You’ll notice that the x,y,z lines change places depending
on the angle at which you hold your micro:bit.
The project doesn’t have a lot of data right now,
but we have enough to train our own machine learning model using CreateAI.
So click ‘Train’ to use the current data to build an ML model.
The tool now builds a mathematical model that should recognise different
actions when you move your micro:bit. As soon as the model has been trained,
you’ll see the Testing model page. Your data collection micro:bit can now
be used to test how well the model is working. It should still be connected to the tool,
and you’ll see that as you move it, CreateAI is estimating what action you are doing.
Try out different levels of exercising or not exercising to see both the estimated
action and the certainty bar graph change. The % on the certainty bar graph shows how
confident the model is that you are doing each action.
You may notice your model is not estimating some actions accurately, or maybe it is
working well for one action but not the other, so after exploring how it is currently working,
it’s a good idea to click on ‘Edit data samples’ and improve your model.
Machine learning models usually work best with more data, so record some extra samples for each
of the actions, or focus on collecting more data for the action that was problematic in testing.
You can record 1 sample at a time or you can record 10 samples in sequence.
Clean data samples also help an ML model work better
so interrogate your data set and identify any data samples that could confuse the model.
You can delete these by pressing x. Once you’ve added more data and checked
your data set, click Train model again to use your amended data set.
Then test the model again on the ‘Testing model’ page.
Once you’re happy with how the ML model is behaving,
you can use it with the ready-made project code.
Click on 'Edit in MakeCode' to see the code blocks in a special version of Microsoft MakeCode.
You can always return to CreateAI using the arrow in the top left of the screen.
These code blocks use the model you have created within an exercise timer.
The code uses two variables to keep track of how long you've been exercising and how
long you've not been exercising. When the program first runs it sets
these timer variables to 0. The 'on ML start' blocks are
triggered when the ML model decides you have started either exercising or not exercising.
They show different icons on the micro:bit's LED display depending
on the action it has estimated you are doing. The 'on ML stop' blocks are triggered when the
ML model decides you have finished an action, in this case exercising or not exercising.
Code inside each block clears the screen and adds the duration of the action that has just
finished to the variable storing the total times for each action.
The ML model works with the code to allow you to view the total time spent on each action.
Press button A to see the total time you have been exercising and press button B to see the
total time you have been inactive. The timer counts in milliseconds,
thousandths of a second, so the number shown is divided by 1000 to show a time in seconds.
To make your simple AI exercise timer run on your micro:bit, you
just need to download this code to a micro:bit. If you don’t have another micro:bit available,
simply replace the code currently on the data collection micro:bit with the project code.
Now test the project out in real life. Do the correct icons display
when you are exercising or not? You can test if the timer code is working
well with the model in 3 easy steps: Press the reset button.
Exercise for 30 seconds. Then press button A.
You should see the number 30 scroll across your display.
You’re now ready to connect to CreateAI, collect your own data, use it to train,
test & improve a machine learning model. And you can then combine this model with
the ready-made code and try it out on your own micro:bit.