ACCESSIBLE TRANSPORTATION INTERFACE

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

MATERIALS NEEDED

1. ENGAGE

How can we design assistive technology that balances functionality, portability, and user experience to enhance independence?

Activity: "Transportation Button Mapping"

  1. 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
  2. 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:

Understanding Checkpoints:

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"

  1. 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
  2. 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:

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:

  1. 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
  2. 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
  3. 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"

  1. 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
  2. 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"

  1. 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
  2. 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
  3. 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:

  1. Solution Effectiveness:
    • Demonstrated ability to activate various button types
    • Adaptability to different environments
    • Ease of use for the target client
    • Portability and setup considerations
  2. Engineering Quality:
    • Design optimization for 3D printing
    • Code efficiency and elegance
    • Mechanical reliability and durability
    • Power management and battery life
  3. 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)
  4. 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