Перейти к основному содержимому

Конфигурация Raspberry Pi

Raspberry Pi — одна из наиболее популярных платформ для 4diac FORTE благодаря GPIO, SPI, I2C интерфейсам и полноценному Linux.

Поддерживаемые модели

МодельПоддержкаПримечание
Raspberry Pi 4✅ ПолнаяРекомендуется для продакшна
Raspberry Pi 3✅ Полная
Raspberry Pi Zero 2WОграниченные ресурсы
Raspberry Pi 5Новый GPIO API (libgpiod)

Установка FORTE на Raspberry Pi

Вариант 1: Docker (рекомендуется)

# На Raspberry Pi
docker run -d \
--name forte \
--device /dev/gpiochip0 \
--privileged \
-p 61499:61499 \
eclipsebase/4diac-forte:latest-arm64

Вариант 2: Сборка из исходников

# Зависимости
sudo apt update && sudo apt install -y \
cmake g++ git libboost-all-dev

# Сборка с SysFS GPIO
git clone https://github.com/eclipse-4diac/4diac-forte.git
cd 4diac-forte && mkdir build && cd build

cmake .. \
-DFORTE_ARCHITECTURE=Posix \
-DFORTE_IO_SYSFS=ON \
-DFORTE_COM_MQTT=ON

make -j4
sudo cp src/forte /usr/local/bin/

# Запуск
forte &

GPIO через SysFS

Цифровой вывод (LED, реле)

QX (PARAMS="gpio17")

Пример: включение реле при получении события REQ с IN=TRUE.

Цифровой вход (кнопка, датчик)

IX (PARAMS="gpio27")

Событие IND срабатывает при изменении состояния GPIO.

Включение GPIO pin перед использованием

# Экспортировать GPIO 17 через SysFS
echo 17 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio17/direction
Права доступа

Добавьте пользователя в группу gpio:

sudo usermod -aG gpio $USER

Аналоговые входы (через ADS1115)

Raspberry Pi не имеет встроенного АЦП. Используйте внешний I2C АЦП:

# ADS1115 подключён по I2C (адрес 0x48)
# Чтение через Python (опционально, для отладки)
python3 -c "import Adafruit_ADS1x15; adc=Adafruit_ADS1x15.ADS1115(); print(adc.read_adc(0))"

В 4diac используйте Custom SIFB или OPC-UA сервер для передачи аналоговых значений.

SPI и I2C

FORTE может взаимодействовать с SPI/I2C устройствами через пользовательские Service Interface FB или через MQTT/OPC-UA промежуточный слой.

Автозапуск FORTE

# /etc/systemd/system/forte.service
[Unit]
Description=4diac FORTE Runtime
After=network.target

[Service]
Type=simple
User=pi
ExecStart=/usr/local/bin/forte
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target
sudo systemctl enable forte
sudo systemctl start forte

Следующий шаг

OPC-UA конфигурация