Конфигурация 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