Найти в Дзене

mBlock5 - универсальная графическая среда программирования микроконтроллеров. mBlock5 #1

Оглавление

Графические среды программирования микроконтроллеров.

Среда программирования – крайне важный компонент в процессе освоения основ электроники и робототехники. Я бы сказал, что именно среда, в которой можно программировать микроконтроллеры и является главным критерием отбора наборов компонентов и средств обучения.

Сразу оговорюсь, что данное утверждение полноценно относится к базовому курсу, в котором участвуют ребята 2-6 классов. Именно на этом этапе удобная и понятная среда позволяет вовлечь в процесс конструирования и программирования максимально широкий круг учащихся. А это – одна из важнейших задач дополнительного образования. Мы знакомим ребят с миром технического творчества и далее они уже определят, будут ли развиваться в каком-то избранном направлении. Мы в школе часто сталкиваемся с тем, что ученики, довольно хорошо показавшие себя в той же робототехнике, после пары лет обучения уходят в программирование игр, или в 3D дизайн, VR проекты или мобильные разработки и т.д. И это очень хорошо, т.к. они попробовали, посмотрели, выбрали то, к чему больше расположены и далее начинают развивать свое избранное направление. И как раз как средство знакомства с миром контроллеров и проектами в области проектирования устройств умного дома, роботов и других интересных конструкций – графические блочные среды (похожие на Scratch) подходят оптимально. Именно с этим связан факт появления все большего числа хороших сред. Посмотрим, на что можно посмотреть в настоящее время:

Snap4Arduino, крайне интересное ответвление в развитии блочных языков программирования, перспективная среда управления, базирующаяся на BYOB (Snap!), разработка Университета Беркли. Возможности среды крайне обширны и особенно порадуют любителей хорошей математики, а также среда предоставляет инструменты для программирования реальных микроконтроллеров

Mind+ — (https://mindplus.cc/en.html), хороший графический инструмент программирования микроконтроллеров, основанный на Scratch и все время развивающийся. За счет расширений поддерживает множество современных контроллеров.

Kittenblock – (https://www.kittenbot.cc/pages/software) - графическое программное обеспечение для программирования на основе Scratch 3.0. Оно поддерживает большинство популярных аппаратных средств с открытым исходным кодом, таких как micro:bit, Arduino, Meowbit, ESP32 и т. д., а также помогает детям изучать ИИ. Благодаря своим мощным функциям, совокупное число пользователей по состоянию на 1 января 2023 года превысило 40 миллионов.

Это всего лишь несколько представителей добротных и вполне пригодных для использования графических сред, у каждой из которых есть свои достоинства и недостатки. По мере реального использования эти особенности учитываем и часто используем эти (да и ряд других) среды для определенных задач, под которые они подходят лучше альтернатив. По общему подходу к программированию они близки и дети не испытывают проблем с освоением таких сред. Доходит до того, что в одном проекте основной контроллер робота может программироваться в одной среде, а какой то модуль, типа esp32-cam – в другой.

Но если нас спросить – какая среда максимально универсальна и удобна для первоначальной работы с микроконтроллерами, мы назовем именно mBlock!

mBlock

mBlock – блочно-модульная графическая среда программирования от компании MakeBlock, основанная на популярнейшей среде Scratch с добавлением возможностей управлять электронными устройствами.

На время написания статьи последняя версия среды - mBlock5 v5.6.0.

По совокупности возможностей программирования электроники и работы в различных режимах управления и программирования это (по нашему мнению) лучшая среда для базовой подготовки в условиях образовательных учреждений и в рамках домашнего технического творчества.

Главное, что надо понимать: перед нами полноценная среда программирования микроконтроллеров. Это не "детское" программирование, которым многие считают такой, графический вариант. По сути, mBlock5 - полноценная оболочка для известных языков программирования, таких как Python или С++, среда, позволяющая существенно сократить время создания программ, сконцентрироваться на алгоритмах и структуре программирования. При этом одним движением осуществляется переход в режим работы с текстовым кодом программы Python, или С++. Пример – на рисунке 1

Рис.1
Рис.1

Когда мы говорим об универсальности, то, в первую очередь, отмечаем хорошую работу среды с устройствами в двух режимах – в режиме управления с компьютера и в режиме загрузки и автономного выполнения программ на контроллерах. Как правило, альтернативные среды умеют хорошо работать только в одном из этих режимов.

Возможность взаимодействия среды с устройствами в режиме "Live", в котором внешнее устройство работает под управлением компьютера – крайне важно! В этом режиме особенно удобно проводить отладку программы. В режиме "Upload" программа отправляется в память контроллера устройства и выполняется автономно.

Если кому-то из пользователей недостаточно базовых возможностей среды при работе с определенным контроллером или периферией – можно дополнить их за счет уже существующих расширений или написать свое. Например, для какой-то новой умной камеры. И для этого разработан специальный механизм написания пользовательских расширений.

Небольшое историческое отступление к mBlock3.

Предыдущая версия среды, mBlock3, оказалась чрезвычайно интересна и востребована энтузиастами-программистами со всего мира. Мало того, что mBlock3 являлась свободным программным обеспечением, так разработчики еще и предоставили для всех желающих удобный механизм написания собственных расширений - дополнений, наделяющих среду новыми возможностями, а также системой удобного поиска и установки данных расширений прямо из интерфейса программы. На момент завершения развития, с учетом разнообразнейших расширений, именно версия 3 не имела аналогов в мире, если мы говорим об устройствах на основе контроллеров Arduino, использующих язык С++. За счет расширений поддерживалось большое количество контроллеров, плат расширения и других электронных компонентов, совершенствовались и программные функции, появлялись новые возможности. Расширение Advanced Arduino Extension, написанное одним из наших коллег, Александром Григорьевым, принципиально изменило границы применимости среды mBlock3, нарастив возможности визуального программирования контроллеров до уровня профессионального применения и стирая границы между "блочно-модульным" и "текстовым" программированием. В настоящее время поддержка mBlock3 прекращена, но сама программа доступна для загрузки, и, если вы работаете с контроллерами Arduino и хотите попробовать возможности расширения Advanced Arduino Extension, все наши расширения собраны в облаке и доступны для загрузки.

Кстати, в настоящее время и в среде mBlock5 доступна загрузка расширения AdvancedArduinoCode, выпущенного Александром Григорьевым для этой версии среды (рис.2).

Рис.2
Рис.2

Мы и сейчас продолжаем использовать обе версии среды.

Загрузка и установка программы

Страница загрузки mBlock на сайте разработчиков - https://www.mblock.cc/en/download/
Как можно видеть (рис. 3) предлагается несколько вариантов облачных решений, мобильных приложений и версия для компьютера (mBlock PC версия). Именно она нас и интересует.

Рис. 3
Рис. 3

После загрузки программу надо установить. В случае использования Microsoft Windows – просто щелкните по загруженному файлу два раза курсором мышки. Установка программы проблем не вызывает, дождитесь окончания процесса и все, среда mBlock5 готова для первого запуска!

Рис.4
Рис.4

Интерфейс (внешний вид окна и система управления программы, от английского слова interface — взаимодействие) mBlock5 очень похож на Scratch3, так что, если вы уже имели опыт работы со Scratch, то процесс привыкания будет очень быстрым.

Все на сегодня. В следующем материале цикла рассмотрим настройки среды для работы с контроллером Arduino Uno и попробуем реализовать простые программы управления.