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?