To make your AI storytelling friend,
you’ll train a machine learning,
or ML, model to recognise when
a toy moves in different ways.
You’ll then combine this model with code
to make different sounds and show different
icons on the micro:bit’s LED display.
Then you’ll download the model and the code to a micro:bit and use it on your toy to help tell a story.
Our story is about a bear called Lucy, but
you can change the project to fit your own.
[MUSIC]
This is Lucy the bear.
She wants to be a gymnast when she grows up, so every
day when she wakes up, she practices her jumping.
She jumps as high as the ceiling.
Then after breakfast she practices her rolling.
She rolls round and round until
her whole world is spinning.
Then she takes a break and has a little nap.
To start making your AI storytelling friend, click ‘Open in micro:bit CreateAI’ to launch the project.
This project comes with 8 samples
of movement data for three different actions:
jumping, rolling and sleeping.
micro:bit CreateAI collects movement data samples using the accelerometer, the micro:bit’s movement sensor.
To add your own data samples, you need
to make a data collection micro:bit.
If your computer has Bluetooth enabled, then
you'll just need 1 micro:bit and a USB data lead.
If you don’t have a Bluetooth connection,
you’ll need to use 2 micro:bits.
Follow the instructions on screen to connect.
Once your data collection micro:bit is connected,
attach it to your toy like this.
You’ll see the lines on the live graph
change as you move your toy.
As this project already includes quite a lot
of data samples, we suggest you add 1 sample for
each action for now and collect more data later.
Click on the ‘jumping’ action so
you can add more data samples to it.
You will get a countdown before
a 1 second recording starts.
Click record and start moving your toy immediately
to make sure you get a clean data sample.
A clean sample is one where you’re
moving for the entire sample,
you don’t start late or finish moving early.
Next try adding an extra data sample to the
‘rolling’ and ‘sleeping’ actions.
You’ll notice that when your toy is asleep, the x,y, and z lines change places depending on the orientation of the micro:bit.
Click ‘Train model’ to build the 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.
Move your toy in different ways to see
the estimated action and the certainty bar graph change.
The percentage shows how certain, or confident,
the model is that you are doing each action.
You may notice your model is not
estimating some actions accurately.
In that case 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.
Clean data samples also help an ML model
work better so examine your data set and
identify any 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. 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 return to see your
data in CreateAI at any time
using the arrow in the top left of the screen.
These blocks use the model you’ve created in code.
The ‘on ML… start’ blocks react
when the ML model decides your
toy is making a particular movement, or action.
Depending on the action, the code shows different
icons on the micro:bit’s LED display output
and plays different sounds on its speaker.
If it’s not sure what action your toy is doing –
if the action is ‘unknown’ – it clears the screen.
And when each action stops, the code
stops the micro:bit making any sound.
To make the code and the ML
model run on your micro:bit,
you just need to download it to a micro:bit.
Press ‘Download’ and follow
the instructions on screen.
Now test the finished project on
a micro:bit attached to your toy.
Do the correct sounds play and icons display
when your toy makes different movements?
Does it work equally well when
someone else moves the toy?
If not, you can go back and collect more
data from them and re-train the model.
Congratulations, you’ve trained your toy
to react to different kinds of movement
using data you have collected, training an AI
machine learning model, and combining it with
code to make an interactive storytelling toy!
What other actions, or movements might your toy
make, perhaps as part of telling a story? Can
you add them using the micro:bit and CreateAI?