NADIA'S ART SUPPLY ORGANIZER

NADIA'S ART SUPPLY ORGANIZER

OVERVIEW

This 5E lesson guides middle school students through the human-centered design process to create an art supply organizer with servo-controlled compartments for Nadia, a 13-year-old with a limb difference. Students will apply their previous Smart Servo knowledge to design, prototype, and build a functional assistive device that addresses Nadia's specific needs while strengthening their understanding of engineering design principles, programming concepts, and empathetic problem-solving.

Client Profile

Name About Me My Challenge
Nadia, 13 I was born with a partial right arm that ends just below my elbow. I love creating art, especially painting and drawing, but I sometimes struggle organizing and accessing my supplies during art class. When I'm working on an art project, I need to hold my paintbrush or pencil with my right arm and use my left hand to get new supplies. Reaching across my workspace and opening containers while holding tools is difficult, and I often have to put down what I'm working with to get new supplies, which interrupts my creative flow.

Learning Objectives

MATERIALS NEEDED

1. ENGAGE

How might we design assistive technology that enhances the creative experience for artists with limb differences?

Activity: "Understanding Nadia's Experience"

  1. Simulation Experience:
    • Students work in pairs with one partner having one arm immobilized (tucked into their shirt)
    • The "limited mobility" partner attempts to complete a simple art activity requiring organizing and using multiple supplies
    • Partners document challenges observed during the simulation
  2. Introduction to Nadia:
    • Present Nadia's profile to the class
    • Show video testimonials or case studies of artists with limb differences
    • Discuss the difference between designing FOR someone versus designing WITH someone
  3. Smart Servo Refresher:
    • Review the basic capabilities of the Smart Servo platform
    • Demonstrate a simple program that moves the servo to different positions based on button presses

Basic Servo Position Control

# Basic Servo Position Control
import time
import board
import pwmio
import servo
from digitalio import DigitalInOut, Direction, Pull

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

# Set up button
button = DigitalInOut(board.D2)
button.direction = Direction.INPUT
button.pull = Pull.UP

# Start with position 0
position = 0
positions = [0, 45, 90, 135, 180]  # 5 possible positions

while True:
    # If button is pressed
    if not button.value:
        # Move to next position
        position = (position + 1) % len(positions)
        my_servo.angle = positions[position]
        
        # Wait for button release and debounce
        while not button.value:
            pass
        time.sleep(0.2)  # Debounce delay

Checkpoints & Assessment

Technical Checkpoints:

Understanding Checkpoints:

Connections

Connections to Standards Connections to CAD Skills Connections to HCD Skills
STEL 4N: Analyze how technologies change human interaction and communication CAD 1.1: Technical Vocabulary - Understanding and using design terminology HCD Skill #1: Problem Framing - Analyzing situations from multiple perspectives
STEL 7Q: Apply the technology and engineering design process CAD 2.1: Freehand Sketching - Quick visualization of ideas HCD Skill #6: Stakeholder Dialogue - Gathering requirements

2. EXPLORE

What mechanical and digital systems could we create to help Nadia access art supplies more independently?

Activity: "Mechanism Exploration"

  1. Rotary Systems Investigation:
    • Provide teams with examples of different organizing systems (lazy susan, carousel, drawer slides)
    • Students experiment with different mechanisms that could organize and present art supplies
    • Teams document the strengths and limitations of each mechanism
  2. Smart Servo Control Exploration:
    • Students program the Smart Servo to move to specific positions
    • Experiment with different input methods (toggle switch, button press, double click)
    • Test the servo's ability to hold and move with added weight

Position Toggle with LED Feedback

# Position Toggle with LED Feedback
import time
import board
import pwmio
import servo
import neopixel
from digitalio import DigitalInOut, Direction, Pull

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

# Set up button
button = DigitalInOut(board.D2)
button.direction = Direction.INPUT
button.pull = Pull.UP

# Set up NeoPixel
pixel = neopixel.NeoPixel(board.NEOPIXEL, 1, brightness=0.3)
colors = [(255, 0, 0), (0, 255, 0), (0, 0, 255), (255, 255, 0), (0, 255, 255)]  # Colors for each position

# Define positions
positions = [0, 45, 90, 135, 180]  # 5 possible positions
current_pos = 0

while True:
    # Update LED to match current position
    pixel[0] = colors[current_pos]
    
    # If button is pressed
    if not button.value:
        # Move to next position
        current_pos = (current_pos + 1) % len(positions)
        my_servo.angle = positions[current_pos]
        
        # Wait for button release and debounce
        while not button.value:
            pass
        time.sleep(0.2)  # Debounce delay
  1. Client-Centered Research:
    • Students create interview questions for Nadia
    • Role-play client interviews to understand specific needs and preferences
    • Use HCD Tool 1.1 (Interview) and 1.2 (Problem Statement) to document findings

Checkpoints & Assessment

Technical Checkpoints:

Understanding Checkpoints:

3. EXPLAIN

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

Key Concepts

Human-Centered Design Process
The human-centered design process puts users at the center of product development. For Nadia's art supply organizer, we need to understand that her specific limb difference requires unique considerations:

  1. Empathy: Understanding Nadia's physical capabilities, art workflow, and frustrations
  2. Define: Creating a clear problem statement based on Nadia's needs
  3. Ideate: Generating multiple potential solutions
  4. Prototype: Building testable versions of our concepts
  5. Test: Evaluating our solutions with the client

Smart Servo Control Concepts
The Smart Servo can be programmed to:

Mechanical Design Considerations
For Nadia's art supply organizer, we need to consider:

Activity: "Design Requirements Workshop"

  1. Problem Statement Development:
    • Teams refine their problem statements using the HCD Tool 1.2 format
    • Share and critique problem statements as a class
    • Finalize a problem statement that clearly articulates Nadia's needs
  2. Design Criteria & Constraints:
    • Using HCD Tool 2.1, teams develop criteria and constraints for their design
    • Consider technical limitations (servo torque, programming capabilities)
    • Consider user requirements (size, accessibility, ease of use)
    • Create a weighted decision matrix (HCD Tool 3.2) for evaluating design ideas
  3. Initial Sketching:
    • Teams create initial sketches of potential designs
    • Include annotations for mechanical and electronic components
    • Prepare to receive feedback from peers

Understanding Checkpoints:

  • Students create clear, specific problem statements focused on Nadia's needs
  • Students develop comprehensive lists of criteria and constraints
  • Students can explain how their design considerations relate to Nadia's specific requirements
  • Students demonstrate understanding of the Smart Servo's capabilities and limitations

4. ELABORATE

How can we combine mechanical design, digital control, and user experience to create an effective solution?

Activity: "Design, Build, Code"

  1. Prototype Development:
    • Teams create low-fidelity prototypes using cardboard and craft materials
    • Integrate the Smart Servo to test basic functionality
    • Document design decisions and technical specifications
  2. CAD Modeling:
    • Students develop 3D models of organizer components using OnShape
    • Design custom mounting brackets for the Smart Servo
    • Prepare files for 3D printing
  3. Programming Logic Development:
    • Develop code that allows for intuitive control of the organizer
    • Implement visual feedback with the NeoPixel LED
    • Consider adding advanced features like auto-return or position memory

Art Supply Organizer Control System

# Art Supply Organizer Control System
import time
import board
import pwmio
import servo
import neopixel
from digitalio import DigitalInOut, Direction, Pull

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

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

home_button = DigitalInOut(board.D3)
home_button.direction = Direction.INPUT
home_button.pull = Pull.UP

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

# Define art supply positions
positions = [0, 36, 72, 108, 144, 180]  # 6 supplies positioned evenly
supply_names = ["Pencils", "Markers", "Brushes", "Paints", "Erasers", "Paper"]
colors = [(255, 0, 0), (0, 255, 0), (0, 0, 255), (255, 255, 0), (0, 255, 255), (255, 0, 255)]

current_pos = 0
last_used_positions = []  # Track recently used positions

# Initial position and color
my_servo.angle = positions[current_pos]
pixel[0] = colors[current_pos]

def move_to_position(pos_index):
    global current_pos
    current_pos = pos_index
    pixel[0] = colors[current_pos]  # Set color based on position
    my_servo.angle = positions[current_pos]  # Move servo
    print(f"Moving to {supply_names[current_pos]}")  # Debug output
    
    # Add to recently used (limit to last 3)
    if pos_index in last_used_positions:
        last_used_positions.remove(pos_index)
    last_used_positions.insert(0, pos_index)
    if len(last_used_positions) > 3:
        last_used_positions.pop()

while True:
    # Next position button pressed
    if not next_button.value:
        # Move to next position
        next_pos = (current_pos + 1) % len(positions)
        move_to_position(next_pos)
        
        # Button debounce
        while not next_button.value:
            pass
        time.sleep(0.2)
    
    # Home button pressed
    if not home_button.value:
        # Double-click detection for cycling through recent positions
        start_time = time.monotonic()
        time.sleep(0.05)  # Debounce
        
        # Wait to see if there's a second press
        second_press = False
        while time.monotonic() - start_time < 0.5:
            if not home_button.value and home_button.value:  # Detected release
                second_press = True
                break
            time.sleep(0.01)
            
        # If double-click, cycle through recent positions
        if second_press and last_used_positions:
            next_recent = last_used_positions[0]
            move_to_position(next_recent)
        else:
            # Single press - return to home position
            move_to_position(0)
            
        # Button debounce
        while not home_button.value:
            pass
        time.sleep(0.2)
  1. Assembly and Integration:
    • Fabricate and assemble organizer components
    • Integrate Smart Servo and control circuits
    • Test mechanical stability and electrical connections

Technical Checkpoints:

  • Students create working CAD models suitable for 3D printing
  • Students program the Smart Servo to move between multiple defined positions
  • Students integrate appropriate button/switch input methods
  • Students implement visual feedback through the NeoPixel LED
  • Prototypes demonstrate structural stability and mechanical functionality

Application Checkpoints:

  • Designs clearly address Nadia's specific needs
  • Students document their design decisions and technical challenges
  • Students iterate on their designs based on testing and feedback
Connections to Standards Connections to CAD Skills Connections to HCD Skills
STEL 7Q: Apply the technology and engineering design process CAD 2.1: Freehand Sketching - Quick visualization of ideas HCD Skill #1: Problem Framing - Analyzing situations from multiple perspectives
STEL 4N: Analyze how technologies change human interaction and communication CAD 1.1: Technical Vocabulary - Understanding and using design terminology HCD Skill #6: Stakeholder Dialogue - Gathering requirements

5. EVALUATE

How well does our solution meet Nadia's needs, and what improvements could we make?

Activity: "User Testing and Reflection"

  1. User Testing Simulation:
    • Teams prepare for user testing by creating testing protocols
    • Conduct simulated user testing with peers (one arm immobilized)
    • Document observations and feedback
  2. Design Review:
    • Teams present their solutions to the class
    • Conduct structured peer feedback sessions
    • Teams document strengths and areas for improvement
  3. Reflection and Documentation:
    • Students complete design journals documenting their process
    • Create a final presentation showcasing their solution
    • Reflect on how their solution addresses Nadia's specific needs

Assessment Criteria

The final assessment evaluates both the product (art supply organizer) and the process (human-centered design approach). Students should demonstrate technical competence with the Smart Servo, thoughtful consideration of user needs, and ability to document and communicate their design process.

Assessment Rubric

Criteria Level 1 Level 2 Level 3 Level 4
Human-Centered Design Limited evidence of empathetic design; minimal consideration of user needs Basic application of user needs; some evidence of empathetic design Clear focus on user needs; evidence of empathetic design throughout process Exemplary application of empathetic design; solution directly addresses specific user needs with innovative approaches
Technical Implementation Basic servo operation with limited functionality; minimal programming features Functional servo control with basic position management; working button input Multiple well-defined positions with smooth transitions; integrated visual feedback Advanced control features (position memory, adaptive movement); optimized code with error handling
Mechanical Design Basic structure with limited stability; minimal integration with servo Functional structure with adequate stability; basic integration with servo Well-designed structure with good stability; thoughtful integration with servo Innovative mechanical design; excellent stability and servo integration; consideration of maintenance and durability
Documentation & Communication Basic documentation of process; limited explanation of design decisions Adequate documentation of process; explanation of key design decisions Comprehensive documentation of entire process; clear explanation of all design decisions Exceptional documentation including iterations and refinements; insightful reflection on design decisions and learning
Functionality for User Solution partially addresses user needs with significant limitations Solution addresses basic user needs with some limitations Solution effectively addresses user needs with minor limitations Solution exceeds expectations in addressing user needs with innovative features