Перейти к содержимому
falang.ruEN

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.