Структура редактора BlocklyKlik
Структура редактора BlocklyKlik

Причины создания данного редактора кода

Редактор BlocklyKlik разрабатывается для помощи программирования микроконтроллеров на базе Arduino и ESP32 (эту функцию добавим в будущем) с применением блочного функционала создания кода.

Возможно, вы зададите вопрос: "Так есть же Scratch, mBlock, PictoBlox, да и Arduino ide".

Всё верно, они есть, но в ходе последних лет их использования возникли ряд серьёзных проблем:

  • Применение в образовании для детей от 8 лет и массовая переподготовка учителей, не имеющих профильной специальности. Поэтому акцент на блочный вариант построения кода.

  • Массовый переход муниципалитета на Linux: РЕД ОС, Альт образование, Astra Linux. Эти системы стали устанавливать по умолчанию со всеми вытекающими трудностями по поддержке нужного софта и его установки.

  • Ограниченность функционала для блочного программирования микроконтроллеров из условно доступных сред разработки.

  • Санкции и ограничения: уже имеющиеся редакторы кода либо полностью недоступны, либо недоступны их сервера, так как современные тенденции направлены на работу онлайн. Даже если программа декстопная, то её львиный функционал требует поддержки онлайн: загрузка расширений, подключение учётной записи, пользование блочными технологиями и машинным обучением.

Из всех вытекающих причин сформировался запрос: нужна автономная, удобная и простая программная среда программирования микронтроллеров со множеством встроенных библиотек и модулей с поддержкой разнообразных Linux систем в российских реалиях.

Цели и Задачи BlocklyKlik

Цель: стать жизнеспособной альтернативой программным средам для написания кода и компиляции в микроконтроллеры семейства Arduino и ESP32. В первую очередь, для наборов по робототехнике КЛИК и НикиРобот.

Задачи, которые уже решает BlocklyKlik:

  • блочное программирование с интерпретацией кода на язык C++;

  • компиляция кода на контроллеры семейства Arduino;

  • поддержка работы в Linux и Windows;

  • полностью автономная среда со встроенными библиотеками под датчики и модули;

  • абсолютно бесплатная программная среда с открытой лицензией и кодом;

Структура и возможности редактора

Среда позволяет создавать программы под микроконтроллеры Arduino почти любой сложности из блоков с возможностью интерпретации в код на C++, который сохраняется с расширением ino. Это позволяет компилировать код как непосредственно через редактор, так и через программу Arduino ide.

Интерпретация кода с блочной формы в текстовую отображается в самом редакторе с функцией подсветки кода. Функционал редактора:

  • код формируется из скрепления блоков с возможностью реализации его в функциях void setup() и void loop();

  • возможность создания своих пользовательских функций из блоков;

  • поддержка работы с цифровыми и аналоговыми пинами;

  • поддержка создания разного типа условий и циклов с гибкими настройками и применением математической логики;

  • поддержка введения переменных разного типа данных: целое, дробное число, строки, массивы;

  • поддержка математических операторов и операций: сложение, вычитание, деление, логарифмы, PI, E, конкатенация, возведение в степень;

  • поддержка работы с такими модулями и датчиками как: кнопки, датчик линии, ультразвуковой датчик расстояния, ИК-модуль, Bluetooth-модуль, датчик цвета, датчик влажности почвы, лазерный модуль, фоторезистор, терморезистор, светодиоды;

  • поддержка работы с актуаторами для КЛИК и НикиРобот: сервомоторы, DC-моторы, моторы с энкодером по I2C;

  • есть встроенный монитор порта с поддержкой класса Serial для приёма и передачи данных по COM-порту;

  • поддержка функции сохранения и импорта созданной программы;

  • поддержка компиляции кода с его отладкой.

На данный момент это все задачи, которые реализованы в версии 2.1. Следующим этапом будет расширение функционала по датчикам и модулям: восьмиканальный датчик линии, LED экран 16x8, динамик и пьезо элемент, гироскоп и акселерометр.

Обзор последних изменений редактора

Обзор редактора

Кто разрабатывает и где скачать?

Я автор и разработчик этой среды, но выкладываю исходной код каждой новой версии в открытый доступ. Поэтому любой желающий может внести свои идеи в данную структуру или изменить код полностью.

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

Все сборки редактора BlocklyKlik доступны по этой ссылке. В папке со всеми сборками доступен и исходный код.

Программа разрабатывалась на Python с использованием модулей pygame-ce и pyserial. Это и позволило сделать редактор кроссплатформенным.

Так как изначально редактор разрабатывался под конкретные образовательные наборы робототехники, то, в первую очередь, он актуален для учителей и преподавателей образовательных учреждений.

С последующим расширением функционала редактор станет полноценной заменой альтернативных сред разработки.