Modeling Tectonic Plates

Project-based learning is a core part of the curriculum at Bullis Charter School. In seventh grade social studies, students are posed this driving question: “How can we represent tectonic plate movement in 3D with earthquakes and geologic features?” The project begins with an introductory field trip to the San Andreas fault in which students collect physical evidence of the 1906 earthquake. Next, students work in groups of 2-3 to research plate tectonics and write a short paper. They then build a three-dimensional model of a particular fault, and design mechanisms to demonstrate how tectonic plates move relative to one another. Then they animate that model using the Hummingbird with Scratch or Snap!.

Get more information about this great project in Sharon Thompson’s SXSWEDU presentation!

Differentiation: Tectonic models can vary in complexity to make the project accessible to all academic levels. Programming complexity can also vary from basic movement to adding sensors and variables to calculate movement based on the Richter scale level of the earthquake.


Programming Your Hummingbird with MicroBlocks


To use MicroBlocks with the Hummingbird Bit, you will need a computer – Windows, Mac, Chromebooks, and Linux are all supported. Start by downloading and installing MicroBlocks from this page.

Insert a micro:bit into the Hummingbird Bit. Connect the Bit to power (battery pack or AC power adapter), and connect the micro:bit to the computer with the USB cable.

Next, open MicroBlocks. Click the Connect button at the top of the screen.

Click on the serial port of the Hummingbird Bit. If you see multiple serial ports, it may be helpful to unplug all USB devices except the Bit.

If you haven’t used MicroBlocks before with this micro:bit, you will be asked to install MicroBlocks on the micro:bit. Click Yes. If you are using a Chromebook, this prompt may not appear. Click with two fingers to the left of the Connect button and select install MicroBlocks on board.

Click BBC micro:bit and wait approximately 30 seconds for MicroBlocks to be installed. Your computer may pop up a window that says the micro:bit has been disconnected. Don’t worry, this is normal. If you are on a Chromebook, the app cannot install the file automatically. Follow the instructions in the app to drag the file onto your micro:bit and connect.

Once MicroBlocks has been installed on the micro;bit and your Hummingbird is connected, you will see a green circle by the Connect button.

Next, click the + sign by Libraries and choose Hummingbird.ulib. Then click Okay.


Using MicroBlocks

To try out MicroBlocks, connect a single color LED to LEDS port 1 on the Hummingbird. The colored wire should be connected to ‘+’ and the black to ‘-.’

In MicroBlocks, you can click on blocks to run them, just like you can in Scratch. For example, drag a Hummingbird LED block into the work area and set the % parameter to 100. if you tap on this block, the LED that you connected will light up.

As you write programs, they are automatically downloaded to the micro:bit. As an example, this program makes the LED blink 10 times when button A on the micro:bit is pressed. All the yellow blocks can be found on the Control menu. Run this program once, and then disconnect the USB cord from the micro:bit. You can still press button A to run the program!

Please note that the Hummingbird still needs power, so it will need to be plugged in to the battery pack or power adapter. Also, to change your program, you will need to reconnect the USB cord and click Connect in MicroBlocks.


Hummingbird Blocks

The table below contains brief descriptions of all the Hummingbird blocks in MicroBlocks. You can also use the blocks on the Output and Input menus to write programs that use the LEDs and sensors of the micro:bit in the Hummingbird. Don’t use the blocks on the Pins menu when writing programs for the Hummingbird. The pins are used by the Hummingbird, so these blocks may cause unexpected behavior.

Hummingbird Block Description
Sets a single color LED on LEDS port 1, 2, or 3 to a brightness value from 0% to 100%.
Sets a tri-color LED on TRI-COLOR port 1 or 2 to the color specified by red, green, and blue brightness values. The values range from 0% to 100%.
Sets a position servo on SERVOS port 1, 2, 3, or 4 to an angle from 0° to 180°.
Sets a rotation servo on SERVOS port 1, 2, 3, or 4 to a rotation speed from -100% to 100%.
Reads the value of the sensor on SENSORS port 1, 2, or 3. Readings for the distance sensor are given in cm. All other readings range from 0 to 100 (no units).
Reads the value of the battery in milliVolts. Power to servos may shut off at values below 4200 mV.


Example Program

Since programs written in MicroBlocks are automatically downloaded to the micro:bit, it is an excellent choice for creating mobile robots, robots that can be disconnected from the computer to roam their environment. Try building a rover to use with MicroBlocks!

To create a basic program to move and avoid obstacles, use the distance sensor to detect when the rover is near a wall or another obstacle. If the rover detects an obstacle, it should back up and turn. Otherwise, the rover should drive forward. Basic code for this is shown below. Note that two rotation servos on the rover point in opposite directions. This means that to move the rover forward, the two servos must move in opposite directions.

After you have a basic rover program working, try adding headlights and making your driver steer. Then modify your rover and program to try something new!


Strawbees and Hummingbird

Use this step-by-step guide to build your own Hummingbird creation with Strawbees. This is Strawbeest, our homage to Theo Jansen’s Strandbeests.

Hot glue a Strawbee to the Hummingbird servo motor, and then just start building!





You can also use Strawbees with the gear motor by gluing them to the plastic brick adaptor.






Try making a fun linkage with the Hummingbird and Strawbees!





Pro Tip: You can use just the tip of a Strawbee as a connector. This can help you to keep parts of your creation from colliding. In the video above, a small connector keeps the straw connected to the motor from hitting the stationary straw on the table.


Get a Grip!


  • computer with Birdbrain Robot Server and Scratch
  • plastic bottle
  • Hummingbird board
  • Vernier BTA Sensor Adapter for Hummingbird
  • 1-hole stopper with tapered valve
  • Vernier Gas Pressure Sensor
  • heavy-wall plastic tubing


  1. Connect the plastic bottle to the pressure sensor as shown below.
  2. Connect the Vernier BTA sensor adapter to the Hummingbird. Then connect the pressure sensor to the adapter. The jumper on the adapter should be set to 0-5 V.
  3. To read a measurement from the pressure sensor, you will use the HB voltage block in Scratch. This block will read a voltage between 0 and 5 V.
  4. The Vernier manual for the pressure sensor provides a linear equation that you can use to convert voltage to pressure: pressure = 51.71*voltage – 25.86
  5. In this experiment, you will grip the bottle as hard as you can for 60 s. You want to record data during this time and compare the data from 0 -10 s with the data from 50 – 60 s. To do this, you will need to write a program that meets the following requirements:
    1. The program must record 480 pressure sensor measurements and store them in a list.
    2. The program should wait 0.125 seconds between measurements (so the program takes approximately 8 measurements per second).
    3. The program must use the function above to calculate the pressure based on the HB voltage block.
    4. The program should graph the pressure measurements to the screen. The pressure measurements should be scaled so that this graph occupies most of the screen. The stage backdrop should show appropriate axes for this graph.
    5. The program should calculate the mean pressure for the entire 60 s period and display this value for the user.
    6. The program should calculate the mean pressure during the period 0 – 10 s and display this value for the user.
    7. The program should calculate the mean pressure during the period 50 – 60 s and display this value for the user.
  6. Grip the bottle as hard as you can with one hand while you run your program. Remember not to start the program until you are gripping as hard as you can. Record your data in the table below.
  7. Repeat this process for your other hand. Record your data in the table.


Processing the Data

  1. In the space provided in the data table, subtract to find the difference between your 0–10 s average and your 50–60 s average for each hand.
  2. Record the 0–60 s results for the other students in your group. Calculate and record your group average. Calculate and record the class average for 0–60 s.
  3. Which of your hands is stronger? Explain your decision.
  4. Did your gripping power increase or decrease during the 60 s period? Why did it change?
  5. How does your grip compare with the class average?
  6. What did you learn about your strength in this experiment? Were you surprised?


Can you motivate yourself (or someone else) to grip harder? Use lights, motors, and/or sounds to make a robot that does different things depending on how hard the person is gripping. For example, maybe more LEDs light up the harder the person grips. Does the average grip pressure increase when someone uses your device?


Where IS North?


Where IS north? It depends. Do you mean geographic north or magnetic north? The geographic (true) north pole is the point at 90° N latitude. It is aligned with the rotational axis of the Earth. The Earth is surrounded by a magnetic field with a north and south magnetic pole. The magnetic north pole is the point to which a compass needle points. It is currently in northern Canada, but moves at an average rate of 15 km per year due to complex fluid motion in the outer core of Earth. Depending on your location, the difference between magnetic north and geographic north, called magnetic declination, can range from 0° to 30°.

In this experiment, you will measure the magnetic field of the Earth. You will use this data to determine magnetic north. Knowing the direction of true north, you will calculate the magnetic declination at your location.


  • computer with Birdbrain Robot Server and Scratch
  • Hummingbird board
  • Vernier BTA sensor adapter for Hummingbird
  • Vernier Magnetic Field Sensor
  • glue gun
  • cardboard
  • rubber bands


  1. Bend the magnetic field sensor so that the end is at a right angle to the handle of the sensor.
  2. Connect the Vernier BTA sensor adapter to the Hummingbird. Then connect the magnetic field sensor to the adapter. Set the switch on the magnetic field sensor to 0.3 mT (high amplification).
  3. You need to build a robot that will rotate the magnetic field sensor to a variety of angles between 0° and 360°. To do this, you should use two servo motors. One possible design is shown below. The top servo rotates from 0° to 180° while the bottom servo is at 0°. Then the bottom servo moves to 180°, and the top servo rotates from 0° to 180° again. In this way, the top plate can stop at any angle from 0° to 360°. There are other possible designs! Note: If you mount one servo on top of another, make sure that the axes of rotation of the two servos lie along the same line.
  4. Once you have a robot that can stop at angles from 0° to 360°, mount the magnetic field sensor on it in the orientation shown below. DO NOT use hot glue on the magnetic field sensor! You can use rubber bands to gently attach it to your robot.
  5. To read a measurement from the magnetic field sensor, you will use the HB voltage block. This block will read a voltage between 0 and 5 V.
  6. The Vernier manual for the magnetic sensor provides a linear equation that you can use to convert voltage to magnetic field strength (in millitesla): magnetic field = (0.16 mT/V)*voltage – 0.32 mT
  7. In this experiment, you need to record a number of magnetic field measurements. You should write a program that saves these measurements in a list. Your program should meet the following requirements:
    1. The magnetic field sensor should stop every 15° between 0° and 360°.
    2. At each stop, the program should record the angle in one list and the magnetic field sensor reading in another list.
    3. The program should graph the magnetic field measurements to the screen. The measurements should be scaled so that this graph occupies most of the screen.
  8. Look at your graph. Where is the magnetic field highest? This is the direction of magnetic north! Look through your lists to find the angle with the highest magnetic field. Be sure to record this value.

Processing the Data

  1. Consult a map to estimate the direction of north for your location. How does this compare to the direction you identified in this experiment? If a compass is available, use this to measure the direction of magnetic north and compare it to your results.
  2. The difference between the measured magnetic north and true north is called magnetic declination. What is the magnetic declination for your location? What modifications would be needed on a compass in your location to keep you on course when following a map?


  1. Modify your program so that it automatically calculates the angle of magnetic north. Then make the robot point the magnetic field sensor in this direction. Use LEDs to show the user the direction of magnetic north.
  2. Research current theories on why the magnetic north pole moves.
  3. Scientists have found that the magnetic field of the Earth is continually changing. What would be the implications of a big change?

Robot Petting Zoo

The Robot Petting Zoo (RPZ) engages middle and high school students in a fun, approachable design challenge. Youth participate in a “makeathon” to create a robotic pet to delight and inspire visitors to the petting zoo. They construct their pets from familiar materials such as cardboard and craft supplies and use robotic components and programming to bring their creations to life.

The RPZ was pioneered at the Lawrence Hall of Science to broaden participation in making and computer science. As an open-ended, creative activity with an authentic audience, the RPZ and makeathon appeal to a broad range of students, hopefully  encouraging more women and underrepresented minorities to explore robotics.

A general outline for an RPZ is included below. You can plan an RPZ for any time frame, but planning for at least 10-15 hours will give students time to create robots that they are proud to show to their community.

  1. Introduction: Very briefly, introduce participants to the goals of the robot petting zoo. It may be helpful to use videos from this playlist above to show students the types of things that are possible. This is also a good time to show students the Hummingbird components and describe how they can be used to create robots that sense, think, and act.
  2. Learning to Build: Jumping right into a building activity capitalizes on student enthusiasm and enables them to immediately take ownership of the activity. This can also give students a chance to practice their skills in a low-stakes way before beginning work on their final robot. Possibilities for this step include the following:
    • Build a moving mouth and customize it to make a practice pet.

    • Use the Hardware Components Quick Reference to describe the parts of the Hummingbird kit. Have students quickly prototype their planned animal in cardboard, placing pictures of the components where they want them to go.Robot Petting Zoo Components Reference
  3. Programming Exercises: You can use any language with Hummingbird support, but for beginners, we recommend Scratch (on computers or Chromebooks) or BirdBlox (on tablets).
  4. Planning: Have students sketch their animal and create a plan to build and program it. The Makeathon Design Notebook may be helpful. This is also a good time to show students how different mechanisms can be used with the Hummingbird motors; this playlist may be helpful.Robot Petting Zoo Makeathon Design Notebook
  5. Robot Making Time! Give students ample time to build and program their robots. This should be roughly half of the total makeathon time.
  6. Community Display: Open your robot petting zoo to inspire and delight your community! If you want, you can have visitors vote on fun categories like “Cutest Pet,” “Silliest Pet,” etc.

Physics of Pinball

The eighth graders of Vickery Creek Middle School demonstrate their knowledge of physics by creating pinball machines! They learn about simple and complex machines in physical science, and then they apply this knowledge in their STEAM elective.

This project starts with an introduction to how pinball illustrates Newton’s Laws of Motion. Roanoke Pinball Museum: Key Concepts is a helpful resource. Discovery: How It’s Made: Pinball Machine shows the construction of an actual pinball machine.

Next, students are challenged to build a pinball machine with the Hummingbird. The game must have a clear, engaging theme and incorporate at least 3 simple or compound machines to apply Newton’s laws of motion. Students can use the attached planning document to design their machine.

As students build their game, the DIY Cardboard Pinball Machine video may be helpful. In addition, this video shows how to use the Hummingbird servo to construct a basic flipper that uses a linkage. Students can experiment with modifying this linkage to get the movement that they want for their game. 

When students complete their games, invite the school community to come play!

Differentiation: Students ready for an additional challenge can add sound effects and score keeping through Scratch or Snap!.

Assessment: The rubric found in teacher materials can be used to evaluate projects.


Check out this pinball machine from CreArtBot:


Mood Ring Finch

A mood ring is a ring that changes color based on your body temperature. The idea behind the ring, which is explained in this video, is that your body temperature can be used to predict your mood. In this activity, you will use the Finch to predict mood in the same way!

Write a program that sets the color of the Finch’s beak based on temperature. The Finch should also tell you what your mood is for each color. The Finch should have at least three different moods, but you can add as many as you want!

To test the “mood Finch,” place your fingertip or palm over the temperature sensor.


Graphing with Finch

You have learned to use the Finch sensors to move a sprite on the screen. In this activity, you will use the commands on the Pen menu to graph the value of a sensor over time.

Start by writing a program that uses the block below to move the sprite on the screen. What numbers do you need to put in the blanks so that the sprite moves all the way to the top and the bottom of the screen

Now you want to record the path of the sprite on the screen. Explore the commands under the Pen menu. Start with the pen down block; you can think about this block as placing a pen on the “paper” of the screen. How can you change the color of the sprite’s path?

You have a program that tracks the value of the light sensor. To create a graph, you need to start with the sprite on the left side of the screen and gradually increase the x-coordinate as you change the y-coordinate. At the very beginning of your script, add a command that will make the sprite start at (-240, 0).

Within your loop, add a block that will increase the value of the x-coordinate by one pixel each time through the loop. When you run your program, you should see a graph that looks something like the one shown below.

Extension: Can you add axes to your graph? Can you graph the light value for exactly 30 seconds?


Mechanisms: Cable-Driven Robots

In this lesson, you will be building a cable-driven robot. Watch this video to see what it will look like.

The mechanism includes the following parts:

  • Links are connected by rotating joints.
  • A hollow guide is attached to each link.
  • A cable passes through all the guides. This cable is attached to a motor.

The motor pulls on the cable to move the links. As the motor pulls the cable, the guides become closer together, which makes the links rotate about the joints. Note that the cable can only move the mechanism in one direction, to bend the linkage at the joints.

Materials Needed

Paper Templates (See Teacher Materials)

When printing the templates, be sure to print them the actual size (no scaling) on 8.5” x 11” paper. You will use the templates to cut cardboard as shown in the instructions below. Be sure to use cardboard that is less than ⅛” thick.

  • Servo Unit
  • Box Unit
Other Materials
  • servo motor with bag of accessories
  • straws cut into 2” pieces (12 pieces)
  • yarn or cord
  • optional: Tapestry needle

Building a Cable-Driven Robot

  1. Use this video to assemble the servo motor unit.
  2. Attach the servo motor to your Hummingbird board and set it to 0°.
  3. Next, assemble the cable-driven mechanism using the video below. You may find it helpful to use a tapestry needle to thread the cable through the straws.
  4. Reattach the servo to the Hummingbird board. Gradually increase the angle of the servo and observe the movement of the links.
  5. Continue to increase the servo angle until the links stop moving. This is the maximum angle that you should use with your mechanism. Record this angle.
  6. Write a program to move the servo back and forth between 0° and the maximum angle.
  7. The motor acts to bend the linkage. What provides the energy to straighten the linkage? How could you use another servo to straighten the linkage?
  8. We used a cable-driven mechanism to create this giraffe. What are some other ways that you might use this mechanism in a robot?

How the Mechanism Operates

You can use geometry to investigate how moving the cable causes the cable-driven linkage to bend at the joints.

  1. The diagram below shows one joint of the cable-driven robot. We can approximate this as the triangle JAB. Assuming that the joint is midway between the two guides, what type of triangle is JAB?
  2. Use your mechanism to measure the length of line segments JA and JB. Do these measurements support your answer to (1)? Explain.
  3. Angle AJB in the diagram measures 110°. Draw a scaled version of triangle JAB using the measurements that you have taken so far and this angle. Lengths in the scaled version should be 10 times larger than the real-world lengths.
  4. Measure the scaled length of line segment AB. What real-world length does this correspond to?
  5. When the motor pulls on the cable, it acts to shorten the line segment AB. Suppose that the length of AB decreases by 20%. What is the new scaled length of this line segment?
  6. Construct a new scaled version of triangle JAB using the decreased length. Measure angle AJB.
  7. How has the change in cable length affected angle AJB? Explain what this means for a cable-driven robot.

Using Two Linkages

You can create a cable-driven robot with multiple linkages. In this part of the lesson, you will connect two linkages to your servo motor unit. Examples with even more linkages are shown below.

  1. Make sure your servo motor is set to 0°.
  2. Use this video to modify your cable-driven mechanism to include two linkages. You will need a second cardboard box as a spacer. You may have one from a previous lesson, or you can make a second box using the instructions and paper template above. Alternatively, you can team up with a neighbor for this section!
  3. Reattach the servo to the Hummingbird board. Gradually increase the angle of the servo and observe the movement of the links.
  4. Continue to increase the servo angle until the links stop moving. This is the maximum angle that you should use with your mechanism. Record this angle.
  5. Write a program to move the servo back and forth between 0° and the maximum angle.
  6. Compare your two-linkage mechanism to the version with a single linkage. Do the two linkages move symmetrically? Why or why not?
  7. We used two cable-driven linkages to create this bird. What are some other ways that you might use this mechanism in a robot?

Creating Cable-Driven Robots

You have already seen the giraffe and bird examples, but the you can create many other cable-driven robots! This video shows a cable-driven robotic hand.

In this lesson, the linkages were created from cardboard, but you can use other materials. This blooming flower was created with stiffened felt.

Now it is time to create your own cable-driven robot! How many linkages will you need? Will you connect them to the same servo or to different servos?

Finding More Information