LILY'S ATTENTION SIGNAL DEVICE
OVERVIEW
This 5-hour STEM camp introduces middle school students to the Smart Servo platform through a human-centered design approach. Students will learn basic programming and engineering concepts while creating an attention signal device for Lily, a 12-year-old with muscular weakness in her arms who needs assistance participating in classroom discussions. The camp is structured around the 5E instructional model (Engage, Explore, Explain, Elaborate, Evaluate) with each phase lasting approximately one hour.
Client Profile
Name | About Me | My Challenge |
---|---|---|
Lily, Age 12 | I'm in 7th grade and love science and reading. I participate in our school's Science Olympiad team and enjoy building things. I have muscular weakness in my arms that makes it difficult to raise my hand for long periods in class. | It's hard for me to keep my hand raised when I want to answer questions in class. By the time the teacher calls on me, my arm is often too tired, and sometimes I just don't try to participate because I know I can't hold my arm up long enough. I need a way to signal that I want to participate without having to physically raise and hold up my arm. |
Learning Objectives
- Program a Smart Servo to perform basic movements using CircuitPython
- Construct a functional attention signal device that operates with minimal physical effort
- Apply human-centered design principles to develop a solution based on a specific user's needs
- Identify components of a technological system including inputs, processes, outputs, and feedback
- Document the design process and evaluate the effectiveness of the solution
MATERIALS NEEDED
- Smart Servo units (1 per pair of students)
- Programmer's Kits with USB C Programming Cables
- AT Test Buttons and Micro-Light buttons
- LocLine flexible connectors
- 10mm framing pieces, bearings (605ZZ), and M5 screws and fasteners
- M5 bits, taps, Allen wrenches, and LocLine pliers
- Computer with CircuitPython 8.0
- Cardboard, craft sticks, colored paper, and markers
- 3D printer (Bambu Lab A1 Mini) and PLA filament
- OnShape CAD (classroom license)
1. ENGAGE
How might we design a device that helps someone participate more fully in classroom discussions?
Activity: "Understanding the Need"
- Introduction to Assistive Technology:
- Begin with a brief discussion: "What does it mean to participate in class?" Have students share their experiences.
- Show a short video of a classroom discussion, asking students to notice how participation happens.
- Introduce the concept of assistive technology and how it helps people overcome barriers.
- Meet Our Client:
- Present Lily's profile to students.
- Facilitate a discussion about Lily's challenge, having students identify the specific problem to solve.
- Ask: "What would make it easier for Lily to signal that she wants to participate in class?"
- Introduction to the Smart Servo:
- Demonstrate a working Smart Servo with the "Blinking Red LED" example.
- Show how the servo can move to different positions and how it can be controlled by a button.
- Explain that this technology will be the foundation for the solution they'll design.
Basic LED Control Demo
import time import board from digitalio import DigitalInOut, Direction, Pull led = DigitalInOut(board.LED) led.direction = Direction.OUTPUT while True: led.value = 1 time.sleep(1) led.value = 0 time.sleep(.5)
Technical Checkpoints:
- Students can identify the main components of the Smart Servo
- Students understand the basic function of a servo motor
Understanding Checkpoints:
- Students can explain Lily's specific needs in their own words
- Students can identify at least two design considerations for the attention signal device
Connections
Connections to Standards | Connections to CAD Skills | Connections to HCD Skills |
---|---|---|
STEL 1J: Develop innovative products that solve problems based on individual needs | CAD 1.1: Understanding and using design terminology | HCD Skill #1: Problem Framing - Analyzing situations from multiple perspectives |
STEL 4N: Analyze how technologies change human interaction and communication | CAD 1.2: Following structured design processes | HCD Skill #6: Stakeholder Dialogue - Gathering requirements |
2. EXPLORE
How do we control a Smart Servo to move to specific positions?
Activity: "Programming Basics"
- Setup:
- Divide students into pairs and distribute Smart Servo units and programming cables
- Have students connect their Smart Servos to computers with CircuitPython
- Review basic safety guidelines for working with electronic components
- Explore Servo Movement:
- Guide students through loading and running the "Servo Range" example
- Have students modify the code to change the servo positions and observe the results
- Challenge students to create a sequence of positions that might be useful for an attention signal
Servo Range Example
import time import board import pwmio import servo pwm = pwmio.PWMOut(board.A2, duty_cycle=2 ** 15, frequency=50) servo = servo.Servo(pwm) while True: servo.angle = 0 time.sleep(1) servo.angle = 90 time.sleep(1) servo.angle = 180 time.sleep(1)
- Add Button Control:
- Introduce the "Toggle Button" example
- Have students connect a button to their servo and test the code
- Encourage students to experiment with different button configurations and servo positions
Toggle Button Example
import time import board from digitalio import DigitalInOut, Direction, Pull button = DigitalInOut(board.D2) button.direction = Direction.INPUT button.pull = Pull.UP import pwmio import servo pwm = pwmio.PWMOut(board.A2, duty_cycle=2 ** 15, frequency=50) servo = servo.Servo(pwm) toggle = 0 while True: if button.value == 0 and toggle == 0: servo.angle = 0 time.sleep(1) toggle = 1 elif button.value == 0 and toggle == 1: servo.angle = 180 time.sleep(1) toggle = 0
Technical Checkpoints:
- Students can load and modify basic servo control code
- Students successfully implement button control for the servo
- Students can modify the angle values to position the servo as desired
Understanding Checkpoints:
- Students can explain the relationship between button inputs and servo movements
- Students can identify potential applications of button-controlled servo movement for Lily's device
Connections
Connections to Standards | Connections to CAD Skills | Connections to HCD Skills |
---|---|---|
STEL 2M: Differentiate between inputs, processes, outputs, and feedback in technological systems | CAD 3.1: CAD Fundamentals - Interface navigation and basic modeling | HCD Tool 5.1: Experiment - Designing and conducting controlled tests |
STEL 8J: Use devices to control technological systems | CAD 4.1: Understanding manufacturing processes and limitations | HCD Skill #8: Iteration Cycles - Testing and modifying designs |
3. EXPLAIN
How can we adapt and combine servo movements and controls to create a useful attention signal device?
Key Concepts
The attention signal device functions as a technological system with inputs (button press), processes (code execution), outputs (servo movement and LED indication), and feedback (visual confirmation). When designing assistive technology, we must prioritize:
- Ease of use for the specific user
- Reliability and consistency
- Appropriate visual indicators
- Energy efficiency
- Durability
Activity: "Designing the Signal Device"
- System Design Discussion:
- Review the components of a technological system (input, process, output, feedback)
- Discuss how these components apply to Lily's attention signal device
- Analyze how different input methods might work better for someone with muscular weakness
- Code Enhancement:
- Guide students through modifying the toggle button code to add LED feedback
- Demonstrate how to create a more visible signal using the Neopixel
- Discuss why visual feedback is important in this application
Enhanced Toggle Button with LED
import time import board from digitalio import DigitalInOut, Direction, Pull import neopixel import pwmio import servo # Setup button button = DigitalInOut(board.D2) button.direction = Direction.INPUT button.pull = Pull.UP # Setup NeoPixel pixel = neopixel.NeoPixel(board.NEOPIXEL, 1, brightness=0.3) # Setup servo pwm = pwmio.PWMOut(board.A2, duty_cycle=2 ** 15, frequency=50) servo = servo.Servo(pwm) toggle = 0 while True: if button.value == 0 and toggle == 0: servo.angle = 150 # Raised position pixel.fill((0, 0, 255)) # Blue when active time.sleep(0.5) toggle = 1 elif button.value == 0 and toggle == 1: servo.angle = 0 # Down position pixel.fill((0, 0, 0)) # Off when inactive time.sleep(0.5) toggle = 0
- Prototype Planning:
- Have students sketch their attention signal device ideas
- Discuss mounting options using the LocLine flexible connectors
- Introduce considerations for button placement for easy access
Technical Checkpoints:
- Students can explain how inputs, processes, outputs, and feedback function in their system
- Students successfully integrate LED feedback into their servo control code
Understanding Checkpoints:
- Students can articulate how their design addresses Lily's specific needs
- Students can explain why their choice of button type and placement is appropriate for someone with muscular weakness
Connections to Standards | Connections to CAD Skills | Connections to HCD Skills |
---|---|---|
STEL 2N: Illustrate systems thinking and how systems interact with environments | CAD 2.1: Freehand Sketching - Quick visualization of ideas | HCD Tool 2.1: Criteria & Constraints - Breaking down problems into components |
STEL 7S: Create solutions by applying human factors in design | CAD 1.3: Creating and maintaining technical documentation | HCD Skill #3: Innovation Process - Using divergent thinking for idea generation |
4. ELABORATE
How can we optimize our designs to meet Lily's specific needs while considering real-world constraints?
Extension Activity: "Building and Refining the Device"
- Physical Prototyping:
- Guide students in creating a physical mount for their servo using LocLine and framing pieces
- Demonstrate how to securely attach the servo while ensuring it can be positioned appropriately
- Have students test the range of motion and visibility of their device from various classroom positions
- Button Customization:
- Introduce students to different AT buttons and have them test which requires the least effort
- Guide students in positioning the button for optimal accessibility
- Help students integrate the button into their code, adjusting as needed for responsiveness
- Visual Indicators:
- Have students enhance their LED programming to create more distinctive signals
- Challenge students to add different colors or patterns to indicate different states
- Discuss how visual indicators can help both Lily and her teacher
Advanced Visual Indicators
import time import board from digitalio import DigitalInOut, Direction, Pull import neopixel import pwmio import servo # Setup button button = DigitalInOut(board.D2) button.direction = Direction.INPUT button.pull = Pull.UP # Setup NeoPixel pixel = neopixel.NeoPixel(board.NEOPIXEL, 1, brightness=0.3) # Setup servo pwm = pwmio.PWMOut(board.A2, duty_cycle=2 ** 15, frequency=50) servo = servo.Servo(pwm) toggle = 0 last_button_state = button.value current_time = 0 last_toggle_time = 0 debounce_time = 0.2 # Function for color fade def color_fade(r1, g1, b1, r2, g2, b2, steps, wait): for i in range(steps): r = r1 + (r2 - r1) * i // steps g = g1 + (g2 - g1) * i // steps b = b1 + (b2 - b1) * i // steps pixel.fill((r, g, b)) time.sleep(wait) while True: current_time = time.monotonic() if (not button.value and last_button_state and (current_time - last_toggle_time > debounce_time)): toggle = 1 - toggle # Switch between 0 and 1 last_toggle_time = current_time if toggle == 1: servo.angle = 150 # Raised position color_fade(0, 0, 0, 0, 0, 255, 10, 0.03) # Fade to blue else: servo.angle = 0 # Down position color_fade(0, 0, 255, 0, 0, 0, 10, 0.03) # Fade to off # Blinking effect when active if toggle == 1 and current_time % 2 > 1.8: pixel.fill((100, 100, 255)) # Lighter blue elif toggle == 1: pixel.fill((0, 0, 255)) # Blue last_button_state = button.value
Technical Checkpoints:
- Students successfully mount their servo in a stable, adjustable position
- Students implement enhanced visual indicators with their LED
- Students optimize their button placement for ease of use
Understanding Checkpoints:
- Students can explain how their physical design choices address Lily's specific needs
- Students can identify potential improvements based on testing and refinement
Connections to Standards | Connections to CAD Skills | Connections to HCD Skills |
---|---|---|
STEL 4K: Examine positive and negative effects of technology | CAD 4.2: Preparing models for fabrication | HCD Tool 4.3: Proof of Concept - Building functional prototypes for testing |
STEL 7R: Refine design solutions for criteria and constraints | CAD 3.2: Creating feature-based models with relationships | HCD Skill #5: Knowledge Development - Identifying and acquiring necessary expertise |
5. EVALUATE
How well does our device meet Lily's needs, and what improvements might make it even better?
Assessment Criteria
Students will demonstrate their understanding of assistive technology design by:
- Presenting their working attention signal device
- Explaining how their design addresses Lily's specific needs
- Identifying the components of their technological system
- Reflecting on the human-centered design process
- Suggesting potential improvements based on testing and feedback
Activity: "Testing and Reflection"
- User Testing Simulation:
- Have students simulate Lily's experience using their devices
- Assign one student to act as Lily (with limited arm mobility) and another as the teacher
- Have teams rotate through testing each other's devices
- Group Presentation:
- Each team presents their device, explaining:
- How they addressed Lily's specific needs
- The technical components of their system
- Challenges they encountered and how they solved them
- Improvements they would make with more time
- Each team presents their device, explaining:
- Reflection and Documentation:
- Guide students in completing a design documentation sheet
- Have students record the strengths and limitations of their design
- Ask students to reflect on how their device might help Lily participate more fully in class
Assessment Rubric
Criteria | Level 1 | Level 2 | Level 3 | Level 4 |
---|---|---|---|---|
Technical Implementation | Basic servo movement with minimal programming | Functional servo control with button input | Fully functional system with reliable button control and basic visual feedback | Advanced system with enhanced visual indicators and optimized for minimal physical effort |
Physical Design | Basic mounting with limited adjustability | Secure mounting with some adjustability | Well-designed mounting with good positioning options | Innovative mounting solution with excellent stability and adjustability |
Human-Centered Approach | Limited consideration of Lily's specific needs | Basic adaptations to address muscular weakness | Thoughtful design choices specifically addressing Lily's needs | Comprehensive solution with multiple user-centered adaptations |
Systems Understanding | Identifies basic inputs and outputs | Explains relationship between inputs and outputs | Articulates full system including feedback mechanisms | Demonstrates advanced understanding of system optimization |
Documentation and Reflection | Basic documentation of the final product | Clear documentation with some reflection on the design process | Thorough documentation with thoughtful reflection and improvement ideas | Exceptional documentation with detailed analysis and evidence-based suggestions for improvement |
Connections
Connections to Standards | Connections to CAD Skills | Connections to HCD Skills |
---|---|---|
STEL 7U: Evaluate strengths and weaknesses of design solutions | CAD 1.4: Professional Communication - Presenting designs | HCD Tool 5.2: Results Analysis - Analyzing outcomes and gathering feedback |
STEL 5G: Evaluate trade-offs as part of decision processes | CAD 2.4: Understanding spatial constraints and relationships | HCD Skill #9: Documentation & Portfolio Development - Creating compelling presentations |