🔧 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 минут
Пошаговая установка:
- Скачивание установщика
- Запуск с правами администратора
- Выбор папки установки
- Ожидание завершения
Аналогия: “Как устанавливаем игру на компьютер - нужно немного подождать, и появится новая ‘игрушка’ для программирования!”
Шаг 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?
- Какие устройства хотели бы подключить к светодиоду?
- О каких проектах мечтаете?
🏠 Домашнее задание
💻 “Эксперименты дома”
Основное задание:
-
Показать программу родителям
- Продемонстрировать мигающий светодиод
- Объяснить, как это работает
- Рассказать о структуре программы
-
Эксперименты с кодом
- Изменить время мигания (попробовать разные значения delay)
- Создать свой уникальный ритм
- Добавить личные сообщения в Serial Monitor
-
Дневник программиста
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
- Шпаргалки по структуре программы
- Примеры кода для вдохновения
🔍 Методические заметки для учителя
Ключевые моменты урока:
- Пошаговость установки - каждый шаг должен быть четко продемонстрирован
- Понимание структуры - важно донести концепцию setup/loop через аналогии
- Культура программирования - аккуратность кода, комментарии, именование
- Отладка - научить не бояться ошибок, а искать и исправлять их
Возможные сложности:
Проблема: Различные операционные системы у учеников Решение: Подготовить инструкции для Windows/Mac/Linux, назначить помощников
Проблема: Медленный интернет для скачивания Arduino IDE Решение: Предварительно скачать установщики на флешки
Проблема: Страх детей перед программированием Решение: Подчеркивать простоту, использовать игровые аналогии
Проблема: Разная скорость работы учеников Решение: Подготовить дополнительные задания для быстрых, помощников для медленных
Дифференциация обучения:
Для быстро усваивающих:
- Дополнительные команды (analogWrite, различные пины)
- Эксперименты с более сложными ритмами
- Помощь одноклассникам
Для испытывающих трудности:
- Упрощенная версия программы
- Больше времени на каждый этап
- Работа в паре с сильным учеником
Для разных типов восприятия:
- Визуалы: схемы, диаграммы потока программы
- Аудиалы: озвучивание каждого действия
- Кинестетики: физическое взаимодействие с оборудованием
Связь с предыдущими уроками:
- Использование знаний об архитектуре ESP32
- Применение навыков безопасной работы с оборудованием
- Развитие технической грамотности
Подготовка к следующему уроку:
- Навыки программирования понадобятся для работы с датчиками
- Понимание структуры программы - основа для более сложных проектов
- Опыт отладки поможет в решении технических проблем
Техническая подготовка:
- Проверить работу Arduino IDE на всех компьютерах
- Убедиться в наличии интернета
- Подготовить резервные варианты для офлайн установки
- Проверить все USB кабели и ESP32 платы