📊 Данные • ⚡ Обработка • 🤖 Действие
7 класс • Технология • 45 минут
🔄 Цепочка управления роботом:
[Датчики] → [Ввод] → [Обработка] → [Вывод] → [Действие]
💡 Задачи урока:
👁️ Человек:
Глаза → Мозг → Руки
(Вижу) (Думаю) (Делаю)
🤖 Робот:
Датчики → Программа → Моторы
(Сенсоры) (Алгоритм) (Исполнители)
🚗 Автопилот Tesla:
if camera.detect_red_light():
car.brake()
display.show("STOP")
🏠 Умный дом:
if light_sensor.value() < 50:
led.turn_on()
screen.print("Освещение включено")
📱 Смартфон:
if touch_sensor.pressed():
vibration.start()
screen.unlock()
📊 Датчик расстояния:
[Ультразвуковой датчик] → значение в см
🌈 Датчик цвета:
[Датчик цвета] → "красный", "синий", "зеленый"...
💡 Датчик освещенности:
[Датчик света] → значение 0-100%
🎛️ Кнопки:
[Кнопка нажата?] → true/false
Пример с ультразвуком:
\[\text{Безопасное расстояние} = \text{Скорость робота} \times 2 \text{ секунды}\]distance = ultrasonic_sensor.value()
safe_distance = robot_speed * 2
if distance < safe_distance:
action_needed = True
📊 Калибровка датчика света:
\[\text{Процент освещенности} = \frac{\text{Текущее значение} - \text{Минимум}}{\text{Максимум} - \text{Минимум}} \times 100\]Фильтрация шума:
# Среднее из 5 измерений
readings = []
for i in range(5):
readings.append(sensor.value())
filtered_value = sum(readings) / len(readings)
Пороговые значения:
LIGHT_THRESHOLD = 30
DISTANCE_THRESHOLD = 10
if light_sensor.value() < LIGHT_THRESHOLD:
night_mode = True
if distance_sensor.value() < DISTANCE_THRESHOLD:
obstacle_detected = True
🏃 Движение робота:
# Движение вперед
left_motor.run(speed=50)
right_motor.run(speed=50)
# Поворот направо
left_motor.run(speed=30)
right_motor.run(speed=-30)
# Остановка
left_motor.stop()
right_motor.stop()
📏 Точное позиционирование:
\[\text{Угол поворота} = \frac{\text{Градусы поворота} \times \text{Передаточное число}}{\text{360°}}\]🖥️ Вывод на экран:
screen.clear()
screen.print("Расстояние: " + str(distance) + " см")
screen.print("Режим: АВТОПИЛОТ")
🔊 Звуковые сигналы:
# Сирена при опасности
if danger_detected:
speaker.beep(frequency=1000, duration=0.5)
# Мелодия при завершении задачи
speaker.play_melody([440, 523, 659]) # A, C, E
💡 Световая индикация:
if battery_low:
led.color("red")
elif charging:
led.color("yellow")
else:
led.color("green")
Обратная связать с пользователем:
screen.print("Нажмите кнопку для старта")
while not button.is_pressed():
time.sleep(0.1)
screen.print("Начинаю работу!")
led.blink("blue", times=3)
🔦 Задание 1: “Умный светильник”
🚗 Задание 2: “Робот-разведчик”
🌈 Задание 3: “Сортировщик цветов”
🎮 Задание 4: “Интерактивный робот”
👥 Группы по 2-3 человека
0-5 мин: Получение оборудования, выбор задания
5-25 мин: Программирование и тестирование
25-30 мин: Отладка и оптимизация
30-35 мин: Подготовка к демонстрации
🏆 Критерии оценки:
Базовая структура:
while True:
# ВВОД: получаем данные
sensor_value = sensor.read()
# ОБРАБОТКА: принимаем решение
if sensor_value > threshold:
action = "move_forward"
else:
action = "turn_around"
# ВЫВОД: выполняем действие
robot.execute(action)
time.sleep(0.1) # пауза 100 мс
Следование по линии: \[\text{Ошибка} = \text{Центр линии} - \text{Текущее положение}\]
\[\text{Коррекция} = K_p \times \text{Ошибка}\]line_position = color_sensor.value() # 0-100
center = 50
error = center - line_position
correction = 0.5 * error
left_motor.run(base_speed + correction)
right_motor.run(base_speed - correction)
План презентации:
❓ Вопросы для обсуждения:
Эффективность алгоритмов:
🛠️ Типичные ошибки:
💡 Лучшие практики:
✅ Изучили:
🚀 Научились:
💭 Поняли:
🎯 Алгоритм “Робот-следопыт”:
Разработать программу для робота, который:
📋 Что сделать:
“Робот - это не просто механизм, а система принятия решений на основе входящей информации”
🔑 Ключевые принципы:
🚀 Следующий шаг: Изучение сложных алгоритмов управления и машинного обучения для роботов
💡 Вы теперь можете программировать роботов для реакции на окружающий мир!