🌻 Self-paced family project · 6 missions
Sunflower Robotics: Sense, Decide, Move
Design an explainable seed-delivery robot in a Python simulation: read four synthetic sensors, limit requests and prove why clear, unknown, stale or blocked data produce different decisions.
No installation, payment, child account, or AI key to begin in the browser. Later authored missions use guardian access. Full project extensions may need additional tools.
What you will make
A repeatable robot mission with mock sensors, bounded commands, and an evidence log
- Trace sense → decide → act through a runnable Python simulation.
- Separate unknown sensor data from clear space and test both cases.
- Normalize motor requests, cap simulated duration, and explain a stop decision.
- Use seeded inputs and one-variable experiments to compare designs.
- Check an AI suggestion against code and test evidence.
- Present a tested simulated mission and a power-off physical-system plan.
Settle in together
Laptop or desktop for the Python browser simulation. No robot is needed for the introduction. Physical hardware needs a separate adult safety review.
Allow about 5 minutes to get ready. Six missions in order. Try one or two 5–12 minute activities, take a break, and resume at the next activity. Plan several short sittings per mission; the full 75–90 minute lesson remains the detailed reference. End each sitting with a saved copy and one sentence: next time we will… Times are estimates awaiting family pilots.
- For ages 9–12, work beside a parent on a computer with a keyboard. A phone can read the guide and watch; use a computer for editing. Older learners may try the full lesson's stretch task after the core checks.
- Open the first mission's browser workspace and press Run before installing anything. No payment, child account, or AI key is needed for that introduction. If the runtime reports unavailable, keep your files, read its error, and use the course-specific fallback below with adult help.
- The browser introduction executes the teaching Python simulation; the initial experiment.py uses front_left 12 and prints obstacle with a zero command. Select Run file main.py and Run for the original clear case. It never drives a motor or measures your room. A correct STOP is often the expected success. Unitless speed limits, synthetic age and after_duration zeros are not physical robot measurements or stop guarantees.
- Download fallback: /lab-starters/sunflower-robotics.zip. A parent opens a terminal beside main.py and README.txt and runs python3 main.py --self-test, then python3 main.py --scenario clear --seed 7. On Windows use the prepared py command if appropriate. No pip packages are required. Save probe files beside main.py, avoiding names random.py/json.py/main.py.
- In the browser, choose File experiment.py to edit and Run file experiment.py to execute it. For a scenario replace its contents with two lines: from main import run_scenario; then run_scenario('missing', 7), using the scenario name you want. For self-test use from main import self_test; then self_test(). Use separate lines, preserve main.py and Export before replacing an experiment. Browser Run has no command-line argument box.
- The full lessons give command_probe.py, turn_probe.py and distance_experiment.py. Keep main.py's baseline intact and change inputs in probes. Four healthy channels are required for movement; age must be 0–0.5, and relevant distances <=20 block. Any optional physical extension stays in hardware review until separately commissioned; no wiring instructions are inferred here.
- Keep the original starter unchanged as a reference. Export a working copy before a risky edit or reset. Work and the optional progress checklist stay on this device; an export is your portable backup. A checked box records your own report, not a verified assessment.
- Use invented names, notes and records. The parent handles accounts, optional AI and sharing. Predict together, let the child make one choice, change one thing, test it, then explain what happened. An assistant is optional; the supplied code and a partner work too.
Two people, different jobs
- Child · driver & designer
- Draw sense → decide → act, predict FORWARD or STOP, compare one input at a time and defend a decision with the actual output.
- Parent · thinking partner
- Help run Python, read JSON and label every distance/action as synthetic. Keep physical components power-off and facts unverified unless an instructor has a separate commissioning record.
A path you can pause
These are complete missions, not one-sitting deadlines. Each family guide breaks the work into small activities. Return to the last activity you chose to remember.
MISSION 1 · PUBLIC FIRST MISSION
1. Give your robot a mission
Make a simulated seed-delivery robot take one explainable step.
Full mission plan: 75 minutes · split across activities
MISSION 2 · GUARDIAN ACCESS
2. Become a sensor detective
Explain why an unknown distance should stop our simulated robot.
Full mission plan: 75 minutes · split across activities
MISSION 3 · GUARDIAN ACCESS
3. Design commands with boundaries
Turn a large or confusing request into a small, predictable simulated action.
Full mission plan: 75 minutes · split across activities
MISSION 4 · GUARDIAN ACCESS
4. Make every stop explainable
Protect the simulated mission from front obstacles, rear obstacles, and uncertain information.
Full mission plan: 75 minutes · split across activities
MISSION 5 · GUARDIAN ACCESS
5. Run a fair robot experiment
Change one input and show exactly how it changes a decision.
Full mission plan: 75 minutes · split across activities
MISSION 6 · GUARDIAN ACCESS
6. Show your mission and challenge the explanation
Present a tested seed-delivery mission and prove which AI or peer claims deserve trust.
Full mission plan: 75 minutes · split across activities
Leave a trail for next time
The optional mission checklist remembers your place in this browser. Workspace files have their own save controls; export them for a portable backup. Write down one change, one test observation, and the activity you want to try next.
Download the original starter for the full local project ↓About this family pilot
The supplied simulation is ready to explore and its checks run without hardware. These lessons are an authored course draft, not classroom-validated outcomes. The physical lab needs instructor commissioning: the family source has conflicting sensor, power, and wiring notes. Simulation completion does not certify a real robot.
Complete course plan · extended setup, camp & project evidence
Begin in the browser workspace with no installation. The original tools and prerequisites below apply to the full downloaded project and its extensions. Native mobile tools and physical hardware are separate adult-prepared steps. Portfolio themes describe your project; no credential is automatically awarded.
Build a simulated robot that explains every move and every stop, then plan an adult-verified Raspberry Pi lab inspired by the Sunflower family robot.
Full course platforms: Windows, macOS, or Linux with Python · Raspberry Pi extension after instructor commissioning · Ages 9-10, 11-13, 14-16
Your project
A repeatable robot mission with mock sensors, bounded commands, and an evidence log
- Trace sense → decide → act through a runnable Python simulation.
- Separate unknown sensor data from clear space and test both cases.
- Normalize motor requests, cap simulated duration, and explain a stop decision.
- Use seeded inputs and one-variable experiments to compare designs.
- Check an AI suggestion against code and test evidence.
- Present a tested simulated mission and a power-off physical-system plan.
Before you begin
- Use a keyboard, save a file, and run a command with age-appropriate adult help.
- Read small Python dictionaries and comparisons; younger builders can begin with printed command cards and a partner.
- Explain what a sensor measures and distinguish a prediction from an observation. Lesson 1 introduces both.
Materials
- One computer per learner or pair, trusted Python 3.9+, an editor, and the two downloadable starter files.
- Paper or text files for predictions, four labeled sensor cards, a ruler for a paper-only distance exercise, and a printed sense → decide → act diagram.
- For the optional power-off component map: a verified kit or photographs showing a Raspberry Pi, camera, motor driver, motors, sensors, and their separate power paths.
- The family project records a Pi 4, Camera Module 3, four TT motors, mecanum chassis, and two L298N drivers. Its historical battery and sensor lists conflict; use an instructor-approved current bill of materials instead of shopping from these historical notes.
Your tools
- Python 3.9+ and a text editor
- Run a local simulation with the Python standard library.
- Use an instructor-provided Python installation. Download /lab-starters/sunflower-robotics.zip and extract main.py and README.txt into one new folder. Open a terminal there; run python3 main.py --self-test. On Windows, the instructor may substitute py for python3. No pip install is needed.
- Prediction and experiment notebook
- Record the intended behavior before running a test.
- Create prediction-log.txt, sensor-table.txt, and mission-review.txt, or use paper. Record scenario, changed variable, expected decision, actual decision, and explanation.
- Instructor or peer coach
- Review reasoning and, optionally, mediate an approved AI explanation.
- The course works with a peer reading the AI-coach prompts. If an institution provides an approved AI tool, the instructor can submit only synthetic data and short code excerpts. Learners do not need consumer AI accounts.
- Optional verified Raspberry Pi robot
- Connect the simulation's ideas to physical components after a separate instructor review.
- Begin with a powered-off kit or component photographs. The instructor supplies a verified model-specific parts and wiring sheet, validates power and sensor levels, and demonstrates a working stop method before any physical activity. Do not infer wiring from this course.
Learn online
Six weekly 75-minute sessions: 10 minutes of prediction, 15 of demonstration, 30 of building, 15 of checks, and 5 of reflection. Optional between-session work is a 15-minute notebook revision. Physical commissioning is a separate instructor prerequisite, not homework.
Plan around 75 minutes per session; pause and revisit at your own pace.
Adult support: An adult prepares Python and helps younger learners with the terminal. Ages 9–10 work with an adult or instructor at each code-changing step; 11–13 work in pairs; 14–16 may run the experiments independently. Any physical extension stays adult-led. These bands are proposed teaching adaptations.
Build at camp
Five days with 180 planned minutes per day, including project work and group activities. The course outline does not reserve a camp place.
Day 1: Day 1 — Meet the robot and its senses
- Complete Lessons 1 and 2 in two 75-minute blocks.
- Use 15 minutes for a break and 15 minutes for a sensor-card gallery. Keep physical components powered off.
Day 2: Day 2 — Design commands
- Complete Lesson 3, then spend 45 minutes on paired command-card challenges.
- Use 30 minutes for notebook feedback, 15 for a break, and 15 for the stop-method demonstration on the simulation.
Day 3: Day 3 — Make stopping explainable
- Complete Lesson 4 and spend 45 minutes designing adversarial sensor cases.
- Trade cases for a 30-minute peer review, take a 15-minute break, and finish with a 15-minute evidence circle.
Day 4: Day 4 — Run a fair experiment
- Complete Lesson 5 and use 45 minutes for one-variable experiments.
- Use 30 minutes to build the capstone evidence board, 15 for a break, and 15 for rehearsal.
Day 5: Day 5 — Mission showcase
- Complete Lesson 6 and spend 45 minutes on final revisions.
- Hold a 30-minute code-and-evidence showcase, take a 15-minute break, and finish with 15 minutes of individual reflection. An instructor may show a separately commissioned robot; simulation remains a complete capstone.
Facilitator preparation
- Prepare the starter and run its self-test before learners arrive; keep a clean copy for comparison.
- Rotate driver, predictor, and evidence-recorder roles every 15 minutes. Use larger text and printed dictionaries for guided readers.
- A real kit is optional. A physical demonstration requires the model-specific instructor commissioning record; use the simulation if any required fact remains uncertain.
- Collect code and synthetic results privately. A public recording of children is not part of the showcase.
Show what you built
Design a fictional seed-delivery robot mission. Submit the Python starter or your reviewed extension, a six-case prediction/actual table, one fair experiment, and a sense → decide → act diagram. Explain why five baseline cases stop and why the clear case moves. Add a power-off component map for a future physical build; a real moving robot is optional and separately commissioned.
- Architecture
- The diagram identifies sensor inputs, a decision function, normalized command outputs, and an end-of-command stop. The learner can trace one value through all four.
- Decisions and failure handling
- All six baseline mission cases have predicted and observed results. Invalid, missing, stale, and obstructed inputs result in zero command values, with the correct reason.
- Bounded behavior
- The oversize request test returns left 0.4, right -0.4, and seconds 0.4; the learner explains that these are simulation units. The 16 supplied checks pass.
- Experiment quality
- A repeatable seeded baseline, one changed variable, both outcomes, and a supported conclusion are recorded. An unchanged variable is named.
- Independent verification
- One AI or peer claim is accepted or corrected using a named function and a reproduced test, rather than the confidence of its wording.
- Honest physical plan
- The component map identifies facts still requiring instructor verification and makes no invented wiring, voltage, or stop guarantees. A stretch submission adds a new passing and failing scenario with justified expectations.
Portfolio theme: Robotics Architect
Use the rubric with a guardian or mentor and record your evidence in your builder notebook.
Build with care
- The starter imports no GPIO, camera, networking, or motor-control packages and issues no hardware commands. Its after_duration field is a simulated end state, not a measured physical stop.
- Unknown, invalid, and stale measurements stop the course simulation. The source robot does not consistently enforce this rule; do not substitute its controller for the starter.
- The 0.4 speed limit is a unitless simulation rule. It does not specify voltage or prove a PWM cap. The source parts notes claim a power-limiting behavior that current motor code does not enforce.
- Do not wire from historical GPIO diagrams: source notes disagree about sensor voltage and models, and some channels are disconnected or faulty. An adult verifies the exact hardware with an authoritative model-specific guide before powering it.
- Before a physical extension, the instructor verifies supply and motor compatibility, wiring with power off, healthy sensors, command bounds, and an independent stop/disconnect method. First motor checks are adult-led with wheels clear of the floor, followed by a bounded low-speed area away from stairs and people.
- No household camera footage or personal room maps are needed. Use invented room names and synthetic observations. Do not share public videos of children.
Inspired by our projects
- Sunflower / AIOS ThinkTank
- Our family's Raspberry Pi robot combines a camera, motors, distance sensors, and a decision-making server. Its build journals inspire these experiments. The course simulator teaches a conservative stop policy separately from the real robot's firmware.