AVA'S ROTATING CRAFT ORGANIZER

AVA'S ROTATING CRAFT ORGANIZER

OVERVIEW

This entry-level after-school STEM enrichment activity introduces 3rd-5th grade students to the Smart Servo platform through a human-centered design approach. Students will learn basic servo motor control and programming concepts while creating a rotating craft supply organizer for a client with developmental coordination disorder. The lesson emphasizes empathy in the design process as students develop a solution that helps someone with different physical abilities access craft supplies more easily.

Client Profile

Name About Me My Challenge
Ava, Age 8 I love making art and crafts, but I have developmental coordination disorder which makes it hard for me to grab small items like beads, buttons, and markers. Sometimes my hands don't do what I want them to do, which can be frustrating when I'm trying to create something. I need a way to organize and access my craft supplies without having to reach, grab, and sort through everything. It's difficult for me to pick up small items, especially when they're mixed together or in containers that require precise movements to open.

Learning Objectives

MATERIALS NEEDED

1. ENGAGE

How might we design something that helps someone with coordination difficulties access craft supplies more easily?

Activity: "Walking in Ava's Shoes"

  1. Introduce the Challenge:
    • Share Ava's profile with students, emphasizing her love for crafts and her challenges
    • Discuss what developmental coordination disorder is and how it affects daily activities
    • Show a video of someone with coordination difficulties trying to access small craft items
  2. Simulation Experience:
    • Have students wear thick winter gloves or tape popsicle sticks to their fingers
    • Challenge them to sort small craft supplies (beads, buttons) into different containers
    • Ask students to reflect on the experience: "What was challenging? How did it feel?"
  3. Introduce the Smart Servo:
    • Show students the Smart Servo and explain its basic capabilities
    • Demonstrate a simple rotation with button activation
    • Explain that they will be using this technology to help Ava access her craft supplies

Basic Demonstration Code

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

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

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

while True:
    if button.value == 0:  # Button pressed
        my_servo.angle = 90  # Rotate servo
        time.sleep(0.5)
    else:
        my_servo.angle = 0  # Return to starting position

Checkpoints & Assessment

Technical Checkpoints:

Understanding Checkpoints:

Connections

Connections to Standards Connections to CAD Skills Connections to HCD Skills
STEL 1J: Develop innovative products and systems that solve problems based on individual needs and wants CAD 1.2: Design Process - Following structured design processes HCD Skill #1: Problem Framing - Analyzing situations from multiple perspectives
STEL 4K: Examine positive and negative effects of technology CAD 2.1: Freehand Sketching - Quick visualization of ideas HCD Skill #6: Stakeholder Dialogue - Gathering requirements and incorporating diverse feedback

2. EXPLORE

How can we use a Smart Servo to move objects in a controlled way with the push of a button?

Activity: "Servo Motion Explorer"

  1. Setup:
    • Divide students into pairs, with each pair receiving a Smart Servo, button, and programming cable
    • Connect Smart Servos to computers and open Circuit Python editor
    • Provide students with the basic "Toggle Button" code example
  2. Code Exploration:
    • Have students load the example code and observe how the servo responds to button presses
    • Guide students to modify the toggle code to make the servo move to different positions
    • Challenge students to add a third position to the toggle sequence

Toggle Button Example for students to modify

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

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

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

# Variable to track the current state
position = 0

while True:
    if button.value == 0:  # Button pressed
        # Wait a moment to avoid multiple triggers from one press
        time.sleep(0.5)
        
        # Change position based on current state
        if position == 0:
            my_servo.angle = 0
            position = 1
        elif position == 1:
            my_servo.angle = 90
            position = 2
        elif position == 2:
            my_servo.angle = 180
            position = 0
            
        # Wait for button release
        while button.value == 0:
            pass
  1. Mechanical Exploration:
    • Provide students with LocLine connectors and mounting materials
    • Have them experiment with different ways to mount and position the servo
    • Encourage them to test different attachments to the servo arm

Checkpoints & Assessment

Technical Checkpoints:

3. EXPLAIN

What design considerations are important when creating a rotating organizer for someone with coordination difficulties?

Key Concepts

When designing for users with coordination difficulties, we need to consider:

  1. Accessibility: Controls should be easy to activate without requiring fine motor skills
  2. Stability: The organizer should be sturdy and not tip over when used
  3. Visibility: Items should be clearly visible and separated to aid selection
  4. Position: The servo should rotate to optimal positions for easy access
  5. Programming Logic: The code should create a predictable and reliable experience

Activity: "Design Planning Session"

  1. Sketch Ideas:
    • Have students sketch at least two different designs for a rotating craft organizer
    • Encourage them to label the parts and explain how they would work
    • Consider different container options (divided sections, individual cups, etc.)
  2. Collaborative Review:
    • Have pairs share their sketches with another group
    • Each group provides feedback based on Ava's needs
    • Students refine their designs based on feedback
  3. Programming Plan:
    • Students outline how many positions their organizer needs
    • Discuss the button interaction (single press, multiple press options)
    • Plan any LED indicators that might help signal position changes

Understanding Checkpoints:

  • Students can explain how their design addresses Ava's specific needs
  • Students can describe the relationship between the code and physical design
  • Students understand how the button input controls the servo position

4. ELABORATE

How can we build, test, and improve our rotating craft organizer design?

Extension Activity: "Prototype Development"

  1. Build Basic Prototype:
    • Students use cardboard, cups, and basic materials to create their organizer structure
    • Mount the Smart Servo and attach the rotating mechanism
    • Load their modified code and test basic functionality
  2. User Testing Simulation:
    • Students put on the gloves again to simulate Ava's experience
    • Test using the button to rotate and access different supplies
    • Document what works well and what needs improvement
  3. Design Iteration:
    • Based on testing, students make improvements to their design
    • Consider adding LED indicators for visual feedback
    • Refine the code to make the interaction more intuitive

Enhanced code with LED feedback

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

# Set up the NeoPixel LED
pixel = neopixel.NeoPixel(board.NEOPIXEL, 1)

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

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

# Variable to track the current position
position = 0
positions = 3  # Number of distinct positions

# Colors for each position
colors = [(255, 0, 0), (0, 255, 0), (0, 0, 255)]

while True:
    # Set LED color based on current position
    pixel.fill(colors[position])
    
    if button.value == 0:  # Button pressed
        # Wait to avoid multiple triggers
        time.sleep(0.5)
        
        # Move to next position
        position = (position + 1) % positions
        
        # Set servo angle based on position
        my_servo.angle = position * (180 // (positions - 1))
        
        # Wait for button release
        while button.value == 0:
            pass

Application Checkpoints:

  • Students' organizers successfully rotate to multiple positions
  • The button interface is easy to use with limited coordination
  • The design keeps craft supplies stable and accessible
  • Students have tested and improved their design based on feedback

5. EVALUATE

How well does our solution meet Ava's needs for accessing craft supplies?

Assessment Criteria

Students will demonstrate their rotating craft organizer and explain:

  1. How they identified and addressed Ava's specific needs
  2. How they programmed the Smart Servo to create the desired movement
  3. What design decisions they made and why
  4. How they tested and improved their design
  5. What they learned about designing for people with different abilities

Assessment Rubric

Criteria Level 1 Level 2 Level 3 Level 4
Empathy & Understanding Limited understanding of Ava's needs Basic understanding of Ava's needs reflected in design Thoughtful consideration of Ava's specific challenges Deep understanding of Ava's needs with innovative accommodations
Technical Implementation Servo rotates with significant assistance Servo rotates to different positions with some reliability Servo rotates smoothly to multiple well-defined positions Advanced servo control with additional features like LED feedback
Design Quality Basic design with limited stability or accessibility Functional design that addresses main needs Well-designed solution with good stability and ease of use Exceptional design with thoughtful details and refinements
Testing & Iteration Limited testing with minimal improvements Basic testing with some improvements Thorough testing with meaningful iterations Comprehensive testing with significant improvements based on feedback
Communication Basic explanation of design decisions Clear explanation of design process and decisions Detailed explanation with specific connections to Ava's needs Exceptional explanation demonstrating deep understanding of assistive technology principles