Обучение программированию на Python на примере управления роботом Robomaster: методика и практические задания
Описана методика проведения занятий по текстовому программированию на Python в среде управления роботами DJI Robomaster. Рассмотрены редактор скриптов, библиотека шаблонов и безопасная среда выполнения. Приведён разбор учебного примера «патрульный маршрут» и даны рекомендации по заданиям трёх уровней сложности с критериями успешности.
После знакомства с приложением Robomaster учащиеся переходят к записи тех же действий на Python: «что хочу, чтобы сделал робот» оформляется как алгоритм. Чтобы занятие было доступно педагогам с разным уровнем подготовки, нужно использовать готовые шаблоны и небольшие правки в коде и сразу проверять результат на роботе и по сообщениям в логе.
Ожидаемые результаты
К концу занятий учащийся должен уметь: 1) открыть раздел «Скрипты»; 2) выбрать шаблон и запустить его для активного робота; 3) изменить 1–2 параметра (время ожидания, скорость, угол поворота) и повторно проверить результат; 4) объяснить, что именно изменилось и почему это повлияло на поведение робота.
Использование разделов программы педагогом
- «Панель управления» показывает, подключён ли робот и что происходит (удобно начинать урок только тогда, когда роботы в нужном состоянии).
- «Настройки» помогает педагогу быстро подключить робота по Wi‑Fi (QR/поиск/вручную) без длительной настройки среды.
- «Управление» используется для безопасной проверки: короткая команда и быстрый останов перед началом практики.
- «Скрипты» — место работы с Python и Blockly: можно выбрать шаблон, отредактировать параметры, запустить и посмотреть сообщения в логе.
- В редакторе есть подсказки и автодополнение по командам робота, поэтому педагог может объяснять на уровне «что меняем» без глубокого изучения синтаксиса.
Разработка в приложении
Педагогам важно понимать, что обучение Python проходит в готовой среде: большинство действий делается кликами в интерфейсе, а код — это уже «алгоритм для робота», который можно запускать и проверять.
- Библиотека скриптов: здесь есть готовые шаблоны (например, базовое движение, стрельба, камера, проверка батареи). Педагог выбирает шаблон — дети сразу видят, что робот делает.
- Вкладки редактора: в разделе «Скрипты» есть переключение между «Визуальное программирование» (Blockly) и «Текстовый редактор» (Python). Для визуальной версии дополнительно показывается «Сгенерированный код», чтобы было видно соответствие блоков и строк.
- Кнопка «Справка по API»: можно открыть подсказки по RobotAPI и SDK, получить сигнатуру метода и пример использования. Это помогает педагогу не объяснять всё по памяти.
- Окно «Вывод»: все сообщения и лог со скрипта видны здесь. Педагог использует это как «запись занятия»: по логам легче разбирать ошибки.
- Отладка: в режиме отладки можно ставить breakpoints в редакторе (щелчком в области строк) и смотреть переменные и стек вызовов в панели отладчика. Кнопки «Продолжить» и «Шаг через» помогают пошагово понять, что выполняется сейчас.
- Кнопка «Остановить всё»: единая экстренная кнопка выключает движение/стрельбу/камеру на активном роботе. Её обсуждают с учащимися в начале занятия как «средство безопасности».
Основные функции RobotAPI на Python
В скрипте доступен объект `robot` (это RobotAPI). Учащимся достаточно запомнить «главные команды», чтобы писать короткие алгоритмы: движение, пауза, батарея, камера и базовые действия (включить/выключить).
- `robot.get_robot(robot_id=None)` — возвращает подключение к роботу (если робот по умолчанию не задан — используется активный). Это нужно, если вы дальше хотите обращаться к модулям через `bot.chassis`, `bot.gimbal` и т.п.
- `await robot.move(x, y, z, robot_id=None)` — движение шасси: `x` и `y` задают скорости по осям, а `z` задаёт угловую скорость поворота. Для остановки используйте `await robot.move(0, 0, 0)`.
- `await robot.shoot(enable, fire_rate=1, robot_id=None)` — управление стрельбой: `enable=True` включает стрельбу, `enable=False` выключает. Скорость задаётся параметром `fire_rate`.
- `await robot.gimbal(yaw, pitch, robot_id=None)` — управление камерой: задаёт скорость поворота по горизонтали (yaw) и вертикали (pitch). Остановка камеры — `await robot.gimbal(0, 0)`.
- `await robot.led(effect, robot_id=None)` — подсветка LED. Параметр `effect` задаёт тип эффекта (например: `on`, `off`, `flash`, `breath`, `scrolling`).
- `robot.get_battery(robot_id=None)` — уровень батареи (число 0–100). Это удобно для “безопасного старта”: сначала проверяем заряд, потом запускаем движение.
- `await robot.sleep(seconds)` — пауза: скрипт “ждёт” указанное время, чтобы робот успел выполнить действие. Без `sleep` действия выполняются слишком быстро, и поведение становится непонятным.
- `robot.log(message, level="info")` — вывод сообщения в лог. Это помогает педагогу показывать ход выполнения алгоритма и разбирать ошибки.
Мини-примеры
# Пример структуры скрипта (Python)
async def main():
battery = robot.get_battery()
robot.log(f"Батарея: {battery}%", level="info")
if battery < 30:
robot.log("Заряд слишком низкий, движение не запускаем", level="warning")
return
await robot.move(0.4, 0, 0) # едем вперёд
await robot.sleep(2) # ждём 2 секунды
await robot.move(0, 0, 0) # остановка
await robot.gimbal(30, 0) # поворачиваем камеру
await robot.sleep(1)
await robot.gimbal(0, 0) # стоп камеры
await main()
Педагогам достаточно объяснить учащимся правило: почти все «действия робота» делаются через `await`, а `sleep` — это “время, чтобы робот успел”.
Безопасность на уроке
Чтобы обучение было спокойным и управляемым, на занятии фиксируются простые правила: запускать только короткие команды; использовать экстренную кнопку «Остановить всё» в любой непредвиденной ситуации; начинать тесты с небольших значений и постепенно увеличивать только при успешной отработке.
Что делать на практике
Педагог ведёт занятие по шагам:
- демонстрация (запуск готового шаблона)
- изменение параметра (замена одного числа)
- проверка (наблюдение видео и лога)
- рефлексия (обсуждение того, что изменилось).
Затем по мере готовности добавляются цикл и условие: сначала в Blockly, потом в Python.
Полностью расписанный пример занятия (Python)
Ниже приведён пример занятия, который можно провести почти «как инструкцию». Он рассчитан на то, что педагоги могут не знать Python глубоко, а учащиеся смогут учиться через изменения небольших частей готового шаблона.
Занятие 1: «Шаблон движения» и изменение параметров
Длительность: 60 минут.
Целевая аудитория: 7–9 класс и старше.
Предусловие: учащиеся уже запускали приложение и видели разделы «Панель управления», «Настройки», «Управление» и «Скрипты» из первой статьи.
Цель занятия: научить запускать шаблон из «Скрипты» и менять параметры времени движения, чтобы поведение робота было предсказуемым.
Правила безопасности (педагог проговаривает перед практикой):
- Всегда можно остановить робота кнопкой «Остановить всё».
- Начинаем с коротких команд (малые значения времени и скорости).
- Если робот ведёт себя «не так», сначала останавливаем и только потом ищем причину в логе.
- Не меняем сразу много параметров: меняем 1–2 значения и проверяем результат.
Ход занятия по минутам
- 0–5 минут. Организация: педагог показывает «Панель управления» и убеждается, что робот подключён и активен.
- 5–10 минут. Короткая проверка управления: в разделе «Управление» запускается 1–2 действия и затем нажимается «Остановить всё». Цель — убедиться, что всё работает и дети видят связь «действие → результат».
- 10–20 минут. Переход к «Скрипты»: педагог выбирает шаблон «Базовое движение» (или похожий готовый шаблон движения) и объясняет: «шаблон — это уже написанный алгоритм, мы научимся его улучшать».
- 20–30 минут. Запуск шаблона: учащиеся запускают скрипт для активного робота и наблюдают видеопоток и сообщения в логе (что робот сообщает и в какой момент).
- 30–40 минут. Практика 1 (малое изменение): педагог даёт команду «измените время движения вперёд на 3 секунды» (ученики меняют одно число в строке паузы, затем запускают снова). Ожидаемый эффект — движение дольше, затем остановка.
- 40–50 минут. Практика 2 (вторая проверка): добавляем или увеличиваем паузу между командами (например, вместо 0,5 сделать 1 секунду). Ожидаемый эффект — робот делает движение тем же способом, но с более заметной «паузой».
- 50–55 минут. Связь «текст ↔ алгоритм»: педагог переключает учеников на вкладку «Визуальное программирование» (Blockly) и показывает идею повторения/последовательности. Важно подчеркнуть: блоки генерируют «Сгенерированный код», и поэтому изменения видны как в алгоритме, так и в тексте.
- 55–60 минут. Рефлексия: каждая группа отвечает на два вопроса: 1) что поменяли; 2) почему робот повёл себя именно так.
Задание учащимся
- Шаг A. Открыть «Скрипты» и найти шаблон «Базовое движение».
- Шаг B. Убедиться, что выбран активный робот (если в группе несколько роботов).
- Шаг C. Запустить шаблон и дождаться завершения (посмотреть видео и лог).
- Шаг D. Изменить одно значение времени движения вперёд (например, заменить `await robot.sleep(2)` на `await robot.sleep(3)`) и снова запустить.
- Шаг E. Изменить паузу перед остановкой (например, увеличить последующий `await robot.sleep(...)` на 0,5–1 секунду) и проверить, что последовательность команд сохранилась.
Проверка результата
- Робот действительно делает «вперёд → пауза/ждём → остановка» и не продолжает движение после остановки.
- Время движения заметно изменилось (движение стало дольше, затем остановилось).
- В логе есть сообщения (это помогает понять, что скрипт дошёл до нужных шагов).
Мини‑конспект педагогу: какие строки объяснять
await robot.move(0.5, 0, 0) # движение вперёд
await robot.sleep(2) # сколько секунд ждать
await robot.move(0, 0, 0) # остановка
await robot.sleep(0.5) # пауза перед следующим шагом
Фраза для педагога: «Мы меняем только время (sleep), а команды движения остаются теми же. Поэтому ребёнок видит, что в программе влияет именно на длительность действия».
Критерии оценивания работы ученика
- Соблюдение безопасности: использовали «Остановить всё» при необходимости и не запускали длинные тесты.
- Скрипт запускается: нет критических ошибок в логе.
- Поведение соответствует задаче: после изменения параметра робот ведёт себя так, как ожидалось.
- Объяснение: ученик может сказать, что изменил и какой эффект это дало.
Обучение программированию на Python в среде управления Robomaster даёт педагогу понятную методику «от результата к алгоритму»: ученики запускают готовый шаблон, меняют 1–2 параметра, видят эффект на видео и по сообщениям в логе, а затем переходят к циклам и условиям. Такая подача особенно удобна для дополнительного образования, где важно быстро организовать практику и удержать мотивацию. Наличие визуального режима и сгенерированного кода помогает объяснять связь между блоками и текстом, а уровни заданий позволяют дифференцировать работу группы.
- DJI Robomaster SDK. - Режим доступа: https://robomaster-dev.readthedocs.io/en/latest/ (дата обращения: 29.03.2026)
- Примерная рабочая программа основного общего образования по информатике. 7–9 классы. М.: Просвещение, 2021. - Режим доступа: https://sh-varenikovskayar07.gosweb.gosuslugi.ru/netcat_files/32/315/rabochaya_programma_informatika_7_9klass_fgos2022.pdf (дата обращения: 29.03.2026)
- Софронова Н.В. Теория и методика обучения информатике: Учеб. пособие / Н.В. Софронова. – М.: Высш. шк., 2004. – 223 с.
- Информатика. Методическое пособие для учителей. 7 класс / Под ред. проф. Н.В. Макаровой. – СПб.: Питер, 2006. – 384 с.



