TYRELL'S TOOL GRIP STABILIZER

TYRELL'S TOOL GRIP STABILIZER

OVERVIEW

This engineering lesson challenges experienced 11-12th grade students to design and build a tool grip stabilizer for Tyrell, a 45-year-old professional who experiences hand tremors following an accident. Through the 5E model (Engage, Explore, Explain, Elaborate, Evaluate), students will apply human-centered design principles to develop a solution that helps Tyrell perform precision work despite his tremors. The project integrates engineering standards, CAD skills, and programming while emphasizing empathy and iterative design.

Client Profile

Name About Me My Challenge
Tyrell, 45 I'm a skilled machinist who has worked in manufacturing for over 20 years. After a car accident three years ago, I developed hand tremors that vary in intensity throughout the day. I love my work and want to continue my career, but the tremors make precision tasks challenging. When I need to perform detailed work with small tools or components, my hand tremors make it difficult to maintain the steady grip and precision required. I need a solution that can help stabilize my hand or tool during fine detail work without completely taking away my control.

Learning Objectives

MATERIALS NEEDED

1. ENGAGE

How can technology be designed to adapt to human variability rather than requiring humans to adapt to technology?

Activity: "Experiencing Tremors"

  1. Simulation Experience:
    • Students wear weighted gloves designed to simulate hand tremors
    • Working in pairs, students attempt precision tasks such as:
      • Threading a needle
      • Placing small components on a circuit board
      • Using calipers to measure small objects
      • Drawing a straight line or precise shape
    • Students document challenges faced and strategies attempted
  2. Client Introduction:
    • Introduce Tyrell's profile and specific challenges
    • Discuss various causes of tremors and how they affect different professions
    • Watch video interviews with people experiencing similar challenges (if available)
    • Analyze existing solutions and their limitations
  3. Engineering Challenge Framing:
    • Present the core challenge: designing a tool grip stabilizer that:
      • Actively counteracts unpredictable tremor movements
      • Allows intentional movements for precision work
      • Is customizable for different tools and tasks
      • Maintains user dignity and independence
    • Discuss the technical capabilities of the Smart Servo platform that might apply

Example code showing basic servo control that students will build upon

import time
import board
import pwmio
import servo

pwm = pwmio.PWMOut(board.A2, duty_cycle=2 ** 15, frequency=50)
my_servo = servo.Servo(pwm)

# Demonstrate smooth movement
while True:
    for angle in range(0, 180, 5):  # 0 to 180 degrees in steps of 5
        my_servo.angle = angle
        time.sleep(0.05)
    for angle in range(180, 0, -5):  # 180 to 0 degrees in steps of 5
        my_servo.angle = angle
        time.sleep(0.05)

Checkpoints & Assessment

Technical Checkpoints:

Understanding Checkpoints:

Connections

Connections to Standards Connections to CAD Skills Connections to HCD Skills
STEL 1R: Develop plans incorporating multiple disciplines to design or improve systems CAD 2.4: Geometric Analysis - Understanding spatial constraints and relationships HCD Skill #1: Problem Framing - Analyzing situations from multiple perspectives
STEL 4S: Develop solutions with minimal negative environmental and social impact CAD 3.3: Assembly Modeling - Creating assemblies with constraints HCD Skill #6: Stakeholder Dialogue - Gathering requirements and incorporating diverse feedback
STEL 4T: Evaluate how technologies alter human health and capabilities CAD 4.1: Manufacturing Awareness - Understanding processes and limitations HCD Skill #4: Risk Assessment - Anticipating potential problems considering technical and human factors

2. EXPLORE

How can we detect the difference between intentional movements and unintended tremors?

Activity: "Motion Analysis and Servo Response"

  1. Setup Motion Detection:
    • Teams set up accelerometers connected to the Smart Servo's input
    • Record and analyze motion patterns:
      • Intentional movements (slow, deliberate, directional)
      • Simulated tremors (rapid, multi-directional, varying amplitude)
    • Use data logging to capture and visualize movement differences
  2. Servo Response Experimentation:
    • Program the Smart Servo to respond differently to various inputs:
      • Immediate response to rapid changes (potential tremors)
      • Gradual response to sustained directional movement
    • Test response thresholds and timing
    • Document findings on servo behavior for different input patterns

Sample code for detecting rapid movements vs. intentional movements

import time
import board
import analogio
import pwmio
import servo
import neopixel

# Setup accelerometer on analog pin
accelerometer = analogio.AnalogIn(board.A0)

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

# Setup neopixel for visual feedback
pixel = neopixel.NeoPixel(board.NEOPIXEL, 1)

# Variables for movement detection
previous_reading = 0
movement_threshold = 1000  # Adjust based on testing
rapid_change_count = 0

while True:
    current_reading = accelerometer.value
    
    # Calculate change from previous reading
    change = abs(current_reading - previous_reading)
    
    # Detect rapid changes (potential tremors)
    if change > movement_threshold:
        rapid_change_count += 1
        pixel.fill((255, 0, 0))  # Red indicates detected tremor
    else:
        if rapid_change_count > 0:
            rapid_change_count -= 1
        pixel.fill((0, 255, 0))  # Green indicates stable
    
    # Apply dampening if tremor detected
    if rapid_change_count > 5:
        # Hold servo in stable position
        my_servo.angle = 90
    else:
        # Allow movement based on position (simplified)
        position = accelerometer.value // 182  # Scale to 0-180
        my_servo.angle = position
    
    previous_reading = current_reading
    time.sleep(0.05)
  1. Mechanical Concepts Exploration:
    • Experiment with different mechanical systems to counteract tremors:
      • Inertial dampening (adding strategic weight)
      • Flexible mounting (using LocLine with varying rigidity)
      • Counterbalancing mechanisms
    • Create quick prototypes to test each approach
    • Document effectiveness of each approach

Checkpoints & Assessment

Technical Checkpoints:

Understanding Checkpoints:

3. EXPLAIN

What engineering principles allow us to selectively counteract undesired movements while preserving desired ones?

Key Concepts

Tremor Characteristics and Detection

Servo Control Principles

Mechanical Design Considerations

Activity: "Engineering Analysis Workshop"

  1. Case Study Analysis:
    • Examine existing tremor-reduction technologies:
      • Weighted utensils (passive mechanical approach)
      • Gyroscopic stabilizers (active mechanical approach)
      • Electronic tremor cancellation devices (sensor-based)
    • Analyze strengths and limitations of each approach
    • Connect these solutions to engineering principles
  2. System Design Mapping:
    • Teams create system diagrams showing:
      • Input methods (sensors, buttons, switches)
      • Processing requirements (filtering, pattern detection)
      • Output mechanisms (servo movement patterns)
      • Mechanical design elements
    • Annotate diagrams with engineering principles that support design decisions

Understanding Checkpoints:

  • Students can explain the engineering principles behind effective tremor reduction
  • Students can differentiate between passive and active stabilization approaches
  • Students can create comprehensive system diagrams with appropriate annotations
  • Students can justify design decisions using engineering terminology and principles

4. ELABORATE

How can we design a solution that addresses Tyrell's specific needs while being adaptable to different tools and varying tremor conditions?

Extension Activity: "Integrated System Development"

  1. CAD Design Integration:
    • Design custom housing and mounting system in OnShape
    • Incorporate attachment mechanisms for various tool types
    • Design ergonomic considerations based on anthropometric data
    • Create assembly models showing all components and movement paths
  2. Advanced Programming Development:
    • Implement adaptive algorithms that learn and respond to user's specific tremor patterns
    • Create user customization options (sensitivity, response time, stabilization level)
    • Add visual feedback using Neopixel LED to indicate system status
    • Develop power optimization for extended use

Advanced Code Example with User Customization and Mode Selection

import time
import board
import analogio
import digitalio
import pwmio
import servo
import neopixel
import array
import math

# Setup hardware
accelerometer = analogio.AnalogIn(board.A0)
mode_button = digitalio.DigitalInOut(board.D2)
mode_button.direction = digitalio.Direction.INPUT
mode_button.pull = digitalio.Pull.UP

pwm = pwmio.PWMOut(board.A2, duty_cycle=2 ** 15, frequency=50)
my_servo = servo.Servo(pwm)
pixel = neopixel.NeoPixel(board.NEOPIXEL, 1)

# Configuration variables
sensitivity_levels = [500, 1000, 2000]  # Low, Medium, High thresholds
current_sensitivity = 1  # Default to medium
stabilization_modes = ["off", "adaptive", "locked"]
current_mode = 1  # Default to adaptive
history_buffer_size = 20
reading_history = array.array('H', [32767] * history_buffer_size)
last_button_state = True
button_debounce_time = 0

# Colors for different modes
mode_colors = [(0, 0, 0), (0, 64, 255), (255, 64, 0)]  # Off, Adaptive, Locked

def calculate_average(buffer):
    return sum(buffer) // len(buffer)

def calculate_variance(buffer, average):
    sum_squares = sum([(x - average) ** 2 for x in buffer])
    return sum_squares // len(buffer)

while True:
    current_time = time.monotonic()
    
    # Button handling for mode changes
    button_state = mode_button.value
    if not button_state and last_button_state and current_time - button_debounce_time > 0.3:
        button_debounce_time = current_time
        current_mode = (current_mode + 1) % len(stabilization_modes)
        pixel.fill(mode_colors[current_mode])
    last_button_state = button_state
    
    # Shift new reading into history buffer
    reading_history.pop(0)
    reading_history.append(accelerometer.value)
    
    # Calculate statistics
    avg = calculate_average(reading_history)
    variance = calculate_variance(reading_history, avg)
    
    # Determine if tremor is present
    tremor_detected = variance > sensitivity_levels[current_sensitivity]
    
    # Apply appropriate stabilization based on mode
    if stabilization_modes[current_mode] == "off":
        # Pass through movement directly
        position = (accelerometer.value // 182)  # Scale to 0-180
        my_servo.angle = position
        
    elif stabilization_modes[current_mode] == "adaptive":
        if tremor_detected:
            # Use moving average for smoothing during tremors
            position = avg // 182
            my_servo.angle = position
            # Pulse the LED to indicate active stabilization
            intensity = int((math.sin(current_time * 10) + 1) * 127)
            pixel.fill((0, intensity, 255-intensity))
        else:
            # Direct response when no tremor detected
            position = accelerometer.value // 182
            my_servo.angle = position
            pixel.fill(mode_colors[current_mode])
            
    elif stabilization_modes[current_mode] == "locked":
        if tremor_detected:
            # Hold position steady during tremors
            pass  # Maintain last position
        else:
            # Only update position when steady
            position = accelerometer.value // 182
            my_servo.angle = position
    
    time.sleep(0.05)
            
  1. Usability Enhancement:
    • Develop customizable grip interfaces (3D printed with varying materials)
    • Design quick-change tool attachments for different scenarios
    • Create adjustable settings for different tremor severities
    • Add battery management for extended use

Application Checkpoints:

  • Students have created detailed CAD models for all system components
  • Students have implemented advanced programming with multiple stabilization modes
  • Students have designed a complete solution addressing all of Tyrell's requirements
  • Students can explain trade-offs made during the design process

5. EVALUATE

How effectively does our solution improve Tyrell's ability to perform precision work, and how can we measure this improvement?

Assessment Criteria

Students will evaluate their solutions through:

1. Quantitative Performance Testing:

2. Qualitative Assessment:

3. Engineering Documentation:

Assessment Rubric

Criteria Level 1 Level 2 Level 3 Level 4
Tremor Reduction Effectiveness Device provides minimal stabilization with limited improvement in precision Device provides moderate stabilization with noticeable improvement in precision Device provides significant stabilization with substantial improvement in precision Device provides exceptional stabilization with transformative improvement in precision
User Control and Adaptation System is rigid with limited adaptability to user needs System offers basic adaptability with manual adjustments System offers multiple modes and settings for different tasks System intelligently adapts to user patterns and provides optimal support for each task
Engineering Implementation Basic implementation with limited integration of mechanical, electronic, and software elements Functional implementation with adequate integration of system elements Refined implementation with well-integrated system elements and attention to detail Sophisticated implementation with seamless integration and innovative approaches to system challenges
Human-Centered Design Basic consideration of user needs with limited evidence of empathic design Adequate consideration of user needs with some evidence of empathic design Thorough consideration of user needs with strong evidence of empathic design Exceptional consideration of user needs with compelling evidence of empathic design that preserves dignity and independence
Documentation and Communication Basic documentation with minimal explanation of design decisions Adequate documentation with explanations of key design decisions Comprehensive documentation with clear explanations of all design decisions Exceptional documentation with insightful explanations of design decisions and future improvement opportunities