EMMA'S CLASSROOM SUPPLY ORGANIZER

EMMA'S CLASSROOM SUPPLY ORGANIZER

OVERVIEW

This lesson engages K-2 students with engineering design through a real-world assistive technology challenge. Using the Smart Servo platform, students will design and program a rotating classroom supply organizer for Emma, a 7-year-old with juvenile arthritis. Following the human-centered design process, students will empathize with Emma's needs, define the problem, ideate solutions, prototype designs, and test their creations. Throughout this experience, students will develop both technical and empathetic skills while creating a meaningful assistive device.

Client Profile

Name About Me My Challenge
Emma, Age 7 I'm in 1st grade and I love art, reading, and playing with my friends. I have juvenile arthritis, which means my joints (especially in my hands and wrists) sometimes get stiff and painful. Some days are better than others, but I try not to let it stop me from doing what I love. When I'm working at my desk, it's hard for me to reach and grab different supplies, especially when my arthritis is flaring up. Turning containers and opening boxes can be painful. I need a way to easily access my markers, crayons, pencils, and other school supplies without having to twist my hands or stretch too far.

Learning Objectives

MATERIALS NEEDED

1. ENGAGE

How can we design technology that helps people with physical challenges?

Activity: "Step Into Emma's Shoes"

  1. Introduction to Emma:
    • Share Emma's profile with students
    • Watch a child-appropriate video showing what juvenile arthritis is (1-2 minutes)
    • Discuss how arthritis might affect daily activities in the classroom
  2. Empathy Experience:
    • Have students wear mittens or wrap tape loosely around finger joints
    • Ask them to try to open a crayon box, turn a supply container, or reach for items scattered on a desk
    • Gather in a circle to discuss: "What was difficult? How did it feel? What would have made these tasks easier?"
  3. Introducing the Challenge:
    • Explain that the class will be designing a rotating supply organizer that Emma can control with a button
    • Show the Smart Servo and demonstrate a simple button-activated movement
    • Ask students to think about what makes a good supply organizer and what features might help Emma

Simple demonstration code to show students

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

# Button setup
button = DigitalInOut(board.D2)
button.direction = Direction.INPUT
button.pull = Pull.UP

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

# Starting position
my_servo.angle = 0

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

Technical Checkpoints:

Understanding Checkpoints:

Connections

Connections to Standards Connections to CAD Skills Connections to HCD Skills
STEL 1J: Develop innovative products 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 create movement that helps Emma?

Activity: "Servo Explorer"

  1. Servo Movement Investigation:
    • In pairs, give students a Smart Servo with pre-loaded "Servo Range" example code
    • Have them experiment with changing the position values (0, 45, 90, 135, 180 degrees)
    • Students draw and label the different positions in their design journals
  2. Button Control Practice:
    • Load the "Toggle Button" example code
    • Have students observe how pressing the button changes the servo position
    • Challenge students to modify one value in the code (with guidance) to make the servo move to a different position

Toggle Button Example for students to experiment with

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

# Button setup
button = DigitalInOut(board.D2)
button.direction = Direction.INPUT
button.pull = Pull.UP

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

# Variable to track toggle state
toggle = 0

while True:
    if button.value == 0 and toggle == 0:
        my_servo.angle = 0  # Position 1
        time.sleep(1)
        toggle = 1
    elif button.value == 0 and toggle == 1:
        my_servo.angle = 180  # Position 2 - Students can modify this value
        time.sleep(1)
        toggle = 0
  1. Supply Organization Exploration:
    • Provide students with small containers and common classroom supplies
    • Have them arrange supplies in the containers and think about how the containers could be arranged on a rotating platform
    • Discuss which supplies Emma might need most often and which might be used less frequently

Technical Checkpoints:

Understanding Checkpoints:

3. EXPLAIN

How does our program tell the servo where to move?

Key Concepts

The Smart Servo is like a robot arm that can turn to exact positions. It understands numbers from 0 to 180, where 0 is all the way to the left, 90 is in the middle, and 180 is all the way to the right. The servo needs special instructions written in code to know:

  1. When to move (after a button press)
  2. Where to move (which position)
  3. How long to wait between movements

The button works like a light switch - it can be ON (pressed) or OFF (not pressed). Our code can detect when the button changes and use that to tell the servo to move.

Activity: "Code Detectives"

  1. Code Reading:
    • Display the toggle button code on a projector
    • As a class, walk through each part using simple language:
      • "This line connects to our button"
      • "This line sets up our servo"
      • "This line creates a variable called 'toggle' that starts at 0"
      • "These lines check if the button is pressed AND the toggle is 0"
      • "This line moves the servo to position 0"
      • "This line changes toggle to 1"
      • "These lines check if the button is pressed AND the toggle is 1"
      • "This line moves the servo to position 180"
      • "This line changes toggle back to 0"
  2. Multiple Position Planning:
    • Demonstrate how to add a third position to the code
    • Have students draw a diagram showing how a 3-position organizer would work
    • Discuss how the toggle variable helps the program remember which position it's in

Code with three positions to demonstrate

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

# Button setup
button = DigitalInOut(board.D2)
button.direction = Direction.INPUT
button.pull = Pull.UP

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

# Variable to track position
position = 0

while True:
    if button.value == 0:  # Button pressed
        if position == 0:
            my_servo.angle = 0  # Position 1
            position = 1
        elif position == 1:
            my_servo.angle = 90  # Position 2
            position = 2
        elif position == 2:
            my_servo.angle = 180  # Position 3
            position = 0
        time.sleep(1)  # Wait to avoid multiple triggers

Understanding Checkpoints:

  • Students can explain what the numbers 0, 90, and 180 mean for servo positions
  • Students can describe how the button makes the servo move
  • Students can trace through the code and predict which position comes next

4. ELABORATE

How can we design an organizer that meets Emma's specific needs?

Activity: "Designer's Workshop"

  1. Design Planning:
    • Have students sketch ideas for Emma's supply organizer in their design journals
    • Consider: How many sections are needed? How will supplies be arranged? How will the servo attach?
    • Create a list of supplies needed for their design
  2. Prototype Building:
    • Provide cardboard, craft materials, containers, and structural components
    • Guide students in constructing a base platform that can be attached to the servo
    • Help students arrange containers or dividers to hold different supplies
    • Attach the servo using LocLine flexible connectors and 10mm framing pieces
  3. Programming for Emma:
    • Help students modify the code to control their specific organizer design
    • Adjust the servo positions to match the layout of their organizer
    • Add comments to the code explaining what each position is for

Sample code template for students to modify

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

# Button setup
button = DigitalInOut(board.D2)
button.direction = Direction.INPUT
button.pull = Pull.UP

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

# Starting with position 0
position = 0

# LED setup for visual feedback
import neopixel
pixel = neopixel.NeoPixel(board.NEOPIXEL, 1)

while True:
    if button.value == 0:  # Button pressed
        if position == 0:
            my_servo.angle = 0  # Position for markers
            pixel.fill((255, 0, 0))  # Red light for markers
            position = 1
        elif position == 1:
            my_servo.angle = 60  # Position for crayons
            pixel.fill((0, 255, 0))  # Green light for crayons
            position = 2
        elif position == 2:
            my_servo.angle = 120  # Position for pencils
            pixel.fill((0, 0, 255))  # Blue light for pencils
            position = 3
        elif position == 3:
            my_servo.angle = 180  # Position for erasers
            pixel.fill((255, 0, 255))  # Purple light for erasers
            position = 0
        time.sleep(1)  # Wait to avoid multiple triggers

Extension: "Visual Feedback"

For students who finish early or need an additional challenge, introduce the Neopixel LED:

Application Checkpoints:

  • Student designs include multiple sections for different supplies
  • Prototypes can successfully rotate to different positions
  • Code is modified to match the specific design layout
  • Optional: LED colors are used to provide visual feedback
EMMA'S CLASSROOM SUPPLY ORGANIZER

5. EVALUATE

How well does our design meet Emma's needs?

Assessment Activity: "Client Testing"

  1. Peer Testing:
    • Have students work in pairs to test each other's organizers
    • One student wears mittens to simulate Emma's limited mobility
    • Test if the organizer is stable, if supplies stay in place, and if the button is easy to press
    • Record feedback in design journals
  2. Design Refinement:
    • Based on feedback, make improvements to the organizer
    • This could include stabilizing the base, adjusting container positions, or modifying the code for better timing
  3. Reflection and Presentation:
    • Students prepare a short (1-2 minute) presentation explaining:
      • How their design helps Emma
      • What they changed based on testing
      • What they would improve if they had more time
    • Include a demonstration of the working organizer

Assessment Rubric

Criteria Level 1 Level 2 Level 3 Level 4
Understanding Emma's Needs Limited understanding of how arthritis affects Emma's use of supplies Basic understanding of Emma's challenges with some consideration in design Clear understanding of Emma's needs with specific design features addressing them Deep understanding of Emma's needs with thoughtful, innovative solutions integrated throughout design
Technical Implementation Servo moves but positions are not optimal for accessing supplies Servo moves to appropriate positions with basic button control Servo moves smoothly to well-planned positions with reliable button control Servo moves precisely with advanced features (like visual feedback) and excellent button accessibility
Physical Design Basic organizer with minimal stability or consideration for Emma's reach Functional organizer with adequate stability and accessibility Well-constructed organizer with good stability and thoughtful arrangement of supplies Exceptional organizer with excellent stability, intuitive layout, and special features for ease of use
Reflection and Communication Minimal explanation of design choices or connection to Emma's needs Basic explanation of design choices with simple connection to Emma's needs Clear explanation of design choices with specific references to how they address Emma's needs Comprehensive explanation with insightful connections between design choices, testing results, and Emma's specific needs

Final Reflection Questions

Have students record responses to these questions in their design journals:

  1. How does your organizer help Emma access her supplies more easily?
  2. What was the most difficult part of designing for someone with different abilities than you?
  3. If you could add one more feature to your organizer, what would it be and why?
  4. How did testing your design help you make it better?