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
- Apply the human-centered design process to solve a real-world problem for a client with physical needs
- Program a Smart Servo to rotate to different positions using button inputs
- Design and construct a functional supply organizer that addresses specific user requirements
- Communicate design decisions and explain how their solution helps the client
MATERIALS NEEDED
- Smart Servo units (1 pair of students)
- USB C Programming Cables
- AT Test Buttons or Jelly Bean Buttons
- LocLine flexible connectors
- 10mm framing pieces
- M5 screws and fasteners
- Cardboard, craft supplies, and recyclable materials
- Small containers for organizing supplies
- Classroom supplies (markers, crayons, erasers, etc.) for testing
- Simple hand tools (scissors, glue, tape)
- Computer with Circuit Python
- Engineering Design Journal templates
1. ENGAGE
How can we design technology that helps people with physical challenges?
Activity: "Step Into Emma's Shoes"
- 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
- 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?"
- 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:
- Students can identify the main parts of the Smart Servo
- Students understand that the button controls the servo movement
Understanding Checkpoints:
- Students can explain at least two challenges Emma faces with classroom supplies
- Students can describe how a rotating organizer might help Emma
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"
- 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
- 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
- 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:
- Students can connect the button to the Smart Servo
- Students can identify at least three different servo positions
- Students can explain how the toggle button code makes the servo move between positions
Understanding Checkpoints:
- Students can articulate why different positions would be useful for Emma's organizer
- Students can identify which supplies should be most accessible
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:
- When to move (after a button press)
- Where to move (which position)
- 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"
- 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"
- 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"
- 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
- 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
- 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:
- Add code to change the LED color for each position
- Colors can serve as visual reminders of which section is active
- Discuss how different colors might help Emma identify which supplies are available
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
5. EVALUATE
How well does our design meet Emma's needs?
Assessment Activity: "Client Testing"
- 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
- 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
- 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
- Students prepare a short (1-2 minute) presentation explaining:
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:
- How does your organizer help Emma access her supplies more easily?
- What was the most difficult part of designing for someone with different abilities than you?
- If you could add one more feature to your organizer, what would it be and why?
- How did testing your design help you make it better?