Метка: C#
Метеостанция на 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. Для примера будем использовать туже самую кнопку.
Читать далее »Программируем микроконтроллеры ESP32 и STM32 на C# (nanoFramework)

.NET nanoFramework — это бесплатная платформа с открытым исходным кодом, основанная на .NET и предназначена для малых встраиваемых устройств, микроконтроллеров. С её помощью можно разрабатывать различные устройства для Интернета вещей, носимые устройства, научные приборы, робототехнические устройства, можно создавать прототипы и даже использовать на промышленном оборудовании. В первой части мы познакомились с платформой .NET nanoFramework, её архитектурой, основными возможностями, посмотрели примеры программного кода. Теперь перейдем к практике, установим nanoFramework на микроконтроллеры серии ESP32 и STM32, напишем первый «Hello World!», поработаем с аппаратными интерфейсами, и оценим переносимость кода с «большого» .NET на платформу nanoFramework.
Читать далее ».NET IoT. Часть 3. Подключение датчика температуры DS18B20

Датчика температуры DS18B20 уже подключали в Linux, значение температуры считывали, используя виртуальную файловую систему Sysfs. Теперь будем считывать температуру датчика DS18B20 из dotnet кода.
Читать далее ».NET IoT. Часть 2. Мигаем светодиодом (LED) используя библиотеку Libgpiod

Управление контактами GPIO в Linux на C# .NET IoT, уже было рассмотрено в публикации Управляем контактами GPIO из C# .NET 5 в Linux. Дабы не повторятся желательно ознакомится с выше указанной публикацией. Но для работы с GPIO в .NET IoT необходимо разобраться с нумерацией ножек процессора и иметь в наличие как минимум светодиод. Но что делать если на руках только одноплатный компьютер? В большинстве случаев на плате компьютера распаяны светодиоды, которые подключены к контроллеру GPIO (gpiochip). Таким образом, данные светодиоды доступны для управления из C# .NET IoT. В зависимости от дистрибутива, светодиоды могут быть задействованы в ОС как устройства, которые необходимо выключить в конфигурации дерева устройств Linux. На плате Banana Pi BPI-M64 размещено три светодиода красного, зеленого и синего цвета. Красный светодиод занят под функцию индикации подачи электропитания. Два остальных светодиода доступны для любых задач. Будем управлять встроенным синим светодиодом из .NET кода.
Читать далее ».NET IoT. Часть 1. Разбираемся с ШИМ (PWM — Pulse Width Modulation)

В Linux с ШИМ (PWM) уже работали в публикации LED, ШИМ (PWM), КНОПКА. Управление PWM осуществлялось через виртуальную файловую систему sysfs. Далее, в публикации Работа с GPIO в Linux. Часть 7. Управление подсветкой (backlight) экрана используя ШИМ (PWM) использовали устройство в Linux pwm-backlight, которое создавало интерфейс для управления подсветкой по пути . Теперь будем управлять PWM из .NET кода, язык программирования C#. Среда .NET работает с PWM посредством обертки над файловой системой sysfs, поэтому для продолжения чтения желательно ознакомится с материалом публикации LED, ШИМ (PWM), КНОПКА.
Читать далее »Управляем контактами GPIO из C# .NET 5 в Linux на одноплатном компьютере Banana Pi M64 (ARM64) и Cubietruck (ARM32)

Когда заходит речь про программирование на C# .NET для одноплатных компьютеров, то разговоры крутятся только в основном вокруг Raspberry Pi на Windows IoT. А как же Banana/Orange/Rock/Nano Pi, Odroid, Pine64 и другие китайские одноплатные компьютеры работающие на Linux? Так давайте это исправим, установим .NET 5 на Banana Pi BPI-M64 (ARM64) и Cubietruck (ARM32), и будем управлять контактами GPIO из C# в Linux. В первой части серии постов, подключим светодиод и кнопку для отработки прерываний и рассмотрим библиотеку Libgpiod (спойлер, библиотеку так же можно использовать в C++, Python) для доступа к контактам GPIO.
Читать далее »