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
- Apply human-centered design principles to develop an assistive technology solution for a specific user need
- Design and fabricate a mechanical system that integrates with the Smart Servo to dampen unwanted movements
- Program the Smart Servo to detect and respond to tremor patterns using appropriate sensors
- Evaluate design effectiveness through quantitative measurements and user feedback
- Document the engineering process comprehensively, including design rationale and decision-making
MATERIALS NEEDED
- Smart Servo units (3 per team)
- Programmer's Kit with USB C cables
- Designer's Kit with LocLine flexible connectors
- Various assistive input devices (AT Test Buttons, Jelly Bean Buttons)
- Structure components (10mm framing pieces, bearings (605ZZ), M5 screws)
- Tools (M5 bits, Allen wrenches, LocLine pliers)
- 3D printer and PLA filament
- OnShape CAD software (free classroom license)
- Accelerometer sensors (for tremor detection)
- Foam padding and ergonomic grip materials
- Weight testing equipment (precision scales, gram weights)
- Video recording equipment for motion analysis
1. ENGAGE
How can technology be designed to adapt to human variability rather than requiring humans to adapt to technology?
Activity: "Experiencing Tremors"
- 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
- 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
- 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
- Present the core challenge: designing a tool grip stabilizer that:
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:
- Students can identify Smart Servo capabilities relevant to tremor compensation
- Students can explain the relationship between servo position, speed, and power
Understanding Checkpoints:
- Students can articulate Tyrell's specific needs based on his profile
- Students can describe how hand tremors differ from intentional movements
- Students can identify at least three design considerations for assistive technology
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"
- 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
- 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
- Program the Smart Servo to respond differently to various inputs:
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)
- 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
- Experiment with different mechanical systems to counteract tremors:
Checkpoints & Assessment
Technical Checkpoints:
- Students can collect and analyze motion data to differentiate patterns
- Students can program the Smart Servo to respond differently to different motion patterns
- Students can create at least two different mechanical systems for tremor reduction
Understanding Checkpoints:
- Students can explain the trade-offs between stability and controllability
- Students can identify which design approaches might best suit Tyrell's specific needs
- Students can articulate how servo timing and response affect user experience
3. EXPLAIN
What engineering principles allow us to selectively counteract undesired movements while preserving desired ones?
Key Concepts
Tremor Characteristics and Detection
- Tremors typically occur at frequencies between 4-12 Hz
- Intentional movements usually occur below 4 Hz
- Digital filtering can separate these signals
- Accelerometers detect acceleration in multiple axes, allowing for pattern recognition
Servo Control Principles
- Torque requirements for counteracting hand tremors
- PID control for appropriate response (Proportional-Integral-Derivative)
- Response time limitations and considerations
- Power consumption vs. performance trade-offs
Mechanical Design Considerations
- Ergonomics and user comfort
- Tool attachment mechanisms and quick-change capabilities
- Weight distribution and balance
- Material selection for durability and user acceptance
Activity: "Engineering Analysis Workshop"
- 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
- Examine existing tremor-reduction technologies:
- 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
- Teams create system diagrams showing:
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"
- 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
- 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)
- 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:
- Measure tremor reduction effectiveness using accelerometer data
- Time trials for completing precision tasks with and without the device
- Error rate comparison in precision placement tasks
- Battery life and system endurance testing
2. Qualitative Assessment:
- User comfort and ergonomics evaluation
- Ease of setup and configuration
- Tool compatibility and transition time
- Overall user experience and dignity preservation
3. Engineering Documentation:
- Complete system documentation including:
- CAD files and technical drawings
- Code with thorough comments
- Bill of materials with sourcing information
- Assembly and user instructions
- Maintenance and troubleshooting guides
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 |