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
- Apply the human-centered design process to create an assistive technology solution for a specific user
- Program a Smart Servo to control movement based on button input
- Design and build a functional mechanical system that transforms rotary motion into linear or angular displacement
- Test and iterate a design based on user feedback and technical performance criteria
- Explain how technology can be used to solve real-world accessibility challenges
MATERIALS NEEDED
- Smart Servo units (1 per 2-3 students)
- Assorted AT buttons for testing different input methods
- Laptops/computers with Circuit Python
- USB-C programming cables
- LocLine flexible connectors
- 10mm framing pieces
- M5 screws and fasteners
- Allen wrenches and LocLine pliers
- Cardboard, craft sticks, and recycled materials for prototyping
- Hot glue guns and glue sticks
- Access to 3D printer (Bambu Lab A1 Mini recommended)
- PLA filament in various colors
- OnShape CAD software (classroom license)
- Meter sticks or measuring tapes
- Safety glasses
1. ENGAGE
How can we use technology to make everyday objects more accessible for people with different physical abilities?
Activity: "Accessibility Challenge"
- 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
- 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
- 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:
- Students can identify the basic functions of the Smart Servo (movement, power requirements, control methods)
- Students understand how to run a simple program on the Smart Servo
Understanding Checkpoints:
- Students can describe the challenges faced by someone with limited grip strength
- Students can articulate at least two ways the Smart Servo might help with Ahmed's equipment accessibility
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"
- 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
- Set up different stations with various simple mechanisms:
- 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:
- Students can modify the servo control code to change positions and timing
- Students can identify and explain at least two ways to transform rotary motion into linear motion
- Students can implement button control for the servo
Understanding Checkpoints:
- Students can explain the advantages and limitations of different mechanical systems
- Students can relate their mechanism experiments to Ahmed's specific needs
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
- Load Considerations: Understanding weight limits of the servo (13 Kg-cm torque)
- Mechanical Advantage: Using levers, pulleys, or gears to amplify force
- Safety Factors: Ensuring equipment doesn't fall or move unexpectedly
- Ergonomics: Positioning equipment at the right height for Ahmed's reach
Programming Concepts
- State Management: Tracking the current position of the system
- Input Debouncing: Preventing multiple triggers from a single button press
- Conditional Logic: Making decisions based on input and current state
Human-Centered Design Considerations
- User Needs Analysis: Translating Ahmed's challenges into design requirements
- Accessibility Features: Making controls easy to use with limited grip strength
- Visual Feedback: Using the Neopixel LED to indicate system status
- Customization: Allowing for adjustments based on user preference
Activity: "Design Requirements Workshop"
- 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
- 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
- Students translate client needs into measurable technical specifications:
- 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"
- 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
- User Testing Simulation:
- Students test their prototypes wearing the grip-limiting gloves
- Teams document observations and user feedback
- Students identify areas for improvement
- 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
- 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
- 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?
- 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?
- 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?
- 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 |