Lessons

Pick and place robot

Data processing using lists

Fable points north

Control Fable Spin with accelerometer

Build a robot that solves a maze

Pick and place robot with 5-bar linkage mechanism

All the World's a stage

Control Fable Spin with accelerometer

Plastic production & UN’s 17 sustainable goals

Morse code

Idea: Fable Spin: Simple Machines: Screw

Projektopgaven: Få en innovativ idé!

Converting and reading speed and distance

Geometry by the centimetre

Drawing with a laser

3G: Graphing Data

Build a robot that solves a maze_with help

Build a robot that solves a maze

Remote control Fable Spin

Pick and place robot

The Fable comedian!

Copy cats

Remote control Fable Spin_private

Fable plays drums!

Fable points north

Lesson: Pick and place robot

Status: private

You are going to build and program a ”pick and place robot” using the Fable robot.

Lesson Duration: 1-2 Hours

Grades: 04 - 12+

Tags: Physics, Engineering, Algebra, Probability and Statistics, Block coding, Python, Robotics, Internet of Things, Blockly, Activity

Supplies: 1 Fable Joint module, 1 lid, 1 Hub (dongle), 2 building modules (can also be done with one), 2 ball stands (or LEGO), 1 "fork", 1 table tennis ball, 1 computer or tablet with Fable Blockly installed.

Step #1

Description

You are going to build and program a ”pick and place robot” using the Fable robot.

Program the robot to move a workpiece (a ball) from one location to another. 

A so-called pick-and-place task is common in manufacturing. 

Construct the robot and set up stands for the ball as shown in the image.

Note that it matters which way the joint module is rotated.

Note that several groups can take turns programming the same robot.

Step #2

Task 1

Program the robot to grab the ball placed at A and move it to B. The robot must then return to A and repeat the sequence. 

Test the program several times and discuss the following questions:

  • Does it work every time? Can you make it more reliable? 
  • Is it fast enough? Can you make the sequence faster?
  • Make a video of your solution and upload

Step #3

Task 3

Experiment with the program and the robot - try to make it more adaptive and autonomous. 

For example, you can use the camera to detect when the ball is placed at A, after which the robot can start the sequence that moves the ball to B. 

Step #4

Pick and place robot - step by step

This example demonstrates how to make a simple pick and place robot

Equipment:

  • A stand
  • 2 building modules (3XY or 4XY (you can also do it with just one))
  • 2 ball stands
  • 1 fork
  • 1 table tennis ball
  • 1 Fable Joint˙
  • 1 Hub (Dongle)

Step #5

Task 1

Construct the robot and set up an extra stand for the robot to place the ball. Note that it matters which way the joint module is rotated.

Step #6

Task 2

Program the robot to grab the ball placed on the one stand and move it to the other. The robot must then return the ball to the first stand and repeat the sequence.

The first thing you should do is to start a loop with this block:

- and afterwards put all the other blocks in to this block.

Step #7

Next up

The Fable program starts out in a simple version and it would be possible to solve the problem with this block:

(which you'll find under "actions")

Step #8

Advanced mode

- but the program will run more smooth if you turn the Fable Blockly into "Advanced mode" (you will find it in the bottom left corner):

Step #9

Move to.. with speed

Now you will find another "move to" block under actions where you can control the speed of the robot - get that block:

Set your move blocks to speed 20 and remember to choose the ID of the joint module.

Step #10

Wait block

And then you should put a wait block in between all of the move blocks:

Step #11

A tip

You can read the positions of the motors by adding a time series from Data and then under senses add the block get angle of X.

If you duplicate the block so you can read both the X and Y motor and then add it to the loop you can read the different positions your pick and place robot should go to (before you add the move to blocks)

Step #12

When done; the program could look similar to this:

..

Step #13

Test the program

Test the program several times and discuss the following questions:

  • Does it work every time? Can you make it more reliable?
  • Is it fast enough? Can you make the sequence faster?

Step #14

Task 3

Experiment with the program and the robot - try to make it more adaptive and autonomous.

For example, you can use the camera to detect when the ball is placed at A, after which the robot can start the sequence that moves the ball to B.

Step #15

Variations

- Make a pick and place robot with a Spin mounted on top of a building module (like on the picture)

- Do the pick and place using a 5-bar linkage mechanism

Lesson: Data processing using lists

Status: public

This example demonstrates how to create lists and do some simple processing of the data in the list.

Lesson Duration: 30 Minutes - 1 Hour

Grades: 04 - 12+

Tags: Physics, Engineering, Algebra, Probability and Statistics, Block coding, Python, Robotics, Internet of Things, Blockly, Activity

Supplies: 1 Hub, 1 computer with Fable Blockly

Step #1

Description

Equipment:

  • Hub 
  • Computer with Fable Blockly 

First of all, a list in one of simplest and most important data structures in a programming language such as Blockly and Python.

A list is basically a collection of items, each item could for example be numbers. The list collects the items sequentially in a data structures.

Step #2

Task 1

Make a variable called data and assign it to a list with the items e.g. 9, 43, -11.

Step #3

Task 2

 Create a new empty list and have it measure the sound level and append the list with that measurement.

The list will quickly grow longer and longer. At the same time it creates a plot where it selects the largest number from the list (the graph will grow every time a new record loud sound is measured). 

Step #4

How to make the code

The first task

Make sure to be in advanced mode in Fable Blockly. 

Create a variable called Data.

Step #5

Take the new variable block called Set Data to

..

Go into Lists and chose the one called create list with and add it to Set Data to - change the numbers to what you want

Step #6

This is how to create the same list in Python

..

Step #7

The second task

Use the Set Data to again but throw out the create list with. Instead add a create empty list

..

Then under lists take the block called in list .. set ..as (the last block)

..

Then add the variable block Data into where it says create empty list and change set to insert at and change from # to last and instead of 5 take from senses the block called Sound level

Step #8

Next up

Now in the menu called Data take the block called Time series

..

Then under Math take the block called sum of list

..

Change from sum to max and add the variable block called Data where it says create list...

..

Now add this new block into the time series block from before where it says 5

Step #9

Finish the program

Finish the program by adding the 2 last blocks (in list and time series) into a repeat forever loop. Then the program will look like this:

Step #10

In Python it would look like this

..

Step #11

How to make the code video

..

Lesson: Fable points north

Status: private

In this project you will get the Fable robot to point in the direction of North using the magnetometer in your smartphone. Picture from https://flic.kr/p/4u6Dbm

Lesson Duration: 1-2 Hours

Grades: 04 - 12+

Tags: Physics, Engineering, Algebra, Block coding, Python, Teacher Tools, Blockly, Sensors, Lesson Plan, Activity

Supplies: 2 Fable Joint modules, Smart phone with Fable Face installed, 1 phone holder, accessories, 2 4XY building modules, PC or Mac, with Fable Blockly and Fable Hub

Step #1

Description

This could be used in Physics.

Lessons: 2-3 modules (3 - 5 hours)

Materials:

  • Hub
  • 2 Fable building modules
  • 2 Fable Joint modules
  • 1 lid
  • 1 phone-holder
  • 1 smartphone with Fable Face installed (download from App Store or Google Play)
  • Optionally accessories (e.g. the ball stand or the fork, as to more easily see, where Fable points to)
  • Computer with Fable Blockly

In this project we will use the magnetometer or compass sensor, which is in a smartphone (Android or iOS)..

Step #2

Fable Face

Install the Fable Face app on a smartphone (from App Store or Google Play) and construct the robot as shown in the image.

Open Fable Face and connect it to the hub (see video)

Step #3

Fable points north

You must build and program a robot to always point in the direction of North (or another direction)

Start by watching this video (1min 25s)

Step #4

Find out which way North is..

First you must find out which way north is. This can be done by using a compass or to look it up on Google Maps, and finding a building you know. North is always up on the map, so by using it, you can approximately determine which way north is.

After that the next logical step is to monitor the output from the magnetometer (compass sensor) in the phone in Fable Blockly.

That can be done by creating the program on the picture.

And when the program is running, turn the phone, until you get a somewhat stable number for which direction north is.

Step #5

Which values?

Make notes of in which intervals the magnetometer creates output, dependant on how you twist the phone.

Step #6

Program a robot to point in the right direction

From here the assignment is to program a robot, to point in the approximate direction of north.

One of the challenges is, that the magnetometer works from 0 – 360 degrees, but the Fable joint module only goes from -90 – 90 degrees. Therefore it will be necessary to use 2 joint modules, where one module covers the initial 180 degrees (0 – 180) and the second can cover the subsequent 180 degrees (180 – 360).

Therefore you have to make a variable, which you could call “magnetometer” or “angle”, and put that variable in a condition stating that:

  • If Magnetometer/angle is more than 180 degrees, it must move “the right arm” in relation to the magnetometer.
  • Else (it it is less than 180 degrees) it must move “the left arm”.

Be aware that, there has to be a mathematic calculation made, from the 360 degrees of the magnetometer to -90 – 90 degrees of the robot. Therefore you will need this block:

Step #7

Add an 'if else'

Then take an if else block from the Logic menu.

Step #8

Direct number from the magnetometer

Start by using the direct number from the magnetometer.

The robot will shake a little because of other magnetic fields.

Set the magnetometer variable first to 0 (outside of the loop) and then inside; set it again this time to the sensor.

Step #9

Now add this block to the if

..

Step #10

Add the variable to one of the numbers

And add the variable to the one of the numbers and set the magnetometer to higher than 180

Step #11

Add 2 'move to' blocks

Then add 2 move to blocks in the if and 2 move to blocks in the else. In the first set X to 0 and Y to 270 - variable. The second move to block in if is set to -90 and 0.

Step #12

Then in 'else'

Then in the else; set the first move to block to 90 and 0. And the second move to block to; 0 and variable - 90.

Now the program look like this:

Step #13

Question 1

Consider that the y-angle will always be in the interval -90 – 90 degrees.

Question: Which arm is 0XA in this program?

Correct answer: Left arm

Step #14

Question 2

Consider that the y-angle will always be in the interval -90 – 90 degrees.

Question: Which arm is JCC in this program?

Correct answer: Right arm

Step #15

Challenge

There is a lot of interference on the input you get from the magnetometer. Therefore it would be better if you get the robot movements to be more smooth.

Try if you can program an algorithm, that converts the input to a more straight line (so it looks more like a linear equation. DIFFICULT

Step #16

Bonus info

The reason why there is a lot of interference from the magnetometer is i.a. that there is many magnetic fields all around us, as well as the fact the the Earth’s magnetic fields aren’t particularly strong. Read more about magnetic fields here:

https://www.khanacademy.org/science/physics/magnetic-forces-and-magnetic-fields/magnetic-field-current-carrying-wire/a/what-are-magnetic-fields

https://en.wikipedia.org/wiki/Magnetic_field

Step #17

The solution could like this

Possible solution when we account for interference.

If you don't want your students to get the solution you should copy this lesson and remove the part with the solutions.

Step #18

In Python it would look similar to the picture

To get in Python mode click on the little "snake-icon" in the top of Fable Blockly

Step #19

The graph could look like the picture

..

Step #20

Variation

You could also use Fable Spin instead of Fable Joint (or both).

- Then it would be possible to spin 360 degrees instead of just -90 - 90.

Step #21

If you want to know more

If you want to know how a magnetometer works watch the video

If you are wondering why you would be weighting the magnetometer with 0.1 you can read:

https://en.wikipedia.org/wiki/Moving_average#Exponential_moving_average

It’s to smooth the fluctuations.

Lesson: Control Fable Spin with accelerometer

Status: private

In this exercise you will control the Fable Spin using the accelerometer in your smartphone

Lesson Duration: 30 Minutes - 1 Hour

Grades: 05 - 12+

Tags: Multiplication, Engineering, Block coding, Python, Robotics, How-Tos, Blockly, Sensors, Activity

Supplies: 1 Fable Spin, 2 wheels, castor wheel, PC/Mac with Fable Blockly installed, smartphone with Fable Face and Fable HUB

Step #1

Description

What you will need:

  • Fable Spin
  • Wheel set
  • Castor wheel
  • Fable Hub
  • Smartphone with Fable Face installed
  • Computer with Fable Blockly installed

Step #2

Control Fable Spin with a smartphone

In Fable Blockly make 4 variables called e.g.:

x_acc, y_acc, A and B.

Now set the x_acc to get acceleration on x-axis and y_acc to get acceleration on y-axis

Step #3

Now a little math

Now take the 1 x 1 block and duplicate it 2 times so you have 3. Change one of them to - instead of x.

Then write 10 in one of the 1 x 1 blocks and add y_acc at the second 1. Then drag this block into the 1 - 1 block in the first "window".

Now go to the second 1 x 1 block and write 5 in the first window and drag the x_acc variable in the second. Then drag this new block in the second window after the minus.

Step #4

Set to

Add this new block to the variable set A to

Then duplicate this new block and change into set B to, with -10 x y_acc

Step #5

Finish the program

Now add all these 4 new blocks into a repeat forever loop and add a set speed block where you add the variable A and B on the 2 motors of Spin

Step #6

In Python

..the code would look like this

Step #7

Robot football

This activity could be used for robot football with Fable

Lesson: Build a robot that solves a maze

Status: private

In this activity you will get Fable to solve a maze

Lesson Duration: 1-2 Hours

Grades: 03 - 12+

Tags: Physics, Engineering, Algebra, Block coding, Python, Robotics, How-Tos, Blockly, Sensors, Activity

Supplies: 1 Fable Joint module, 1 lid, 1 connector, 1 maze, 1 Fable Hub, 1 computer or tablet with Fable Blockly installed, 1 smartphone with Fable Blockly, variation with Fable Spin

Step #1

Description

You will program a robot to solve a ball maze in various ways. 

Games are fun, and it is therefore no surprise that there is already a huge market for games. Why not use robots as a new type of game platform? 

Note that several groups can take turns programming the same robot.

Step #2

Task 1

Construct the robot as shown in the image. Place the ball on the little platform in the corner of the maze. 

Install the Fable Face app on a smartphone and connect it wirelessly to a dongle.

Step #3

Task 2

Program the robot to solve the ball maze by making it move the two motors through a sequence of angles. The game is over when the ball falls into a hole. You get 5 points for the first hole, 10 for the second, and 15 for the third hole. Make the ball roll as quickly and steadily as possible through the maze.

Step #4

Task 3

Experiment with the program and the robot to make it solve the ball maze in other ways. 

For example: 

  • Control the module remotely using the arrow keys on the keyboard.
  • Control the module remotely using the accelerometer, which can be read on a smartphone with the Fable Face app or on a Chromebook (not all models)
  • You can also control it by tap position on the screen (either phone or Chromebook)
  • Control the module remotely using another joint module. (follow the leader)

Step #5

Nice to know

When solving the maze it would probably be good to get the module to move a little slower than with the normal move to block.

That can be found in advanced mode low left corner.

In Actions there is now a move to with speed block. It would probably make sense to set the speed to 20 or even less. But remember that the wait blocks maybe need to be longer than a second.

So you can build the program similar to this:

Step #6

Other ways to solve the maze

2 examples of remote control with arrow keys

Step #7

Follow the leader

If you have 2 Fable Joint modules you can set the one module to control the other very easy (you can do it in simple mode). Take a repeat forever loop and a move to block

Step #8

Angle of X

Then in senses take out the block called angle of X

Step #9

Change the ID

Then change the module ID to the other Fable Joint

Step #10

Now duplicate the block and change one of the blocks to angle of Y. Then drag the 2 blocks into the move to block where the angles for X and Y are

Step #11

Follow the leader - final

Your program should look like this. The orange blocks is the ones that controls the movement. Then when you start the program you can use one Fable Joint to control the other - like a Joystick. On Chromebooks and iPads you may experience some delay. That has to do with the fact that the robots are connected through Bluetooth and that is sometimes a little slower.

Step #12

Control with tap position

If you don’t have 2 Fable Joint modules you can use a sensor either in a smartphone or if you use Chromebook or iPad you can use the sensors in the device.

So again take a repeat forever block and a move to block and then add under senses the one called get acceleration on X-axis and change it to tap position on X-axis

Step #13

Put it into a loop

Now take a copy of this block and change one of them to tap position on Y-axis. Then drag the 2 blocks into your move to block where the angles are. This is what the program should look like on a PC/Mac (remember to connect to the smartphone).

It could make sense to use the move to block in advanced mode with speed and set it to speed 20 instead so it moves a little slower. Now you control the robot’s movement with your finger on the screen!

Step #14

A tip

Although when you don’t touch the screen the Joint module has a tendency to go to 90, 90. It would make more sense if it went to 0, 0. Therefore you should add a if do else with a tap count = 1 and then in else add a move to block that goes to 0, 0.

Step #15

Control with accelerometer

You can also use the accelerometer either in a smartphone or on your Chromebook/iPad device. With the same program from before you can change it to acceleration of X and Y

Step #16

Refine the program

If you would like it to be able to move more than -10 to 10 you could add a math block than take the input from the sensor and times it by 2 or 10. Go under math and take 2 blocks called 1 x 1.

Step #17

Drag the acceleration block into the 1 x 1

Drag the get acceleration on .. blocks out from before and add them to each of the 1 x 1 blocks (instead of one of the numbers). Then change the number to 2 or 4 or what you think (try different numbers).

Step #18

When you are done drag the new blocks back into your move to block and see what happens!

Step #19

Even more ways...

There could be even more ways to solve the maze. E.g. if you have a Fable Spin you could use the proximity sensor or you could make the robot react to sounds, time in seconds or maybe look for specific colors in the camera.

Explore yourself and enjoy!

Upload a screenshot of your program

Lesson: Pick and place robot with 5-bar linkage mechanism

Status: public

In this activity we will use 2 Fable Joint modules and wooden sticks to make a 5-bar linkage mechanism to make pick-and-place robot

Lesson Duration: 1-2 Hours

Grades: 07 - 12+

Tags: Physics, Engineering, Algebra, Probability and Statistics, Block coding, Python, Robotics, How-Tos, Blockly, Activity

Supplies: 2 Fable Joint modules, 1 lid, 1 Fable Hub, 2 building modules, wooden sticks (2 short and 2 long) with wholes to attach together (can be lasercutted), nails to assemble the 5-bar linkage, 2 Multi connectors, LEGO to attach the 5 bar-linkage, 1 computer or tablet with Fable Blockly installed.

Step #1

Description

My name is Jonas, I am 15 years old. I am in the 9th grade. During a week I was in a school-supported and supervised internship as a developer at Shape Robotics.

I have spent my week here building this robot, and making it work. It works by using something called a 5-bar linkage mechanism, which can be constructed with a saw, a 3D printer or a laser cutter.

Step #2

How it works

The robot is programmed to move to six different locations. At one of the locations a glass is placed. On the remaining five locations, there are five metal rings. The robot starts by moving to the first location and pick up the first metal ring. It picks up the ring by using a magnet, which is placed at the end of the robot. When the first metal ring has been picked up, the robot has been programmed to move to the glass. Here it drops the metal ring, so it lands in the glass. Afterwards it moves to location number two and picks up another metal ring. Then it moves to the glass again, and drops the metal ring down there. This continues until it has picked up all five metal rings and put them in the glass.

Step #3

See the video

..

Step #4

2 Joint modules

This is the mechanism. It consists of two set modules. The left and the right. These are the modules, that have been programmed to moved to the six different locations. The modules can be programmed to move on the y-axis and the x-axis. The movement of the modules control where the robot skeleton moves to.

Step #5

The triangle

This triangle is the robot skeleton. The wooden sticks and the pen with the magnet is operated by the movement of the modules. The purpose of the skeleton is to move the magnet around, so it can pick up the metal rings and drop them into the glass. The wooden sticks are approximately 20 cm long and put together with screws. The sticks are fastened to the modules by using legos.

Step #6

Mount the pen with the magnet

Here you can see how the pen with the magnet is mounted.

Step #7

The program could look like this

..

Step #8

Here is how the program would look in Python

x = None
y = None
z = None

"""Describe this function...
"""
def move(x, y, z):
  api.setPos(x, z, 'GKC')
  api.setSpeed(25, 25, 'GKC')
  api.setPos(y, z, 'EZE')
  api.setSpeed(25, 25, 'EZE')

"""Describe this function...
"""
def pickup(x, y):
  global z
  move(x, y, -85)
  api.wait(1)
  move(x, y, -90)
  api.wait(1)
  move(x, y, -85)
  api.wait(1)

"""Describe this function...
"""
def dropoff(x, y):
  global z
  move(x, y, -65)
  api.wait(2)
  move(x, y, -74)
  api.wait(1.5)
  move(0, y, -74)
  api.wait(1)

"""Describe this function...
"""
def drop():
  global x, y, z
  dropoff(30, 80)


api.setAccurate('DEFAULT', 'DEFAULT', 'GKC')
api.setAccurate('DEFAULT', 'DEFAULT', 'EZE')
move(0, 0, -65)
api.wait(3)
pickup(-30, 60)
drop()
pickup(-60, 15)
drop()
pickup(-15, 90)
drop()
pickup(-90, 5)
drop()
pickup(15, 15)
drop()
move(0, 0, -80)
api.wait(3)

Step #9

Switch to Python in Fable Blockly

Click on the "snake-icon"

Step #10

Variation

You could advance the setup to use a sensor (e.g. a camera) to look for the metal rings instead of picking them up in specific places.

Lesson: All the World's a stage

Status: public

In this lesson, designed to be used when teaching foreign languages, the pupils will write a play for robots to perform. The pupils will work in groups with writing and recording lines and then programming the robot to perform. Picture taken from: t.light via Getty Images

Lesson Duration: Multi-Day

Grades: 06 - 12+

Tags: English, Block coding, Python, Fiction, Poetry, Art, Robotics, Mythology, Lesson Plan, Activity

Supplies: For each group: 2 Fable Joint modules (and maybe also Fable Spin), 1 Fable Hub, 1 2XY module, 1 4XY module, 1 phone holder, Computer with Fable Blockly installed, Smartphone with Fable Face installed.

Step #1

Introduction

“All the world's a stage, and all the men and women merely players;” This is the famous quote from Shakespeare’s ‘As You Like It’, and in the 21st century, nothing stands in the way of robots also playing their part. In this lesson plan you will produce a play for Fable to perform.

This project should start with an introduction, where the teacher guides the pupils through a talk about the genre drama, and the things that characterize these texts - lines, stage directions etc. You could find and re-read an excerpt of a play, that you have previously read, or maybe find an age-appropriate example of another play. The pupils now have to read this text in smaller groups - dividing the parts between them.

For this lesson the pupils do not need to be experienced with programming or Fable - however some knowledge of Fable Blockly/Block-structured programming is recommended. If you need inspiration to get started, visit the Shape Robotic website at:

Getting Started

Or the youtube channel at:

https://www.youtube.com/channel/UCC9D3IpUgnN7yVb5Bix1tjA

Variations and differentiation:

If you want this lesson plan to be shorter, you can choose not to let the pupils write a play, but chose an already written play. Then you can re-write and interpret it for robots, or just allow the pupils to record and perform it. If you choose this approach you can focus more on the programming and for instance have the pupils work more on their robots, e.g. make costumes or set pieces for the play.

In the later years or in language classes in e.g. high schools, you can use this method to work with playwrights like Shakespeare, Bertolt Brecht etc.

Step #2

Writing a play - class work

You must now write a play. Start by deciding on a story line, that fits the amount of robots you have available in your class.

Instead of writing down a detailed manuscript, create scenes, where your robot characters have a clear objective. Do not start writing the dialogue yet.

So before you move on make sure that you have:

  1. Established a clear setting for the play
  2. Agreed on a number of scenes in the play e.g. 4
  3. Decided on which robots are present in which scenes
  4. Have divided the characters in your groups

This task is for the pupils in class to cooperate on writing a play. The number of characters in the play must match the number of robots available. So if there are 6 groups, with one robot each, there has to be 6 characters. If you have 4 groups with 2 robots each, there have to be 8 characters etc. Writing down lines in detail is the not the objective in this part of the exercise, instead it is to establish a clear storyline, and some clearly defined characters, that the pupils can work with in their groups. It is important that the setting of the play, in which scenes the different characters are present, and the “goal” in the scene and in the play is clear to the pupils.

Step #3

Writing lines - group work

Write the lines for your character - ask your teacher for help, if you struggle to get the grammar right.

Make sure you keep in mind which scene you're writing - and what your character's objective is in the scene.

Step #4

Recording your lines

Now that you have finished writing the lines for your robot, you have to record your lines.

Use a voice recorder like the built-in recorder for your phone, or your computer if it has a built-in voice recorder.

Ask your teacher for help, so you get the pronunciation right, and remember to listen carefully to your lines afterwards, so you make sure it sounds clearly.

Tip:

When recording sound try to find as quiet a place as possible - and also a space that is kind of small, so there will be no sound "bouncing" off hard surfaces.

First the pupils have to record the lines one at a time. At this point it is a good idea as a teacher to help them with getting the lines recorded, so they appear clear and with correct pronunciation and possibly help the pupils correct their grammatical mistakes. The lines can be recorded directly on the computer, using a recording program - e.g. Windows voice recorder - or on a smartphone, using the voice recorder there.

Step #5

Naming and sorting your sound files - group work

When you have recorded your lines, put them in the 'My Fable Sounds' folder.

The 'My Fable Sounds' folder, is found by clicking Documents -> Fable -> My Fable Sounds - check the video for a quick guide

When you put your sound files in that folder, they will become available in Fable Blockly.

Tip: Make sure you rename your sound files, so it's easy to find out which line goes where.

Question: Did you record the sound files and added them to the 'My Fable Sounds' folder?

Correct answer: Yes

Step #6

Programming - group work

Now you have to start programming your robots. First assemble your robot like the picture.

Now program your robots. Think of these 4 parameters:

  1. Your robot has to speak its lines
  2. Your robot should move while speaking its lines
  3. How long do you need between the lines? - Add 'wait in sec.', and just set 10 sec. for now - this will be adjusted later
  4. What kind of emotion should Fable Face express?

When you're adding your spoken lines into your program, you have to add enough actions to last the entirety of the line. Otherwise it will be cut off. This can be done, by having the robot perform movements (not just random movements - but in accordance with whatever moves you have planned for your actor), or adding a 'wait in secs' for as long a time, as you have left before your line has been played.

The lines are added by pressing 'actions' then choosing the block 'play sound file'. This block has a drop down menu that allows you to choose between the files, you have added to the folder 'My Fable Sounds'.

When you're done programming, run your program in full, and make sure your robot behaves as intended. If it doesn't, adjust your program until it does.

Upload a screen shot of your program.

When the sound files are ready, and correctly named, so they are clearly distinguishable, the pupils should start programming the complete program for their character. They must remember to insert an appropriate amount of waiting time between the lines - to begin with start with a default 10 seconds, but the number isn’t of a great importance, as it will be adjusted later. This is done to assure, that there has been time put in, so that another robot can deliver his lines. When the pupils have finished their programs, they should check them in their groups, and make sure, that the programs as a whole, performs the way, that the pupils intended.

Attached files:
files/activity-all-the-world-s-a-stage-91.png
files/activity-all-the-world-s-a-stage-92.PNG

Step #7

Assembling your play - class work

Now that you have finished your programming, all groups will join together, and try how the play works out. When you first try to get the play working you will probably notice, that you need to make a lot of adjustments. You will need to adjust the waiting time between your lines, and possibly also the movements of the robots. You might also need to rewrite and re-record lines.

Tip: Do one scene at a time - run it through as many times needed, fix one problem at a time, and be prepared to make small and quick adjustments.

Now all groups assemble their robots for play, and they go through the trials of trying to adjust their programs and their lines, until eventually it comes together as a whole. It is in this process that the pupils get the first glimpse of how their play comes together as a whole, but the fact that up until this point, they have worked as 6 separate satellites without any significant communication, has the effect, that many things will need adjustment. Here it is of great importance that the teacher helps the pupils the keep a sense of perspective, and don’t give up, if (or more likely when) things don’t work as intended at the first go.

Step #8

Perform the play - Class work

Once all your adjustments have been made, sit back and watch the play unfold.

You could film your play for you to watch later or invite your parents to come and watch your work.

Lesson: Control Fable Spin with accelerometer

Status: draft

In this exercise you will control the Fable Spin using the accelerometer in your smartphone

Lesson Duration: 30 Minutes - 1 Hour

Grades: 05 - 12+

Tags: Multiplication, Engineering, Block coding, Python, Robotics, How-Tos, Blockly, Sensors, Activity

Supplies: 1 Fable Spin, 2 wheels, castor wheel, PC/Mac with Fable Blockly installed, smartphone with Fable Face and Fable HUB

Step #1

Description

What you will need:

  • Fable Spin
  • Wheel set
  • Castor wheel
  • Fable Hub
  • Smartphone with Fable Face installed
  • Computer with Fable Blockly installed

Step #2

Control Fable Spin with a smartphone

In Fable Blockly make 4 variables called e.g.:

x_acc, y_acc, A and B.

Now set the x_acc to get acceleration on x-axis and y_acc to get acceleration on y-axis

Step #3

Now a little math

Now take the 1 x 1 block and duplicate it 2 times so you have 3. Change one of them to - instead of x.

Then write 10 in one of the 1 x 1 blocks and add y_acc at the second 1. Then drag this block into the 1 - 1 block in the first "window".

Now go to the second 1 x 1 block and write 5 in the first window and drag the x_acc variable in the second. Then drag this new block in the second window after the minus.

Step #4

Set to

Add this new block to the variable set A to

Then duplicate this new block and change into set B to, with -10 x y_acc

Step #5

Finish the program

Now add all these 4 new blocks into a repeat forever loop and add a set speed block where you add the variable A and B on the 2 motors of Spin

Step #6

In Python

..the code would look like this

Step #7

Robot football

This activity could be used for robot football with Fable

Lesson: Plastic production & UN’s 17 sustainable goals

Status: public

Cross-curricular focus area: Production with sustainable utilisation of the natural resources

Lesson Duration: Multi-Day

National Curriculum 2014 (UK)

Key Stage 3: Computing.KS3.3, Computing.KS3.2, Computing.KS3.1

Grades: 08 - 12+

Tags: Biology, Physics, Engineering, 3D Printing, Environmental Science, Geography, Earth Science, Life Science, Ecology, Nature, Blockly

Supplies: Fable Joint modules, Fable Spin with wheels, Castor wheels, Fable Hubs, Building modules, phone holders, Computers with Fable Blockly, Smartphones with Fable Face, different types of plastic, paper, glue and scissors, “A box of scraps” with a lot of little things, pipes/tubes etc. that the pupils can use for building, possibly access to a Makerspace, laser cutter, and 3D printers.

Step #1

Description

We are large-scale consumers of plastic. There is plastic in our phones, our computers, our cars, our bikes, our kitchen utensils etc. Even the majority of our food is wrapped in plastic.

Since plastic was invented in the 1950’s, the production has exploded. Today the consumption of plastic so big, that on a global scale it’s equivalent to using 31.000 plastic bags per second!

In total the plastic production has grown from 15 million tons in 1964 to 311 million. tons in 2014, it is expected that the production of plastic is doubled over the next 20 years.

The distribution of plastic is of course connected to the price of production, seeing as plastic is a by-product from the oil refineries, which are being operated day and night, and thereby generate a lot of residual products, among these ethylene and propene gasses. Therefore the raw material is by and large free, which makes plastic like polyethylene and polypropylene cheap to produce in large quantities.

It is estimated that every year 8 million tons of garbage is dumped into the oceans, and that this number will double within the next 10 years. If this continue, soon there will be more plastic in the oceans than fish. (earthday.org + Plastic the facts)

Subject & grade: 8th - 9th grade

Biology, Physics/Chemistry and Geography

Length: Min 10 lessons (2x45 min.). And also time to allow the pupils to work independently with examinations and experiments.

Overall guide about the project:

The pupils work independently with research, modelling and experiments.

The teacher guides the pupils, and take care not to take over the pupils’ independent initiative. If the pupils are stuck, the teacher suggests possible experiments, courses of action.

Way of evaluation:

(Two Stars and A Wish is a kind of formative evaluation, where the pupils talk about two things they liked in the presentation, and one thing they think could be improved)

See a more detailed teacher guide here: Teacher guide

Step #2

Planning

The starting point of this project is the resources that the UN has produced to introduce the 17 Global Goals to children and young people, and more exact the ones relating to goal no. 14. (sustainabledevelopment.un.org/sdg14)

What you will need:

  • 1 Fable joint 
  • 2 Fable Spin 
  • PC (with Fable Blockly installed)
  • The different components for Fable
  • Smartphone
  • Tools for drawing and measuring
  • “A box of scraps” with a lot of little things, pipes/tubes etc. that you can use for building
  • Possibly access to a Makerspace, laser cutter, and 3D printers (Refer to: Guidance: Libraries and makerspaces)
  • Different types of plastic, that the pupils can use for experiments.
  • Paper, glue and scissors. 

See attached file: Plastic analysis lab lessons.

When planning this project, besides Fable (which in this lesson plan is mostly used as a part of showing competency in modelling - it can also be included in other ways dependent on the pupils’ ideas), you should get a hold of samples of the six most common/important types of plastic so the students can perform lab tests. These types of plastic should be in the form of pellets and different colors.

Step #3

Activities

Plan:

- Introduction to the project and the UN's 17 sustainable development goals

- Make out an overall problem and do a mindmap of it

- See the youtube video and discuss it

- You could show a clip from the animated film Wall-E to show the dystopia of man’s misuse of the planet

- Inform the pupils, that they will have to work out an overall problem.

- Have a class discussion of each group's problem so that the rest of the class can come with inputs

- The mindmaps could be hung in the classroom so it is visible during the project

Step #4

Biology activity

In this activity you should dissect a whole fish (see the guide). Check the stomach contents for plastic

For this lesson, the teacher has bought whole fresh fish for dissection (e.g. herring or mackerel)

Step #5

Plastic in the oceans - Geography

Plastic in the oceans - how does plastic end up as huge islands?

Objective:

To examine what significance the wind has for the placement of plastic islands/plastic soups, and to the flow of the ocean currents.

Planning:

Each group needs:

  • A washing up bowl
  • A hairdryer
  • ”Plastic kitchen cloth”
  • Scissors

Experiment:  The wind’s significance for the ocean currents

  1. Cut 1 mm wide strips of the kitchen cloth and cut them in to 1 mm pieces (that is microplastics ☹)
  2. Fill the washing up bowl with water ⅔ up
  3. Spread the plastic pieces on the surface of the water
  4. Start the hairdryer and blow along the edge, so you create a large gyre
  5. Take pictures and write notes

(Picture taken from https://www.flickr.com/photos/zoetnet/39705636574)

Step #6

Perspective to the real world

Putting the experiment into the perspective of the real world:

Which similarities and differences are there with the experiment and the placement of plastic in the oceans?

Why does the wind not blow the plastic islands away?

Why are the largest plastic islands in the northern hemisphere?

The plastic in the oceans is disintegrating at different speed.

Step #7

Programming

- Consider which type of problems might arise when the trash has to be collected.

Choose between the 4 different activities with Fable and rethink them regarding how you could combine them to solve our trash problem,

Throwing robot

Remote control Fable Spin

Play with sensors in Fable Spin

Sorting robot

According to the programming level of the pupils the activities can be varied. See shaperobotics.com/activities for more inspiration doing more easier or more advanced activities

Step #8

Collecting trash from a pollution area

You are giving 3 Fable modules.

The 3 modules should work together with clearing the area of “trash”.

Describe a model of how you can collect and remove the "trash" from the pollution area.

If you don't have as many Fable modules you can have the groups do their programming without the robot and then take turns using the modules.

The teacher talk about the problems with plastic pollution in the oceans, and how it could be possible to collect the trash. To make a modelling of this, the teacher gives the pupils the task of collecting trash from a “pollution area”.

Our “pollution area” will be an area of approximately 2x2 meters.

The pupils are put into groups and given 3 modules.

The modules should work together with clearing the area of “trash”.

The teacher’s role is to guide the pupils and try to get them to come up with their own solutions. That is done by asking questions such as:

• Have you considered….

• What if…

• Can you try to explain…

(It is important, that the teacher stays in their role, to get the pupils to come up with as many solutions as possible)

Using the 3 modules, the pupils have to try and collect as many table tennis balls (or whatever you place in the area) from the “pollution area”.

They may allowed to 3D print, use laser cutter, Lego or whatever comes to mind, to build their plastic collectors.

(Getting all 3 modules to work together will be a huge challenge to a lot of the groups, but this is the exact point to be made, that so many things need to work together, and that is one of the challenges of cleaning up the plastic soups.)

Step #9

Physics/chemistry

Lab test about different types of plastic see the file

The teacher start by going over the six most common types of plastic, PP, LDPE, HDPE, PS, PVC, and PET. What are their properties, where are they used, what are their resin identification codes.

For the duration of the class, the pupils work with the lab lesson, trying to identify the resin pellets, they have been supplied with.

Step #10

Biology

Field trip to examine the nature and collect trash.

You should collect trash and write down the amount, type, and weight.

The trash is sorted into paper, metal, plastic (this could be done in class later).

A field trip is arranged, to go outside, and examine the nature and collect trash.

(Depending on where you live, it would be a great experience to go to the coast, but other nature areas are good as well.)

(This trip will be a way to visualise, another way to research, which is one of the areas of competency, that is important in this cross-curricular focus areas.)

The day is evaluated

Step #11

Cross-curricular project

Cross-curricular project presented. Each group must have:

- A problem-statement from your main topic.

- You must have minimum 6 work questions - 2 for each subject.

- Your should have set op a long term study of something.

- You should have a minimum of 2 modellings.

- There must be at least 3 practical experiments included.

- You have to prepare a presentation.

- You have to take the 17 sustainable development goals into consideration.

Take a look at the mindmap you made in the beginning. From this mindmap you should work out your final problem-statement.

When your problem-statements have been approved by your teachers you should get to work writing your work questions.

- You arrange how and for how long they have to present their project.

Step #12

Geography

In class you watch the documentary which shows another way of dealing with the problems surrounding plastic.

Discussion in class.

Step #13

Biology

Whach the video clam filtration

Step #14

Filtration in mussels

In the video, two of our scientists set up a very simple experiment. All you need is a little blue mussels in an aquarium (place them in the aquarium and 1/2 - 1 hour before doing the experiment) a small glass tube or pipette and some fruit color. When the mussels start to open gently spray a little fruit color into water right next to the mussel opening. Be careful not to hit the clam as it will cause it to close.

Learning about the filtration system of clams/mussels.

The teacher tries to get live mussels or clams. You can go out and collect these with the pupils, but if you don’t have the time, store bought is fine.

The pupils can recreate this experiment in class.

Step #15

Presentation

You should present your results and to your exercises

- What was good and bad about the exercise?

- What can you use the exercise for? 

- What did we learn from the exercise?

Have focus on modelling (good and bad)

Step #16

Learning goals regarding programming

The pupil can create sequential programs, that can accomplish simple objectives.

The pupil understands that programs are executed by following simple, exact, and precise instructions.

Step #17

Resources

A great in-depth article about plastics pollution in our oceans with an emphasis on basic and actionable suggestions about what to do with the problem on a personal level.

Plastics Will Outweigh Fish in The Ocean

worldslargestlesson.globalgoals.org

earthday.org/2018/04/05/fact-sheet-plastics-in-the-ocean/

Goal 14 of the Sustainable development goals: sustainabledevelopment.un.org/sdg14

How much plastic do we eat?

www2.monroecounty.gov/files/DES/education/plastics_analysis_lab_lesson.pdf

Plastic the facts

Wall E

Filtration of mussels

Time laps video of clam filtration

Lesson: Morse code

Status: draft

You will develop a program that makes the hub light up when you press a key.

Lesson Duration: 30 Minutes - 1 Hour

Grades: 04 - 12+

Supplies: 1 Fable Joint module, 1 lid, 1 Hub (dongle), 1 flexible throwing arm, 1 computer or tablet with Fable Blockly installed.

Step #1

Description

You will develop a program that makes the hub light up when you press a key. 

You will code and translate a Morse signal. 

Content:

  • Hub (Dongle)
  • Computer or tablet with Fable Blockly installed
  • Paper and pencil 

  • Assignment sheet 

  • Morse alphabet 


Grade: 4-5 

Duration: 2 lessons (2 x 45 minutes) 

Objectives 

Students will work with Morse code. They will develop a program where the light on the Fable hub can create Morse code signals. 

Learning activities

Students are divided into groups of 3-4. 

Each group develop a Morse apparatus that uses the light on the Fable hub. 

It must be possible to control the hub’s light by pressing a single key. 

The code example provided assumes that the hub’s light can be controlled by pressing one key, but there are many different ways to solve the task. 

Some groups may choose to use different colors on the hub, depending on whether they want to signal a dot or a dash. 

The group takes turns so everyone tries to program and translate a Morse code. 

Students can also work together with other groups to send and receive messages. 

Before starting the project, it is important that students understand four simple conventions used to distinguish between dots, dashes, letters, and words in messages. 

To distinguish signals, we operate with the following conventions:

  • Between dots and dashes there is a pause equivalent to a dot signal.
  • The signal for a dash is equivalent to the length of three dots.
  • Between Morse signals there is a pause equivalent to the length of a dash.
  • A new word is indicated by a pause three times the length of a dash signal.

Evaluation

Formative assessment in which students receive direct feedback on their work with their Morse system.

Step #2

Make the code

Program the hub so that it lights up when you press a key. You can work with one color or several different colors. 

Lesson: Idea: Fable Spin: Simple Machines: Screw

Status: draft

A screw is a simple machine that can hold things together. Students will explore how simple machines work and demonstrate how a screw is also an inclined plane.

Lesson Duration: 0-30 Minutes

Next Generation Science Standards

Grades 6, 7, 8: MS-PS3, MS-ETS1-1

Grades: 06 - 08

Tags: Science, Physical Science

Supplies: science journal or other notebook, pencil

Step #1

What Is a Screw?

Look closely at a screw and you will find another simple machine. A screw is made of an inclined plane wrapped around a cylinder. A screw has three parts: the head, shaft, and tip. Examine the shaft of a screw and you see threads wound around it. If you could straighten these threads, they would form an inclined plane.

The threads of a screw are an inclined plane wrapped around a central shaft.

Step #2

Vocabulary

Below are helpful content terms that are helpful to know about screws and simple machines. As you read, use an online dictionary or other resources to further define unfamiliar terms. After reviewing the terms and definitions, choose two words and complete the word comparison chart.

  • Archimedes- Greek mathematician and physicist who lived about 2,300 years ago and made many discoveries
  • Archimedes’ screw- ancient machine for lifting water, which is still used today. It consists of an inclined tube containing a broad-threaded screw.
  • effort- force needed to use a simple machine
  • inclined plane- simple machine with a slanted surface that is used to raise or lower objects. An inclined plane adds distance that an object must be lifted, but reduces the amount of effort needed to lift it.
  • irrigation- applying water to land, so that plants and crops can grow. The Archimedes’ screw has been used to help irrigate land for more than 2,000 years
  • machine- mechanical or electrical device that helps people do work
  • ramp- inclined surface along which an object is moved up or down. A ramp reduces the amount of force that is required, allowing the object to be moved more easily.
  • screw- simple machine with a slanted surface that is used to raise or lower objects. An inclined plane adds distance that an object must be lifted, but reduces the amount of effort needed to lift it.
  • simple plane- machine with few or no moving parts that allows people to use less effort to move something. There are six types of simple machines: inclined plane, wedge, screw, lever, pulley, and wheel and axle
  • threads- continuous ridge that spirals around a screw. Straightening these threads would form an inclined plane.
  • wedge- simple machine made of two inclined planes joined back-to-back. An axe and knife are wedges.
  • work- measure of energy used to move an object. Simple machines help people do every-day work.

Attached files:
files/activity-idea-fable-spin-simple-machines-screw-117.pdf

Step #3

Lessening the Effort

An inclined plane lessens the effort needed to lift or lower something by increasing the distance over which the work is done. A screw allows work to be done in the same way— with less effort. The threads of a screw turn around and around as they cut into wood or other materials. Less effort is needed to cut into the wood because of the increased distance that the threads travel.

You can demonstrate how turning a screw a long distance lessens the effort needed to do work. Examine the lid of a peanut butter jar or other type of jar with a screw-on cap. The inside of the lid is a screw with a thread. The threads turn and grip the jar as you open and close it. Place the lid on the jar, and turn it closed. Your hand moves around several times to screw the lid on as it travels a short distance up or down. You do not have to turn the lid with great force. Instead, you turn it a longer distance by moving your hand around and around.

A construction auger is a screw that drills holes deep into the ground.

Step #4

Moving in Circles

Like a wedge, a screw is designed to change the direction of force. Turn a screwdriver in a circle, and the threads of the screw cut down into a plank of wood. The circular motion of the screwdriver is changed into forward motion as the screw moves up or down. The blades of a fan are another type of screw that changes the direction of force. The blades turn around and around, pulling air in and pushing it out.

Step #5

Making a Screw

Read the pages below and follow the steps to show how a screw can also be an inclined plane. For this activity, you will need:

  • a pencil
  • a sheet of paper (210 mm x 297 mm / 8.5 in. x 11 in.)
  • a colored marker
  • scissors
  • a ruler

How does it work?

When you wrapped your inclined plane around the pencil, you made a screw. The long side of the inclined plane (the colored edge) was wound around the shaft of the screw. This colored edge represents the threads of a screw.

Step #6

Screws that Hold

The model that you made of a screw cannot hold material together, but that is the job of many screws. The threads of a wood screw push against wood, and hold pieces of wood firmly in place. The screw on a vise brings clamps together which hold an object tightly. A water faucet also has a screw inside. The screw moves a stopper to stop the flow of water or to let water flow out. The base of many light bulbs have screws that let them fit securely in a lamp. What other types of screws can you find in your home?

A screw with narrow threads is easier to turn than one with wider threads. Narrow threads are spaced closer together, so it takes more turns to tighten the screw, but less effort. This man is tightening a screw on a car.

Step #7

Screws that Lift

Learn about other uses for screws by reading the pages below and following the steps. For this activity, you will need:

  • an empty can (a tall can works best)
  • clear plastic tubing (about four times as long as the can is high)
  • masking tape
  • a large bowl
  • water
  • food coloring

How does it work?

The screw that you made is a machine called an Archimedesscrew. Like all screws, it changes the direction of force. When you turned the screw with a circular movement, the water moved upward in the threads.

About 2,300 years ago, it is thought that a scientist named Archimedes invented a machine like this for lifting water. It was used to pump water from mines and ship holds and for irrigation. The Archimedes’ screw had threads wound around a central shaft, inside a hollow pipe. When the screw is turned, it scoops up water and carries it up the pipe. Using an Archimedes’ screw, a farmer could lift water from a stream or pond to an irrigation ditch. Archimedes’ screws are still used for irrigation in many parts of the world. They are also used for lifting in other machines, such as combine harvesters.

With a partner, discuss other ways an Archimedes' screw might be used to move or carry water today. Write about one of your ideas in your science journal or other notebook. You could also include a drawing of your idea.

You could provide class time for students to share their ideas and drawings.

Lesson: Projektopgaven: Få en innovativ idé!

Status: public

Projektopgaven i 9. klasse i Folkeskolen. Arbejd med innovation med Fable

Lesson Duration: 2-4 Hours

Grades: 08 - 10

Tags: Lesson Plan

Supplies: Fable Hub, Fable robots, Fable building parts, 1 computer with Fable Blockly, smart phone with Fable Face, Phoneholder, Fable accessories

Step #1

Beskrivelse

I skal brainstorme mulige ideer til jeres projektopgave.

Ideen skal både involvere udviklingen af ny teknologi og adressere et behov som der findes i verden.

Step #2

Opgave 1

Lav en brainstorm. Kom med innovative og kreative ideer til et teknisk system eller produkt som du gerne vil udvikle første version af i løbet af din projektopgave.

I grupper skal I producere så mange ideer som muligt og undgå at kritisere hinandens ideer.

Prøv at sprede jeres ideer ud over flere anvendelsesområder, for eksempel:

· Produkt og Teknologi: industrielt design, udstyr, robotter, hardware, nanoteknik osv.

· Life Science & MedTech: bioteknologi, medicinsk udstyr, sundhedspleje, mv.

· Mobil og Web: apps, webtjenester, søgemaskiner, spil, virtuel virkelighed, mv.

· CleanTech & Miljø: energieffektivitet, affaldshåndtering, forureningsreduktion mv.

· Mennesker og Samfund: uddannelse, rådgivning, marketing, tjenester, turisme, mv.

Step #3

Opgave 2

I gruppen skal I nu evaluere og diskutere nogle af jeres foretrukne ideer ud fra nogle kriterier. Eksempler på evalueringskriterier kunne være:

• Hvor innovativt er systemet? - Er der allerede andre systemer, der gør det samme?

• Hvor realistisk er det? - Kan du lave en prototype indenfor rammerne af dit projekt?

• Skaber det værdi? - Løser det et reelt problem for nogen? - Kan værdien retfærdiggøre omkostningerne til systemet?

Step #4

Opgave 3

Baseret på din gruppes evaluering af forskellige ideer, skal du nu individuelt vælge din egen idé.

Ideen skal have potentialet til at blive et fremragende projekt uden væsentlige ulemper. Sørg for at vælge noget, som du vil være motiveret til at arbejde på. Det er ok, hvis flere af jer vælger den samme idé, men forsøg at gøre ideen til din egen.

Lav en kort beskrivelse af din foretrukne ide, som du gemmer til senere.

Lesson: Converting and reading speed and distance

Status: public

For this lesson the pupils will learn to convert speed from metre per second (m/s) to kilometre per hour (km/h), by building a Fable Spin robot on wheels. Furthermore, the pupils will try to 3D print new wheels for Fable, so afterwards, they can use their printed wheels, to add new values to their program. In addition, the pupils should use the Fable data logger, to read speeds and distances.

Lesson Duration: 6-8 Hours

National Curriculum 2014 (UK)

Key Stage 3: Computing.KS3.4, Computing.KS3.3, Computing.KS3.2, Computing.KS3.1

Grades: 06 - 09

Tags: Algebra, 3D Printing, Shapes, Block coding, Robotics, Blockly, Sensors, Lesson Plan

Supplies: Fable spin, PC (with the Fable program installed), Tape measure, Acces to 3D printer, A vernier caliper for measuring wheel size

Step #1

Introduction - the maths

In the following assignments you will learn to calculate speed and convert from one speed to another.

Often you calculate speed in kilometres per hour (km/h). To calculate speed, you need to know the distance and the time. When you know these two values, you can calculate the speed using the formula seen in the picture.

Where v is speed, d is distance and t is time.

Question 1

A cyclist drives 40 km in 2 hours. What is the speed of the cyclist?

Question 2

A man walks 18 km in 3 hours. At which speed does the man walk?

Now do the rest of the assignments in the attached worksheet.

Worksheet 1

Step #2

Working with Fable Spin

Now you have to start working with programming Fable Spin.

Assemble the robot, and work with the attached worksheet.

Tip: To find the commands for Fable Spin look at the bottom left on the menu to the left in the program. Check whether Fable Blockly is set to 'Simple mode' or 'Advanced mode'. For this assignment, it should be set to advanced mode. Click on 'Actions', and scroll down until you find the blocks for 'Spin' - as seen in the picture

Note: Always remember to drive Fable Spin on the floor

Once you get the results of the different wheel speeds, add your data into a coordinate system. Try using the Fable Data-logger.

Worksheet 2

The teacher starts by presenting the lesson plan, objective as well as the learning goals.

Then the teacher acts as a guide and consultant. He/she keeps the processes going by asking questions such as: Describe the problem? What are you thinking the problem is?

That way a problem-based approach to the work is created and maintained.

Step #3

Building new wheels for Fable Spin

Next you will have to design new wheels for Fable and have them 3D printed.

You have to work with a 3D design program e.g. Tinkercad. See this tutorial Make your own 3D printed Fable piece

Talk to your teacher and determine the best approach for designing new wheels.

The teacher presents the measuring tools, the shortcut keys etc. in the 3D design program, so it’s easier to use for the pupils.

(Tinkercad could be a good possibility as a 3D design program, as it is easy to use once you have got a good grasp on the shortcut keys.)

In the design process, the pupils have to take into consideration, how big, they can make the wheels, as wheels, that are too large will impair Fable’s driving ability.

They can also use 4XY modules, to experiment their way to a wheel size.

Here though, they should be aware, that the size of this module could conflict with their 3D print.

As a preparation for the lesson plan, the teacher can do an ability grouping, both from a mathematical point of view, ability to cooperate as well as programming skill. See more here in teaching activities

Step #4

Testing your new wheels

Now that your wheels are ready, try and test them the way you did with the standard wheels - drive at different speeds for different amounts of time. Remember to log your data

Then compare your results and determine what effect the wheel size has on the speed of the robot.

Step #5

Driving straight ahead with different wheels

Now that you have found out the difference in speed on the basis of the wheel size, try to calculate the engine speed on motor A (motor B still having the own-produced wheel attached), so the robot can drive 1 m, without veering to the left or right.

The teacher once again acts as a guide and problem solver. Once again this is done by asking clarifying questions.

Lesson: Geometry by the centimetre

Status: public

In this lesson the pupils have to learn to program Fable to create geometric shapes. Furthermore they have to create a connection between the program and a physical shape, so that the pupils will be able to draw their shape with chalk on the ground/in the school yard and then get Fable to recreate the exact shape.

Lesson Duration: 6-8 Hours

National Curriculum 2014 (UK)

Key Stage 2: Computing.KS2.3, Computing.KS2.2, Computing.KS2.1

Grades: 03 - 05

Tags: Addition, Multiplication, Engineering, Algebra, Shapes, Block coding, Blockly, Sensors, Lesson Plan

Supplies: Fable Spin, Computer, Chromebook or iPad with Fable Blockly installed, Measuring tape, Blackboard protractors, Blackboard compass, Blackboard ruler, Optionally: A box filled with miscellaneous bits and pieces, so the pupils have the opportunity to build, draw and model geometric shapes in different materials, only limited by their imagination.

Step #1

Introduction - Question 1

For this lesson you will work with Fable Spin to create geometric shapes

But before we get started just a few questions

A more detailed document for the teacher can be found here Geometry by the centimetre

Step #2

Introduction - Question 2

A square has four angles, and all the angles are right angles

Step #3

Introduction - Question 3

A circle is round and as such has no right angles, however circles can be divided into smaller parts (like a pizza) and each of these parts are measured in degrees.

Step #4

Introduction - Question 4

The word triangle means 'three angles'. While one of the angles may be a right angle, it is not always so.

Step #5

Measuring length

For this part you will work in small groups.

Find a room or a hallway, and try to estimate how long it is.

You could for instance try to walk the length of the room and count how many steps you took.

When you have come up with a guess write it down.

Then measure the actual length - how close did you come?

The teacher introduces the project and subject matter to the pupils in the class.

First, the pupils try to estimate the length e.g. of the school hallway, the schoolyard etc.

Then they measure the length using a measuring wheel.

Step #6

Geometrical shapes

Today your teacher will tell you about different geometrical shapes - and then you have to go on a geometry hunt around the school.

Take pictures of the shapes you find - and upload the best picture here.

Remember to save the rest of the pictures - you will need them later.

The teacher introduces the different geometric shapes, and briefly talk about their characteristics. Then we do a “geometry search” at the school

Step #7

Geometrical shapes - what you found

For this lesson you will have to print 2-3 pictures from your hunt, and describe which shapes you found - remember to use the correct terms

The teacher listen to the pupils talk about their search in class. Then put the pupils to work making descriptions, using terminology such as, shape, size (width, length,) angles and such.

The last 10 minutes of the class are used to introduce Fable

Step #8

Beginning to program

For this lesson your teacher will introduce you to programming with the Fable Blockly program.

After this you will try on your own.

Make the program shown in the picture, and watch what the Fable Spin module does. Always remember that Fable Spin should drive on the floor.

Now try to make changes to the program, and see what happens.

Suggestions:

  • Try to change the value of speed, length and angles.
  • Try to find different blocks, and adding them to the program.

The teacher introduces Fable Blockly and how it works - both simple and advanced mode.

A small, easy programming sequences, that the pupils can code themselves, is pictured.

This example can be shown on the board/screen.

(In this lesson it would be nice to have 2 adult teachers/pedagogues in the class)

Step #9

Programming geometrical shapes

Now you have to start experiment with programming yourselves.

First draw different geometrical shapes - draw on a large scale, maybe poster size.

Next lay the shapes out on the floor, and try to program your robot to drive along the shapes, that you have drawn.

When you have successfully done this record your robot as it drives along the shapes. Upload the video to YouTube.

Add the link to your video in this assignment.

In these lessons the teacher acts as a guide, asking questions like:

  • Have you considered?
  • What if?
  • Could you possibly do like such?

In this stage it is important that the teacher’s role supports the pupils in their examinations, to it is the pupils who solve the tasks,In these lessons it will also be nice to have 2 adults in the classroom, so there is more help for the groups, who have a hard time operating independently. As teachers we need to remember the importance and the learning that is making mistakes, and make this clear to the pupils.

If you do not want your students to use Youtube you can copy this lesson plan and use a shared Google Drive folder or similar.

Step #10

Evaluation

Fill out the evaluation sheet

Evaluation - Geometry by the centimetre

Lesson: Drawing with a laser

Status: public

You program a robot to draw geometric figures with a laser pointer.

Lesson Duration: 1-2 Hours

Grades: 04 - 12+

Tags: Block coding, Blockly, Activity

Supplies: 1 Fable Joint, 2 building modules (or just one), 1 lid, Phone holder, 1 laser pointer, 1 Fable Hub and 1 computer with Fable Blockly

Step #1

Task 1

Robots equipped with powerful lasers are used for manufacturing to weld metal parts or cut them into specific shapes.

Construct the robot as the picture shown and place the laser pointer so that it can trace the shape.

Note: Several groups can turn to programming the same robot.

Step #2

Task 2

Program the robot to move the laser pointer along the edges of the geometric figures. The laser point must be kept inside the lines. Try to make the movements as smooth as possible. You get 5 points per figure in the first row, 10 points in the second row and 15 in the last row.

Step #3

Task 3

Experiment with the program and robot to make it more user-friendly or interesting.

For example, you can program the robot to pause when the spacebar is pressed or you can include variables and mathematical formulas in your program that make it easy to get the robot to draw new geometric shapes.

Make it as complicated as possible.

Again it is a good idea to take the block move to with speed

Step #4

If blocks..

It would also be a good idea to use the if blocks so that you would have different part of your “laser-robot” that can be controlled by different keys. Important notice: When you are in advanced mode the key pressed block is a little different. Now when you click start you have to put in the input by clicking the key that you want to be the trigger. That means that you can use the entire keyboard!

Lesson: 3G: Graphing Data

Status: draft

Now you know how to acquire all sorts of data from your CoDrone! But what can you do with it? This lesson will teach you how to turn all of that data into graphs using Python.

Lesson Duration: 30 Minutes - 1 Hour

Grades: 06 - 12+

Tags: Computer Science, Drones, Python, Programming

Products: CoDrone with Python

Step #1

Import matplotlib

Now you know how to acquire all sorts of data from your CoDrone! But what can we do with it? There are Python libraries that allow you to plot your data on a coordinate system and visualize how two variables are related, and the one you will be using for this lesson is called Matplotlib.

To import Matplotlib, go to your default preferences and add the Matplotlib library, just like you did in the very beginning with the CoDrone library. If you need a refresher on how to do this (we know it's been awhile!), go to lesson 1G: Library and Driver Installation.

Once Matplotlib is added, open a new file and import the library:

import matplotlib.pyplot as plt

Importing as plt isn't necessary but will allow us to call its methods without typing out matplotlib.pyplot again!

Step #2

How to plot

Let's plot some points on a graph! Let's say you have the linear equation y = 2x. Come up with a list of x values:

x = [1, 2, 3, 4]

Next, calculate the corresponding y values:

y = [2, 4, 6, 8]

To plot them on a graph you will need the following code:

plt.plot(x,y)
plt.show()

Run the entire program together to see the graph!

x = [1, 2, 3, 4]
y = [2, 4, 6, 8]
plt.plot(x,y)
plt.show()

There is a third string argument that is missing from the plot() function which specifies the color and style of the plot. Since it was left blank, matplotlib will set it to ‘b-’ by default, which indicates a blue (‘b’)  line (‘-’).

Step #3

Adding markers

Let’s practice by changing the line to a red dotted line and adding a marker, which is like drawing a point on the graph. Markers can have different shapes but for now, we will be using the most common, which is a point denoted by ‘o’.

plt.plot(x,y,'ro--')

All of these specifiers can be typed in any order, but be sure not to leave spaces!

Matplotlib supports 4 line styles, 13 marker specifiers, and 8 color specifiers. Click here to see the documentation and try different combinations of specifiers for your graphs.

Step #4

Working with data

Suppose someone handed you this data of the average temperature per month in San Diego. They ask you to plot the data without a line, only markers. To do this, set "month" as your x-axis, "temp" as your y-axis, and then omit a line style in the specifier string:

month = [1,2,3,4,5,6,7,8,9,10,11,12]
temp = [65,65,66,67, 69, 71,75, 76, 73, 69, 65, 64]
plt.plot(month, temp, 'ms')
plt.show()

To anyone else who does not know what you are doing, this plot is not very useful. Matplotlib has a function that labels your axes with a description so that anyone can understand your graph! In this example, the x-axis represents the month of the year starting with January, and the y-axis represents the average temperature that month. You should also add a title. Make sure this is before the show() method:

plt.title("San Diego Average Monthly Temperature")
plt.xlabel("Month")
plt.ylabel("Average temperature(F)")

This is an example of plotting a static data set, but what happens if the data set is constantly changing?

Step #5

Graphing gyro sensor data

In the previous lesson, you learned how to access the gyro sensor data. With the matplotlib library, you will be able to see live updates of the data on a plot as time progresses.

In the previous example, you created a list with preset data to plot. In this case, you will not have preset data because as you move, the drone data is constantly being added. This means that at the start of the program, these lists should be empty. There are three graphs to plot that you will plot on the same x-axis. How many lists do you think you will need?

The answer is four!

xdata = [] # This list will hold the value of time
yyaw = [] # This list will hold the values for yaw
yroll = [] # This list will hold the values for roll
ypitch = [] # This list will hold the values for pitch

Confused? There are 3 plots that have x and y pairs, so you may have expected 6 lists. However, the x-coordinate list needs to only be created once because all plots will share the same x coordinates.

Next, you will show the plot so that you can modify it:

plt.show()

Step #6

Setting axis limits

Since the purpose of this exercise is to see a graph of the gyroscope data over time, the x values, or the dependent variable, will be measured in seconds. Negative time does not make sense so the range will be 0 to 100. This leaves roughly around 90 seconds of testing because it takes around 10 seconds to pair.

The y values are the values that you are measuring from the gyroscope. In this example, they are the independent variable. Since you are dealing with degrees, the range will go from -360 to 360. Why do you need the negative values? Remember that roll, pitch, and yaw can be positive or negative. The following code will get the current axes (plt.gca()) and then will set new limits:

axes = plt.gca()
axes.set_xlim(0,100)
axes.set_ylim(-360, 360)

Step #7

Creating plots

Now you can set up your plots! For each plot you create, the program needs coordinates, line specifiers, and a label. The label is so that anyone can look at your graph and know what is going on. Here is how to create one plot:

yaw_line, = axes.plot(xdata, yyaw, 'r-', label="Yaw")

A description of the parameters:

xdata: list of x-coordinates that will hold time values

yyaw: list of yaw values returned from angles.get_gyro_angles()

'r-': specifier string for a solid red line

label="Yaw": gives your plot a name

Create the other two plots for the graph of roll and pitch values using the same format. Make sure you choose different colors for each plot or else it will be very confusing to know which plot is which!

Solution:

roll_line, = axes.plot(xdata, yroll, 'b-', label="Roll")pitch_line, = axes.plot(xdata, ypitch, 'g-', label="Pitch")

Step #8

Finishing touches

By this point, you have the foundations for your graph. Add a meaningful title and axes labels:

plt.title("Changing gyroscope values over time")
plt.xlabel("Time (seconds)")
plt.ylabel("Degrees of displacement")

Finally, you are going to include a legend, which is a graphic that tells you the meaning of colors or symbols. It will appear in the corner of your graph so that anyone can understand.

handles, labels = axes.get_legend_handles_labels()
axes.legend(handles, labels)

Step #9

Appending sensor data to lists and live plotting

Since you are going to be able to see the graph moving in real time as you move the drone, some of the notation will appear a bit differently than the examples with static data sets, such as the math functions or temperature. However, the first part should be a review! Since you want to continuously graph data for a set amount of time, use a while loop. Remember that you set limits for the x-axis, so you cannot graph for more time than there is space on the graph. In this example, the limit was set at 100 so the while loop should stop at 100. If you can't remember how to do this, review lesson 3E: Timers.

while time.clock() < 100:
 # Code that plots points and shows data

Do you remember how to save and access the values from the gyroscope and add values to a list? This will be the next step. Create a variable to hold the current yaw, pitch, and roll values and append all of the values to their respective lists. If you need a refresher on lists, make sure to review lesson 3D: Lists. The solution should look similar to this one:

angles = drone.get_gyro_angles()
yyaw.append(angles.YAW)
yroll.append(angles.ROLL)
ypitch.append(angles.PITCH)

Don’t forget to add the value of seconds into the xdata list! 

xdata.append(time.clock())

Step #10

Setting data

Now that the lists are updated with data, you need to “set” the data that corresponds to the right plot (remember that you have 3 plots on the same graph!). You will need to set the x and y data individually for each plot, so this will take 6 lines of code. Here is the first pair, and you are challenged to do the rest on your own:

yaw_line.set_xdata(xdata)
yaw_line.set_ydata(yyaw)

Setting the data does not actually draw the graph. You will also need to set the number of plots per second using plt.pause().

plt.draw()
plt.pause(1e-17)

The number 1e-17 is another way of saying 1x10-17. This number is very small so that the graph is as smooth as possible. For example, imagine someone told you to draw a circle but you were only allowed to use 4 dots. It would look more like a square. Now imagine you were allowed to use 6 dots. It would look a little more circular but it could be a hexagon. Now imagine you drew a circle with 100 dots. It would look a lot more like a circle! Having more points will more clearly paint a picture of what is going on in the graph.

Step #11

Final steps

The final step in the while loop is important for keeping your drone from disconnecting. CoDrone has a 50ms delay between commands and will disconnect if too many commands are sent at once and too fast. Include a time.sleep(0.05) at the end of the while loop to make sure that you are requesting gyroscope data at this rate and not faster.

To keep your graph from disappearing after code exits the while loop, include one final plt.show() outside of the loop. Add a drone.close() to disconnect from the drone, and you’re done!

Run the code and once your drone pairs, move it around to see values changing. Note that the graph will not start at 0 on the x-axis because the drone takes a few seconds to pair and time.clock() starts the count once the program starts running.

Step #12

Challenge

Try graphing data from other CoDrone sensors! Using the same principle, try the following:

  • Height Sensor: use drone.get_drone_height() and make sure you change your y-axis limits! Hint: The height is in mm and has no negative values.
  • Battery percentage: use drone.get_battery_percentage(). Again, make sure you change the y-axis limits for percentage.

Lesson: Build a robot that solves a maze_with help

Status: draft

In this activity you will build and program a Fable robot to solve a maze

Lesson Duration: 1-2 Hours

Grades: 03 - 12+

Tags: Physics, Engineering, Algebra, Block coding, Python, Robotics, How-Tos, Blockly, Sensors, Activity

Supplies: 1 Fable Joint module, 1 lid, 1 connector, 1 maze, 1 Fable Hub, 1 computer or tablet with Fable Blockly installed, 1 smartphone with Fable Blockly, variation with Fable Spin

Step #1

Description

You will program a robot to solve a ball maze.

Games are fun, and it is therefore no surprise that there is already a huge market for games. Why not use robots as a new type of game platform? 

Note that several groups can take turns programming the same robot.

You can see the teacher guide for ideas of how to make the code. But do not share it with the pupils/students!

Solve the maze

Step #2

Task 1

Construct the robot as shown in the image. Place the ball on the little platform in the corner of the maze. 

Step #3

Task 2

Program the robot to solve the ball maze by making it move the two motors through a sequence of angles. The game is over when the ball falls into a hole. You get 5 points for the first hole, 10 for the second, and 15 for the third hole. Make the ball roll as quickly and steadily as possible through the maze.

Step #4

Task 3

Experiment with the program and the robot to make it solve the ball maze in other ways. 

For example: 

  • Control the module remotely using the arrow keys on the keyboard.
  • You can control the robot remotely using the accelerometer, which can be read on a smartphone with the Fable Face app or on a Chromebook (not all models)
  • You can also control it by tap position on the screen (either phone or Chromebook)
  • Control the module remotely using another joint module. (follow the leader)

Step #5

Nice to know

When solving the maze it would probably be good to get the module to move a little slower than with the normal move to block.

You can get the move to blocks with speed if you go into advanced mode in Fable Blockly.

Step #6

Put it into a loop

Now take a copy of this block and change one of them to tap position on Y-axis. Then drag the 2 blocks into your move to block where the angles are. This is what the program should look like on a PC/Mac (remember to connect to the smartphone).

It could make sense to use the move to block in advanced mode with speed and set it to speed 20 instead so it moves a little slower. Now you control the robot’s movement with your finger on the screen!

Step #7

A tip

Although when you don’t touch the screen the Joint module has a tendency to go to 90, 90. It would make more sense if it went to 0, 0. Therefore you should add a if do else with a tap count = 1 and then in else add a move to block that goes to 0, 0.

Step #8

Control with accelerometer

You can also use the accelerometer either in a smartphone or on your Chromebook/iPad device. With the same program from before you can change it to acceleration of X and Y

Step #9

Refine the program

If you would like it to be able to move more than -10 to 10 you could add a math block than take the input from the sensor and times it by 2 or 10. Go under math and take 2 blocks called 1 x 1.

Step #10

Drag the acceleration block into the 1 x 1

Drag the get acceleration on .. blocks out from before and add them to each of the 1 x 1 blocks (instead of one of the numbers). Then change the number to 2 or 4 or what you think (try different numbers).

Step #11

When you are done drag the new blocks back into your move to block and see what happens!

Step #12

Even more ways...

There could be even more ways to solve the maze. E.g. if you have a Fable Spin you could use the proximity sensor or you could make the robot react to sounds, time in seconds or maybe look for specific colors in the camera.

Explore yourself and enjoy!

Upload a screenshot of your program

Lesson: Build a robot that solves a maze

Status: public

In this activity you will program a Fable robot to solve a maze

Lesson Duration: 1-2 Hours

Grades: 03 - 12+

Tags: Physics, Engineering, Algebra, Block coding, Python, Robotics, How-Tos, Blockly, Sensors, Activity

Supplies: 1 Fable Joint module, 1 lid, 1 connector, 1 maze, 1 Fable Hub, 1 computer or tablet with Fable Blockly installed, 1 smartphone with Fable Blockly, variation with Fable Spin

Step #1

Description

You will program a robot to solve a ball maze.

Games are fun, and it is therefore no surprise that there is already a huge market for games. Why not use robots as a new type of game platform? 

Note that several groups can take turns programming the same robot.

The teacher can have acces to a document with help to build the programs - but don't share it with the pupils/students! Solve the maze - with help

Step #2

Task 1

Construct the robot as shown in the image. Place the ball on the little platform in the corner of the maze. 

Step #3

Task 2

Program the robot to solve the ball maze by making it move the two motors through a sequence of angles. The game is over when the ball falls into a hole. You get 5 points for the first hole, 10 for the second, and 15 for the third hole. Make the ball roll as quickly and steadily as possible through the maze.

Step #4

Task 3

Experiment with the program and the robot to make it solve the ball maze in other ways. 

For example: 

  • Control the module remotely using the arrow keys on the keyboard.
  • You can control the robot remotely using the accelerometer, which can be read on a smartphone with the Fable Face app or on a Chromebook (not all models)
  • You can also control it by tap position on the screen (either phone or Chromebook)
  • Control the module remotely using another joint module. (follow the leader)

Step #5

Nice to know

When solving the maze it would probably be good to get the module to move a little slower than with the normal move to block.

That can be found in advanced mode low left corner.

Step #6

Other ways to solve the maze

If you want to remote control the Fable robot it might be a good idea to use the if do block.

If you control the robot remotely using any kind of bluetooth device (using Chromebooks, iPads or a smart phone), you should be aware that there can be some delay due to the bluetooth connection. You should not experience that if you use another Fable module.

Step #7

Change the ID

Remember to choose the right ID for your Fable module

Step #8

Sensors

The different sensors in the phone can be accessed from this block

Step #9

A hint

If you want to remote control the robot using tap position on the screen there is a little work around that you probably need to do:

When you don’t touch the screen the Joint module has a tendency to go to 90, 90. It would make more sense if it went to 0, 0 but for some reason it doesn't. Therefore you should add a if do else with a tap count = 1 and then in else add a move to block that goes to 0, 0.

Step #10

Refine the program

If you want to remote control the robot with the accelerometer you might want to do something with the input from the sensor, since it only goes from approx. - 10 - 10 and the Joint module -90 - 90. Then you use the math blocks to change that.

Step #11

Even more ways...

There could be even more ways to solve the maze. E.g. if you have a Fable Spin you could use the proximity sensor or you could make the robot react to sounds, time in seconds or maybe look for specific colors in the camera.

Explore yourself and enjoy!

Upload a screenshot of your program

Lesson: Remote control Fable Spin

Status: public

In this activity you will make a remotely controlled robot (Fable Spin)

Lesson Duration: 1-2 Hours

Grades: 03 - 12+

Tags: Multiplication, Block coding, Robotics, Blockly, Sensors, Activity

Supplies: 1 Fable Spin, 2 wheels, castor wheel, PC/Mac, iPad or Chromebook, with Fable Blockly installed and Fable HUB. Optional: Smart phone with Fable Face

Step #1

Description

In this activity you will make a remote controlled robot. The example will use the arrow keys on the keyboard as the “remote”. You could also use other inputs, e.g. a smart phone or another robot.

It is often a good idea to be able to remotely control a robot, e.g. if it is dangerous for humans to acces an area.

The Fable Spin has two motors - A and B. They allow it to move around and carry other modules connected to it, which can also be programmed further.

Build the Fable Spin robot as on the picture (the smartphone is not necessary . Open Fable Blockly on your computer, put in the Fable Hub and you are ready!

Step #2

Move forward

First you should get the robot to move forward.

The block looks differently depending on if you are in 'simple' mode or 'advanced' (it can be changed in the left corner).

In simple mode it is just called move forward.

In advanced mode you set the speed - but you need to be aware the motors in Fable Spin sits opposite - so one needs to be negative and the other positive.

If you have a look in the right side of the app you can see that in the Python code it is the same command!

Step #3

Build the remote control

Now try to make your remote control for your Fable Spin robot. It should be able to move in all directions and also stop.

You can make it more advanced by having several tempi in your program.

REMEMBER TO PUT IT ON THE FLOOR BEFORE YOU DRIVE IT AROUND!

Have fun! 

Step #4

Variations

You can use other sensors than the arrow keys. Here is some ideas:

  • Make the robot react to different sound levels
  • Control it with a Fable Joint module or maybe two
  • Control by a sensor in the smartphone (via Fable Face)
    • try with different sensors: 
      • accelerometer (see example next)
      • magnetometer
      • tap position
      • tap pressure
      • GPS
  • Control it with sensors in the Fable Spin:
    • try with different sensor:
      • proximity sensor
      • color sensor
      • ambient light
      • directed light
      • feedback from motors 
  • Use other electronics to control Fable Spin
    • Use a Makey Makey 
    • Get input from a BBC Micro:bit to control Fable Spin

Step #5

Control Fable Spin with a smartphone

If you want to control Fable Spin with the smartphone you need to have the Fable Face app.

You can download it from Google Play or App Store.

Lesson: Pick and place robot

Status: public

You are going to build and program a ”pick and place robot” using the Fable robot.

Lesson Duration: 1-2 Hours

Grades: 04 - 12+

Tags: Physics, Algebra, Block coding, Python, Robotics, Internet of Things, Blockly, Activity

Supplies: 1 Fable Joint module, 1 lid, 1 Hub (dongle), 2 building modules (can also be done with one), 2 ball stands (or LEGO), 1 "fork", 1 table tennis ball, 1 computer or tablet with Fable Blockly installed. Optional: A smartphone with Fable Face.

Step #1

Description

You are going to build and program a ”pick and place robot” using the Fable robot.

Program the robot to move a workpiece (a ball) from one location to another. 

A so-called pick-and-place task is common in manufacturing. 

Construct the robot and set up stands for the ball as shown in the image.

Note that it matters which way the joint module is rotated.

Note that several groups can take turns programming the same robot.

Step #2

Task 1

Program the robot to grab the ball placed at A and move it to B. The robot must then return to A and repeat the sequence. 

Test the program several times and discuss the following questions:

  • Does it work every time? Can you make it more reliable? 
  • Is it fast enough? Can you make the sequence faster?
  • Make a video of your solution and upload

Step #3

Task 3

Experiment with the program and the robot - try to make it more adaptive and autonomous. 

For example, you can use the camera to detect when the ball is placed at A, after which the robot can start the sequence that moves the ball to B. 

Step #4

Hints

You can use the regular move to block or you can take the move to with speed block from advanced mode (found in the left corner)

Try to change the speed and remember to choose the ID of your Joint module.

Step #5

Wait block

Remember to put wait in sec blocks in between the move to blocks

Step #6

A tip

You can read the positions of the motors and get a plot of them. That can be helpful to solve the task.

Step #7

Test the program

Test the program several times and discuss the following questions:

  • Does it work every time? Can you make it more reliable?
  • Is it fast enough? Can you make the sequence faster?

Step #8

Variations

- Make a pick and place robot with a Spin mounted on top of a building module (like on the picture)

- Do the pick and place using a 5-bar linkage mechanism

Lesson: The Fable comedian!

Status: public

In this activity you will get your Fable robot to tell jokes!

Lesson Duration: 1-2 Hours

Grades: 04 - 12+

Tags: Block coding, Robotics, Challenges, Blockly, Lesson Plan, Activity

Supplies: 1 Fable Joint, lid, Hub, phone holder, smart phone with Fable Face installed, PC with Fable Blockly installed.

Step #1

Description

Mount the Fable Joint module on the stand like on the picture. Mount the phone holder and the smartphone on top of the robot.

Open Fable Blockly on the computer and plug in the Hub.

Step #2

Use TTS

You can use text to speech in Fable Blockly (you need to be online though). Note: If you want acces to several languages you need to be in advanced mode (you can change it in the left corner).

Now start making jokes! (or stories)

Step #3

The Fable comedian

You could make some kind of choreography with movements in the module and changes in the expression (or color of the eyes)

Lesson: Copy cats

Status: public

In this activity you will make one Fable robot copy the movement of the other

Lesson Duration: 1-2 Hours

Grades: 06 - 12+

Tags: Engineering, Algebra, Block coding, Python, Robotics, Blockly, Sensors, Activity

Supplies: 2 Fable Joints, 2 lids (can also be done with 1 lid), 1 Hub, phone holder (can also be done without), smart phone with Fable Face installed, computer or tablet with Fable Blockly installed

Step #1

Copy cats

..

Step #2

Description

Mount each Fable Joint module on the lids.

Mount the phone holder and the phone on one of the robots and you are ready to go!

Start Fable Blockly on the computer, connect the Hub to the USB port. (Make sure the Joint Module and Hub have the same color) and connect the phone (remember to enable Bluetooth).

Content

  • 2 Fable Joints
  • 2 Lids (can also be done with 1 lid)
  • 1 HUB (dongle)
  • Phone Holder
  • Smartphone with Fable Face installed
  • Computer with Fable Blockly installed

(the activity can also be done without the smartphone)

Step #3

Hints

You will probably need to set some variables (e.g. a variable for the X-motor and the Y-motor) and probably you also need to make a list. You need to be in advanced mode (found in the bottom left corner) in Fable Blockly to find those possibilities.

Step #4

Read the positions

You can read the positions of the motors on the Joint module

Step #5

Save data

In Fable Blockly you can save your data in a log file

Step #6

You can also make the program in Python

You can also do the code In Python. (Note: On Chromebook and iPad the textual programming language is Javascript)

You acces Python mode by clicking on the "snake-icon" in the top.

Step #7

Make a video

Make a video or snap a picture of your copy cat robot and your code!

Happy programming :)

Lesson: Remote control Fable Spin_private

Status: private

In this activity you will make a remotely controlled robot (Fable Spin)

Lesson Duration: 1-2 Hours

Grades: 03 - 12+

Tags: Multiplication, Block coding, Robotics, Blockly, Sensors, Activity

Supplies: 1 Fable Spin, 2 wheels, castor wheel, PC/Mac, iPad or Chromebook, with Fable Blockly installed and Fable HUB. Optional: Smart phone with Fable Face

Step #1

Description

In this activity you will make a remote controlled robot. The example will use the arrow keys on the keyboard as the “remote”. You could also use other inputs, e.g. a smart phone or another robot.

It is often a good idea to be able to remotely control a robot, e.g. if it is dangerous for humans to acces an area.

The Fable Spin has two motors - A and B. They allow it to move around and carry other modules connected to it, which can also be programmed further.

Build the Fable Spin robot as on the picture (the smartphone is not necessary . Open Fable Blockly on your computer, put in the Fable Hub and you are ready!

Step #2

Move forward

First you should get the robot to move forward.

The block looks differently depending on if you are in 'simple' mode or 'advanced' (it can be changed in the left corner).

In simple mode it is just called move forward.

In advanced mode you set the speed - but you need to be aware the motors in Fable Spin sits opposite - so one needs to be negative and the other positive.

If you have a look in the right side of the app you can see that in the Python code it is the same command!

Step #3

Build the remote control

Now try to make your remote control for your Fable Spin robot. It should be able to move in all directions and also stop.

You can make it more advanced by having several tempi in your program.

REMEMBER TO PUT IT ON THE FLOOR BEFORE YOU DRIVE IT AROUND!

Have fun! 

Step #4

Variations

You can use other sensors than the arrow keys. Here is some ideas:

  • Make the robot react to different sound levels
  • Control it with a Fable Joint module or maybe two
  • Control by a sensor in the smartphone (via Fable Face)
    • try with different sensors: 
      • accelerometer (see example next)
      • magnetometer
      • tap position
      • tap pressure
      • GPS
  • Control it with sensors in the Fable Spin:
    • try with different sensor:
      • proximity sensor
      • color sensor
      • ambient light
      • directed light
      • feedback from motors 
  • Use other electronics to control Fable Spin
    • Use a Makey Makey 
    • Get input from a BBC Micro:bit to control Fable Spin

Step #5

Control Fable Spin with a smartphone

If you want to control Fable Spin with the smartphone you need to have the Fable Face app.

You can download it from Google Play or App Store.

Lesson: Fable plays drums!

Status: draft

In this activity you will experiment with the Fable robot and make a drum stick for the robot to make music!

Lesson Duration: 1-2 Hours

Grades: 04 - 12+

Tags: Music, 3D Printing, Instruments, Block coding, Robotics, Challenges, Blockly, Lesson Plan, Activity

Supplies: 1 Fable Joint, lid, Hub, phone holder, smart phone with Fable Face installed, PC with Fable Blockly installed.

Step #1

Description

Mount the Fable Joint module on the stand like on the picture or on the side of the 4XY connector. Mount the Multiconnector and a ball stand in the connector and either just like that or with a pen in the hole of the ball stand or what you have.

Open Fable Blockly on the computer and plug in the Hub.

Step #2

Experiment

First you should find out how you get your robot module to go as fast as you want in order to make a rhythm. Note: if you go into advanced mode in Fable Blockly (in the bottom left corner) there is move to blocks with speed (it goes to 100).

Now you should experiment with getting your Joint module to go up and down in different ways and with different speed to start playing as a drum player!

If you have acces to a xylophone you can experiment with that. Otherwise the experiment can be to find out how you can get the robot to play at different "drums" made of glasses or cardboard or what you have available that can make a sound when the robotarm taps on it. Like a stomp exercise!

Step #3

Hints

You can get a plot of the positions of the module in data. Maybe it would be a good idea to start with that - so you know where you want your drumplaying robot to go to.

Experiment with the wait in sec block - note that you can even get it to wait 0.01 if that is the case!

Lesson: Fable points north

Status: public

In this project you will get the Fable robot to point in the direction of North using the magnetometer in your smartphone. Picture from https://flic.kr/p/4u6Dbm

Lesson Duration: 1-2 Hours

Grades: 08 - 12+

Tags: Physics, Engineering, Algebra, Block coding, Python, Blockly, Sensors, Lesson Plan, Activity

Supplies: 2 Fable Joint modules, Smart phone with Fable Face installed, 1 phone holder, accessories, 2 4XY building modules, PC or Mac, with Fable Blockly and Fable Hub. Variation: Fable Spin

Step #1

Description

Materials:

  • Hub
  • 2 Fable building modules
  • 2 Fable Joint modules
  • 1 lid
  • 1 phone-holder
  • 1 smartphone with Fable Face installed (download from App Store or Google Play)
  • Optionally accessories (e.g. the ball stand or the fork, as to more easily see, where Fable points to)
  • Computer with Fable Blockly

In this project we will use the magnetometer or compass sensor, which is in a smartphone (Android or iOS)..

This could be used in Physics.

Lessons: 2-3 modules (3 - 5 hours)

Step #2

Fable Face

Install the Fable Face app on a smartphone (from App Store or Google Play) and construct the robot as shown in the image.

Open Fable Face and connect it to the hub (see video)

Step #3

Fable points north

You must build and program a robot to always point in the direction of North (or another direction)

Start by watching this video (1min 25s)

Step #4

Find out which way North is..

First you must find out which way north is. This can be done by using a compass or to look it up on Google Maps, and finding a building you know. North is always up on the map, so by using it, you can approximately determine which way north is.

After that the next logical step is to monitor the output from the magnetometer (compass sensor) in the phone in Fable Blockly.

That can be done by creating the program on the picture.

And when the program is running, turn the phone, until you get a somewhat stable number for which direction north is.

Step #5

Which values?

Make notes of in which intervals the magnetometer creates output, dependant on how you twist the phone.

Step #6

Program a robot to point in the right direction

From here the assignment is to program a robot, to point in the approximate direction of north.

One of the challenges is, that the magnetometer works from 0 – 360 degrees, but the Fable joint module only goes from -90 – 90 degrees. Therefore it will be necessary to use 2 joint modules, where one module covers the initial 180 degrees (0 – 180) and the second can cover the subsequent 180 degrees (180 – 360).

Therefore you have to make a variable, which you could call “magnetometer” or “angle”, and put that variable in a condition stating that:

  • If Magnetometer/angle is more than 180 degrees, it must move “the right arm” in relation to the magnetometer.
  • Else (it it is less than 180 degrees) it must move “the left arm”.

Be aware that, there has to be a mathematic calculation made, from the 360 degrees of the magnetometer to -90 – 90 degrees of the robot. Therefore you will need this block:

Step #7

Direct number from the magnetometer

Start by using the direct number from the magnetometer.

The robot will shake a little because of other magnetic fields.

Set the magnetometer variable first to 0 (outside of the loop) and then inside; set it again this time to the sensor.

Step #8

Challenge

There is a lot of interference on the input you get from the magnetometer. Therefore it would be better if you get the robot movements to be more smooth.

Try if you can program an algorithm, that converts the input to a more straight line (so it looks more like a linear equation.

DIFFICULT

You can download a possible solution (do not share it with the pupils!) fable points north.fab

Step #9

Bonus info

The reason why there is a lot of interference from the magnetometer is i.a. that there is many magnetic fields all around us, as well as the fact the the Earth’s magnetic fields aren’t particularly strong. Read more about magnetic fields here:

https://www.khanacademy.org/science/physics/magnetic-forces-and-magnetic-fields/magnetic-field-current-carrying-wire/a/what-are-magnetic-fields

https://en.wikipedia.org/wiki/Magnetic_field

Step #10

The graph could look like the picture

..

Step #11

Variation

You could also use Fable Spin instead of Fable Joint (or both).

- Then it would be possible to spin 360 degrees instead of just -90 - 90.

Step #12

If you want to know more

If you want to know how a magnetometer works watch the video

If you are wondering why you would be weighting the magnetometer with 0.1 you can read:

https://en.wikipedia.org/wiki/Moving_average#Exponential_moving_average

It’s to smooth the fluctuations.