Структура редактора 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. Это и позволило сделать редактор кроссплатформенным.

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

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

Комментарии (7)


  1. m039
    21.08.2026 11:34

    А вы не думали, что сейчас любой ИИ-чат по запросу может выдать работающий код для Arduino IDE, как же тогда это сопоставимо с утверждением что редактор будет его полноценной заменой? Я понимаю, что такой редактор хорош для обучения программированию, но как полноценная замена, если не будет возможности попросить ИИ-чат написать код, то он просто не будет проще и удобнее для выполнения задачи. Или он уже не будет полноценной заменой.


    1. Andrykor Автор
      21.08.2026 11:34

      Всё очень просто, в образовательных учреждениях не пользуются ИИ-чатом для создания программ. В 99.9% случаях учителя будут использовать методичку (книгу), готовые уроки к тому редактору, на котором им удобно.

      А 80% учителям, которые ведут уроки робототехники удобно использовать блочный язык программирования по двум причинам: малый возраст обучающихся (8-10 лет) и нет специализации в программировании (учитель русского языка или трудов, у которого есть часы робототехники и подготовка к соревнованиям).

      Ради эксперимента, попробуйте найти редактор кода блочный под Linux и используя школьный интернет написать код и скомпилировать его на arduino или другое устройство. Проблема школьного интернета и общих ограничений сети не даёт тех возможностей что автономная программа.

      Для arduino ide нужен код на C++, но его ещё нужно будет понять, так как в робототехнике даже идеальный код может работать не так из-за разной конструкции, трения, скорости срабатывания датчиков и т.д.
      P.S. на данный момент сайты Arduino ide недоступен



  1. DerTosser
    21.08.2026 11:34

    Я вот до сих пор не понимаю почему Scratch, mBlock, PictoBlox, да и вот то что в статье называется блочным? Потому что ключевые слова обрамлены рамкой и подсвечены цветом? Так это та же подсветка синтаксиса, только на стероидах.

    Настоящее блочное программирование это FLProg, XOD, а не вот это всё.

    Пожалуйста, не называйте это блоками, придумайте другое название.


    1. Andrykor Автор
      21.08.2026 11:34

      Это не так. XOD и FLProg - это узловое (нодовое) визуальное программирование. Такой стиль популярен в Blender и Unreal Engine. Вот Lego EV3 Software на базе LabView тоже нодовое программирование.

      А блочное программирование - это когда код собирается из блоков и обычно это линейная сборка без разветвлений, как у нод. Строится стена либо по вертикали (Scratch), либо по горизонталb (Lego wedo)


      1. DerTosser
        21.08.2026 11:34

        Возможно. Видимо принцип таких названий взят из именования блока текста, блока программы, тогда имеет смысл. Однако непривычно, ожидаешь более "осязаемые" блоки, а видишь тот же текст программы, только в "детском" виде.


  1. sami777
    21.08.2026 11:34

    Неужели на изучение этих блочных компиляторов времени уйдет кардинально меньше, чем на тот же Си? Я вот посмотрел эту картинку с графическими блоками, и я сомневаюсь, что достаточно быстро это всё можно изучить. А я много языков программирования знаю, включая практический опыт, а не просто знаком с синтаксисом. По-моему, это изначально тупиковый путь: вы учите детей программировать этими визуальными абстракциями. После этого, когда мозги привыкают строить алгоритмы с помощью таких блоков, тяжело переучиваться на классические языки программирования. Но раз вы преподаёте, то вам, конечно, виднее.


    1. Andrykor Автор
      21.08.2026 11:34

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

      Изначально вся методика строилась на C++ (arduino ide) и Python и в качестве альтернативы говорилось, что есть mBlock и Scratch. Как вы думаете, что выбрали преподаватели детсадов, школ, детских центров? Ответ, Scratch и mBlock.
      Почему, да потому что всё обучение программированию и робототехники начиналось с Lego WeDo и Lego NXT и EV3, бум на которые пришёл 2006 - 2018 года. В этот период все наборы и учебные программы строились с использованием блочных языков программирования.
      Да и популярно было ПервоЛого. Как оказалось, это удобно и учителям и ученикам.

      Это "тупиковое" направление уже существует и развивается более 20 лет.