AHMED'S SMART SPORTS EQUIPMENT ORGANIZER

AHMED'S SMART SPORTS EQUIPMENT ORGANIZER

OVERVIEW

This lesson guides 3rd-5th grade students through creating an accessible sports equipment organizer for Ahmed, a 12-year-old with limited grip strength. Using the Smart Servo platform, students will design and build a servo-powered rack that automatically lowers hooks to provide easier access to sports equipment. This project applies human-centered design principles in a real-world assistive technology context while introducing students to mechanical design, physical computing, and iterative problem-solving.

Client Profile

Name About Me My Challenge
Ahmed, 12 I love all kinds of sports, especially basketball and soccer. I enjoy playing with my friends after school, but sometimes my hands get tired and weak. My doctor says I have limited grip strength, which makes it hard for me to grab things high up or hold onto heavy equipment for long periods. When I'm at home or at school, I have trouble getting my sports equipment from high hooks or shelves. My basketball, soccer ball, and other equipment are stored on a rack, but I can't always grip and lift them down safely, especially when my hands are tired. I need a way to bring the equipment down to a level where I can easily access it without having to reach or grip strongly.

Learning Objectives

MATERIALS NEEDED

1. ENGAGE

How can we use technology to make everyday objects more accessible for people with different physical abilities?

Activity: "Accessibility Challenge"

  1. Empathy Simulation:
    • Provide students with grip-limiting gloves (gardening gloves with several fingers taped together)
    • Challenge them to perform everyday tasks like hanging up a jacket on a high hook or retrieving a basketball from a shelf
    • Have students document their experiences and challenges
  2. Client Introduction:
    • Introduce Ahmed's profile to the class
    • Discuss his specific challenges with retrieving sports equipment
    • Show video demonstrations of how limited grip strength affects daily activities
  3. Smart Servo Exploration:
    • Review the Smart Servo's capabilities, focusing on its ability to move objects
    • Demonstrate a simple servo program that moves between positions
    • Have students brainstorm how this technology might help Ahmed

Simple servo position demo

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)

while True:
    print("Moving to 0 degrees")
    my_servo.angle = 0
    time.sleep(2)
    print("Moving to 90 degrees")
    my_servo.angle = 90
    time.sleep(2)
    print("Moving to 180 degrees")
    my_servo.angle = 180
    time.sleep(2)

Checkpoints & Assessment

Technical Checkpoints:

Understanding Checkpoints:

Connections

Connections to Standards Connections to CAD Skills Connections to HCD Skills
STEL 4K: Examine positive and negative effects of technology CAD 1.2: Design Process - Following structured design processes HCD Skill #1: Problem Framing - Analyzing situations from multiple perspectives
STEL 3F: Apply a product, system or process from one setting to another CAD 2.1: Freehand Sketching - Quick visualization of ideas HCD Skill #6: Stakeholder Dialogue - Gathering requirements

2. EXPLORE

How can we convert the rotary motion of a servo into a mechanism that safely lowers and raises sports equipment?

Activity: "Mechanism Exploration Station"

  1. Setup:
    • Set up different stations with various simple mechanisms:
      • Pulley systems with string
      • Lever arms with different fulcrum positions
      • Rack and pinion gear sets
      • Cam mechanisms
    • Each station should have a Smart Servo installed that students can program
  2. Process:
    • In teams, students rotate through each station
    • At each station, students modify the provided sample code to:
      • Change servo positions
      • Adjust timing
      • Add button control
    • Students document how each mechanism transforms the servo's rotary motion
    • Students evaluate which mechanism might work best for Ahmed's needs

Button-controlled servo with position memory

import time
import board
from digitalio import DigitalInOut, Direction, Pull
import pwmio
import servo

# Set up button on pin D2
button = DigitalInOut(board.D2)
button.direction = Direction.INPUT
button.pull = Pull.UP

# Set up servo on pin A2
pwm = pwmio.PWMOut(board.A2, duty_cycle=2 ** 15, frequency=50)
my_servo = servo.Servo(pwm)

# Set initial position and toggle state
position = 0
toggle = 0
my_servo.angle = position

while True:
    # Check if button is pressed (button.value == 0 when pressed)
    if button.value == 0 and toggle == 0:
        # Move servo to lowered position (180 degrees)
        position = 180
        my_servo.angle = position
        print("Equipment lowered!")
        time.sleep(0.5)  # Debounce delay
        toggle = 1
    elif button.value == 0 and toggle == 1:
        # Move servo to raised position (0 degrees)
        position = 0
        my_servo.angle = position
        print("Equipment raised!")
        time.sleep(0.5)  # Debounce delay
        toggle = 0
    time.sleep(0.1)  # Small delay to prevent CPU overload

Checkpoints & Assessment

Technical Checkpoints:

Understanding Checkpoints:

3. EXPLAIN

What design considerations must we address to ensure our solution is effective, safe, and user-friendly for Ahmed?

Key Concepts

Mechanical Design Principles

Programming Concepts

Human-Centered Design Considerations

Activity: "Design Requirements Workshop"

  1. Client Needs Analysis:
    • In teams, students create a list of specific requirements based on Ahmed's profile
    • Students prioritize these requirements (must-have vs. nice-to-have)
    • Teams present their requirement lists to the class for feedback
  2. Technical Specifications Development:
    • Students translate client needs into measurable technical specifications:
      • Maximum and minimum heights for equipment
      • Button size and force requirements
      • Response time expectations
      • Safety features
  3. Solution Sketching:
    • Based on their exploration and requirements, students sketch initial design concepts
    • Students annotate their sketches with notes about mechanical components and programming needs
    • Teams share sketches and provide constructive feedback

Understanding Checkpoints:

  • Students can articulate specific design requirements based on user needs
  • Students can explain how their mechanical design will address load requirements
  • Students can describe how their programming approach will ensure safe operation

Application Checkpoints:

  • Student sketches show thoughtful integration of mechanical and electronic components
  • Design concepts specifically address Ahmed's grip strength limitations

4. ELABORATE

How can we refine our designs through prototyping and testing to create the most effective solution for Ahmed?

Extension Activity: "Prototype Development and Testing"

  1. Rapid Prototyping:
    • Teams construct cardboard and craft stick prototypes of their designs
    • Students integrate the Smart Servo into their prototypes
    • Teams program their prototypes with basic functionality
  2. User Testing Simulation:
    • Students test their prototypes wearing the grip-limiting gloves
    • Teams document observations and user feedback
    • Students identify areas for improvement
  3. Refinement and Digital Design:
    • Based on testing results, teams refine their designs
    • Students create digital models of key components using OnShape
    • Teams prepare components for 3D printing
  4. Programming Enhancement:
    • Students add visual feedback using the Neopixel LED
    • Teams implement safety features (e.g., slow movement, position limits)
    • Students create custom functions for improved code organization

Enhanced Servo Control with LED Feedback

# Enhanced servo control with LED feedback
import time
import board
import neopixel
from digitalio import DigitalInOut, Direction, Pull
import pwmio
import servo

# Set up button on pin D2
button = DigitalInOut(board.D2)
button.direction = Direction.INPUT
button.pull = Pull.UP

# Set up servo on pin A2
pwm = pwmio.PWMOut(board.A2, duty_cycle=2 ** 15, frequency=50)
my_servo = servo.Servo(pwm)

# Set up NeoPixel on pin D1
pixel = neopixel.NeoPixel(board.NEOPIXEL, 1, brightness=0.3)

# Define colors
RED = (255, 0, 0)
GREEN = (0, 255, 0)
BLUE = (0, 0, 255)
YELLOW = (255, 255, 0)

# Set initial position and state
position = 0
my_servo.angle = position
system_state = "up"  # Can be "up", "down", "moving_up", or "moving_down"
pixel.fill(GREEN)  # Green when equipment is up/stored

def move_servo(target_angle, steps=10, delay=0.05):
    """Move servo gradually to target position for smoother motion"""
    global position
    
    start_angle = my_servo.angle
    angle_change = target_angle - start_angle
    step_size = angle_change / steps
    
    for i in range(steps + 1):
        new_angle = start_angle + (step_size * i)
        my_servo.angle = new_angle
        time.sleep(delay)
    
    position = target_angle

while True:
    # Check if button is pressed (button.value == 0 when pressed)
    if button.value == 0 and system_state == "up":
        # Moving equipment down
        system_state = "moving_down"
        pixel.fill(YELLOW)  # Yellow while moving
        move_servo(180, steps=20)  # Slow, smooth movement
        system_state = "down"
        pixel.fill(BLUE)  # Blue when equipment is down/accessible
        time.sleep(0.5)  # Debounce delay
        
    elif button.value == 0 and system_state == "down":
        # Moving equipment up
        system_state = "moving_up"
        pixel.fill(YELLOW)  # Yellow while moving
        move_servo(0, steps=20)  # Slow, smooth movement
        system_state = "up"
        pixel.fill(GREEN)  # Green when equipment is up/stored
        time.sleep(0.5)  # Debounce delay
        
    time.sleep(0.1)  # Small delay to prevent CPU overload

Technical Checkpoints:

  • Students have created functional prototypes that integrate mechanical components with the Smart Servo
  • Teams have implemented enhanced programming with LED feedback and smooth movement
  • Students have prepared digital designs for key components

Application Checkpoints:

  • Prototypes demonstrate thoughtful solutions to the specific challenges faced by Ahmed
  • Students can explain how their design decisions relate to user needs
  • Teams have integrated feedback from testing into their refined designs
Connections to Standards Connections to CAD Skills Connections to HCD Skills
STEL 4K: Examine positive and negative effects of technology CAD 1.2: Design Process - Following structured design processes HCD Skill #1: Problem Framing - Analyzing situations from multiple perspectives
STEL 3F: Apply a product, system or process from one setting to another CAD 2.1: Freehand Sketching - Quick visualization of ideas HCD Skill #6: Stakeholder Dialogue - Gathering requirements

5. EVALUATE

How well does our final solution meet Ahmed's needs, and what have we learned about designing assistive technology?

Assessment Criteria

  1. Functional Performance:
    • Does the solution reliably lower and raise sports equipment?
    • Is the device safe and stable during operation?
    • Can the system handle the weight of typical sports equipment?
  2. User Experience:
    • Can someone with limited grip strength easily operate the device?
    • Does the solution provide clear feedback about its current state?
    • Is the device intuitive to use without extensive instructions?
  3. Design Process Documentation:
    • How well did teams document their design process?
    • Did students demonstrate iterative improvement based on testing?
    • Can students articulate the rationale behind their design decisions?
  4. Technical Implementation:
    • How effectively did students integrate mechanical and electronic components?
    • Does the code demonstrate understanding of key programming concepts?
    • Is the solution reliable and robust in operation?

Assessment Rubric

Criteria Level 1 Level 2 Level 3 Level 4
Understanding User Needs Basic understanding of Ahmed's challenges with limited connection to design Clear understanding of Ahmed's needs with some connection to design features Thorough understanding of Ahmed's needs with evident connections to multiple design features Comprehensive understanding of Ahmed's needs with innovative solutions directly addressing specific challenges
Mechanical Design Simple design with limited functionality; may not reliably move equipment Functional design that moves equipment but with some stability or safety concerns Well-designed system that reliably and safely moves equipment with good stability Exceptional design with optimized mechanical advantage, excellent stability, and thoughtful safety features
Programming Implementation Basic program with limited functionality; minimal error handling Functional program with basic button control and some feedback Well-structured program with reliable control, appropriate feedback, and basic error handling Advanced program with smooth motion control, comprehensive feedback, robust error handling, and efficient code organization
Documentation and Process Minimal documentation of process; limited evidence of iteration Basic documentation showing some testing and refinement Thorough documentation demonstrating clear iterative process with testing results Exceptional documentation showing comprehensive testing, multiple iterations, and thoughtful analysis of design decisions
Presentation and Communication Basic explanation of solution with limited connection to user needs Clear explanation of solution with some connection to specific user needs Thorough explanation with specific examples of how the design addresses user needs Compelling presentation that demonstrates deep understanding of assistive technology principles and specific user-centered design decisions