Обучение программированию на Python на примере управления роботом Robomaster: методика и практические задания
Журнал Научные высказывания

Обучение программированию на Python на примере управления роботом Robomaster: методика и практические задания

Описана методика проведения занятий по текстовому программированию на Python в среде управления роботами DJI Robomaster. Рассмотрены редактор скриптов, библиотека шаблонов и безопасная среда выполнения. Приведён разбор учебного примера «патрульный маршрут» и даны рекомендации по заданиям трёх уровней сложности с критериями успешности.

Robomaster
методика преподавания
алгоритмы
программирование
циклы
условия
дополнительное образование
Python

После знакомства с приложением 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 параметра, видят эффект на видео и по сообщениям в логе, а затем переходят к циклам и условиям. Такая подача особенно удобна для дополнительного образования, где важно быстро организовать практику и удержать мотивацию. Наличие визуального режима и сгенерированного кода помогает объяснять связь между блоками и текстом, а уровни заданий позволяют дифференцировать работу группы.

Список литературы
  1. DJI Robomaster SDK. - Режим доступа: https://robomaster-dev.readthedocs.io/en/latest/ (дата обращения: 29.03.2026)
  2. Примерная рабочая программа основного общего образования по информатике. 7–9 классы. М.: Просвещение, 2021. - Режим доступа: https://sh-varenikovskayar07.gosweb.gosuslugi.ru/netcat_files/32/315/rabochaya_programma_informatika_7_9klass_fgos2022.pdf  (дата обращения: 29.03.2026)
  3. Софронова Н.В. Теория и методика обучения информатике: Учеб. пособие / Н.В.  Софронова. –  М.:  Высш.  шк., 2004. – 223 с.
  4. Информатика. Методическое пособие для учителей. 7 класс / Под ред. проф. Н.В. Макаровой. – СПб.: Питер, 2006. – 384 с.
международный научный журнал

Научные высказывания #94

Предоставляем бесплатную справку о публикации, препринт статьи — сразу после оплаты.
Прием материалов
с 08 апреля по 22 апреля
Осталось 13 дней до окончания
Размещение электронной версии
06 мая
Загрузка в eLibrary
07 мая
ISSN № 2782-3121
eLibrary № 302-10/2021
СМИ ЭЛ № ФС77-79727