Skip to main content

🔧 Arduino IDE и первая программа

🎯 Цели и планируемые результаты урока

Предметные результаты:

  • Освоение установки и настройки Arduino IDE для ESP32
  • Понимание структуры программы Arduino (setup/loop)
  • Навыки безопасного подключения ESP32 к компьютеру
  • Умение загружать и запускать простые программы
  • Понимание принципов программирования микроконтроллеров

Метапредметные результаты:

  • Развитие алгоритмического мышления
  • Формирование навыков работы с программным обеспечением
  • Умение следовать пошаговым инструкциям
  • Развитие навыков отладки и поиска ошибок

Личностные результаты:

  • Формирование интереса к программированию
  • Развитие терпения и настойчивости при решении технических задач
  • Воспитание аккуратности при работе с оборудованием

🚀 Мотивационное начало (5 минут)

“Оживление робота - первые слова”

Учитель показывает ESP32 с уже загруженной программой мигающего светодиода

Демонстрация “магии”:

  • ESP32 мигает светодиодом в определенном ритме
  • “Видите? Он нам что-то говорит! Это его первые слова!”
  • Показать тот же ESP32 без программы (не мигает)

Интрига: “Сегодня мы станем ‘учителями роботов’ и научим наших ESP32 их первым словам!”

Аналогия с обучением ребенка:

1👶 Обучение ребенка     ↔    🤖 Обучение ESP32
2🗣️ Учим говорить "мама"  ↔    💡 Учим мигать светодиодом
3📚 Используем букварь     ↔    💻 Используем Arduino IDE
4👨‍🏫 Нужен учитель         ↔    👨‍💻 Нужен программист (это мы!)
5🎯 Повторяем до успеха    ↔    🔄 Отлаживаем программу

Вызов дня: “К концу урока каждый ваш ESP32 будет ‘говорить’ светом, а вы станете его первыми учителями!”

📖 Основная часть урока

Блок 1: “Установка Arduino IDE - подготовка учительского стола” (12 минут)

💻 “Создание рабочего места программиста”

Шаг 1: Установка Arduino IDE

Учитель демонстрирует на большом экране, дети следуют на своих компьютерах

1🌐 Где скачать: arduino.cc  Software  Downloads
2📥 Выбираем: Arduino IDE 2.x.x (новая версия)
3💻 Операционная система: Windows/Mac/Linux
4⏱️ Время установки: ~5 минут

Пошаговая установка:

  1. Скачивание установщика
  2. Запуск с правами администратора
  3. Выбор папки установки
  4. Ожидание завершения

Аналогия: “Как устанавливаем игру на компьютер - нужно немного подождать, и появится новая ‘игрушка’ для программирования!”

Шаг 2: Установка драйверов ESP32

Важное объяснение:

1🔌 Драйвер = "переводчик"
2- Помогает компьютеру "понимать" ESP32
3- Как изучение иностранного языка для общения
4- Без драйвера: компьютер видит "неизвестное устройство"
5- С драйвером: "О, это ESP32! Я знаю, как с ним общаться!"

Автоматическая установка (современные ОС):

  • Подключаем ESP32 через USB
  • Windows/Mac автоматически найдет драйвер
  • Смотрим в “Диспетчер устройств” - должен появиться COM порт

Шаг 3: Добавление поддержки ESP32 в Arduino IDE

Демонстрация учителем:

1🛠️ Меню: File → Preferences
2📋 Additional Board Manager URLs:
3https://dl.espressif.com/dl/package_esp32_index.json
4
5🔧 Tools → Board → Boards Manager
6🔍 Поиск: "esp32"
7📥 Установка: "ESP32 by Espressif Systems"
8⏱️ Ждем 3-5 минут (зависит от интернета)

Проверка установки:

  • Tools → Board → ESP32 Dev Module (должен появиться)
  • “Если видите ESP32 в списке - поздравляю, вы готовы к программированию!”

🎯 Практическое задание “Настройка рабочего места”

Каждый ученик проверяет:

1✅ ЧЕКЛИСТ ГОТОВНОСТИ:
2□ Arduino IDE запускается
3□ ESP32 платы видны в Tools → Board
4□ ESP32 подключен и опознан компьютером
5□ В Tools → Port виден COM порт
6□ Не горят красные ошибки в консоли

Блок 2: “Архитектура программы - анатомия кода” (10 минут)

🏗️ “Дом для программы”

Центральная метафора: Программа Arduino как двухэтажный дом

 1🏠 ПРОГРАММА ARDUINO = ДОМ ИЗ 2 ЭТАЖЕЙ
 2
 3🏗️ 1 ЭТАЖ: setup() - "Комната подготовки"
 4- Выполняется ОДИН раз при включении
 5- Здесь мы "готовим" ESP32 к работе
 6- Как утренняя зарядка - делаем один раз
 7
 8🔄 2 ЭТАЖ: loop() - "Комната действий"  
 9- Выполняется БЕСКОНЕЧНО по кругу
10- Здесь ESP32 "живет" и работает
11- Как сердце - бьется постоянно

📝 “Изучение структуры кода”

Показ базового шаблона:

 1// 🏠 ДОМ ПРОГРАММЫ НАЧИНАЕТСЯ ЗДЕСЬ
 2
 3void setup() {
 4  // 🏗️ 1 ЭТАЖ - КОМНАТА ПОДГОТОВКИ
 5  // Сюда пишем то, что нужно сделать ОДИН раз
 6  // Например: настроить пины, подключиться к WiFi
 7}
 8
 9void loop() {
10  // 🔄 2 ЭТАЖ - КОМНАТА ДЕЙСТВИЙ
11  // Сюда пишем то, что нужно делать ПОСТОЯННО
12  // Например: мигать светодиодом, читать датчики
13}
14
15// 🏠 ДОМ ПРОГРАММЫ ЗАКАНЧИВАЕТСЯ ЗДЕСЬ

Объяснение ключевых элементов:

 1// 💬 КОММЕНТАРИИ - наши заметки
 2//    Начинаются с двух слешей
 3//    Компьютер их игнорирует, но людям помогают
 4
 5void setup() {
 6//👆 void = "ничего не возвращает"
 7//   setup = "настройка" 
 8//   () = "без параметров"
 9//   {} = "тело функции"
10
11Serial.begin(9600);
12//👆 Команда для начала общения с компьютером
13//   9600 = скорость "разговора"

🎭 “Театр команд”

Ролевая игра для понимания структуры:

  • Режиссер (учитель): “Включаем ESP32!”
  • Актер Setup: Выходит, говорит свои строчки ОДИН раз, уходит
  • Актер Loop: Выходит, говорит строчки, возвращается в начало, повторяет БЕСКОНЕЧНО

Пример диалога:

 1🎬 СЦЕНА: Включение ESP32
 2
 3Режиссер: "Мотор! Камера! Поехали!"
 4
 5Setup: "Привет! Я настраиваю светодиод как выход. Готово! Ухожу!"
 6
 7Loop: "Включаю светодиод! Жду секунду! Выключаю светодиод! Жду секунду!"
 8Loop: "Включаю светодиод! Жду секунду! Выключаю светодиод! Жду секунду!"
 9Loop: "Включаю светодиод! Жду секунду! Выключаю светодиод! Жду секунду!"
10... (и так до отключения питания)

Блок 3: “Безопасность подключения - правила дружбы с ESP32” (8 минут)

🔌 “Правильное знакомство ESP32 и компьютера”

Пошаговый ритуал безопасного подключения:

 1🛡️ ПРОТОКОЛ БЕЗОПАСНОГО ПОДКЛЮЧЕНИЯ:
 2
 31️⃣ ПРОВЕРКА КАБЕЛЯ:
 4   ✅ USB кабель цел (нет перегибов, трещин)
 5   ✅ Разъемы чистые (нет пыли, окисления)
 6   ✅ Кабель поддерживает передачу данных (не только зарядный!)
 7
 82️⃣ ПРОВЕРКА ESP32:
 9   ✅ Плата не имеет видимых повреждений
10   ✅ Ничего не замкнуто случайно
11   ✅ На плате нет металлических предметов
12
133️⃣ ПОДКЛЮЧЕНИЕ:
14   ✅ Сначала подключаем к ESP32
15   ✅ Потом к компьютеру
16   ✅ Слушаем звук подключения (Windows/Mac)
17
184️⃣ ПРОВЕРКА СВЯЗИ:
19   ✅ Загорается ли индикатор питания на ESP32?
20   ✅ Видит ли Arduino IDE устройство в Tools → Port?
21   ✅ Нет ли сообщений об ошибках?

⚠️ Что НЕЛЬЗЯ делать:

1❌ НЕ подключать ESP32 к USB HUB (концентратору)
2❌ НЕ использовать удлинители USB
3❌ НЕ подключать/отключать во время загрузки программы
4❌ НЕ дергать за кабель - только за разъем
5❌ НЕ оставлять подключенным без присмотра

🔬 Практическая демонстрация “Диагностика подключения”

Каждая команда проверяет свое подключение:

 1🔍 ДИАГНОСТИЧЕСКИЙ ПРОТОКОЛ:
 2
 3Тест 1: "Физическая проверка"
 4- Осмотр кабеля и платы
 5- Качество соединений
 6
 7Тест 2: "Электрическая проверка"  
 8- Индикатор питания на ESP32
 9- Нет ли нагрева компонентов
10
11Тест 3: "Программная проверка"
12- Определение устройства в системе
13- Выбор правильного COM порта
14
15Результат: □ ВСЕ ОК  □ ЕСТЬ ПРОБЛЕМЫ

Блок 4: “Первая программа - Hello, World!” (12 минут)

👋 “Учим ESP32 здороваться”

Объяснение концепции “Hello, World!”:

1🌍 В мире программирования есть традиция:
2- Первая программа всегда говорит "Hello, World!"
3- Это как первое слово ребенка "мама"
4- Для ESP32 "слова" - это мигание светодиодом
5- Наша версия: "Hello, LED!" (Привет, светодиод!)

📝 Написание программы шаг за шагом

Учитель печатает код, объясняя каждую строчку:

 1// 🌟 МОЯ ПЕРВАЯ ПРОГРАММА ДЛЯ ESP32
 2// Автор: [ИМЯ УЧЕНИКА]
 3// Дата: [СЕГОДНЯШНЯЯ ДАТА]
 4// Цель: Научить светодиод мигать
 5
 6// 🎯 Настройки и переменные
 7int ledPin = 2;  // Встроенный светодиод на пине 2
 8
 9void setup() {
10  // 🏗️ КОМНАТА ПОДГОТОВКИ (выполняется 1 раз)
11  
12  Serial.begin(9600);           // Начинаем "разговор" с компьютером
13  Serial.println("Привет, ESP32 запущен!"); // Говорим привет
14  
15  pinMode(ledPin, OUTPUT);      // Говорим ESP32: "Пин 2 - это выход для света"
16  
17  Serial.println("Светодиод готов к работе!"); // Сообщаем о готовности
18}
19
20void loop() {
21  // 🔄 КОМНАТА ДЕЙСТВИЙ (выполняется постоянно)
22  
23  Serial.println("Включаю светодиод");
24  digitalWrite(ledPin, HIGH);   // Включаем светодиод (HIGH = включено)
25  delay(1000);                  // Ждем 1000 миллисекунд (1 секунда)
26  
27  Serial.println("Выключаю светодиод");
28  digitalWrite(ledPin, LOW);    // Выключаем светодиод (LOW = выключено)
29  delay(1000);                  // Ждем еще 1 секунду
30  
31  // После этого loop() начинается заново!
32}

🔤 “Словарь команд ESP32”

Разбор основных команд:

 1📚 СЛОВАРЬ ЮНОГО ПРОГРАММИСТА:
 2
 3int ledPin = 2;
 4└─ "Создай переменную с именем ledPin и запомни число 2"
 5
 6Serial.begin(9600);
 7└─ "Начни разговаривать с компьютером со скоростью 9600"
 8
 9Serial.println("текст");
10└─ "Скажи компьютеру 'текст' и переходи на новую строку"
11
12pinMode(ledPin, OUTPUT);
13└─ "Настрой пин как ВЫХОД для управления устройствами"
14
15digitalWrite(ledPin, HIGH);
16└─ "Подай на пин высокое напряжение (включи)"
17
18digitalWrite(ledPin, LOW);
19└─ "Подай на пин низкое напряжение (выключи)"
20
21delay(1000);
22└─ "Подожди 1000 миллисекунд (1 секунду)"

⌨️ Практическое задание “Ввод программы”

Дети печатают программу самостоятельно:

1🎯 ПРАВИЛА ВВОДА КОДА:
21. Печатаем медленно и внимательно
32. Каждую строчку сверяем с образцом
43. Обращаем внимание на:
5   - Точки с запятой ;
6   - Скобки () {} 
7   - Кавычки ""
8   - Регистр букв (HIGH не равно high)
94. Сохраняем программу: Ctrl+S

Блок 5: “Загрузка и запуск - момент истины!” (10 минут)

🚀 “Отправка программы в ESP32”

Пошаговый процесс загрузки:

 1🎯 ПРОТОКОЛ ЗАГРУЗКИ:
 2
 31️⃣ ФИНАЛЬНАЯ ПРОВЕРКА:
 4    Код написан без ошибок
 5    ESP32 подключен к компьютеру
 6    Выбрана правильная плата: ESP32 Dev Module
 7    Выбран правильный порт: COM X
 8
 92️⃣ КОМПИЛЯЦИЯ:
10   📋 Нажимаем кнопку "Verify" (галочка)
11   ⏱️ Ждем сообщения "Done compiling"
12    Проверяем: нет ли красных ошибок
13
143️⃣ ЗАГРУЗКА:
15   📤 Нажимаем кнопку "Upload" (стрелка)
16   📊 Наблюдаем прогресс загрузки
17   🎉 Ждем "Done uploading"
18
194️⃣ ПРОВЕРКА РЕЗУЛЬТАТА:
20   💡 Должен мигать встроенный светодиод!
21   💬 Открываем Serial Monitor для сообщений

🔧 “Отладка - поиск и устранение проблем”

Самые частые ошибки и их решения:

 1 ОШИБКА: "Board not found"
 2 РЕШЕНИЕ: Проверить подключение USB, выбрать правильный порт
 3
 4 ОШИБКА: "Compilation error" 
 5 РЕШЕНИЕ: Проверить синтаксис, точки с запятой, скобки
 6
 7 ОШИБКА: "Upload failed"
 8 РЕШЕНИЕ: Нажать кнопку BOOT на ESP32 во время загрузки
 9
10 ОШИБКА: Программа загрузилась, но светодиод не мигает
11 РЕШЕНИЕ: Проверить номер пина (должен быть 2), проверить код

🎊 “Момент триумфа - первый успех!”

Когда программа заработала:

 1🏆 ПОЗДРАВЛЕНИЯ! ВЫ ПРОГРАММИСТ!
 2
 3Что произошло:
 41. Вы написали код на языке C++
 52. Arduino IDE перевел его в машинный код
 63. ESP32 получил инструкции и выполняет их
 74. Светодиод мигает по вашей команде!
 8
 9Это значит:
10✨ Вы управляете электричеством с помощью кода
11✨ Вы создали свою первую IoT программу  
12✨ Вы готовы к более сложным проектам

🎨 Творческое задание: “Персонализация первой программы” (8 минут)

🎯 “Сделай программу своей!”

Каждый ученик модифицирует базовую программу:

Вариант 1: “Изменение ритма”

 1// Быстрое мигание (0.5 секунды)
 2delay(500);
 3
 4// Медленное мигание (2 секунды)  
 5delay(2000);
 6
 7// Морзянка: быстро-быстро-медленно
 8digitalWrite(ledPin, HIGH); delay(200);
 9digitalWrite(ledPin, LOW);  delay(200);
10digitalWrite(ledPin, HIGH); delay(200);
11digitalWrite(ledPin, LOW);  delay(200);
12digitalWrite(ledPin, HIGH); delay(800);
13digitalWrite(ledPin, LOW);  delay(800);

Вариант 2: “Персональные сообщения”

1Serial.println("Это программа Маши!");
2Serial.println("Мой ESP32 приветствует мир!");
3Serial.println("Светодиод мигает специально для моих друзей!");

Вариант 3: “Счетчик миганий”

 1int count = 0;  // Счетчик
 2
 3void loop() {
 4  count = count + 1;  // Увеличиваем счетчик
 5  
 6  Serial.print("Мигание номер: ");
 7  Serial.println(count);
 8  
 9  digitalWrite(ledPin, HIGH);
10  delay(1000);
11  digitalWrite(ledPin, LOW);
12  delay(1000);
13}

🎪 “Демонстрация достижений”

Каждый ученик показывает свою версию:

  • Демонстрирует ритм мигания
  • Читает свои сообщения в Serial Monitor
  • Объясняет, что изменил и почему

📸 “Фотосессия первых программ”

  • Фото учеников с мигающими ESP32
  • Скриншоты кода в Arduino IDE
  • Создание “Стены славы первых программистов”

📝 Рефлексия и закрепление (5 минут)

🎉 “Квест достижений”

Проверяем, чего мы достигли:

1🏅 СПИСОК ДОСТИЖЕНИЙ:
2□ Установил Arduino IDE
3□ Подключил ESP32 к компьютеру
4□ Написал свою первую программу
5□ Загрузил программу в ESP32
6□ Заставил светодиод мигать
7□ Понимаю структуру setup() и loop()
8□ Модифицировал программу по своему желанию
9□ Могу объяснить другу, как это работает

💭 “Одной фразой”

Каждый ученик завершает фразу:

  • “Программирование ESP32 - это…”
  • “Самое сложное было…”
  • “Больше всего понравилось…”
  • “Хочу теперь научиться…”

🔮 “Планы на будущее”

Краткое обсуждение:

  • Что еще можно заставить делать ESP32?
  • Какие устройства хотели бы подключить к светодиоду?
  • О каких проектах мечтаете?

🏠 Домашнее задание

💻 “Эксперименты дома”

Основное задание:

  1. Показать программу родителям

    • Продемонстрировать мигающий светодиод
    • Объяснить, как это работает
    • Рассказать о структуре программы
  2. Эксперименты с кодом

    • Изменить время мигания (попробовать разные значения delay)
    • Создать свой уникальный ритм
    • Добавить личные сообщения в Serial Monitor
  3. Дневник программиста

 1📔 МОЙ ДНЕВНИК ПРОГРАММИСТА - УРОК 5
 2
 3📅 Дата: ___________
 4🎯 Цель урока: Написать первую программу для ESP32
 5
 6✅ ЧТО УДАЛОСЬ:
 7- Установка Arduino IDE: □ Легко □ Средне □ Сложно
 8- Написание кода: □ Легко □ Средне □ Сложно  
 9- Загрузка программы: □ Легко □ Средне □ Сложно
10
11📝 МОЯ ПЕРВАЯ ПРОГРАММА:
12Что она делает: _________________________
13Какой ритм мигания: ____________________
14Мои сообщения в коде: __________________
15
16💭 ИДЕИ ДЛЯ УЛУЧШЕНИЯ:
171. _____________________________________
182. _____________________________________
193. _____________________________________
20
21🚀 ПЛАНЫ НА СЛЕДУЮЩИЙ УРОК:
22Хочу научиться: ________________________

🔬 Исследовательское задание (для увлеченных):

  • Найти в интернете примеры других простых программ для ESP32
  • Изучить команды для работы с другими пинами
  • Подготовить вопросы о том, что непонятно

🎨 Творческое задание:

  • Нарисовать схему того, как программа “путешествует” от компьютера к ESP32
  • Создать комикс “Приключения моей первой программы”

📊 Критерии оценивания

“Отлично” (5):

  • Самостоятельно установил и настроил Arduino IDE
  • Написал программу без ошибок
  • Успешно загрузил программу в ESP32
  • Понимает структуру setup() и loop()
  • Творчески модифицировал базовую программу
  • Может объяснить принцип работы одноклассникам
  • Демонстрирует понимание основ программирования

“Хорошо” (4):

  • Установил Arduino IDE с небольшой помощью
  • Написал программу с 1-2 мелкими ошибками
  • Загрузил программу в ESP32
  • Понимает основы структуры программы
  • Внес простые изменения в код

“Удовлетворительно” (3):

  • Установил Arduino IDE с помощью учителя
  • Написал программу по образцу
  • С помощью загрузил программу в ESP32
  • Имеет общее представление о структуре программы

🛠️ Материалы и оборудование

Для каждого ученика:

  • Компьютер с Windows/Mac/Linux
  • ESP32 DevKit плата
  • USB кабель (Micro-USB или USB-C)
  • Доступ к интернету для скачивания Arduino IDE

Программное обеспечение:

  • Arduino IDE (версия 2.x.x)
  • Драйверы для ESP32 (обычно устанавливаются автоматически)
  • Board support package для ESP32

Для учителя:

  • Проектор для демонстрации
  • Компьютер с настроенной Arduino IDE
  • Запасные USB кабели
  • ESP32 платы для демонстраций

Дополнительные материалы:

  • Памятки по основным командам Arduino
  • Шпаргалки по структуре программы
  • Примеры кода для вдохновения

🔍 Методические заметки для учителя

Ключевые моменты урока:

  1. Пошаговость установки - каждый шаг должен быть четко продемонстрирован
  2. Понимание структуры - важно донести концепцию setup/loop через аналогии
  3. Культура программирования - аккуратность кода, комментарии, именование
  4. Отладка - научить не бояться ошибок, а искать и исправлять их

Возможные сложности:

Проблема: Различные операционные системы у учеников Решение: Подготовить инструкции для Windows/Mac/Linux, назначить помощников

Проблема: Медленный интернет для скачивания Arduino IDE Решение: Предварительно скачать установщики на флешки

Проблема: Страх детей перед программированием Решение: Подчеркивать простоту, использовать игровые аналогии

Проблема: Разная скорость работы учеников Решение: Подготовить дополнительные задания для быстрых, помощников для медленных

Дифференциация обучения:

Для быстро усваивающих:

  • Дополнительные команды (analogWrite, различные пины)
  • Эксперименты с более сложными ритмами
  • Помощь одноклассникам

Для испытывающих трудности:

  • Упрощенная версия программы
  • Больше времени на каждый этап
  • Работа в паре с сильным учеником

Для разных типов восприятия:

  • Визуалы: схемы, диаграммы потока программы
  • Аудиалы: озвучивание каждого действия
  • Кинестетики: физическое взаимодействие с оборудованием

Связь с предыдущими уроками:

  • Использование знаний об архитектуре ESP32
  • Применение навыков безопасной работы с оборудованием
  • Развитие технической грамотности

Подготовка к следующему уроку:

  • Навыки программирования понадобятся для работы с датчиками
  • Понимание структуры программы - основа для более сложных проектов
  • Опыт отладки поможет в решении технических проблем

Техническая подготовка:

  • Проверить работу Arduino IDE на всех компьютерах
  • Убедиться в наличии интернета
  • Подготовить резервные варианты для офлайн установки
  • Проверить все USB кабели и ESP32 платы