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