ACCESSIBLE TRANSPORTATION INTERFACE
OVERVIEW
This lesson guides advanced high school engineering students through developing an assistive technology device that helps individuals with muscular dystrophy interact with public transportation systems. Using human-centered design principles and the smart servo platform, students will create a portable, customizable button-pushing system that can be used to request stops, open doors, or activate other public transit features. This capstone project integrates digital design, physical computing, and precision fabrication while addressing a real community need.
Client Profile
Name | About Me | My Challenge |
---|---|---|
Priya, 34 | I have muscular dystrophy which limits my arm strength and range of motion. I'm a software developer who frequently uses public transportation to commute to work and attend community events. I value my independence but find interacting with transit systems physically challenging. | I struggle to press buttons on buses, trains, and at transit stations. Many buttons require significant force or are positioned at angles that are difficult for me to reach. I need a reliable, portable solution that can help me easily activate various types of buttons I encounter during my daily commute. |
Learning Objectives
- Apply human-centered design principles to develop an assistive technology solution for a specific client need
- Integrate smart servo technology with complementary structural components to create a functional device
- Implement programming techniques to control precise servo movements based on user input
- Design for durability, portability, and effectiveness in varied real-world environments
- Document and present design decisions, engineering process, and solution effectiveness
MATERIALS NEEDED
- Smart Servo units (1 per 2-3 students)
- Programmer's Kits and Designer's Kits
- USB C Programming Cables
- Assistive input devices (AT Test Buttons, Jelly Bean Buttons)
- LocLine flexible connectors and 10mm framing pieces
- Bearings (605ZZ) and M5 screws/fasteners
- 3D printer and PLA filament
- OnShape CAD software
- Circuit Python development environment
- Project documentation materials
- Multi-surface testing station (simulating different button types)
1. ENGAGE
How can we design assistive technology that balances functionality, portability, and user experience to enhance independence?
Activity: "Transportation Button Mapping"
- Public Transit Challenge:
- Watch video interviews of individuals with mobility limitations discussing public transportation challenges
- In teams, discuss and list types of buttons found on public transit (emergency intercoms, stop requests, door controls)
- Research ADA requirements for public transportation controls
- Button Force Analysis:
- Using force gauges, measure activation force required for various types of buttons
- Document button characteristics including size, position, resistance, and activation feedback
- Create a "button profile database" categorizing different types of transit controls
Example code for measuring and logging button forces
import time import board from analogio import AnalogIn from digitalio import DigitalInOut, Direction # Setup force sensor on analog pin force_sensor = AnalogIn(board.A1) led = DigitalInOut(board.LED) led.direction = Direction.OUTPUT def get_force_reading(): # Convert analog reading to force measurement # This is a simplified example - actual conversion depends on sensor reading = force_sensor.value force = reading * 0.01 # Example conversion factor return force # Take 10 measurements for i in range(10): force = get_force_reading() print(f"Reading {i+1}: Force = {force:.2f} N") # Flash LED to indicate measurement taken led.value = True time.sleep(0.1) led.value = False time.sleep(0.9)
Checkpoints & Assessment
Technical Checkpoints:
- Completed database of at least 5 different types of transit buttons with force measurements
- Identified range of forces (minimum and maximum) needed for actuation in target environment
Understanding Checkpoints:
- Documented insights about how button design impacts accessibility
- Identified specific challenges faced by individuals with muscular dystrophy when interacting with public transportation
Connections
Connections to Standards | Connections to CAD Skills | Connections to HCD Skills |
---|---|---|
STEL 1Q: Conduct research for intentional inventions addressing specific needs | CAD 1.3: Documentation - Creating and maintaining technical documentation | HCD #1: Problem Framing - Analyzing situations from multiple perspectives |
STEL 4S: Develop solutions with minimal negative environmental and social impact | CAD 2.1: Freehand Sketching - Quick visualization of ideas | HCD #6: Stakeholder Dialogue - Gathering requirements and incorporating diverse feedback |
2. EXPLORE
What are the technical capabilities and limitations of the smart servo platform when applied to assistive button-pushing applications?
Activity: "Servo Force Testing Lab"
- Setup:
- Assemble test rig with smart servo mounted on adjustable stand
- Attach various end effectors (soft tip, wide pad, narrow tip) to servo arm
- Configure force sensors to measure output force at different servo positions
- Process:
- Program servo to apply graduated force levels
- Test range of motion required for different button types
- Document maximum sustainable force without compromising servo longevity
- Experiment with different control algorithms (direct press, lever action, etc.)
Servo force calibration example
import time import board import pwmio import servo from digitalio import DigitalInOut, Direction, Pull # Setup servo pwm = pwmio.PWMOut(board.A2, duty_cycle=2 ** 15, frequency=50) my_servo = servo.Servo(pwm) # Setup control button button = DigitalInOut(board.D2) button.direction = Direction.INPUT button.pull = Pull.UP # Force application profiles def gentle_press(): # Gradual movement for sensitive buttons for angle in range(0, 45, 3): my_servo.angle = angle time.sleep(0.05) time.sleep(0.5) for angle in range(45, 0, -3): my_servo.angle = angle time.sleep(0.05) def firm_press(): # Quicker, stronger movement for resistant buttons my_servo.angle = 0 time.sleep(0.5) my_servo.angle = 60 time.sleep(1.0) my_servo.angle = 0 # Main loop while True: if not button.value: # Button pressed print("Gentle press...") gentle_press() time.sleep(1) print("Firm press...") firm_press() time.sleep(3)
Checkpoints & Assessment
Technical Checkpoints:
- Determined maximum safe force output of servo with different attachments
- Tested servo durability under repeated activation (100+ cycles)
- Created at least two different force application profiles in code
- Documented power consumption under various load conditions
3. EXPLAIN
How can we balance mechanical advantage, power efficiency, and user experience in assistive device design?
Key Concepts
The effectiveness of an assistive button-pushing device depends on several interconnected factors:
- Mechanical Design Considerations:
- Leverage principles provide mechanical advantage for force amplification
- Material selection impacts durability and user comfort
- Mounting solutions must accommodate diverse environments
- Portability requires balancing size, weight, and functionality
- Programming for Adaptability:
- Different buttons require different actuation profiles
- User input methods must match client capabilities
- Feedback systems improve user confidence and device reliability
- Power management extends battery life for real-world use
- Human-Centered Design Principles:
- Solutions must consider client's full journey, not just technical function
- Social acceptability impacts adoption and consistent use
- Device visibility has implications for user identity and preferences
- Setup and maintenance requirements affect long-term usability
Activity: "Design Requirement Specification"
- Working from client interview data and exploration findings, develop a comprehensive design requirements document that includes:
- Required force output range and adjustability
- Size and weight constraints
- Battery life specifications
- User interface requirements
- Environmental considerations (weather, vibration, public use)
- Accessibility considerations for the device itself
- Create a design evaluation matrix with weighted criteria based on client priorities
Understanding Checkpoints:
- Completed design requirements document with measurable specifications
- Developed evaluation matrix with appropriate weighting of criteria
- Identified potential technical challenges and proposed mitigation strategies
- Connected client needs to specific technical requirements
4. ELABORATE
How can we optimize our design for real-world conditions while maintaining adaptability for different users and environments?
Extension Activity: "Multi-Environment Prototype Development"
- Design Development:
- Create CAD models of button-pusher components optimized for 3D printing
- Design and prototype multiple attachment methods for different surfaces
- Develop mounting solutions that accommodate various user positions
- Implementation:
- Program smart servo with multiple actuation profiles selectable by user
- Incorporate visual feedback via Neopixel to indicate mode and status
- Implement power-saving features for extended battery life
- Create quick-connect system for changing end effectors
- Field Testing Protocol:
- Develop testing protocol for evaluating device in simulated transit environments
- Create documentation for tracking performance metrics across different scenarios
- Design user feedback forms to capture qualitative experience data
Advanced Button Pusher with Multiple Modes and Feedback
# Advanced button pusher with multiple modes and feedback import time import board import pwmio import servo import neopixel from digitalio import DigitalInOut, Direction, Pull # Setup servo pwm = pwmio.PWMOut(board.A2, duty_cycle=2 ** 15, frequency=50) my_servo = servo.Servo(pwm) # Setup mode switch mode_switch = DigitalInOut(board.D2) mode_switch.direction = Direction.INPUT mode_switch.pull = Pull.UP # Setup activation button activate_button = DigitalInOut(board.D3) activate_button.direction = Direction.INPUT activate_button.pull = Pull.UP # Setup Neopixel for feedback pixel = neopixel.NeoPixel(board.NEOPIXEL, 1, brightness=0.2) # Define operation modes GENTLE = 0 MEDIUM = 1 FIRM = 2 current_mode = GENTLE # Mode colors MODE_COLORS = [ (0, 100, 0), # Green for gentle (100, 100, 0), # Yellow for medium (100, 0, 0) # Red for firm ] # Button pressing functions def press_button(mode): if mode == GENTLE: pixel.fill((0, 255, 0)) # Bright green during operation for angle in range(0, 30, 2): my_servo.angle = angle time.sleep(0.03) time.sleep(0.5) for angle in range(30, 0, -2): my_servo.angle = angle time.sleep(0.03) elif mode == MEDIUM: pixel.fill((255, 255, 0)) # Bright yellow during operation for angle in range(0, 45, 3): my_servo.angle = angle time.sleep(0.02) time.sleep(0.7) for angle in range(45, 0, -3): my_servo.angle = angle time.sleep(0.02) else: # FIRM pixel.fill((255, 0, 0)) # Bright red during operation my_servo.angle = 0 time.sleep(0.2) my_servo.angle = 60 time.sleep(0.8) my_servo.angle = 0 # Return to mode indicator color pixel.fill(MODE_COLORS[current_mode]) # Main loop last_mode_switch_state = True pixel.fill(MODE_COLORS[current_mode]) # Initial mode indicator while True: # Check for mode change if mode_switch.value != last_mode_switch_state and not mode_switch.value: current_mode = (current_mode + 1) % 3 pixel.fill(MODE_COLORS[current_mode]) print(f"Mode changed to: {['GENTLE', 'MEDIUM', 'FIRM'][current_mode]}") time.sleep(0.2) # Debounce last_mode_switch_state = mode_switch.value # Check for activation if not activate_button.value: press_button(current_mode) time.sleep(0.3) # Prevent multiple activations
Application Checkpoints:
- Completed CAD design with printable files for all components
- Functioning prototype with at least three selectable force profiles
- Implemented power management features for extended runtime
- Created client-appropriate documentation for device operation
- Conducted simulated field testing in at least three different environments
5. EVALUATE
How effectively does our solution address the client's needs while demonstrating engineering excellence and human-centered design principles?
Assessment Criteria
Students will present their final designs to a panel simulating the PLTW Capstone presentation format. Assessment will focus on:
- Solution Effectiveness:
- Demonstrated ability to activate various button types
- Adaptability to different environments
- Ease of use for the target client
- Portability and setup considerations
- Engineering Quality:
- Design optimization for 3D printing
- Code efficiency and elegance
- Mechanical reliability and durability
- Power management and battery life
- Human-Centered Design Application:
- Evidence of empathy-based design decisions
- Consideration of client's full experience
- Aesthetics and social acceptability
- Attention to secondary user needs (caregivers, maintenance)
- Documentation and Presentation:
- Clear communication of design rationale
- Complete technical documentation
- Evidence-based evaluation of solution effectiveness
- Professional presentation style and materials
Assessment Rubric
Criteria | Level 1 | Level 2 | Level 3 | Level 4 |
---|---|---|---|---|
Technical Functionality | Device operates inconsistently or requires frequent adjustment | Device operates consistently in controlled environments with limited button types | Device operates reliably across multiple environments and button types | Device exceeds requirements with innovative features addressing unanticipated needs |
Design Process | Limited evidence of systematic design approach; minimal iterations | Clear design process with some evidence of testing and refinement | Comprehensive design process with multiple iterations based on testing data | Exceptional design process demonstrating sophisticated problem-solving and innovation |
Human-Centered Focus | Solutions prioritize technical function over user experience | Solutions balance technical function with basic user experience considerations | Solutions demonstrate deep understanding of client needs integrated with technical excellence | Solutions transform user experience through innovative integration of technical and human factors |
Documentation & Communication | Basic documentation of process and outcomes | Complete documentation with clear explanations of key decisions | Comprehensive documentation with evidence-based analysis of effectiveness | Professional-quality documentation suitable for external stakeholders |