В моей профессиональной жизни мне часто приходится иметь дело с преподаванием программирования, робототехники, а в последнее время добавилось «дроноведение» – беспилотные дроны: наземные, подводные, летающие и в то же время каждый из этих вариантов может быть автономным. На уроках робототехники и программирования регулярно наблюдается одна и та же картина: при подготовке управляющей программы для робота – ученики легко и с удовольствием собирают алгоритм из визуальных блоков (в средах вроде Scratch или Blockly), если они работают с оборудованием, которое требует текстовой программы – тоже больших проблем не вызывает. По отдельности – когда не нужно переключаться с одного вида на другой. Но как только дело доходит до написания кода одновременно для разных устройств, когда требуется держать в голове несколько разных сред программирования с совершенно разным подходом – возникает ступор. Переход дается тяжело: меняется логика, появляется страх и увеличивается объем синтаксических ошибок.
Ситуация усложняется тем, что в учебном кабинете обычно используется целый «зоопарк» оборудования, в проектах далеко не всегда используется один и тот же набор электроники. Сегодня программируем наземного робота Lego Mindstorms EV3 в одной среде, потом роботов на базе Vex Edr в RobotC, а завтра – квадрокоптер Геоскан Пионер и параллельно с ним проект на базе Arduino. Разные интерфейсы, разные правила подключения и языки путают детей и отнимают драгоценное время урока.
Именно эта практическая проблема подтолкнула меня к вопросу об универсальной среде программирования, через призму собственного опыта и потребности в удобном инструменте, который бы смог минимизировать количество ошибок при написании программ на тех языках, которые используются для программирования этих конструкторов на занятиях.
Наша цель – спроектировать и в дальнейшем разработать инструмент, который позволит обеспечить одновременную работу с разным программируемым оборудованием на уроках и занятиях по робототехнике.
С методической точки зрения принципиальной разницы в том, как именно отображается суть алгоритма – текстом или визуальными блоками – нет. Логика ветвлений, циклов и работы с переменными остается неизменной. На сегодняшний день главный критерий образовательного языка программирования – это универсальность и простота взаимодействия. Появление в легком доступе ИИ – для участников роботизированного процесса вообще может свести процесс написания кода к полному минимуму – описал задачу – сгенерировал – скопировал – запустил – «лишился пальца (из личного опыта, ученик взял готовый код из одноименного чата нейронной сети – не глядя запустил, и код автоматически поднял руку манипулятор, в процессе палец попал под шестерёнку и был слегка поврежден, юному оператору робота с бинтом пришлось ходить несколько дней)». Поэтому, прежде чем перейти к «суперкрутому» инструменту, необходимо научиться кое-что делать самостоятельно.
Чтобы сформировать базовый навык осознанного программирования, учащимся необходимо четко понимать, с какими инструментами и на каком физическом оборудовании им предстоит работать. В нашей учебной практике задействован обширный парк техники, охватывающий наземные, плавающие и летающие платформы, причем под каждую из них традиционно предлагаются свои специфические программные решения. Весь этот пестрый массив сред разработки, с которым дети сталкиваются на занятиях, можно разделить на два основных лагеря: визуальные и текстовые.
Аппаратное обеспечение учебного процесса:
- Наземные платформы: Lego Mindstorms EV3, манипуляторы Dobot, VEX, Fischertechnik, связки микроконтроллеров Arduino + Raspberry Pi, а также кастомные платформы на базе плат управления мотор-колесами от гироскутеров.
- Плавающие аппараты: Адаптированные решения на базе Lego EV3, Dobot и VEX.
- Летающие аппараты (БПЛА): Квадрокоптеры Геоскан Пионер, самосборные дроны, а также экспериментальные аппараты с полетными контроллерами на базе Arduino + Raspberry Pi и плат от гироскутеров.
Таблица 1
Обзор популярных визуальных образовательных сред (робототехника и анимация)
Название среды | Целевое применение / оборудование | Особенности и дидактическая роль |
Scratch/mBlock | 2D-анимация, игры, Arduino, Lego Mindstorms EV3 | Идеальны для старта. Наглядная анимация процессов, но слабая применимость для сложной инженерии в проектной деятельности. |
Minecraft MakeCode / CoSpaces Edu | 3D-миры, VR/AR, геймдизайн | Формируют пространственное мышление и понимание 3D-координат, невероятно популярны у детей, но оторваны от реальной робототехники. |
EV3 Classroom | Исключительно Lego Mindstorms EV3 | Максимально адаптированы под конкретный конструктор, но представляют собой закрытую экосистему. |
TRIK Studio EV3 Classroom | Lego EV3, TRIK, базовые БПЛА | Приучает к составлению классических алгоритмических блок-схем, однако не всегда позволяет реализовывать сложные алгоритмы. |
TRIK Studio Геоскан Пионер | БПЛА Геоскан Пионер | Удобный визуальный справочник полетных команд, но жестко привязан к управлению конкретным дроном используя при этом одновременно несколько сред – TRIK Studio и Pioneer Station (Lua). |
Анализируя этот срез программного обеспечения, мы ясно видим корень методической проблемы. Визуальные среды блестяще справляются с ролью интерактивного справочника и снимают первоначальный страх перед программированием, но они тотально фрагментированы.
При этом рано или поздно наступает момент, когда ученик перерастает блочные конструкции. Для реализации сложных математических фильтров, создания собственных библиотек, работы с машинным зрением (Raspberry Pi) или тонкой настройки полетных контроллеров (например, через CLI в INAV) требуется неизбежный переход к профессиональным текстовым языкам. В нашей учебной практике для этих целей используются отраслевые стандарты: C/C++ (Arduino IDE, RobotC), Python и Lua (для программирования БПЛА).
Текстовый код обеспечивает непревзойденную скорость разработки, компактность и полный контроль над аппаратным обеспечением. Однако именно здесь, при переходе от блоков к тексту, ученик сталкивается с главным барьером – «синдромом чистого листа». Оказавшись один на один с пустым экраном текстового редактора, ребенок теряет привычную визуальную опору. Вместо конструирования логики начинается мучительная борьба с опечатками, регистрами букв и забытыми точками с запятой. Без наглядного каталога функций под рукой время, отведенное на урок, тратится не на алгоритмику, а на поиск синтаксических ошибок в разрозненной документации к каждой конкретной платформе.
Становится очевидно, что заставлять обучающегося выбирать между наглядностью визуальных блоков и мощностью текстового кода – методический тупик. Поиск компромисса привел нас к мысли о необходимости разработки собственного программного решения, которое смогло бы органично объединить эти два мира.
Обобщая многолетний практический опыт преподавания и анализ трудностей, с которыми сталкиваются ученики на уроках, можно сделать однозначный вывод: современная образовательная среда программирования для робототехники должна быть гибридной. Заставлять ученика или преподавателя выбирать между наглядностью визуальных блоков и гибкостью текстового кода, параллельно тратя драгоценное время урока на борьбу с разрозненными интерфейсами под каждое новое устройство – значит искусственно тормозить учебный процесс.
Концептуальная схема решения, к которой мы пришли в ходе собственного проектирования среды, строится на объединении веб-технологий (HTML5, JavaScript для легкого и универсального фронтенда) и высокоуровневых языков (Python для бэкенда и взаимодействия с аппаратной частью).
Главным архитектурным элементом такой платформы должен стать режим разделенного экрана (Split Mode). В одной части располагаться должен визуальный каталог блоков, выступающий исключительно в роли интерактивного справочника команд. В другой – полноценный текстовый редактор. Связующим звеном в этой архитектуре выступает «умный» транслятор, реализующий логический паттерн «Настройка/Действие». Вместо примитивного построчного перевода он должен автоматически собирать конфигурационные данные (выбор портов, базовые скорости, калибровочные коэффициенты) со всего визуального поля и выносить их в заголовочный блок переменных, обучая детей грамотному структурированию профессионального кода.
Создание многоплатформенной образовательной среды на базе такой архитектуры – это диктуемая временем методическая необходимость. Предоставляя обучающимся визуальную палитру в качестве справочника и синхронно генерируя текстовый алгоритм, мы снимаем страх перед «пустым экраном» и возвращаем фокус внимания на саму суть инженерии. Дальнейшее развитие подобных платформ видится в интеграции систем интерактивной телеметрии («цифровых двойников»), что позволит учащимся в реальном времени наблюдать за физическими процессами внутри роботов и БПЛА, выводя процесс отладки на качественно новый уровень.
.png&w=384&q=75)
.png&w=640&q=75)