Exercise: Autonomous Toy¶
In this exercise we will design and build a toy which can play all by itself. The overall project objective is a simple autonomous performance which exhibits responsive behavior. The technical objectives are correctly applying hobby servos together with one-bit sensors to link information input with programmed behavior.
The primary example for this exercise is a desk toy which autonomously ‘juggles’ a marble by rolling it back and forth on a track using a proximity sensor to detect presence at one point. As a general principle, once a system includes sensor feedback, it intrinsically introduces an element of interaction if the human can physically interpose their intent. In this example, stopping the marble, moving the marble, or triggering the sensor by hand all interpose human intention in the system and it responds.
Design Requirements¶
The hobby servo output spline shaft should be decoupled from the device loads, e.g. it should connect using a link. You may use one or two of the small servos (Lab Part 1896).
For the one-bit sensor, the recommended components are either a photoreflective interrupter, lever switch, or ball tilt switch. It must in some way sense an internal state of the machine, not be used as a direct user input.
References¶
Hobby Servos
Hobby Servos (lab parts)
Hobby Servos (theory and practice)
Hobby Servo Mounting (hole patterns)
Hobby Servo Examples - Raspberry Pi Pico (programming)
Servo Circuits (wiring)
Sensors
Pico Servo with Photointerrupter (circuit example)
Lite-On LTH-1550 Reflective Photointerrupter (part reference)
Sensors and Switches (lab parts)
Digital Input/Output Examples - Raspberry Pi Pico (programming)
Deliverables¶
Live in-class demo of your device performance.
A short report posted to the shared drive including:
a short text statement reviewing your intent and outcomes in about a paragraph
a brief video (e.g no more than 60 seconds) of the machine performance showing both autonomous behavior and interaction
Your CircuitPython script (e.g.
code.pyfile)