GFSC Micro - Bit Servo Motor Robot
GFSC Micro - Bit Servo Motor Robot
LESSON
Animated
Micro:bit Robot
Overview
1
ANIMATED MICRO:BIT ROBOT
THE OBJECTIVE
SUBJECTS DURATION
Physical Computing, Circuits, technology, Computer 120 minutes
Science
STANDARDS VOCAB
N/A Servo Motor, Capacitive Touch
Supplies
2
ANIMATED MICRO:BIT ROBOT
Description
LESSON OUTLINE:
● Cut and assemble the parts for the robot
● Cut and assemble the servo motor connector
● Connect the micro:bit, robot and servo motor in a circuit
● Program the micro:bit to make the servo motor move
● Write programs incorporating the micro:bit buttons and sensors to control the robot’s motion in
response to external input
ASSESSMENT STRATEGIES:
FORMATIVE ASSESSMENT: Circulate the classroom and observe students at work, are they collaborating
and/or using teamwork, and any other items you wish to assess.
SUMMATIVE ASSESSMENT: Use the Magical Things Journal to document student learning.
STANDARDS
Lesson Instructions
Step 1: SETUP
Description
● Each individual or group constructing a robot will need Proofgrade Medium Draftboard to print the
robot pieces, Proofgrade Medium Clear Acrylic to print the connector pieces, two rubber bands,
three paper clips, a micro:bit, and a 9g standard servo motor. Programming the micro:bit requires a
computer with Internet access and micro USB connector.
Ask students if they’re familiar with the purpose of a motor (to make things move) and can identify
motorized objects they encounter in everyday life. The most common answer will be cars or similar
vehicles, but challenge students to think of less obvious objects which rely on motorized mechanisms to
work (e.g. escalators, garage doors, sliding doors in a supermarket, a printer which uses motors to propel
the paper through its printing mechanism, etc…)
3
ANIMATED MICRO:BIT ROBOT
A number of different kinds of motors, like the small ones which propel toy cars, are activated by simply
giving them power. More complicated motors, like stepper motors, and servo motors, offer more precise
control over their motion, and require a computer to give them specific instructions.
Servo motors are responsible for the ultra-precise motion of robot arms that can perform tasks as
complicated as assembling motor vehicles or allowing surgeons to conduct surgery on a patient from a
remote location. In this lesson plan, students will use a micro:bit microcontroller to control the position of a
servo motor that animates a wooden robot.
Step 3: IDEATE
Give the students the servo motors to handle and play with. If not already connected, attach a plastic servo
horn to the motor. Ask students to firmly but gently rotate the horn with their fingers to observe its range of
motion. They should find that the horn can rotate a total of 180 degrees, halfway around a circle. Inside the
robot, this movement will allow its head to twist from side to side. Ask the students to think about what
other parts of a robots’ body could be controlled by servo motors. What’s the minimum number of servo
motors they might be able to use to allow a robot walk on two legs, and how might they arrange such
motors?.
Step 4: CREATE
4
ANIMATED MICRO:BIT ROBOT
Place a sheet of Proofgrade Medium Draftboard onto the Glowforge print bed and open the Glowforge App. Click
the Import Artwork button in the Glowforge app and select Upload to import the design file
“Robot.svg”. This file contains outlines for all wooden parts to construct the robot. The blue shapes which
constitute the robot’s eyes and mouth should be set to Engrave, the red lines just inside the perimeter of the
robot’s body and head should be set to Score a nd the black outlines of the body pieces should be set to Cut, as
shown in the image above. It’s best to instruct the Glowforge app to perform the Cut step *after” the Engrave and
Score steps so that the pieces can’t shift before they’re etched.
5
ANIMATED MICRO:BIT ROBOT
When the settings are correct, print the pieces, remove them from the print bed, and peel off any protective paper.
The robot assembly will require all parts shown above.
Take the robot body and attach the four semi-circular stands to its feet by inserting the slots in the stand pieces into
the corresponding slots in the robot’s feet. The body should now be able to stand upright on a level surface, as
shown above.
6
ANIMATED MICRO:BIT ROBOT
Next, attach the four rectangular clips, which will hold the micro:bit in place. Each of the clips has a narrow and a
wide slot. Insert the wider of the two slots downwards into a corresponding slot in the robot body. Each clip should
be oriented so that the unused narrow slit sits behind the robot body.
7
ANIMATED MICRO:BIT ROBOT
Take the servo motor, and attach the horn containing two straight arms which protrude out from the center. To
provide symmetric motion for the robots’ head, the midpoint of the servo’s range of motion should occur when the
servo horn is oriented perpendicular to the servo’s long axis. At either end of the 180 degree range of motion, the
horn should be oriented parallel to the servo’s long axis. If the servo horn is not oriented correctly, unscrew it, and
place it so that it looks like the images above when at the endpoints and midpoints of its motion, respectively. Be
sure the horn is securely affixed to the servo with the tiny screw that comes with it.
8
ANIMATED MICRO:BIT ROBOT
Take the servo motor and the parts for the head assembly shown above. The two larger pieces will sandwich the
servo from either side of its flat “shelf”. The back piece has a notch in the top to accommodate the wires. Slide the
servo wires through the back piece and seat the servo into the rectangular hole. Then slide the matching piece
without the notch over the servo from the front side.
The two small notched clips hold the larger pieces together. Insert the side of the clip with two slots into the
corresponding slots on the pieces holding the servo. When seated, the remaining open notch on the clip should sit
in front of the assembly, on the same side as the servo horn, as shown above.
9
ANIMATED MICRO:BIT ROBOT
The next step is to attach the robot’s head to the servo motor assembly. Take the head, and place it face down on
a flat surface. The two small clips with rounded nubs will sit over the ends of the servo horn and fit snugly into the
slots in the robot’s head to attach the head to the servo horn. Rotate the servo horn relative to the servo so that it
sits perpendicular to the servo’s long axis as shown in the image above.
Place the robot head on a flat surface, with its features oriented downwards. Insert one of the clips into the slots in
the robot's head, pushing the clip in as far as it will go. Most of the clip sits flush with the back of the robot head
leaving only a small gap to hold the servo horn. Moderate force may be required to get the clip firmly seated. With
one clip seated, lift the servo assembly and turn it over so that the servo horn is facing downward. Place the
assembly on top of the robot head and slide it towards the outer edge so that one end of the servo horn slips into
the gap in the attached clip.
10
ANIMATED MICRO:BIT ROBOT
Now attach the remaining clip to the robot head to secure the other end of the servo arm. This may be a little tricky
as the remaining slots are positioned underneath the servo assembly. It may be helpful to use a butter knife or
other dull, flat object to push the second clip into place. When fully inserted, the clips should sit flush on the robot
head and the ends of the servo horn should fit inside the small gaps in the clip. There is a little wiggle room
between the servo horn and the clips, which won’t affect the robot’s function. If it is bothersome, apply a small
amount of glue between the servo horn and the robot head to keep them securely together.
11
ANIMATED MICRO:BIT ROBOT
Now that the head assembly is complete, attach it to the body by slotting the two clips at the bottom of the head
assembly into the two corresponding slots in the top edge of the robot’s body as shown.
12
ANIMATED MICRO:BIT ROBOT
The micro:bit fits just behind the large rectangular hole in the robot. Attach it by sliding it downward into the slots in
the four clips along the bottom edge of the hole. The micro:bit should be aligned so that each clip holding it sits
between two of the micro:bit’s labelled pins, as shown above.
Next, we’ll build a special connector to allow the motor to be attached to the micro:bit using alligator clips.
Place a sheet of Proofgrade Medium Acrylic onto the Glowforge print bed and open the Glowforge App. Click the
Import Artwork button in the Glowforge app and select Upload to import the design file
“MicrobitServoConnector.svg”. The red text labels should be set to Engrave, and the black outlines of the body
pieces should be set to Cut. It’s best to instruct the Glowforge app to perform the Cut step *after” the Engrave
steps so that the pieces can’t shift before they’re engraved.
13
ANIMATED MICRO:BIT ROBOT
Once the pieces are cut, remove all protective paper from the acrylic. Gather three medium paper clips, two rubber
bands, and the connector at the end of the servo motor (which is attached to the robot). The three acrylic pieces
will be layered together with the engraved piece sitting in the middle of the other two.
14
ANIMATED MICRO:BIT ROBOT
The paper clips provide an electrical connection to the three leads of the servo motor. To make a working circuit,
we’ll need to identify which lead does what. Servo motor wires come in different colors. The positive voltage lead
always sits in the middle, and is usually colored red. The ground lead is usually black or brown, and the signal lead
is sometimes yellow, blue or white.
Lay the acrylic connector pieces out on a flat surface as shown above. The outer layers should have the side with
two slots oriented to the right, and the middle layer should have the signal label on its left side and the two “-”
(ground) labels on the right side. Orient the servo connector so that the ground lead sits on the right side. Take the
three paper clips and bend them as in the picture above so that their orientations match the three large oval slots in
the middle layer of the acrylic. Gently push the straightened ends of each of the paper clips into one pin of the
servo connector cable as shown.
15
ANIMATED MICRO:BIT ROBOT
Lay the middle acrylic layer on top of one one of the other two layers and slip the end of the servo connector into
the matching slot. The paper clips may need to be bent a bit more or less to fit into the oval slots which hold them.
It is very important that the paper clips not touch each other when the servo is powered. The shape of the middle
acrylic layer helps to keep them separated.
16
ANIMATED MICRO:BIT ROBOT
Place the last acrylic layer on top of the other two, and, while holding all three layers together, wrap the two rubber
bands around the acrylic pieces to secure the connector assembly together. When tight, the rubber bands sit inside
the slots at the sides of the acrylic pieces as shown above.
In the final assembly step, we’ll attach the servo motor to the micro:bit with alligator clips. Connect the clips to the
servo motor by inserting the alligator clip ends into the holes in the acrylic and clamping them onto the accessible
portion of the paper clip. On the micro:bit side, open the jaws of the alligator clip widely and clamp them over the
17
ANIMATED MICRO:BIT ROBOT
micro:bit pins so that one jaw of the clip sits in the hole and the other side of the clip grips the bottom edge of the
micro:bit.
Signal Pin 0
18
ANIMATED MICRO:BIT ROBOT
Students will write programs which send commands to the servo motor to make the robot’s head move . The
micro:bit will need to be connected to a computer with a micro USB cable. You can insert the micro USB cable to
the micro:bit connector without removing the micro:bit from the robot, as shown above.
If you have never coded a micro:bit before, the microbit.org site has a getting started guide here.
A comprehensive introduction to connecting and coding a servo motor with a micro:bit is available here.
Below are some different ideas for programming the micro:bit to control the robot:
19
ANIMATED MICRO:BIT ROBOT
On the MakeCode site, the code blocks to control a servo motor are on the Pins menu, found on the Advanced
menu list. The “servo write pin” code block sets the motor position in a range of 0-180 degrees. The robot’s head is
upright at 90 degrees. Setting the value 0 degrees tilts it left and sending it to 180 degrees tilts it right.
The code above is a simple program which alternates swivelling the robot’s head left and right. The pause
statements between the servo control blocks are necessary to allow the servo enough time to travel to the
specified position. You can open up this program in a MakeCode browser window by clicking this link.
Point out to the students that when they use the servo code blocks inside the MakeCode code editor, a virtual
servo motor appears in the emulator window at the left side of the editor window. They will be able to preview the
motion of the servo in the code editor before downloading their code to the micro:bit.
20
ANIMATED MICRO:BIT ROBOT
Have the students download and run the code on their robot. Ask them to observe the motion of the servo motor
controlling the robot’s head. How long does it take for the servo to travel from one position to the other? Does it
stop at exactly the same place each time it rotates?
Once students have successfully run this code, challenge them to modify the program to change the robot’s
motion. Remind them that each time they alter the program, they’ll need to download it to the micro:bit to see their
modifications work.
21
ANIMATED MICRO:BIT ROBOT
The code above is a simple program that tilts the robot’s head one way when button “A” is purchased and the
other way when button “B” is pushed. This program may be opened directly in the MakeCode environment by
clicking on this link.
Ask the students to download the code and test it on the robot. Does the robot’s head move when they depress
the micro:bit’s buttons or when they release them? How long does it take for the servo to finish moving once
they’ve pushed the button? What happens if they push one button immediately after releasing another? Does the
robot finish moving to the first position before changing directions, or does pushing the button interrupt the
motion?
Once they’ve tested the code above, they should modify it to add additional features to the program. Some ideas
for them to try are:
● Add a different robot response when buttons “A” and “B” are pushed simultaneously
22
ANIMATED MICRO:BIT ROBOT
● Add additional servo code blocks to the program so that the robot responds to a button push by shaking
its head back and forth
● Add some “show icon” code blocks to make the picture displayed on the micro:bit change along with the
motion of the robot’s head.
Some micro:bit pins have a capacitive touch sensitivity, meaning that they can detect when people touch them.
When these pins are connected to a conductive object like foil or a paperclip, then the micro:bit can detect when
that object is touched.
This activity will require two additional alligator clips and a conductive material such as tin foil to create the
connection shown in the picture below.
Connect one additional alligator clip to the second ground ( “-”) slot in the acrylic servo motor connector. Leave the
other end of the ground clip free. Cover one of the robot’s hands with tinfoil. Take another alligator clip and attach
one of its end to micro:bit pin 1 and the other to the tinfoil as shown in the image above. To activate the capacitive
touch sensor, you must touch both the ground pin and micro:bit pin 1 at the same time.
23
ANIMATED MICRO:BIT ROBOT
The micro:bit code shown above responds when a touch on pin 1 is detected, causing the robot’s head to move to
one side, then back to the upright position. The program may be opened directly in the MakeCode environment by
clicking this link. Have students download the code to the micro:bit, then ask them to see what happens when
they place one hand on the alligator clip connected to the GND pin and touch the tin foil with their other hand.
When the tinfoil is touched, the robot’s head should move in response.
After testing the code above, ask students to modify it to experiment with the micro:bit’s capacitive touch features.
Some additional ideas to try are:
● Add another piece of foil to a different portion of the robot’s body, and connect it to pin 2 on the micro:bit.
Code the robot to perform a different motion when pin 2 is touched.
● Connect the alligator clips from micro:bit pins 1 and 2 to different conductive materials to see if any work
better than others in detecting being touched.
Step 6: EVALUATE
Ask the students what they learned from constructing and coding a moving robot. Do they know why it was
necessary to make a special connector for the servo motor?
In this activity, students used a servo motor which rotates through a maximum range of 180 degrees. It would be
difficult to use a motor with a limited rotation to power the wheels of a rolling vehicle. What kinds of locomotion
could be generated using servo motors?
24
ANIMATED MICRO:BIT ROBOT
Ask students to evaluate the robot design. Are they satisfied with the way it moves? Could other parts of the robot
be animated as well? Can they think of any ways - through design or code - to make the robot and its motion more
lifelike?
The micro:bit contains a number of different sensors. In addition to the push buttons and capacitive touch inputs,
the micro:bit contains a light sensor and a tilt sensor. Ask students to think of ways the robot might respond to
inputs from these sensors (e.g. the robot could “wake up” when it is light, or work to keep its head upright when its
body is tilted to the left or to the right)
If they’re up for a design challenge, students may use the servo motor and connector they built to design and
construct their own original robotic invention with motion controlled by the micro:bit. Ask students to brainstorm
what kinds of creations they could make and how they might animate them with a servo motor.
25