Умный светофор в Scratch: робот едет по сигналу

«Умный светофор» — проект среднего уровня по виртуальной робототехнике в Scratch. В нём мы создам не один движущийся объект, а маленькую систему: светофор меняет сигналы, а робот смотрит на эти сигналы и решает, ехать ему дальше или остановиться.

Главная идея проекта — показать, как несколько объектов в Scratch могут работать вместе. Светофор сам по себе только меняет цвета. Робот сам по себе умеет двигаться. Но когда между ними появляются сообщения, они начинают действовать как одна программа.

Проект собирается стандартными блоками Scratch. Никакие расширения, датчики и внешние устройства не нужны. Всё работает на сцене: спрайт светофора отправляет сообщения, спрайт робота получает эти сообщения и меняет своё поведение.

Кнопка: Открыть проект «Умный светофор»

Важно для точности Это учебная модель светофора, а не инструкция по правилам дорожного движения. В проекте красный и жёлтый сигналы останавливают робота, зелёный разрешает движение. Так проще увидеть связь «сигнал — действие».

Что получится в проекте

На сцене будет дорога, робот и светофор с тремя фазами: красный, жёлтый и зелёный. Светофор будет менять цвет по таймеру. Когда появляется зелёный сигнал, робот едет вперёд. Когда появляется красный или жёлтый сигнал, робот останавливается. Если робот доезжает до края маршрута, он возвращается на старт, чтобы проект можно было проверять снова.

  • светофор автоматически переключает фазы;
  • каждая фаза отправляет своё сообщение;
  • робот получает сообщения от светофора;
  • на зелёный сигнал робот едет;
  • на красный и жёлтый сигнал робот стоит;
  • проект можно запустить и проверить без ручного управления роботом.

Зачем нужен этот проект

В простых проектах мы часто управляет одним спрайтом: нажал флаг — робот поехал. В «Умном светофоре» появляется новая идея: один объект может сообщать что-то другому объекту. Так ребёнок видит, что программа может быть не одной длинной цепочкой команд, а системой из нескольких частей.

Это важный шаг к робототехническому мышлению. В реальных инженерных задачах разные части системы тоже должны согласовывать действия: датчик передаёт сигнал, контроллер принимает решение, моторы выполняют команду. В Scratch мы изучаем эту логику на понятном примере, без проводов и сложного оборудования.

Какие навыки тренирует проект

  • события: запуск по зелёному флагу и реакция на полученное сообщение;
  • сообщения в Scratch: один спрайт отправляет команду, другой её получает;
  • таймеры: фазы светофора переключаются через блок «ждать … секунд»;
  • взаимодействие спрайтов: светофор не двигает робота напрямую, а управляет его поведением через сигнал;
  • условия: робот проверяет, можно ли ехать;
  • отладка: ребёнок проверяет, на каком сигнале робот должен стоять, а на каком ехать.

Текстовый алгоритм проекта

Алгоритм удобно сначала прочитать как обычную инструкцию. После этого его легче перенести в блоки Scratch.

  1. Поставить робота на старт дороги.
  2. Поставить рядом светофор.
  3. Создать три состояния светофора: красный, жёлтый и зелёный.
  4. Запустить бесконечную смену фаз: красный → жёлтый → зелёный → жёлтый → снова красный.
  5. На каждой фазе светофор отправляет сообщение: «красный», «жёлтый» или «зелёный».
  6. Робот получает сообщение от светофора.
  7. Если сигнал зелёный, робот получает разрешение ехать.
  8. Если сигнал красный или жёлтый, робот получает команду остановиться.
  9. Пока движение разрешено, робот двигается по дороге.
  10. Когда робот доезжает до конца маршрута, он возвращается на старт для новой проверки.

Что понадобится в Scratch

  • новый проект Scratch;
  • спрайт «Робот» — можно нарисовать простого робота или выбрать подходящий спрайт из библиотеки;
  • спрайт «Светофор» с тремя костюмами: красный, жёлтый, зелёный;
  • фон дороги или простая линия маршрута на сцене;
  • переменная «движение»;
  • сообщения: «красный», «жёлтый», «зелёный»;
  • стандартные блоки Scratch: события, движение, управление, внешний вид и переменные.

Подготовка сцены

  1. Откройте Scratch и создайте новый проект.
  2. Удалите кота или переименуйте его в «Робот», если он будет выполнять роль робота.
  3. Нарисуйте простую дорогу: горизонтальную линию или прямоугольную дорожку.
  4. Поставьте робота слева, например в точку x: -220, y: -90.
  5. Поставьте светофор рядом с дорогой, например в точку x: 0, y: 20.
  6. Создайте переменную «движение» для всех спрайтов. На время проверки её можно оставить видимой на сцене.
  7. Создайте три сообщения: «красный», «жёлтый», «зелёный».

Координаты можно менять под свой фон. Главное — использовать одни и те же стартовые и конечные точки в программе и при проверке.

Как сделать спрайт «Светофор»

Самый простой вариант — нарисовать светофор в редакторе костюмов Scratch.

  1. Добавьте новый спрайт и назовите его «Светофор».
  2. Откройте вкладку «Костюмы».
  3. Нарисуйте стойку и три круга: верхний, средний и нижний.
  4. Сделайте первый костюм «красный»: верхний круг яркий, остальные тёмные.
  5. Скопируйте костюм два раза.
  6. Во втором костюме сделайте ярким жёлтый круг и назовите костюм «жёлтый».
  7. В третьем костюме сделайте ярким зелёный круг и назовите костюм «зелёный».

Названия костюмов лучше писать коротко и без лишних символов. Так ребёнку проще не запутаться при выборе костюма в блоке «сменить костюм на …».

Программа для светофора

Светофор отвечает за смену фаз. Каждая фаза делает три действия: показывает нужный костюм, отправляет сообщение роботу и ждёт несколько секунд.

Скрипт спрайта «Светофор»

когда щёлкнут по зелёному флагу
повторять всегда
  сменить костюм на [красный]
  передать [красный]
  ждать (3) секунд

  сменить костюм на [жёлтый]
  передать [жёлтый]
  ждать (1) секунд

  сменить костюм на [зелёный]
  передать [зелёный]
  ждать (3) секунд

  сменить костюм на [жёлтый]
  передать [жёлтый]
  ждать (1) секунд

Блоки «ждать … секунд» работают как простой таймер фаз. Для первого запуска удобно оставить такие значения: красный — 3 секунды, жёлтый — 1 секунда, зелёный — 3 секунды. Потом ребёнок может изменить время и посмотреть, как поменяется поведение робота.

Программа для робота

Робот должен уметь делать две вещи: получать сигналы от светофора и двигаться только тогда, когда движение разрешено. Для этого используется переменная «движение».

Основной скрипт движения робота

когда щёлкнут по зелёному флагу
задать [движение] значение [стоп]
перейти в x: (-220) y: (-90)
повернуться в направлении (90)
повторять всегда
  если <(движение) = [ехать]> то
    изменить x на (3)
  конец
  если <(x позиция) > (220)> то
    перейти в x: (-220) y: (-90)
  конец

Скрипты реакции робота на сообщения

когда я получу [красный]
задать [движение] значение [стоп]
говорить [Стоп. Жду сигнал.] (0.5) секунд

когда я получу [жёлтый]
задать [движение] значение [стоп]
говорить [Жду.] (0.5) секунд

когда я получу [зелёный]
задать [движение] значение [ехать]
говорить [Можно ехать!] (0.5) секунд
Почему так работает Светофор не толкает робота и не двигает его блоками движения. Он только отправляет сообщение. Робот получает сообщение и сам меняет переменную «движение». Это и есть взаимодействие спрайтов.

Как проверить проект

Проверка важна не меньше сборки. Ребёнок должен убедиться, что робот слушает светофор, а не просто едет сам по себе.

  • Нажмите зелёный флаг.
  • Посмотрите на переменную «движение». На красном и жёлтом сигнале должно быть значение «стоп».
  • Когда светофор станет зелёным, значение должно поменяться на «ехать».
  • На зелёном сигнале робот должен двигаться вправо.
  • Когда светофор снова станет жёлтым или красным, робот должен остановиться на текущем месте.
  • После следующего зелёного сигнала робот должен продолжить движение.
  • Когда робот дойдёт до правого края маршрута, он должен вернуться на старт.
Что проверяемКак должно бытьЧто исправить, если не работает
Красный сигналСветофор красный, робот стоит.Проверьте сообщение «красный» и скрипт «когда я получу [красный]». Название сообщения должно совпадать точно.
Жёлтый сигналСветофор жёлтый, робот стоит.Проверьте, что жёлтый сигнал тоже задаёт переменной «движение» значение «стоп».
Зелёный сигналСветофор зелёный, робот едет.Проверьте, что при сообщении «зелёный» переменная получает значение «ехать».
Возврат на стартПосле правого края робот возвращается в начало дороги.Проверьте условие «если x позиция > 220». Если дорога короче или длиннее, измените число 220.

Типичные ошибки и как их исправить

ОшибкаПричинаРешение
Робот едет даже на красный.В основном скрипте движения нет условия или переменная не меняется на «стоп».Вставьте движение внутрь условия «если движение = ехать». Проверьте скрипты получения сообщений.
Робот вообще не едет.Не приходит сообщение «зелёный» или в переменной другое слово.Сравните текст сообщения и значение переменной. «ехать» и «Ехать» для проверки лучше не смешивать.
Светофор меняет цвет, но робот не реагирует.Сообщения созданы у светофора, но у робота нет блоков «когда я получу …».Добавьте у робота три отдельных скрипта реакции на сообщения.
Робот появляется не там.Стартовые координаты не совпадают с дорогой.Передвиньте робота на нужное место и обновите числа в блоке «перейти в x: … y: …».
Фазы идут слишком быстро.Маленькие значения в блоках «ждать».Поставьте 3 секунды для красного и зелёного, 1 секунду для жёлтого. Потом меняйте значения для эксперимента.
Робот исчезает за край сцены.Нет возврата на старт или слишком большая скорость.Добавьте проверку x позиции и уменьшите шаг движения с 3 до 2.

Что ребёнок должен уметь объяснить после проекта

  • какой спрайт в проекте главный источник сигналов;
  • какие сообщения отправляет светофор;
  • почему робот не должен двигаться без зелёного сигнала;
  • зачем нужна переменная «движение»;
  • как блок «ждать … секунд» управляет длительностью фазы;
  • почему ошибка в названии сообщения ломает связь между спрайтами;
  • как проверить проект не по памяти, а по наблюдению на сцене.

Если ребёнок может рассказать это своими словами, проект выполнен по смыслу. Он не просто повторил блоки, а понял, как объекты в программе договариваются друг с другом.

Как усложнить проект

Когда базовая версия работает стабильно, проект можно улучшать. Лучше добавлять по одному изменению и после каждого изменения снова проверять сцену.

  • Добавить второй робот, который тоже слушает светофор.
  • Сделать кнопку «Пуск», чтобы светофор начинал работу не сразу после зелёного флага.
  • Добавить пешехода, который идёт только тогда, когда робот стоит.
  • Добавить счётчик проездов: сколько раз робот доехал до конца дороги.
  • Сделать режим «авария»: при нажатии клавиши светофор мигает жёлтым, а робот стоит.
  • Добавить линию остановки перед светофором: робот останавливается не где попало, а перед перекрёстком.

Куда перейти дальше

После «Умного светофора» ребёнку полезно закрепить идею взаимодействия объектов на других проектах. Можно перейти к заданиям, где робот реагирует на препятствие, проходит маршрут или работает с несколькими точками.

Внутренние ссылки для страницы: Scratch, Проекты, Симуляторы, Материалы для родителей, Материалы для учителей.

Рекомендации по изображениям для SEO

Изображения лучше размещать рядом с теми частями статьи, которые они объясняют. Названия файлов и alt-тексты должны быть описательными, без набора ключевых слов.

МестоФайлAlt-текст
После первого экранаumnyy-svetofor-scratch-robot.webpРобот в Scratch стоит перед умным светофором на учебной дороге
В разделе «Текстовый алгоритм»algoritm-umnogo-svetofora-scratch.webpСхема алгоритма: светофор отправляет сигнал, робот едет или останавливается
В разделе «Программа для светофора»bloky-svetofor-scratch.webpБлоки Scratch для переключения красного, жёлтого и зелёного сигналов
В разделе «Программа для робота»robot-poluchaet-soobshcheniya-scratch.webpРобот получает сообщения от светофора и меняет движение в Scratch

Частые вопросы

Можно ли сделать проект без переменной «движение»?

Можно, но для учебной версии переменная удобнее. Ребёнок видит на сцене, какое состояние сейчас у робота: «стоп» или «ехать». Так проще искать ошибки.

Почему жёлтый сигнал тоже останавливает робота?

В этой учебной модели жёлтый означает «ждать». Это упрощает задачу: робот едет только на зелёный сигнал. Позже можно сделать более сложную версию с разными правилами для жёлтого.

Что делать, если робот не реагирует на сообщения?

Проверьте, совпадают ли названия сообщений у светофора и у робота. В Scratch сообщение «зелёный» и сообщение «Зелёный» лучше не смешивать, чтобы ребёнку было проще отлаживать проект.

Нужны ли расширения Scratch?

Нет. Проект собирается стандартными блоками Scratch: события, управление, движение, внешний вид и переменные.

Подходит ли проект для урока?

Да. Проект удобно использовать на занятии по Scratch или виртуальной робототехнике, когда дети уже умеют запускать программу, добавлять спрайты и собирать простые скрипты.

Robokosha