План уроков по блочному коду: курс робототехники на Arduino на 8 недель
План уроков по блочному коду для учителей: 8 недель 40-минутных уроков Arduino с бесплатными блочными проектами, список материалов на 24 ученика, пример урока и критерии оценивания.
Программирование роботов — это написание программ, которые позволяют плате воспринимать окружающий мир, принимать решение и что-то приводить в действие: кнопка или датчик освещённости воспринимают, Arduino решает, а светодиод, зуммер или мотор реагируют. Проще всего объяснить этот цикл в классе, если начать с блочного кода и перейти к настоящему коду той же программы, когда ученики усвоят логику. В этой статье — готовый план уроков по блочному коду для учителей, кружков робототехники и родителей, которые устраивают мастерскую дома: 8 недель, один 40-минутный урок в неделю, и каждый урок построен вокруг бесплатного блочного проекта в BlueGrays.
У каждой недели плана есть цель, бесплатный проект BlueGrays, новый блок, с которым ученики знакомятся на этой неделе, и его соответствие в настоящем коде. Дальше — список материалов для класса из 24 учеников, пример урока по минутам, таблица критериев оценивания, идеи дифференциации для быстрых и медленных групп, вариант без оборудования с симуляторами и правила безопасности. План построен на Arduino Uno, а неделя по желанию посвящена Raspberry Pi Pico и MicroPython.
Что такое программирование роботов и почему начинать с блоков?
При словах «курс робототехники» сразу представляются роботы-машинки, но в основе любого робота лежат одни и те же три задачи: воспринимать, решать и действовать. Прочитать кнопку — это восприятие, спросить «кнопка нажата?» — решение, а зажечь светодиод или включить зуммер — действие. Когда ученики понимают эти три шага на светодиоде и кнопке, перенос той же логики на моторы и датчик расстояния — по большей части вопрос замены деталей. Поэтому план начинается не с моторов, а со светодиодов и кнопок, а до «глаз» робота, датчика расстояния HC-SR04, доходит на последней неделе.
Почему начинать с блоков? Для детей 10–14 лет главный враг первых уроков — точки с запятой, фигурные скобки и регистр букв: ученики в итоге думают не о том, что делает программа, а о том, почему код не компилируется. В блоках таких ошибок нет, и внимание сразу уходит на логику. Но оставаться в блоках — не цель: в реальном мире Arduino программируют на C++, а Pico — на MicroPython. Блоки в BlueGrays сделаны именно для этого моста: каждый блок один к одному соответствует строке настоящего кода, который загружается в плату. Ученики сначала читают блоки, потом смотрят на код той же программы и сопоставляют каждый блок с его строкой. Все блочные проекты и то, как они устроены, можно посмотреть на странице «Блочный код».
План уроков по блочному коду на 8 недель
Каждый урок рассчитан на 40 минут и работу в группах по 2–3 человека. Все проекты из таблицы в BlueGrays полностью бесплатны вместе с блоками и кодом, так что ученикам Premium не нужен. Порядок выбран не случайно: сначала выход (светодиод), затем время, переменные и повторение, потом вход (кнопка) и условия, хранение состояния, аналоговый датчик, массивы и циклы и, наконец, звук и расстояние. Каждая неделя добавляет к предыдущей всего одну новую идею.
| Неделя | Цель | Бесплатный проект BlueGrays | Новый блок / понятие | В настоящем коде |
|---|---|---|---|---|
| 1 | Что такое программа, цифровой выход | Мигание светодиодом | настройка (один раз), повторять всегда, настроить пин … как OUTPUT, записать HIGH / LOW в пин …, ждать … мс | setup(), loop(), pinMode(), digitalWrite(), delay() (функции Arduino) |
| 2 | Порядок команд и время | Два светодиода мигают поочерёдно, Светофор | Те же блоки по очереди на разных пинах, изменение времени ожидания | Порядок строк; 2000 мс = 2 с |
| 3 | Переменные и повторение заданное число раз | Полицейская мигалка | глобальные переменные (в начале), объявить целое (int) delayTime = 60, блок «повторить 3 раза» | int delayTime = 60; for (int i = 0; i < 3; i++) (переменная и цикл) |
| 4 | Вход и условия | Управление светодиодом кнопкой (Push) | настроить пин … как INPUT, прочитать пин …, блок «если … то … иначе», сравнение = | pinMode(13, INPUT), digitalRead(), if / else, == (сравнение) |
| 5 | Запоминание состояния (вкл/выкл) | Переключение светодиода кнопкой (вкл/выкл) | установить … в …, сравнение ≠, не, ждать 50 мс | ledState = !ledState; !=; антидребезг кнопки |
| 6 | Аналоговый датчик и порог | Измерение освещённости с LDR, Ночник на LDR | блок «аналоговое чтение A0», блоки «запустить порт на … бод» и «вывести в порт», сравнение < | analogRead(A0) 0–1023, Serial.begin(9600), Serial.println(), if (value < 50) (порог) |
| 7 | Массивы и циклы | Бегущий огонь, Бегущий огонь с регулировкой скорости | блок «массив 2 3 4 5 6 7», цикл «считать с i от 0 до 5 через 1», «элемент i из ledPins» | int ledPins[] = {2, 3, 4, 5, 6, 7}; for (int i = 0; i < 6; i++) (массив и цикл) |
| 8 | Звук и расстояние: органы чувств робота | Работа с зуммером, Измерение расстояния с HC-SR04 (монитор порта) | блоки «играть … Hz на пине …» и «остановить звук на пине …», «ждать … мкс», «длина импульса … на пине … (мкс)», «и» | tone(), noTone(), delayMicroseconds(10), pulseIn(), && (логическое И) |
| По желанию | Pico и MicroPython | Внешний светодиод на Pico (GP14) | блок «пин led : GP LED_PIN , OUTPUT» для GP14, блоки «включить (on) / выключить (off) пин led», «ждать 0.5 с» | команды MicroPython: Pin(14, Pin.OUT), led.on(), time.sleep(0.5), while True: |

Во время курса введи правило: в конце каждого урока ученики меняют одно значение. На 1-й неделе, когда ожидание 100 мс в проекте «Мигание светодиодом» превращается в 1000 мс и светодиод замедляется, уже на первом уроке появляется чувство «программой управляю я». На 3-й неделе, если увеличить переменную delayTime в проекте «Полицейская мигалка» с 60 до 200, ученики видят, что одно число влияет сразу на шесть блоков; это самый короткий способ объяснить, зачем нужны переменные. На 6-й неделе настройка порога 50 в проекте «Ночник на LDR» под освещение в твоём классе учит, что показания датчика зависят от окружения. На 7-й неделе дай каждой группе потенциометр 10 kΩ для проекта «Бегущий огонь с регулировкой скорости»: менять скорость светодиодов рукой — обычно любимый момент недели.
Список материалов для класса из 24 учеников
Если разделить 24 ученика на группы по 3, получится 8 групп; достаточно подготовить 9 наборов, один из них запасной. Если удобнее работать парами, пересчитай количество на 12 групп. Паять ничего не нужно: все детали вставляются в макетную плату. Вместо того чтобы покупать детали по одной, сравни с этим списком содержимое готового стартового набора; что обычно входит в типичные наборы, мы рассказываем в статье «Стартовый набор Arduino».
| Что нужно | На группу | На класс (8 групп + 1 запасной набор) | Неделя |
|---|---|---|---|
| Arduino Uno или совместимая плата | 1 | 9 | Все |
| USB-кабель (USB A-B для Uno) | 1 | 9 | Все |
| Макетная плата (400 или 830 отверстий) | 1 | 9 | Все |
| Провода-перемычки «папа–папа» | 20 | около 200 | Все |
| Светодиоды 5 мм (вперемешку красные, жёлтые, зелёные, синие) | 8 | около 80 | 1–7 |
| Резисторы 220 Ω | 8 | около 80 | 1–7 |
| Резисторы 10 kΩ | 2 | около 25 | 4–6 |
| Тактовые кнопки (4 вывода) | 2 | около 20 | 4–5 |
| Фоторезистор LDR (датчик освещённости) | 1 | 10 | 6 |
| Зуммер (пассивный, чтобы можно было менять тон) | 1 | 10 | 8 |
| Ультразвуковой датчик расстояния HC-SR04 | 1 | 10 | 8 |
| Потенциометр 10 kΩ (по желанию) | 1 | 10 | 7 |
| Raspberry Pi Pico + кабель micro USB (по желанию) | 1 | несколько | Неделя Pico |
Пример урока: 5-я неделя, переключение светодиода кнопкой
Ниже — ход 40-минутного урока, и этот же каркас можно использовать каждую неделю: разминка, совместное чтение блоков, прогноз, схема, настоящий код, изменение одного значения, вопрос на выходе. В примере взят проект 5-й недели, «Переключение светодиода кнопкой (вкл/выкл)», потому что идея «программа может что-то запоминать» — один из поворотных моментов в программировании роботов.
| Время | Этап | Что происходит |
|---|---|---|
| 0–5 мин | Разминка | Вопрос: нажмёшь выключатель света один раз — лампа загорается, нажмёшь ещё раз — гаснет. Как выключатель это запоминает? Запиши несколько ответов на доске. |
| 5–12 мин | Совместное чтение блоков | Открой проект на проекторе с включённым переключателем «Показать блоками». Блоки читаются вслух сверху вниз, и класс обсуждает, что хранят переменные ledState и lastButton. |
| 12–15 мин | Прогноз | Каждая группа записывает: что сделает светодиод, если держать кнопку нажатой? Что изменится без блока «ждать 50 мс»? |
| 15–25 мин | Сборка схемы | Кнопка к D13 и через 10 kΩ к GND (стягивающий резистор, pull-down), светодиод через 220 Ω к D7. Роли: сборщик, контролёр, чтец. |
| 25–32 мин | Загрузка настоящего кода | Переключатель выключается, код копируется в Arduino IDE и загружается в плату. Прогнозы проверяются на деле. |
| 32–37 мин | Изменение одного значения | delay(50) меняется сначала на 0, потом на 300; группы смотрят, как ведёт себя светодиод при быстрых нажатиях. Желающие группы меняют пин светодиода и в коде, и в схеме. |
| 37–40 мин | Вопрос на выходе | Один вопрос, на бумаге: что делает строка ledState = !ledState и какой блок ей соответствует? |

1int ledState = 0; // LED durumu: 0 = kapalı, 1 = açık / LED state: 0 = off, 1 = on
2int lastButton = 0; // Önceki buton okuması / Previous button reading
3
4void setup() {
5 pinMode(13, INPUT); // Buton girişi (harici pull-down) / Button input (external pull-down)
6 pinMode(7, OUTPUT); // LED çıkışı / LED output
7}
8
9void loop() {
10 int button = digitalRead(13); // Butonu oku / Read the button
11 if (button != lastButton) { // Buton durumu değişti / Button state changed
12 if (button == 1) { // Yalnız basış anında (LOW -> HIGH) / Only at the press (LOW -> HIGH)
13 ledState = !ledState; // Durumu tersine çevir / Flip the state
14 digitalWrite(7, ledState);
15 }
16 delay(50); // Sıçramayı atlamak için kısa bekleme / Short wait to skip the bounce
17 lastButton = button; // Bu okumayı sakla / Store this reading
18 }
19}
20Положи блоки и код рядом, и соответствие видно очень ясно: два блока «объявить целое (int)» внутри «глобальные переменные (в начале)» — это первые две строки кода, «настройка (один раз)» становится setup(), а «повторять всегда» — loop(). Блок «установить button в прочитать пин 13» — это строка int button = digitalRead(13), сравнение «≠» — это !=, а «не ledState» — !ledState. На этапе прогноза большинство групп говорит: «если держать кнопку, светодиод будет мигать»; при проверке видно, что светодиод переключается только один раз, ведь внешний блок «если» срабатывает только при изменении состояния кнопки. Момент, когда неверный прогноз исправляется, — самая поучительная минута урока. Когда delay(50) становится 0, ученики замечают, что при некоторых нажатиях светодиод переключается дважды и кажется, будто ничего не произошло; это идеальный повод рассказать о дребезге контактов (bounce). Группам, которым интересно, почему кнопка подключена к GND через 10 kΩ, покажи статью «Как подключить кнопку к Arduino».
Как использовать BlueGrays на уроке
- Открыть проект: ученики открывают проект недели на своём телефоне или планшете. Метка «Блоки» в списке проектов отмечает проекты с блоками, а фильтр «Проекты с блоками» оставляет в списке только их. В каждом проекте есть список деталей и схема подключения.
- Показать блоками: если включить этот переключатель в разделе кода, вместо кода появятся блоки той же программы. Нажми на изображение, и оно откроется на весь экран — идеально для совместного чтения на проекторе. Блоки отображаются на языке приложения.
- Разбор блоков: на этой вкладке программа объясняется шаг за шагом; на каждом шаге видны только блоки этого шага и то, что они делают. Для групп, которым нужно больше времени, это настоящий помощник учителя.
- Переход к настоящему коду: выключи переключатель, и появится код той же программы. Ученики копируют его в Arduino IDE (для Pico — в Thonny) и загружают в плату.
- Справочник по коду: здесь собраны примеры команд вроде digitalWrite, if/else и for, и каждый пример есть ещё и в виде блоков. Ученики привыкают заглядывать сюда, прежде чем спрашивать тебя, если какая-то команда вылетела из головы.
- Вопросы дня: каждый день 5 вопросов уровней от A1 до C2, недельный рейтинг и значки. Можно предложить их ученикам для повторения по несколько минут в день между уроками.
Нет оборудования? Урок с симулятором
Если наборы ещё не пришли или уроки проходят дистанционно, хорошая альтернатива — браузерные симуляторы вроде Tinkercad Circuits и Wokwi. В обоих есть Arduino Uno, макетная плата, светодиоды, резисторы и кнопки, а также широкий выбор датчиков; схема собирается на экране и запускается, если вставить настоящий код проекта. Ход урока остаётся тем же: ученики читают блоки в BlueGrays, вставляют код в симулятор, меняют значение и наблюдают результат. У Tinkercad есть и собственный блочный редактор, поэтому некоторые учителя проводят там все первые недели. И всё же настоящий горящий светодиод и провода, вставленные в макетную плату, творят чудеса с мотивацией, поэтому симулятор лучше ставить перед оборудованием, а не вместо него. Установка и первая схема описаны в статьях «Моделирование Arduino в Tinkercad» и «Симуляция в Wokwi».
Оценивание: критерии для уроков блочного кода
На уроках робототехники процесс важен не меньше результата: группа, которая зажигает светодиод, и группа, которая выясняет, почему он не горит, вполне могут научиться одному и тому же. Таблицу ниже удобнее применять, если на каждом уроке сосредоточиться на одном критерии; к концу 8 недель достаточно, чтобы все ученики хотя бы раз побывали под наблюдением по каждому из шести критериев. Вопросы на выходе тоже дают данные для таблицы.
| Критерий | 1 – Начало | 2 – Развитие | 3 – Освоено |
|---|---|---|---|
| Сборка схемы | Собирает с помощью, часто ошибается в подключении | Собирает по схеме, одну-две ошибки находит без подсказки | Почти не смотрит в схему, замечает ошибки в чужой сборке |
| Чтение блоков | Читает названия блоков, не может объяснить порядок | Объясняет в общих чертах, что делает программа | Объясняет каждый блок и то, почему важен порядок |
| Прогноз и проверка | Не делает прогнозов и не проверяет | Делает прогноз и записывает результат | Находит причину, когда прогноз не сбывается |
| Сопоставление блоков и кода | Не может сопоставить блок со строкой кода | Находит в коде блоки пина, записи и ожидания | Сопоставляет также строки if, for и переменных |
| Изменение значений | Меняет значение, но не может объяснить результат | Меняет и объясняет результат | Планирует изменение заранее, находит ошибки по сообщению компилятора |
| Работа в команде | Часто бросает свою роль | Выполняет свою роль | Меняется ролями, помогает другим группам |
Дифференциация для быстрых и медленных групп
- Быстрые группы, дополнительное задание: добавить в код проекта «Светофор» четвёртую фазу (например, красный вместе с жёлтым) или пересчитать время под настоящий перекрёсток. Код группы меняют в Arduino IDE самостоятельно, а блоки используют как подсказку.
- Быстрые группы, объединение: на 8-й неделе пусть они попробуют объединить «Измерение расстояния с HC-SR04 (монитор порта)» и «Работа с зуммером» в одну программу, которая включает зуммер, когда расстояние становится меньше 20 см, — простой парктроник. Это первый настоящий шаг от чтения блоков к написанию собственного кода.
- Быстрые группы, смена платформы: группы с Pico открывают проект «Внешний светодиод на Pico» и сравнивают версию на MicroPython с кодом на C++ с 1-й недели.
- Медленные группы, готовая схема: выдай уже собранную схему или положи на стол крупную распечатку схемы подключения. Эти группы тратят время на чтение блоков и прогнозы.
- Медленные группы, шаг за шагом: пусть они проходят программу по вкладке «Разбор блоков» и в конце каждого шага одним предложением говорят, что происходит. Изменить одно значение — вполне достойная цель на этот день.
- Смешанные пары: следи, чтобы в каждой группе была роль «чтеца»; если объединить в группу тех, кто быстро собирает схемы, но медленно читает, с теми, у кого всё наоборот, продвигаются обе стороны.
Переход от блоков к тексту: когда и как
Фиксированной недели для перехода нет; подходящий момент наступает, когда ученики, глядя на блоки, могут ещё до запуска сказать, что сделает программа. По этому плану большинство классов доходит до этой точки на 4-й или 5-й неделе. При этом знакомство с кодом начинается с первого дня: настоящий код загружается в плату на каждом уроке, поэтому строки setup(), loop() и digitalWrite() ученики видят с 1-й недели. Переход постепенно смещается от «смотрим на блоки, загружаем код» к «читаем код, при необходимости заглядываем в блоки». Эту смену упрощает такая последовательность:
- Положи блоки и код рядом и вместе с классом найди строку, соответствующую каждому блоку (1–3-я недели).
- Скрой блоки, прочитай только код и предскажи, что сделает программа; затем проверь через «Показать блоками» (4–5-я недели).
- Меняй значения только в коде: время ожидания, номер пина, порог. Если возникает ошибка компиляции, прочитай первую строку сообщения (5–6-я недели).
- Напиши новую строку кода: например, добавь ещё один светодиод в массив проекта «Бегущий огонь» и увеличь границу цикла с 6 до 7 (7-я неделя).
- Объедини два проекта в небольшую собственную программу; если что-то не получается, загляни в примеры и блоки в «Справочнике по коду» (8-я неделя и дальше).
Советы по безопасности
Серия «От блоков к коду» коротко
- Часть 1: Что такое блочный код и как блочная программа превращается в настоящий код.
- Часть 2: Мигаем светодиодом с помощью блочного кода: первая программа, блоки и C++ рядом.
- Часть 3: Блок «если» и кнопка: условия и их соответствие в if/else.
- Часть 4: Циклы и переменные: «повторять всегда» и loop(), счёт и for, массивы, счётчики.
- Часть 5: Чтение датчиков блоками и MicroPython: последовательный порт, LDR, HC-SR04 и Pico.
- Часть 6: эта статья, в которой всё изученное превращается в план уроков по блочному коду на 8 недель для класса.
На этом серия завершается; если перед началом занятий в классе хочется ещё раз освежить логику, вернись к началу, к статье что такое блочный код. Все проекты из плана можно посмотреть в приложении BlueGrays вместе со схемой подключения, списком деталей и кодом: через Показать блоками переключиться на блочную версию той же программы, через Разбор блоков — на пошаговое объяснение, и спокойно вести урок с проектора.
Частые вопросы
Что такое программирование роботов?
Программирование роботов — это написание программ, которые позволяют плате воспринимать окружающий мир с помощью датчиков, принимать решения и реагировать через такие детали, как светодиоды, зуммеры или моторы. В школах обычно начинают с плат вроде Arduino и блочного кода, а затем переходят к текстовым языкам, например C++ или MicroPython.
С какого возраста детям начинать учить программирование роботов?
Дети от 9–10 лет, которые свободно читают, могут начать вместе со взрослым. В этом возрасте лучший старт — блочный код и схемы на макетной плате без пайки. Примерно к 12 годам большинство учеников уже могут читать настоящий код.
Как составить план уроков по блочному коду?
Дай каждому уроку одну новую идею и выстрой порядок: выход, время, переменные, вход, условия, датчики и циклы. Держи каждый урок в одном каркасе: разминка, совместное чтение блоков, прогноз, схема, настоящий код, изменение одного значения и вопрос на выходе. План на 8 недель в этой статье построен именно так.
Какие материалы нужны для уроков Arduino?
На группу достаточно Arduino Uno или совместимой платы, USB-кабеля, макетной платы, проводов-перемычек, светодиодов, резисторов 220 Ω и 10 kΩ, кнопки, фоторезистора LDR, зуммера и датчика расстояния HC-SR04. Для класса из 24 учеников в группах по 3 подготовь 8 наборов и один запасной.
Можно ли учить программированию роботов без Arduino?
Да, браузерные симуляторы вроде Tinkercad Circuits и Wokwi позволяют собрать схему на экране и запустить код. Но настоящий горящий светодиод сильно повышает мотивацию, поэтому симулятор лучше всего работает как подготовка к работе с оборудованием.
Когда ученикам переходить от блочного кода к коду Arduino?
Пора, когда ученики, глядя на блоки, могут сказать, что сделает программа; по этому плану большинство классов доходит до этого на 4-й или 5-й неделе. Сначала читай с классом блоки и код рядом, затем меняй значения только в коде и в конце пиши новые строки.
Что собрать после прочтения
Все проекты
Мигающий светодиод
Самое первое «привет» в электронике: включение и выключение одного светодиода. Arduino включает и выключает светодиод через короткие промежутки, поэтому свет быстро мигает. Ты самым простым способом в

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

Полицейская мигалка на светодиодах
Как огни на полицейской машине: красный светодиод три раза быстро вспыхивает, затем три раза вспыхивает синий, и узор повторяется без перерыва. Нужны всего два светодиода и два резистора, подключённые

Управление светодиодом кнопкой (удержание)
Как дверной звонок: свет горит, пока ты нажимаешь, и гаснет, когда отпускаешь. Arduino всё время слушает кнопку; пока она нажата, светодиод горит, а как только ты убираешь палец, он гаснет. Эта просте

Включение и выключение светодиода кнопкой (вкл/выкл)
Нажми кнопку один раз — свет загорится, нажми ещё раз — погаснет, совсем как выключатель в твоей комнате. Arduino замечает каждое нажатие и переводит светодиод в противоположное состояние, выжидая кор

Ночник на LDR
Маленький ночник, который сам включается, когда темнеет, и гаснет, когда наступает утро. Датчик освещённости измеряет, насколько светло в комнате, и Arduino включает светодиод, когда достаточно темно,

Бегущие огни на светодиодах
Огни, которые загораются друг за другом, будто бегут. Arduino зажигает шесть светодиодов по одному; каждый светится короткое мгновение и гаснет, так что свет проходит от начала до конца и начинает сно

Измерение расстояния HC-SR04 (вывод в порт)
Датчик HC-SR04 работает совсем как летучая мышь, которая находит дорогу в темноте: он посылает звук, которого ты не слышишь, слушает эхо и измеряет, насколько далеко предмет перед ним. Arduino каждые
Другие статьи
Приложение BlueGrays
Собери эту схему шаг за шагом в телефоне
Схема подключения, код и список деталей на одном экране. 200+ проектов на Arduino, ESP32 и Pico готовы к сборке.
Наведи камеру телефона
Наведи камеру на код — откроется магазин приложений на телефоне.
или открыть магазин

