Главная » Разработка встраиваемых систем
.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 в Linux из Docker-контейнера библиотекой Libgpiod [обновлено 23.10.2023]
В публикации Работа с GPIO в Linux. Часть 6. Библиотека Libgpiod познакомились с библиотекой Libgpiod, разработанной Bartosz Golaszewski. Библиотека позволяет управлять контактами GPIO одноплатного компьютера, подавать 1/0, подписываться на события (необходимо для обработки прерывания кнопки), и т.д. В отличие от множества библиотек для Raspberry Pi, Libgpiod не заточена под конкретные процессоры и работает на различных архитектурных платформах: ARMv7, ARM64, AMD64, RISC-V. Но компиляция библиотеки из исходного кода, в зависимости от дистрибутива может приводить к тем или иным сложностям и «замусоривает» систему лишними пакетами . Поэтому в дополнение и для создание Docker-контейнеров c .NET приложениями, были собраны контейнеры на базе ОС Alpine и Ubuntu содержащие библиотеку Libgpiod вместе с утилитами для управления GPIO.
Читать далее »Работа с GPIO в Linux. Часть 7. Управление подсветкой (backlight) экрана используя ШИМ (PWM)
В публикации Подключение дисплея SPI LCD ILI9341 был подключен данный дисплей к плате Banana Pi BPI-M64. Все управление подсветкой сводилось к двум состояниям: включено или выключено. Контакт LED на дисплее предназначен для регулирования уровня яркости экрана. Из-за того, что плата Banana Pi BPI-M64 не имеет аналоговых выходов, невозможно было регулировать степень яркости дисплея. Поэтому для регулирования значения напряжения на контакте LED, воспользуемся драйвером двигателя (микросхема TB6612FNG). Входящий сигнал ШИМ (PWM) в микросхеме TB6612FNG регулирует напряжение на выходе. С ШИМ (PWM) уже работали в публикации LED, ШИМ (PWM), КНОПКА. Поэтому потребуется лишь соединить контакт ШИМ (PWM) на плате Banana Pi BPI-M64 с соответствующим контактом на микросхеме TB6612FNG, и вывод с микросхемы TB6612FNG соединить с входом контакта LED на дисплее. Как это сделать, для возможности регулирования подсветки экрана, читаем под катом.
Читать далее »Безопасность встраиваемых систем Linux
Весь наш мир построен на противоположностях. Если вы создаете свое устройство и продаете его, то всегда найдется тот, кто захочет его взломать. Цели у злоумышленника буду самыми разными, от попыток сделать клон устройства (привет Китаю) до шантажа конечных потребителей, что весьма ухудшит вашу репутацию с точки зрения изготовления надежных устройств. И чем популярнее система на основе которой построено устройство, тем интереснее она злоумышленнику. В последнее время активно развивается сегмент одноплатных компьютеров, таких как Raspberry Pi, и множества других. Linux системы по распространенности использования во встраиваемых систем, вышли на первые места. Большая функциональность устройств, например наличие разных беспроводных интерфейсов коммуникаций, в совокупности с большими возможностями ОС Linux, привела к серьезной необходимости организации защиты устройства. Некоторые думают, что достаточно отключить учетную запись root и установить надежный пароль, но на самом деле это только малая часть того, что следует сделать. Какие технологии и концепции используются для снижения рисков и реализации более безопасного устройства работающего на Linux узнаете под катом.
Читать далее »Управляем контактами 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.
Читать далее »