Falang для Arduino
Falang для Arduino — десктопное приложение для программирования плат Arduino блок-схемами. Вы рисуете
setup и loop схемами, описываете подключение в документе Devices, а приложение
собирает всё в обычный скетч Arduino, загружает его на плату и позволяет отлаживать прямо на железе.
Что нужно установить
Заголовок раздела «Что нужно установить»arduino-cli
— через него приложение компилирует и загружает скетч; в комплект он не входит. Приложение ищет его в
PATH, в обычных местах установки (Homebrew на macOS,Program Files\Arduino CLIна Windows,~/.local/binна Linux) и внутри установленной Arduino IDE 2, в которую он встроен. Чтобы указать копию в другом месте, запустите приложение с переменной окруженияFALANG_ARDUINO_CLI, равной полному пути к нему. Если найти его не удалось, об этом скажет диалог «Сборка и загрузка».Ядро для вашей платы, один раз через arduino-cli:
arduino-cli core install arduino:avrдля Uno, Nano и Mega,esp32:esp32для ESP32.Только для драйвера RGB-ленты:
arduino-cli lib install “Adafruit NeoPixel”. Остальным встроенным драйверам дополнительные библиотеки не нужны.
Проекты
Заголовок раздела «Проекты»Файл → Новый проект… спрашивает название, папку и плату — Arduino Uno, Nano, Nano (old bootloader), Mega 2560
или ESP32 Dev Module. В каждом проекте три закреплённых документа: setup, loop и
Devices; любая другая добавленная схема — вспомогательная функция, которую можно вызывать из них.
Привязка платы и документ Devices описаны в разделе Настройка проекта.
В схеме есть обычные иконки и специальные для Arduino — они собраны в группах «Arduino» (пины и встроенные
функции) и «Устройство» (действия устройств, добавленных в Devices) меню вставки.
Обычные иконки — новая переменная, действие, вызов функции, «если», переключатель, циклы (для каждого, от/до, пока, цикл) и выходы (прервать, продолжить, возврат). Выражения пишутся в синтаксисе, похожем на TypeScript, но ограниченном тем, что переводится в C++; доступны функции и константы Arduino:
digitalRead,analogWrite,millis,map,constrain,HIGH/LOW,A0…A7и другие.Пины: Set digital pin (номер пина и переключатель HIGH/LOW), Set analog pin (PWM) (ползунок 0–255), Read digital pin и Read analog pin (каждая сохраняет прочитанное значение в новую переменную; для аналогового чтения пин — это номер канала, 0 для A0). Режимы пинов задаются в документе
Devices, а не иконкой.Встроенные функции: Delay, Delay (microseconds), Millis, Micros, Random, Random seed, Serial begin, Serial print, Serial println. Их аргументы — фиксированные числа; чтобы вывести переменную, напишите
Serial.println(x)в действии.Действия драйверов — по иконке на каждое действие каждого установленного драйвера, с заголовком «<драйвер>: <действие>», например Servo: Set angle.
Переменные могут быть целыми числами и числами с плавающей точкой разных размеров, а также логическими. Строки, массивы и структуры в проектах Arduino пока не поддерживаются, как и иконки «Лог» и «Исключение» — у платы нет консоли и исключений.
Встроенные драйверы
Заголовок раздела «Встроенные драйверы»Servo — Set angle (пин, 0–180°).
DHT11 / DHT22 — Read temperature (°C), Read humidity (%RH); при ошибке чтения результат — NaN. Между чтениями нужно 1–2 секунды.
Ультразвуковой датчик HC-SR04 — Read distance (cm); −1 при таймауте.
LCD1602 (I2C) и LCD1602 (Parallel) — Clear display, Print text (столбец, строка и текст; в текст можно вставлять выражения как
${…}). Добавьте дисплей в документDevices, чтобы он инициализировался при старте.Адресная RGB-лента (WS2812/NeoPixel) — Set pixel color и Show (отправить цвета на ленту). Нужна библиотека Adafruit NeoPixel.
В скетч копируются только те драйверы, которые в нём действительно используются.
Собственные драйверы
Заголовок раздела «Собственные драйверы»Можно добавлять собственные драйверы устройств — для одного проекта или в личную библиотеку, общую для всех ваших проектов — и управлять ими через Sketch → Drivers…. Подробности в разделе Собственные драйверы устройств.
Сборка и загрузка
Заголовок раздела «Сборка и загрузка»Скетч → Сборка и загрузка… открывает диалог (его подписи пока на английском) с платой проекта и списком Port (с кнопкой Refresh):
Compile генерирует скетч и компилирует его без загрузки;
Upload компилирует текущие схемы и загружает их на плату через выбранный порт;
Upload (debug) загружает сборку с трассировкой и запускает отладчик.
Сгенерированный скетч лежит в папке проекта как src/sketch/sketch.ino вместе с используемыми драйверами;
папка перезаписывается при каждой сборке. Ошибки в схемах перечисляются с именем документа, а при сбое arduino-cli в
диалоге показывается его полный вывод.
Что ещё есть в приложении
Заголовок раздела «Что ещё есть в приложении»ИИ-агент (Скетч → Агент), история версий (Скетч → История версий), экспорт в PDF и агенты для программирования работают так же, как в основном приложении Falang.
