Метка: Banana Pi BPI-M64

Работа с GPIO в Linux. Часть 6. Библиотека Libgpiod [обновлено 03.04.2024]

В 2017 году Bartosz Golaszewski начал разработку библиотеки Libgpiod и утилит для работы с GPIO. Библиотека libgpiod инкапсулирует вызовы ioctl и структуры данных за простым API в Linux, предназначена для замены доступа к GPIO через виртуальную файловую систему sysfs. Используемый в библиотеке новый интерфейс chardev гарантирует, что все выделенные ресурсы будут освобождены после закрытия файлового дескриптора устройства, и добавляет несколько новых функций, которых нет в устаревшем интерфейсе sysfs (например, опрос событий, установка/чтение нескольких значений одновременно). В публикации будет установка библиотеки Libgpiod и работа с GPIO используя утилиты, на примере светодиода и кнопки. Практическая часть выполняется на одноплатном компьютере Banana Pi BPI-M64, ОС Armbain.

Читать далее »

Метеостанция на Banana Pi M64 (Linux, C#, Docker, RabbitMQ, AvaloniaUI)

Статей о создании метеостанции на базе Arduino не счесть. Можно сказать, если статья про метеостанцию, то это про микроконтроллеры Arduino, ESP32 или STM32. Но только не в этот раз. Будем запускать метеостанцию на Banana Pi BPI-M64 под Linux, без использования Arduino-подобных оберток в виде WiringPi, на C# .NET5. Пример метеостанции является демонстрацией встраиваемого решения работы с GPIO, датчиками и вывода пользовательского интерфейса напрямую на LCD. В решении используется: Linux (Armbian) — основная ОС, .NET и C# — платформа для создания прикладного ПО, AvaloniaUI — графической интерфейс с интерактивными графиками и анимацией, Docker — инструмент для развертывания, управления, доставки приложений, RabbitMQ — брокер сообщений для передачи сообщений между контейнерами. Благодаря использованию универсального подхода и технологии Docker, приложение можно запустить не только на Banana Pi BPI-M64, но и на других Banana/Orange/Rock/Nano Pi одноплатных компьютерах, включая Raspberry Pi.

Читать далее »

.NET IoT. Часть 5. Обработка прерываний (interrupt) на примере событий кнопки

Работа с кнопкой уже была продемонстрирована в публикации Управляем контактами GPIO из C# .NET 5 в Linux, но без детального рассмотрения прерываний (interrupt). Поэтому на этом моменте остановимся подробнее. Рассмотрим как работает прерывание, какие бывают триггеры срабатывания, и сделаем пример на C# используя библиотеку Libgpiod. Для примера будем использовать туже самую кнопку.

Читать далее »

.NET IoT. Часть 4. Шина I2C, подключение датчика Bosh BME280

В публикации Работа с GPIO в Linux. Часть 5. Device Tree overlays. Шина I2C, подключение датчиков Bosh BMx познакомились с шиной I2C и подключили датчик BME280, считывали значения через Sysfs. Теперь попробуем считать значения температуры, влажности, и атмосферного давления из .NET кода.

Читать далее »

Простая установка Docker в Armbian/Linux для ARM (Raspberry/Banana/Orange/Rock/Nano Pi)

Технология разворачивания приложений в виде Docker контейнеров уже стала стандартом для Linux. Docker контейнеры особенно удобны для развертывания сложных систем в дата-центрах, корпоративных центрах обработки данных, и т.д. Docker контейнеры так же отлично подходят и для встраиваемых систем. Docker успешно работает в Armbian/Linux на armv7/arm64 устройствах Raspberry/Banana/Orange/Rock/Nano Pi, поэтому для упрощения процесса развертывания, установим Docker из готового скрипта от самой компании.

Читать далее »

.NET IoT. Часть 3. Подключение датчика температуры DS18B20

Датчика температуры DS18B20 уже подключали в Linux, значение температуры считывали, используя виртуальную файловую систему Sysfs. Теперь будем считывать температуру датчика DS18B20 из dotnet кода.

Читать далее »

Простая установка .NET 6 в Armbian/Linux для ARM (Raspberry/Banana/Orange/Rock/Nano Pi)

В публикации Установка .NET 5.0 для ARM выполняли установку фреймворка .NET 5.0 для Linux, на 32-х и 64-х разрядные процессоры архитектуры ARM. Для установки необходимо было выяснить архитектуру процессора и в соответствие с этим выбрать правильный пакет, затем его установить. Для упрощения процесса установки в одно действие, Microsoft подготовила скрипт dotnet-install.sh которому достаточно в качестве параметров указать версию фреймворка и путь установки. Разбираться в разрядности процессора не требуется, все максимально просто. Поэтому в данной публикации выполним установку Runtime среды и SDK .NET платформы версии 6.0, и конечно же 5.0 версии, на Linux платформу, в том числе и на x86 устройство.

Читать далее »