Метка: C#

Паттерн внедрение зависимостей в .NET nanoFramework для микроконтроллеров

Сегодня сломаем привычный мир инженеров и разработчиков встраиваемых систем на микроконтроллерах. В .NET существует замечательный паттерн программирования, как внедрение зависимостей (Dependency injection, DI). Суть паттерна заключается в предоставление механизма, который позволяет сделать взаимодействующие в приложение объекты слабосвязанными. Эти объекты будут связаны между собой через абстракции, например, через интерфейсы, что делает всю систему более гибкой, более адаптируемой и расширяемой. Но когда ведется разработка для микроконтроллеров, все зависимости обычно жестко завязаны на используемых устройствах, и замена датчика иногда приводит к существенному переписыванию программного кода. Напишем приложение на .NET nanoFramework для микроконтроллера ESP32, используя паттерн DI с возможностью легкой замены датчиков и LCD экрана.

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

Ультра скорость для C# кода, запуск .NET на FPGA процессоре с HASTLAYER

У многих FPGA или ПЛИС, ассоциируется с низкоуровневым программированием на языках VHDL, Verilog, или OpenCL. Платформа .NET уже давно захватила нишу микроконтроллеров, проект nanoFramework. Последние новости развития nanoFramework только доказывают твердость намерений платформы .NET освоить работу и на «железе». Казалось бы, пал последний бастион, где не было платформы .NET. Но это был далеко не последний рубеж. Как вам возможность писать код на C#, вместо хардкорного VHDL или Verilog, с последующей загрузки .NET сборок на FPGA процессоры Xilinx для непосредственного исполнения? Открытый проект Hastlayer преобразует сборки .NET в низкоуровневый код для FPGA процессоров, обеспечивая максимальный параллелизм и низкое энергопотребление.

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

Что нового в .NET nanoFramework? Подключаем LCD экран, сканируем Wi-Fi сети

В этом году платформа .NET nanoFramework для микроконтроллеров отметила юбилей. За 5 лет платформа превратилась из малоизвестного проекта в успешное коммерческое open-source решение. К инструментам разработчика добавили Visual Studio Code, теперь в Linux также можно программировать на C#, как и в Windows. Были переработаны nuget-пакеты, появилась коммерческая поддержка, обновлена документация. В практической части подключим OLED дисплей на контроллере SSD1306, доработаем драйвер под новую модификацию дисплея и отправим код в upstream, напишем сканер Wi-Fi сетей.

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

Запускаем .NET nanoFramework на Raspberry Pi Pico

Платформа .NET nanoFramework позволяет разрабатывать приложения на C# для различных микроконтроллеров. В предыдущей публикации работали с ESP32 и STM32. Одна из замечательных особенностей .NET nanoFramework заключается в возможности запускать среду исполнения поверх интерфейса POSIX в Win32 для Unit-тестирования. Это означает быструю возможность переноса среды nanoFramework Runtime на любую операционную систему поддерживаемую POSIX стандартом. Именно таким образом, в качестве эксперимента, .NET nanoFramework был перенесен на микроконтроллер Raspberry Pi Pico, для запуска поверх операционной системы реального времени (RTOS) Apache NuttX. Как это было реализовано прошу под кат.

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

Простая разработка IoT приложений на C# для Raspberry Pi и других одноплатников, на Linux

Многие привыкли легко и просто программировать микроконтроллеры на платформе Arduino или nanoFramework (используется C#). Но как обстоит с разработкой IoT приложений на C# .NET для одноплатных компьютеров под Linux? В ответ услышите что нужно все устанавливать из командной строки, да и еще хорошо разбираться в Linux, там не так просто как с Arduino. Для настройки удаленной отладки необходимо выполнить множество различных действий, вручную настроить конфигурацию запуска, генерировать ключи доступа для пользователя, от имени которого будет запускать отладка, и т. д. Но теперь, благодаря расширению .NET FastIoT для Visual Studio Code, это не требуется делать. Черновую работу по установке необходимых пакетов и конфигурированию проекта для удаленной отладки сделает за вас расширение. Теперь вы можете полностью сфокусироваться на своем коде, не отвлекаясь на лишние задачи.

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

Анонс. Расширение .NET FastIoT для простой разработки приложений на C# .NET под одноплатные компьютеры на Linux

Как программировать микроконтроллеры на платформе Arduino или nanoFramework (используется C#) многие знают. Но разработка IoT приложений на C# .NET для одноплатных компьютеров под Linux несколько сложнее. Необходимо установить платформу .NET, отладчик, и выполнить множество других задач. Но теперь, благодаря расширению .NET FastIoT для Visual Studio Code, эти задачи не требуется выполнять вручную.

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

Метеостанция на 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.

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