ETHAN'S ADJUSTABLE SENSORY SPACE CONTROLLER

ETHAN'S ADJUSTABLE SENSORY SPACE CONTROLLER

OVERVIEW

This lesson guides 3-5 grade students with Smart Servo experience in designing and building an adjustable sensory space controller for Ethan, a 7-year-old with autism and sensory sensitivity. Students will apply human-centered design principles to create a device that helps Ethan control aspects of his environment (light dimmer, sound machine) using the Smart Servo platform. Throughout this lesson, students will develop empathy for individuals with sensory processing challenges while building technical skills in programming, mechanical design, and testing.

Client Profile

Name About Me My Challenge
Ethan, Age 7 I'm a second grader who loves space, dinosaurs, and building with LEGO. I have autism and sometimes find certain lights and sounds overwhelming. When things get too bright or loud, it's hard for me to focus and I can get upset. I need help controlling the lights and sounds in my sensory corner at school. Sometimes I want them dimmer or quieter, but it's hard for me to use the small knobs and buttons, especially when I'm already feeling overwhelmed. I need something with bigger controls that's easy to use.

Learning Objectives

MATERIALS NEEDED

1. ENGAGE

How do our senses affect our ability to learn and interact with the world?

Activity: "Sensory Exploration Station"

  1. Sensory Stations Setup:
    • Create 4-5 stations around the classroom with different sensory experiences:
      • Station 1: Bright flashlight with colored filters
      • Station 2: Headphones with various sound recordings at different volumes
      • Station 3: Different textured materials
      • Station 4: A quiet, dimly lit corner
      • Station 5: An area with multiple sensory inputs simultaneously
  2. Sensory Experience:
    • Students rotate through each station for 3-5 minutes
    • At each station, students record in their design journals:
      • How does this sensory experience make you feel?
      • Is it comfortable or uncomfortable? Why?
      • How might this affect your ability to focus or learn?
  3. Empathy Building Discussion:
    • Introduce Ethan and his sensory challenges
    • Discuss how sensory experiences affect different people in different ways
    • Share examples of how sensory sensitivities might impact daily activities

LED Brightness Control Example

# Show example code for LED brightness control
import time
import board
import neopixel

pixel = neopixel.NeoPixel(board.NEOPIXEL, 1)

# Change brightness levels
while True:
    # Low brightness (20%)
    pixel.brightness = 0.2
    pixel.fill((255, 255, 255))
    time.sleep(2)
    
    # Medium brightness (50%)
    pixel.brightness = 0.5
    pixel.fill((255, 255, 255))
    time.sleep(2)
    
    # High brightness (100%)
    pixel.brightness = 1.0
    pixel.fill((255, 255, 255))
    time.sleep(2)
            

Technical Checkpoints:

Understanding Checkpoints:

Connections

Connections to Standards Connections to CAD Skills Connections to HCD Skills
STEL 4K: Examine positive and negative effects of technology CAD 1.2: Design Process - Following structured design processes HCD Skill #1: Problem Framing - Analyzing situations from multiple perspectives
STEL 3F: Apply a product, system or process from one setting to another 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 Smart Servo technology to create adjustable controls for sensory environments?

Activity: "Control Mechanism Investigation"

  1. Servo Position Exploration:
    • Provide students with Smart Servos and sample code for setting different positions
    • Have students create a program that moves the servo to 5 distinct positions
    • Add Neopixel color changes to match each position
  2. Mechanical Interface Testing:
    • Provide various attachments for the servo (knobs, levers, push rods)
    • Have students test how each attachment might:
      • Turn a dimmer switch
      • Adjust a volume knob
      • Press buttons of different sizes and resistances
  3. Measuring and Mapping:
    • Use light meters to measure brightness at different dimmer settings
    • Use decibel meters to measure sound levels
    • Create a chart mapping servo positions to light/sound levels

Servo Position Control with LED Feedback

# Servo position control with LED feedback
import time
import board
import pwmio
import servo
import neopixel

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

# Setup NeoPixel
pixel = neopixel.NeoPixel(board.NEOPIXEL, 1)

# Control positions with visual feedback
while True:
    # Position 1 - Very Low (blue)
    my_servo.angle = 0
    pixel.fill((0, 0, 255))
    time.sleep(2)
    
    # Position 2 - Low (cyan)
    my_servo.angle = 45
    pixel.fill((0, 255, 255))
    time.sleep(2)
    
    # Position 3 - Medium (green)
    my_servo.angle = 90
    pixel.fill((0, 255, 0))
    time.sleep(2)
    
    # Position 4 - High (yellow)
    my_servo.angle = 135
    pixel.fill((255, 255, 0))
    time.sleep(2)
    
    # Position 5 - Very High (red)
    my_servo.angle = 180
    pixel.fill((255, 0, 0))
    time.sleep(2)
            

Technical Checkpoints:

Understanding Checkpoints:

3. EXPLAIN

How do we design a system that integrates electrical, mechanical, and programming components to meet a specific user need?

Key Concepts

Smart Servo System Components

Human-Centered Design Process

Activity: "Design Planning Workshop"

  1. Problem Statement Creation:
    • Based on Ethan's profile, students create specific problem statements:
      • "Ethan needs a way to ___ because ___."
    • Share and refine problem statements as a class
  2. Solution Sketching:
    • Students create sketches of potential solutions, including:
      • How their device will attach to existing dimmer switches/sound machines
      • How large buttons will connect to the Smart Servo
      • How LED feedback will indicate different settings
  3. Prototype Planning:
    • Students create a component list for their prototype
    • Students create a step-by-step plan for building their prototype
    • Students create pseudocode for their Smart Servo program

Understanding Checkpoints:

  • Students can articulate clear problem statements based on Ethan's needs
  • Students can explain how their design addresses Ethan's specific challenges
  • Students can identify all components needed for their prototype
  • Students can create pseudocode for their Smart Servo program

4. ELABORATE

How can we create a solution that's adaptable to different sensory needs and environments?

Extension Activity: "Advanced Control Features"

  1. Multiple Control Options:
    • Modify designs to include two different input methods:
      • Large button for simple incremental adjustments
      • Multiple buttons for direct selection of specific settings
    • Program the Smart Servo to respond differently based on input type
  2. Custom Settings Memory:
    • Add code that allows the system to remember preferred settings
    • Create a way for users to save and recall their favorite settings
  3. Enhanced Feedback:
    • Design additional feedback mechanisms beyond the Neopixel
    • Consider how to make the feedback appropriate for users with different sensory preferences

Example code for multiple input types

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

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

# Setup buttons
increment_button = DigitalInOut(board.D2)
increment_button.direction = Direction.INPUT
increment_button.pull = Pull.UP

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

direct_button_high = DigitalInOut(board.D4)
direct_button_high.direction = Direction.INPUT
direct_button_high.pull = Pull.UP

# Setup NeoPixel
pixel = neopixel.NeoPixel(board.NEOPIXEL, 1)

# Variables
current_position = 90  # Start in the middle
saved_position = 90    # Default saved position

# Color settings
colors = [
    (0, 0, 255),    # Blue (lowest)
    (0, 255, 255),  # Cyan (low)
    (0, 255, 0),    # Green (medium)
    (255, 255, 0),  # Yellow (high)
    (255, 0, 0),    # Red (highest)
]

# Set initial position and color
my_servo.angle = current_position
pixel.fill(colors[2])  # Medium setting color

while True:
    # Increment button - cycles through positions
    if increment_button.value == 0:
        current_position = (current_position + 45) % 225
        if current_position == 0:
            current_position = 45  # Skip 0 to keep within range 45-180
        
        my_servo.angle = current_position
        color_index = int(current_position / 45) - 1
        pixel.fill(colors[color_index])
        time.sleep(0.5)  # Debounce
    
    # Direct selection - low
    if direct_button_low.value == 0:
        current_position = 45
        my_servo.angle = current_position
        pixel.fill(colors[0])
        time.sleep(0.5)  # Debounce
    
    # Direct selection - high
    if direct_button_high.value == 0:
        current_position = 180
        my_servo.angle = current_position
        pixel.fill(colors[4])
        time.sleep(0.5)  # Debounce
    
    time.sleep(0.1)  # Small delay for loop stability

Application Checkpoints:

  • Students can implement multiple input methods for their device
  • Students can create a program that responds differently to different input types
  • Students can design appropriate feedback mechanisms for users with sensory sensitivities
  • Students can explain how their design is adaptable to different environments or preferences
ETHAN'S ADJUSTABLE SENSORY SPACE CONTROLLER

5. EVALUATE

How well does our solution meet Ethan's specific needs and how might we improve it further?

Assessment Criteria

Students will evaluate their final designs based on the following criteria:

Assessment Rubric

Criteria Level 1 Level 2 Level 3 Level 4
Empathy-Driven Design Limited connection between design and Ethan's needs Basic consideration of Ethan's needs in some aspects of the design Clear alignment between most design features and Ethan's specific needs All design decisions directly address Ethan's needs with evidence of deep empathy
Mechanical Function Mechanical interface is unstable or unreliable Mechanical interface works but requires frequent adjustment Mechanical interface is stable and generally reliable Mechanical interface is robust, precise, and highly reliable
Programming Implementation Basic program with single function Program includes multiple positions and basic visual feedback Program includes multiple input options and clear visual feedback Advanced program with multiple inputs, customizable settings, and adaptive feedback
Input Accessibility Input method difficult to use or inappropriately sized Input method moderately accessible but still presents some challenges Input method is well-suited to Ethan's abilities Input method is highly accessible with multiple options for different situations
Documentation & Communication Basic documentation of the solution Clear documentation with some reflection on the design process Comprehensive documentation with thoughtful reflection and identified improvements Exceptional documentation with deep insights, multiple improvement strategies, and clear communication of the design process