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
- Apply human-centered design principles to develop solutions for individuals with sensory processing challenges
- Program a Smart Servo to control environmental features with variable positions
- Design and build a mechanical interface that translates servo motion into light/sound control
- Implement visual feedback using the Neopixel LED to indicate different settings
- Test and refine solutions based on user feedback
MATERIALS NEEDED
- Smart Servo units (1 per 2-3 students)
- USB C Programming Cables
- Jelly Bean Buttons or other large assistive buttons
- LocLine flexible connectors
- 10mm framing pieces
- M5 screws and fasteners
- Allen wrenches and screwdrivers
- 3D printer access
- PLA filament
- Cardboard, craft supplies for prototyping
- Sample light dimmers and sound machines
- Light meters (optional)
- Decibel meters (smartphone apps)
1. ENGAGE
How do our senses affect our ability to learn and interact with the world?
Activity: "Sensory Exploration Station"
- 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
- Create 4-5 stations around the classroom with different sensory experiences:
- 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?
- 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:
- Students understand how to modify brightness values in code
- Students can identify how servo positions could control dimmer switches or volume knobs
Understanding Checkpoints:
- Students can articulate how sensory experiences affect focus and comfort
- Students demonstrate empathy for individuals with sensory processing differences
- Students can identify at least two features of their environment they would want to control if they had sensory sensitivities
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"
- 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
- 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
- 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:
- Students can program the servo to move to at least 5 distinct positions
- Students can program the Neopixel to change colors based on servo position
- Students can create mechanical interfaces that connect servo movement to control mechanisms
Understanding Checkpoints:
- Students can explain how servo position can be mapped to different levels of light/sound
- Students recognize the importance of visual feedback for users with sensory sensitivities
- Students can identify potential mechanical challenges in their design
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
- Electrical System: The Smart Servo includes a microcontroller (Adafruit Trinket M0) that processes inputs and controls outputs
- Mechanical System: The servo motor provides rotational movement that can be translated into different mechanical actions
- Input System: Buttons or switches send signals to the microcontroller
- Feedback System: The Neopixel LED provides visual feedback about the system state
Human-Centered Design Process
- Empathy: Understanding Ethan's specific sensory needs and challenges
- Define: Creating clear problem statements based on Ethan's needs
- Ideate: Generating multiple possible solutions
- Prototype: Building working models to test ideas
- Test: Gathering feedback to improve the design
Activity: "Design Planning Workshop"
- 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
- Based on Ethan's profile, students create specific problem statements:
- 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
- Students create sketches of potential solutions, including:
- 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"
- 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
- Modify designs to include two different input methods:
- 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
- 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
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:
- Functionality: Does the device reliably control light/sound levels as intended?
- Usability: Is the device easy for Ethan to use, especially when feeling overwhelmed?
- Adaptability: Can the device be adjusted for different settings and preferences?
- Feedback: Does the device provide clear feedback about current settings?
- Durability: Will the device withstand regular use in a classroom environment?
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 |