KAI'S CAMERA TRIPOD REMOTE ADJUSTER

KAI'S CAMERA TRIPOD REMOTE ADJUSTER

OVERVIEW

This lesson challenges 9th-10th grade experienced engineering students to design and build a camera tripod remote adjuster for Kai, a 16-year-old with a brachial plexus injury. Using the Smart Servo platform, students will follow the human-centered design process to create a solution that allows Kai to make precise adjustments to his camera setup despite limited arm mobility. Throughout the lesson, students will integrate engineering principles, CAD skills, and programming concepts while developing their ability to design for real human needs.

Client Profile

Name About Me My Challenge
Kai, 16 I'm a high school junior who loves photography and filmmaking. I have a brachial plexus injury from a motorcycle accident last year that limits the mobility and strength in my right arm and shoulder. Despite this, I'm determined to continue pursuing my passion for visual storytelling. When setting up shots with my DSLR camera on a tripod, I struggle with making precise adjustments, especially when I need to change camera angles during filming. The standard tripod controls require fine motor control and strength that's difficult with my injury. I need a way to make smooth, controlled adjustments to my camera position without straining my affected arm.

Learning Objectives

MATERIALS NEEDED

1. ENGAGE

How might we create assistive devices that enable people with physical limitations to pursue their creative passions?

Activity: "Experiencing Limited Mobility"

  1. Simulation Exercise:
    • Students work in pairs, with one student wearing an arm restriction (like an arm sling or mobility-limiting sleeve)
    • The restricted student attempts to set up and adjust a camera tripod following a specific shot list
    • The observing partner takes notes on specific challenges and pain points
  2. Introduction to Kai's Challenge:
    • Present Kai's profile and specific needs
    • Show video examples of standard tripod operation
    • Discuss how brachial plexus injuries affect movement and strength
    • Highlight the importance of precise control for photography/videography
  3. Smart Servo Introduction:
    • Review the capabilities of the Smart Servo platform
    • Demonstrate how servo motors can provide controlled rotational movement
    • Explore different input methods that could be appropriate for Kai

Demo: Basic servo position control

import time
import board
import pwmio
import servo

# Create PWM output for the servo
pwm = pwmio.PWMOut(board.A2, duty_cycle=2 ** 15, frequency=50)
my_servo = servo.Servo(pwm)

# Move servo to different positions
while True:
    # Neutral position
    my_servo.angle = 90
    time.sleep(2)
    # 15 degrees left
    my_servo.angle = 75
    time.sleep(2)
    # 15 degrees right
    my_servo.angle = 105
    time.sleep(2)

Technical Checkpoints:

Understanding Checkpoints:

Connections

Connections to Standards Connections to CAD Skills Connections to HCD Skills
STEL 4S: Develop solutions with minimal negative environmental and social impact CAD 2.3: Advanced Visualization - Complex views including sections HCD #1: Problem Framing - Analyzing situations from multiple perspectives
STEL 7Z: Apply principles of human-centered design CAD 1.2: Design Process - Following structured design processes HCD #6: Stakeholder Dialogue - Gathering requirements and incorporating diverse feedback

2. EXPLORE

What are the specific movement requirements for effective camera tripod control, and how can we translate servo motion to meet these needs?

Activity: "Movement Analysis and Input Exploration"

  1. Tripod Movement Analysis:
    • Teams analyze tripod mechanism movements (pan, tilt, rotation)
    • Measure and document range of motion required for each movement
    • Identify torque requirements and mechanical advantage needs
    • Create diagrams of movement axes and potential servo integration points
  2. Input Device Testing:
    • Test various input devices (buttons, switches, potentiometers)
    • Map input options to Kai's specific abilities and limitations
    • Experiment with different control schemes (toggle, proportional, incremental)
    • Document pros and cons of each approach
  3. Servo Control Programming:
    • Modify example code to test different control methods
    • Experiment with speed and position control
    • Create test program using button input to control servo movement
    • Test precision control with small increment movements

Incremental movement with button control

import time
import board
from digitalio import DigitalInOut, Direction, Pull
import pwmio
import servo

# Set up buttons
button_left = DigitalInOut(board.D0)
button_left.direction = Direction.INPUT
button_left.pull = Pull.UP

button_right = DigitalInOut(board.D1)
button_right.direction = Direction.INPUT
button_right.pull = Pull.UP

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

# Initialize position
current_angle = 90
my_servo.angle = current_angle

# Small increment value for precise control
increment = 2

while True:
    # Check left button - decrease angle
    if button_left.value == False:  # Button pressed
        current_angle = max(0, current_angle - increment)
        my_servo.angle = current_angle
        time.sleep(0.2)  # Debounce delay
        
    # Check right button - increase angle
    if button_right.value == False:  # Button pressed
        current_angle = min(180, current_angle + increment)
        my_servo.angle = current_angle
        time.sleep(0.2)  # Debounce delay

Technical Checkpoints:

Understanding Checkpoints:

3. EXPLAIN

How can we translate user needs into specific design requirements and technical specifications?

Key Concepts

Mechanical Design Considerations

Human Factors in Control Design

Programming Concepts

Activity: "Design Requirements Document"

  1. Define Performance Criteria:
    • Teams develop specific, measurable requirements for their solutions
    • Create criteria for mechanical performance (range of motion, precision, etc.)
    • Define user interface requirements based on Kai's abilities
    • Establish programming requirements for control logic
  2. Develop Initial Concepts:
    • Teams sketch at least three different mechanical approaches
    • Create simple prototype models using cardboard or foam core
    • Evaluate concepts against requirements
    • Select most promising approach for further development
  3. Technical Documentation:
    • Document technical specifications including dimensions, materials, and components
    • Create initial CAD sketches of mechanical components
    • Develop pseudocode for control logic
    • Identify potential challenges and solutions

Understanding Checkpoints:

  • Teams produce clear, specific design requirements documents
  • Students can justify design decisions based on client needs
  • Initial concept sketches show understanding of mechanical principles
  • Technical documentation includes appropriate specifications

4. ELABORATE

How can we transform our concepts into functional prototypes that meet our client's specific needs?

Extension Activity: "Prototype Development"

  1. CAD Modeling:
    • Create detailed CAD models of mechanical components using OnShape
    • Design parts for 3D printing, considering printing limitations
    • Incorporate mounting solutions for servo and tripod integration
    • Generate technical drawings for fabrication
  2. Component Fabrication:
    • 3D print designed components
    • Assemble mechanical systems with appropriate hardware
    • Integrate servo motors and control electronics
    • Test mechanical function before programming
  3. Programming Implementation:
    • Develop full control program based on pseudocode
    • Implement input handling for selected control method
    • Add visual feedback using Neopixel LED
    • Test and debug control logic

Enhanced Control with LED Feedback

# Enhanced control with LED feedback
import time
import board
from digitalio import DigitalInOut, Direction, Pull
import pwmio
import servo
import neopixel

# Set up buttons
button_left = DigitalInOut(board.D0)
button_left.direction = Direction.INPUT
button_left.pull = Pull.UP

button_right = DigitalInOut(board.D1)
button_right.direction = Direction.INPUT
button_right.pull = Pull.UP

mode_button = DigitalInOut(board.D2)
mode_button.direction = Direction.INPUT
mode_button.pull = Pull.UP

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

# Set up NeoPixel
pixel = neopixel.NeoPixel(board.NEOPIXEL, 1, brightness=0.3)

# Initialize position and mode
current_angle = 90
my_servo.angle = current_angle

# Control modes: 0 = Fine adjust (2 degrees), 1 = Medium adjust (5 degrees)
mode = 0
increments = [2, 5]  # Adjustment increments for different modes

# Colors for different modes
mode_colors = [(0, 0, 255), (0, 255, 0)]  # Blue for fine, Green for medium

# Update LED to show current mode
pixel.fill(mode_colors[mode])

last_mode_press_time = time.monotonic()
debounce_time = 0.3

while True:
    current_time = time.monotonic()
    
    # Check mode button
    if mode_button.value == False and (current_time - last_mode_press_time) > debounce_time:
        mode = (mode + 1) % len(increments)
        pixel.fill(mode_colors[mode])
        last_mode_press_time = current_time
    
    # Check left button - decrease angle
    if button_left.value == False:
        current_angle = max(0, current_angle - increments[mode])
        my_servo.angle = current_angle
        # Briefly flash LED when button pressed
        pixel.fill((255, 255, 255))
        time.sleep(0.05)
        pixel.fill(mode_colors[mode])
        time.sleep(0.15)  # Debounce delay
        
    # Check right button - increase angle
    if button_right.value == False:
        current_angle = min(180, current_angle + increments[mode])
        my_servo.angle = current_angle
        # Briefly flash LED when button pressed
        pixel.fill((255, 255, 255))
        time.sleep(0.05)
        pixel.fill(mode_colors[mode])
        time.sleep(0.15)  # Debounce delay
  1. Integration and Testing:
    • Assemble complete prototype with all components
    • Test function with actual camera tripod
    • Document performance against requirements
    • Identify areas for improvement

Application Checkpoints:

  • CAD models are properly designed for 3D printing
  • Mechanical components successfully interface with tripod and servo
  • Control program correctly implements required functionality
  • Prototype meets key performance requirements
Connections to Standards Connections to CAD Skills Connections to HCD Skills
STEL 4S: Develop solutions with minimal negative environmental and social impact CAD 2.3: Advanced Visualization - Complex views including sections HCD #1: Problem Framing - Analyzing situations from multiple perspectives
STEL 7Z: Apply principles of human-centered design CAD 1.2: Design Process - Following structured design processes HCD #6: Stakeholder Dialogue - Gathering requirements and incorporating diverse feedback

5. EVALUATE

How well does our solution meet the needs of our client, and how can we improve it?

Assessment Criteria

Students will evaluate their solutions against two primary criteria:

  1. Technical Performance: How well the device meets the specified mechanical and control requirements
  2. User Experience: How effectively the solution addresses Kai's specific needs

Activity: "User Testing Simulation"

  1. Peer Testing:
    • Teams exchange prototypes for testing by other groups
    • Testers use arm restrictions to simulate Kai's condition
    • Document ease of use, effectiveness, and areas for improvement
    • Provide constructive feedback to design teams
  2. Self-Assessment:
    • Teams evaluate their own designs against requirements
    • Document strengths and weaknesses of their approach
    • Propose specific improvements for next iteration
    • Create presentation summarizing design process and outcomes
  3. Reflection and Documentation:
    • Complete design journals documenting the entire process
    • Create user manual for the final device
    • Prepare final presentation including demonstration video
    • Discuss ethical considerations and broader applications

Assessment Rubric

Criteria Level 1 Level 2 Level 3 Level 4
Functionality Device provides basic movement but lacks precision or reliability Device functions as intended with minor limitations Device meets all functional requirements with good reliability Device exceeds functional requirements with exceptional precision and reliability
Human-Centered Design Limited consideration of user needs; minimal user testing Basic consideration of user needs; some user testing conducted Clear focus on user needs throughout design process; thorough user testing Exceptional incorporation of user needs; extensive testing with simulated conditions
Technical Implementation Basic servo control with limited programming features Functional servo control with standard programming features Well-implemented servo control with additional features like visual feedback Advanced servo control with multiple modes, adaptive features, and optimized code
Mechanical Design Basic mechanical design with limited consideration of forces and materials Functional mechanical design with adequate consideration of forces and materials Well-executed mechanical design with appropriate material selection and force management Innovative mechanical design with excellent material choices, optimized force management, and refined aesthetics
Documentation & Communication Basic documentation of process and results Clear documentation with organized presentation of process and results Comprehensive documentation with well-structured presentation of all aspects Exceptional documentation with professional-quality presentation and instructional materials

Evaluation Checkpoints:

  • Teams have thoroughly tested their prototypes with simulated conditions
  • Self-assessment documents identify specific strengths and areas for improvement
  • User manuals clearly explain how to operate and maintain the device
  • Final presentations effectively communicate the design process and decisions
  • Students can articulate how their solution addresses Kai's specific needs