MIGUEL'S DOOR HELPER

MIGUEL'S DOOR HELPER

OVERVIEW

This entry-level lesson introduces 3rd-5th grade students to assistive technology through the Smart Servo platform. Students will design and build a simple button pusher to help Miguel, a 9-year-old with limited arm mobility due to a cast, interact with classroom technology more independently. Through the 5E instructional model (Engage, Explore, Explain, Elaborate, Evaluate), students will learn basic servo programming, design thinking principles, and develop empathy for individuals with physical disabilities.

Client Profile

Name About Me My Challenge
Miguel, Age 9 I'm a 4th grader who loves science and video games. I recently broke my arm playing soccer and have a full-arm cast that makes it hard to reach things. I'll have this cast for 8 weeks, and it's frustrating not being able to do simple things by myself. I can't reach the classroom doorbell or computer power button without asking for help. When I try to stretch to reach buttons, it hurts my shoulder. I wish I had something that could help me press buttons that are too far away or require awkward movements with my cast.

Learning Objectives

MATERIALS NEEDED

1. ENGAGE

How can technology help people overcome physical challenges?

Activity: "Walk In Someone Else's Shoes"

  1. Introduction to Miguel's Challenge:
    • Read aloud Miguel's profile and challenge to the class
    • Show images of classroom items that might be difficult to reach with limited arm mobility
    • Discuss: "What everyday tasks might be difficult if your dominant arm was in a cast?"
  2. Simulation Experience:
    • Have students work in pairs with one student wearing an "arm limitation simulator" (arm wrapped to body using a soft fabric strap)
    • Challenge: Try to press a button placed at different heights and distances without moving your feet
    • After 3 minutes, have partners switch roles
  3. Reflection Discussion:
    • What was challenging about this experience?
    • How did it feel to need help for a simple task?
    • What kind of tool might help someone press buttons that are hard to reach?

Preview Code

# We'll look at this code later, but here's a preview of what we'll use
# to control our Smart Servo button helper
import time
import board
import pwmio
import servo

# Create a PWMOut object on Pin A2.
pwm = pwmio.PWMOut(board.A2, duty_cycle=2 ** 15, frequency=50)

# Create a servo object.
my_servo = servo.Servo(pwm)

# Simple test
while True:
    my_servo.angle = 0    # Starting position
    time.sleep(2)
    my_servo.angle = 90   # Button-pressing position
    time.sleep(2)

Checkpoints & Assessment

Technical Checkpoints:

Understanding Checkpoints:

Connections

Connections to Standards Connections to CAD Skills Connections to HCD Skills
STEL 1J: Develop innovative products that solve problems based on individual needs and wants CAD 1.1: Understanding and using design terminology HCD Skill #1: Problem Framing - Analyzing situations from multiple perspectives
STEL 4K: Examine positive and negative effects of technology CAD 2.1: Freehand sketching for quick visualization of ideas HCD Skill #6: Stakeholder Dialogue - Gathering requirements

2. EXPLORE

How do servo motors work, and how can we program them to help solve problems?

Activity: "Smart Servo Investigation"

  1. Introduction to Smart Servos:
    • Demonstrate a working Smart Servo moving to different positions
    • Explain basic components: servo motor, microcontroller, input button, LED indicator
    • Show how changing the angle value makes the servo move to different positions
  2. Hands-On Exploration:
    • Distribute Smart Servos to student pairs
    • Guide students through connecting to computer via USB
    • Open the pre-loaded "Servo Range" example code

Servo Range Example

# Servo Range Example
import time
import board
import pwmio
import servo

# Create a PWMOut object on Pin A2.
pwm = pwmio.PWMOut(board.A2, duty_cycle=2 ** 15, frequency=50)

# Create a servo object.
my_servo = servo.Servo(pwm)

# Loop through different positions
while True:
    my_servo.angle = 0
    time.sleep(1)
    my_servo.angle = 45
    time.sleep(1)
    my_servo.angle = 90
    time.sleep(1)
    my_servo.angle = 135
    time.sleep(1)
    my_servo.angle = 180
    time.sleep(1)
  1. Code Modification Challenge:
    • Challenge students to modify the code to make their servo:
      1. Move to only two positions (0° and 90°)
      2. Stay in each position for 2 seconds
      3. Make the LED blink red when the servo moves
  2. Button Input Introduction:
    • Show students how to connect the AT Test Button to the Smart Servo
    • Demonstrate the "Toggle Button" example code
    • Discuss how this could help create a button pusher that activates when needed

Toggle Button Example

# 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)
my_servo = servo.Servo(pwm)
toggle = 0
while True:
    if button.value == 0 and toggle == 0:
        my_servo.angle = 0
        time.sleep(1)
        toggle = 1
    elif button.value == 0 and toggle == 1:
        my_servo.angle = 90
        time.sleep(1)
        toggle = 0

Checkpoints & Assessment

Technical Checkpoints:

Understanding Checkpoints:

3. EXPLAIN

How can we design a mechanism that uses a servo motor to help Miguel?

Key Concepts

Assistive Technology is any item, piece of equipment, or system that helps a person with a disability do things more easily or independently. The button pusher we're designing is an example of assistive technology because it helps Miguel interact with devices despite his temporary mobility limitation.

Servo Motors are small motors that can move to specific positions based on the electrical signals they receive. Unlike regular motors that spin continuously, servos can be precisely controlled to move to exact angles (like 0°, 90°, or 180°). This makes them perfect for tasks that need precise positioning, such as our button pusher.

Human-Centered Design means creating solutions based on the actual needs of real people. Instead of just making something we think is cool, we're focusing on what will truly help Miguel with his specific challenge.

Activity: "Design Your Button Pusher"

  1. Design Requirements Review:
    • Review Miguel's needs: a device that can help him press buttons he can't easily reach
    • Discuss criteria for success: device must be able to press buttons reliably, be easy for Miguel to activate, and be adjustable for different heights
  2. Sketching Solutions:
    • Students sketch 2-3 different designs for a button-pushing mechanism in their design journals
    • Designs should show:
      • How the servo will be mounted
      • What the "finger" or pushing mechanism will look like
      • How Miguel will activate the device
      • How the device can be positioned at different heights
  3. Parts Review:
    • Introduce the components students can use for their designs:
      • LocLine flexible connectors for adjustable positioning
      • 10mm framing pieces for structure
      • Various materials for the "button pusher" (foam, cardboard, craft sticks)
    • Discuss advantages and limitations of each component
  4. Design Selection:
    • Students present their sketches to their partners
    • Using the HCD Tool 3.2 (Decision Matrix), students evaluate each design against criteria:
      • Ease of use for Miguel
      • Stability when pressing buttons
      • Adjustability for different button locations
      • Simplicity of construction
    • Students select their best design to prototype

Understanding Checkpoints:

  • Students can explain how their design will help Miguel press buttons
  • Students can identify which part of their design serves each function (mounting, pushing, activation)
  • Students demonstrate understanding of how the servo's movement will be used in their design

4. ELABORATE

How can we build, test, and improve our button pusher designs?

Extension Activity: "Build and Test Your Button Pusher"

  1. Prototype Construction:
    • Provide materials to each student pair
    • Students build their button pusher designs based on their sketches
    • Teacher circulates to assist with construction challenges
    • Students attach their Smart Servo to their constructed mechanisms
  2. Programming for Function:
    • Students adapt the Toggle Button example code for their specific design
    • Encourage students to consider:
      • What angle is best for the "ready" position?
      • What angle is needed to successfully press a button?
      • How long should the servo stay in the "pressing" position?

Modified Toggle Button Code Template

# Modified Toggle Button Code Template
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)
my_servo = servo.Servo(pwm)
toggle = 0

# Students can modify these values
ready_angle = 0      # Starting position
press_angle = 90     # Button-pressing position
press_time = 0.5     # How long to hold the "press"

while True:
    if button.value == 0 and toggle == 0:
        my_servo.angle = ready_angle
        time.sleep(1)
        toggle = 1
    elif button.value == 0 and toggle == 1:
        my_servo.angle = press_angle
        time.sleep(press_time)
        my_servo.angle = ready_angle  # Return to ready position
        time.sleep(1)
        toggle = 0
  1. Testing and Refinement:
    • Set up test buttons at different heights and positions
    • Students test their button pushers on each test button
    • For each test, students record:
      • Did it successfully press the button?
      • Was it easy to operate?
      • What could be improved?
    • Students make at least one improvement to their designs based on testing
  2. Role-Play Testing:
    • One student role-plays as Miguel (with simulated arm limitation)
    • The "Miguel" student tries to use the button pusher
    • Partners observe and note any challenges
    • Students make final refinements based on this authentic testing

Application Checkpoints:

  • Students successfully construct a working button pusher mechanism
  • Device can reliably press buttons of different sizes
  • Students make at least one design improvement based on testing
  • Students can explain how their final design meets Miguel's needs

5. EVALUATE

How well does our solution solve Miguel's problem, and what did we learn?

Assessment Criteria

Students will be evaluated on both the technical functionality of their button pushers and their understanding of the human-centered design process. Each team will present their final design to the class, explaining:

  1. How their solution works
  2. How they designed it specifically for Miguel's needs
  3. What challenges they encountered and how they solved them
  4. How their design could be improved or adapted for other users

Assessment Rubric

Criteria Level 1 Level 2 Level 3 Level 4
Understanding of Client Needs Limited understanding of Miguel's challenge Basic understanding of Miguel's needs Clear understanding of Miguel's specific needs Deep understanding of Miguel's needs with consideration of multiple scenarios
Technical Implementation Button pusher works inconsistently Button pusher works in limited situations Button pusher works reliably in most scenarios Button pusher works excellently with adaptability features
Programming Skills Basic code with minimal modification Code adapted with some customization Well-adapted code with thoughtful modifications Advanced code with additional features beyond requirements
Design Process Limited evidence of testing and refinement Some evidence of testing and one refinement Clear evidence of multiple tests and refinements Comprehensive testing process with innovative refinements
Presentation & Reflection Basic description of solution Clear explanation of solution and process Detailed explanation with specific design decisions justified Exceptional explanation with insights about broader applications

Final Reflection Activity

Students complete a reflection in their design journals addressing the following questions:

  1. How did your button pusher help solve Miguel's challenge?
  2. What was the most difficult part of designing your solution?
  3. How did you improve your design after testing?
  4. How might your button pusher help other people besides Miguel?
  5. What would you do differently if you built another assistive device?