Gyro Precision Timing Guide (3 Hours)
Audience: Ages 9-14, no coding experience required.
Goal: Turn on the gyro, prove it makes turns more accurate, read the heading, and calibrate a true 360°.
9:00-9:15 — Arrival Game: Debug the Drawing
Arrivals spot the one wrong step in a drawn move sequence — a small early error throws off everything after.
- Objective: pre-teach that a small early error throws off everything after it.
- Flow:
- As students arrive, show a drawn sequence of robot moves with one wrong step.
- Teams spot the bug and say what the robot would actually do because of it.
- Name it: that’s sensor data — the robot follows the drawing exactly.
- Watch for: students fixing the intent instead of reading what the drawing says.
- Tip: keep a couple of these ready so early arrivals can do more than one.
9:15-9:25 — Mission Huddle + Catch-Up
Frame the gyro mission and re-level the group. Make sure every team can connect, drive, and turn before adding the gyro.
- Objective: frame today’s mission and re-level the group so no one is behind.
- Flow:
- Catch-up: quick recap of driving (
straight/turn) and the Day 2 maze; make sure every team can connect, drive, and turn before adding the gyro. - Today’s mission: turn on the gyro and prove it makes turns more accurate.
- Re-state the mantra: “Bugs are sensor data.”
- Catch-up: quick recap of driving (
- Tip: assign the first set of roles (Coder, Builder, Navigator, Tester) now.
9:25-10:25 — Robotics Block 1: Gyro Off vs. On
Run the same move gyro-off then gyro-on (robot.use_gyro(True)) and chart the error. Milestone: every team has both errors measured.
- Objective: every team runs the same move gyro-off then gyro-on and charts the error.
- Flow:
- Reuse the Day 1 setup; run the square (or a maze path) with the gyro off and mark where it really ends.
- Add
robot.use_gyro(True)and run the exact same code with the gyro on. - Measure both errors; talk about why the off run drifts and the on run holds.
- Rotate roles ~halfway through the block.
- Off-robot task: Navigator/Tester charts the off-vs-on error on the worksheet.
- Watch for:
- Teams skipping the gyro-off run — the comparison is the proof; require both
- Students rewriting the whole setup — reuse Day 1’s; only one new line
- Changing the move between runs — it must be the same code to compare fairly
- Tip: tape a start mark and a target so “how far off” is easy to measure.
10:25-10:35 — Energizer
- Quick Algorithm Relay or stretch-and-shake. Get everyone up and moving.
10:35-10:50 — Snack Break
- Check allergies. Keep all food and drinks away from kits and laptops.
10:50-11:45 — Robotics Block 2: Calibrate the Turn
Read hub.imu.heading(), run robot.turn(360), and tune the turn number until a full turn is true. Milestone: each hub’s true 360° number recorded.
- Objective: read the heading and tune a true 360° turn for each hub.
- Flow:
- Print
hub.imu.heading()and watch it change as the robot turns (starts at 0, positive = clockwise). - Run
robot.turn(360)with the gyro on; check whether the heading lands back near 0. - Tune the turn number (try 357, 362, …) until a full turn is true on that hub.
- Record the tries and the final number on the worksheet.
- Print
- Watch for:
- Frustration that 360 isn’t exactly a full turn — that’s the lesson, not a failure
- Teams expecting one “right” number — each hub’s value differs (about 355-363)
- Reading the heading before the program runs (it resets to 0 at start)
- Tip: have them write the heading reading next to each turn number so the trend is visible (over-spun vs. under-spun).
11:45-12:00 — Demo + Cleanup
Teams demo the gyro-off vs. gyro-on difference, then label and charge hubs (keep robots intact for tomorrow).
- Demo: each team (voluntarily) shows the gyro-off vs. gyro-on difference.
- Prompts:
- “How much more accurate was the gyro-on run?”
- “What’s your hub’s true 360° number, and why isn’t it just 360?”
- Cleanup: label and charge hubs; keep robots intact for tomorrow.
- Bridge: “Tomorrow we’ll give your robot eyes with the distance sensor so it can react to the world instead of running a fixed script.”
General Tips Throughout
Calibrate per-hub (never hand out a number), keep the off-vs-on chart filled, treat bugs as sensor data, and rotate roles so everyone codes.
- Calibrate, don’t memorize: the turn-fudge number is per-hub; never hand one out.
- Prove it with data: the off-vs-on chart is the day’s artifact — make sure it’s filled.
- Bugs are sensor data: when the robot misbehaves, ask “what did the code say?”
- Everyone codes: rotate roles and keep the off-robot charting going so all four stay engaged.