MARCUS'S ACCESSIBLE WEATHER STATION
OVERVIEW
This lesson guides K-2 students through creating a simple interactive weather station using the Smart Servo technology. Students will help "Marcus," a fictional kindergarten student who is blind, to independently check the daily weather. Through this engaging project, students will develop basic engineering, programming, and empathy skills while creating a tactile weather indicator that uses servo movement to point to different weather conditions, allowing Marcus to feel the position and understand the forecast without needing to see visual representations.
Client Profile
Name | About Me | My Challenge |
---|---|---|
Marcus, Age 6 | I'm in kindergarten and I love being outside! I like to know what the weather is going to be so I can decide what to wear and what games to play at recess. I was born blind, which means I can't see things like pictures or weather symbols on a screen or in books. | I want to be able to check the weather by myself before school. My family tells me the weather forecast, but I'd like to be independent and check it on my own without having to ask for help. Visual weather displays and apps don't work for me since I can't see them. |
Learning Objectives
- Understand how technology can make information accessible to people with different abilities
- Design a tactile interface that communicates information without relying on vision
- Program basic button input to control servo movement to different positions
- Test and improve a design based on user feedback
MATERIALS NEEDED
- Smart Servo units (1 per 2-3 students)
- USB C Programming Cables
- AT Test Buttons or Jelly Bean Buttons
- LocLine flexible connectors
- Craft materials (cardboard, felt, foam sheets, craft sticks)
- Textured materials (sandpaper, fabric scraps, bubble wrap)
- Computer with Circuit Python installed
- Adhesive putty or tape for temporary attachment
1. ENGAGE
How do we find out about the weather if we can't see?
Activity: "Understanding Marcus's Experience"
- Introduction:
- Introduce students to "Marcus" through his profile
- Ask students: "How do you check the weather each day? What do you look for?"
- Discuss: "What if you couldn't see the weather or pictures of the weather?"
- Empathy Experience:
- Have students close their eyes or wear blindfolds
- Place different textured materials in front of them (representing different weather)
- Have them try to identify the materials by touch only
- Ask: "Was it easy or hard to understand what you were feeling? How could we use touch to tell someone about the weather?"
- Technology Introduction:
- Show students the Smart Servo and explain how it can move a pointer to different positions
- Demonstrate a simple servo movement using the basic servo control code
Basic Servo Movement
# Basic Servo Movement import time import board import pwmio import servo pwm = pwmio.PWMOut(board.A2, duty_cycle=2 ** 15, frequency=50) my_servo = servo.Servo(pwm) while True: my_servo.angle = 0 # Sunny position time.sleep(2) my_servo.angle = 45 # Cloudy position time.sleep(2) my_servo.angle = 90 # Rainy position time.sleep(2)
Checkpoints & Assessment
Technical Checkpoints:
- Students can describe what the Smart Servo does (it moves a pointer to different positions)
- Students recognize the button as a way to control the servo
Understanding Checkpoints:
- Students can explain why Marcus might need a different way to check the weather
- Students demonstrate understanding of how touch can be used to communicate information
Connections
Connections to Standards | Connections to CAD Skills | Connections to HCD Skills |
---|---|---|
STEL 1J: Develop innovative products that solve problems based on needs | CAD 1.2: Following a simple design process | HCD Skill #1: Problem Framing - Understanding Marcus's challenge |
STEL 4N: Analyze how technology changes communication | CAD 2.1: Basic spatial awareness for tactile interface | HCD Skill #6: Stakeholder Dialogue - Understanding user needs |
2. EXPLORE
How can we design a weather station that Marcus can feel with his hands?
Activity: "Designing a Tactile Weather Station"
- Setup:
- Divide students into small groups (2-3)
- Provide each group with craft materials and textured materials
- Show example of a simple cardboard base with marked positions
- Brainstorming:
- Have students draw 2-3 ideas for a tactile weather station
- Discuss different weather conditions: sunny, cloudy, rainy, snowy
- Consider how to create distinct positions that feel different
- Creating Tactile Markers:
- Students create a circular or semi-circular base with 3-4 weather positions
- Apply different textures to each position (smooth for sunny, bumpy for cloudy, etc.)
- Design a simple pointer that the servo can move to different positions
Test Servo Position at Different Weather Points
# Test Servo Position at Different Weather Points import time import board import pwmio import servo pwm = pwmio.PWMOut(board.A2, duty_cycle=2 ** 15, frequency=50) my_servo = servo.Servo(pwm) # Test positions for different weather types my_servo.angle = 0 # Position 1 (Sunny) time.sleep(3) # Wait 3 seconds my_servo.angle = 60 # Position 2 (Cloudy) time.sleep(3) # Wait 3 seconds my_servo.angle = 120 # Position 3 (Rainy) time.sleep(3) # Wait 3 seconds my_servo.angle = 180 # Position 4 (Snowy) time.sleep(3) # Wait 3 seconds
Checkpoints & Assessment
Technical Checkpoints:
- Students can create a tactile base with distinct positions
- Students can attach a pointer to the servo
- Students understand how different servo angles point to different weather conditions
Understanding Checkpoints:
- Students can explain why texture is important for Marcus to understand the weather
- Students describe how the position of the pointer communicates information
3. EXPLAIN
How does our weather station work for someone who can't see?
Key Concepts
Our weather station uses a servo motor to move a pointer to different positions around a circle. Each position represents a different type of weather (sunny, cloudy, rainy, or snowy). By feeling the position of the pointer and the texture underneath it, Marcus can understand the weather forecast without needing to see it. We use a button to change the position based on the daily weather.
Activity: "Programming Our Weather Station"
- Button Control Introduction:
- Demonstrate how a button can move the servo to different positions
- Explain in simple terms: "Each time we press the button, the pointer moves to show a different type of weather"
- Code Exploration:
- Show students the simplified code that makes the servo move when the button is pressed
- Have students predict what will happen with each button press
Weather Station Button Control
# Weather Station Button Control 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) weather_pointer = servo.Servo(pwm) # Starting position position = 0 weather_pointer.angle = 0 while True: # Check if button is pressed if button.value == 0: # Button is pressed # Change to next weather position position = position + 1 if position > 3: position = 0 # Move pointer to the right position if position == 0: weather_pointer.angle = 0 # Sunny elif position == 1: weather_pointer.angle = 60 # Cloudy elif position == 2: weather_pointer.angle = 120 # Rainy elif position == 3: weather_pointer.angle = 180 # Snowy time.sleep(0.5) # Wait to avoid multiple presses
Checkpoints & Assessment
Understanding Checkpoints:
- Students can explain in simple terms what happens when the button is pressed
- Students understand that the servo moves to different positions for different weather
- Students recognize how Marcus would use touch to understand the weather station
3. EXPLAIN
How does our weather station work for someone who can't see?
Key Concepts
Our weather station uses a servo motor to move a pointer to different positions around a circle. Each position represents a different type of weather (sunny, cloudy, rainy, or snowy). By feeling the position of the pointer and the texture underneath it, Marcus can understand the weather forecast without needing to see it. We use a button to change the position based on the daily weather.
Activity: "Programming Our Weather Station"
- Button Control Introduction:
- Demonstrate how a button can move the servo to different positions
- Explain in simple terms: "Each time we press the button, the pointer moves to show a different type of weather"
- Code Exploration:
- Show students the simplified code that makes the servo move when the button is pressed
- Have students predict what will happen with each button press
Weather Station Button Control
# Weather Station Button Control 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) weather_pointer = servo.Servo(pwm) # Starting position position = 0 weather_pointer.angle = 0 while True: # Check if button is pressed if button.value == 0: # Button is pressed # Change to next weather position position = position + 1 if position > 3: position = 0 # Move pointer to the right position if position == 0: weather_pointer.angle = 0 # Sunny elif position == 1: weather_pointer.angle = 60 # Cloudy elif position == 2: weather_pointer.angle = 120 # Rainy elif position == 3: weather_pointer.angle = 180 # Snowy time.sleep(0.5) # Wait to avoid multiple presses
Understanding Checkpoints:
- Students can explain in simple terms what happens when the button is pressed
- Students understand that the servo moves to different positions for different weather
- Students recognize how Marcus would use touch to understand the weather station
4. ELABORATE
How can we improve our weather station to work better for Marcus?
Extension Activity: "Making It Better"
- Texture Testing:
- Have students test their weather stations with eyes closed
- Try different textures and positions to see which are easiest to distinguish
- Modify the design based on feedback
- Button Accessibility:
- Discuss where the button should be placed so Marcus can easily find and press it
- Consider adding a texture or shape to the button to make it easy to locate
- Adding Weather Sounds:
- For advanced groups, discuss how the Neopixel LED could be used to add different colors for family members to see
- Explore the idea of adding simple sound cues (teacher demonstration only)
Enhanced Weather Station with LED
# Enhanced Weather Station with LED import time import board from digitalio import DigitalInOut, Direction, Pull import pwmio import servo import neopixel # 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) weather_pointer = servo.Servo(pwm) # Set up the Neopixel LED pixel = neopixel.NeoPixel(board.NEOPIXEL, 1, brightness=0.3) # Starting position position = 0 weather_pointer.angle = 0 pixel.fill((255, 255, 0)) # Yellow for sunny while True: # Check if button is pressed if button.value == 0: # Button is pressed # Change to next weather position position = position + 1 if position > 3: position = 0 # Move pointer to the right position and set LED color if position == 0: weather_pointer.angle = 0 # Sunny pixel.fill((255, 255, 0)) # Yellow elif position == 1: weather_pointer.angle = 60 # Cloudy pixel.fill((200, 200, 200)) # White/gray elif position == 2: weather_pointer.angle = 120 # Rainy pixel.fill((0, 0, 255)) # Blue elif position == 3: weather_pointer.angle = 180 # Snowy pixel.fill((255, 255, 255)) # White time.sleep(0.5) # Wait to avoid multiple presses
Application Checkpoints:
- Students can improve their design based on tactile testing
- Students consider button accessibility for someone who can't see
- Students can explain why their final design works well for Marcus
5. EVALUATE
How well does our weather station help Marcus check the weather independently?
Assessment Criteria
Students will demonstrate their weather station designs to the class. They will explain how their design works and show how it can be used without looking at it. The teacher will assess both the functionality of the design and the students' understanding of how their solution helps Marcus.
Assessment Rubric
Criteria | Level 1 | Level 2 | Level 3 | Level 4 |
---|---|---|---|---|
Functionality | Weather station moves but positions are difficult to distinguish | Weather station has distinct positions but requires explanation | Weather station has clearly distinguishable positions that can be understood by touch | Weather station works intuitively with multiple tactile features and easy button access |
Understanding | Student can name parts of the weather station | Student can explain how the button makes the servo move | Student can explain why their design helps Marcus | Student can suggest additional improvements based on Marcus's needs |
Empathy | Student recognizes that Marcus needs a different way to check weather | Student explains why tactile information is important | Student considers multiple aspects of using a device without vision | Student demonstrates thoughtful consideration of how their device improves Marcus's independence |
Collaboration | Student participates minimally in group work | Student contributes ideas to the group | Student actively participates in design and testing | Student helps others and incorporates teammates' ideas |