To create your AI activity timer, you
will train a machine learning, or ML, model
to recognise when you’re doing
different movements or activities.
You’ll then combine that model with some
ready-made code for an activity timer,
before downloading it to your
micro:bit and using it in real life.
Click ‘Open in micro:bit CreateAI’ to launch the project.
This project comes with 6 samples of movement
data for walking, 6 samples of movement data
for jumping up and down, and 6 samples of
movement data for staying fairly still.
You will 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, connect the
ankle-worn micro:bit to CreateAI.
We call this the data collection micro:bit.
If your computer has Bluetooth enabled then you will just need 1 micro:bit with a battery pack 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 micro:bit is connected, you will 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.
Make sure your data collection micro:bit is attached to the inside of the ankle, with button B on top.
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 ‘jumping’ data set and the ‘being still’ data set.
Select them by clicking on the action, then click record and jump or stay quite still as you record the samples.
You’ll notice on the 'being still' samples
that the x,y,z lines change places depending on the angle of the attached micro:bit.
We don’t have a lot of data right now, but we do have enough to train our own machine learning model using CreateAI.
So click ‘Train model’ 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 will see the Testing model page.
Now use the data collection micro:bit 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 each of the actions 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 is 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 one sample at a time or
you can record 10 samples in sequence.
Clean data samples also help an ML model work
better so examine 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 3 variables to keep track
of how long you've been doing each action.
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 a specific action.
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 walking, jumping or being still.
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 estimate
of how long you were walking.
Press button B to see how long the
model estimated you were jumping.
To see the estimated duration you have
been still press A and B together.
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 AI activity 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 you can 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.
Jump for 30 seconds.
Then press button B.
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 and
improve a machine learning model, and then you
can combine this model with the ready-made
code and try it out on your own micro:bit.
If you’re looking for ways to personalise this even more try adding some different actions like running or dance steps.
Enjoy!