Управляем контактами 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.

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

Сборка Docker контейнеров для ARM и RISC-V архитектуры используя Buildx [обновлено 30.09.2023]

Docker контейнер всегда собирается для той платформы, на которой выполняется сборка. Но как собрать Docker образ для другой платформы, например на платформе x86 собрать образ для ARM32, ARM64 и RISC-V архитектуры? На плате Banana Pi BPI-M64 с 64-разрядным ARM процессором собирается образ для архитектуры ARM64, ARMv8, aarch64. При сборки образов для разных архитектур приходится использовать несколько устройств, что несколько неудобно. Для решения этой задачи в состав Docker CE входит инструмент Buildx, позволяющий собирать образы для различных архитектур процессоров. В публикации будет детальный разбор, как собирать Docker образы для ARM и RISC-V процессоров с дальнейшей загрузкой в публичный Docker Hub.

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

.NET nanoFramework — платформа для разработки приложений на C# для микроконтроллеров

.NET nanoFramework — это бесплатная платформа с открытым исходным кодом, основанная на .NET и предназначена для малых встраиваемых устройств, микроконтроллеров. С ее помощью можно разрабатывать различные устройства для Интернета вещей, носимые устройства, научные приборы, робототехнические устройства, можно создавать прототипы и даже использовать на промышленном оборудование. .NET nanoFramework является малой версией «большого» .NET Framework предназначенного для настольных систем. Разработка приложений ведется на языке C# в среде разработки Visual Studio. Сама платформа является исполнительной средой .NET кода, это позволяет абстрагироваться от аппаратного обеспечения и дает возможность переносить программный код с одного микроконтроллера на другой, который тоже поддерживает .NET nanoFramework. Программный код на C# для настольных систем, без изменений или с небольшой адаптацией (необходимо помнить про малый объем оперативной памяти) исполнится на микроконтроллере. Благодаря этому, разработчики на .NET с минимальными знаниями в области микроэлектроники смогут разрабатывать различные устройства на .NET nanoFramework.

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

Работа с GPIO в Linux на примере Banana Pi BPI-M64. Часть 5. Device Tree overlays. Шина I2C, подключение датчиков Bosh BMx

Пришло время задействовать шину I2C, будем подключать датчики серии BMP и BME компании Bosch Sensortec, такие как: BME280, BMP085, BMP180, и BMP280. Подключение датчиков по шине I2C позволяет экономить контакты GPIO. Дополнительно, в подобных датчиках уже есть АЦП, и значение напряжения уже не проецируется на шкалу температуры, а выдается в цифровом виде. Помимо датчиков температуры, к шине I2C можно подключать и другие всевозможные датчики и модули, например расширитель контактов GPIO MCP23017 I2C I/O Expander.

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

Как взломать систему безопасности с помощью датчика температуры DHT11, а все произошло из-за птичек и вышек 5G

Кинематограф стал неотъемлемой частью нашей жизни. Сопереживая героям, мы словно проживаем вторую жизнь, смотрим на мир глазами героев, начинаем смотреть на некоторые вещи иначе. Иногда для упрощения или достижения некоторых сюжетных сцен режиссеры и сценаристы идут на допущения, которые в нашей жизни невозможны. Но во вселенной фильма нет ничего невозможного. Могли ли вы себе представить, что с помощью температурного датчика DH11, который подключается к Arduino, можно в легкую взломать систему безопасности? А вот во вселенной индийского фильма Робот 2.0 (2018 года) это возможно.

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

Работа с GPIO в Linux на примере Banana Pi BPI-M64. Часть 4. Device Tree overlays. Подключение дисплея SPI LCD ILI9341

В этот раз будем подключать TFT-LCD дисплей на популярном контроллере ILI9341 к одноплатному компьютеру Banana Pi BPI-M64. В сети Интернет много материала как подключать различные LCD экраны к Raspberry Pi. Но что если у вас нет Raspberry Pi, а хочется подключить недорогой LCD экран? Есть решение, подключить с помощью дерева устройств (Device Tree overlays) Linux. Будем подключать недорогой цветной TFT-LCD экран диагональю 2.4 дюйма по SPI интерфейсу к Banana Pi BPI-M64 под ОС Armbian.

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

Установка Docker для ARM и 64-bit ARM (Armbian, Linux)

Контейнеризация приложений в Docker уже стала де-факто стандартом для систем на Linux. Многие думают что Docker технология предназначена только для серверов, больших дата-центров. Но на самом деле контейнеризация приложений для одноплатных компьютеров на ARM является отличным решением т.к. позволяет с легкостью удаленно обновлять приложение, контролировать доступные ресурсы, и обеспечивать надежность и доступность путем отката к предыдущему рабочему варианту. Публикация содержит пошаговое  руководство как установить Docker и docker-compose для одноплатных компьютеров на ARM процессоре 32-bit и 64-bit, предполагается что на компьютере установлена Armbian (Linux). В качестве платформы для установки и запуска Docker будем использовать Cubietruck (ARM32), и Banana Pi BPI-M64(ARM64), работающие на Armbian.

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