.NET Gadgeteer
.NET Gadgeteer — открытый стандарт для быстрой прототипизации небольших электронных устройств с использованием .NET Micro Framework и Microsoft Visual Studio/Visual C# Express[1][2]. Это решение предназначено для конструирования малых аппаратных проектов как инженерами, так и любителями, базируется на использовании открытого исходного кода.
Что важно знать
| .NET Gadgeteer | |
|---|---|
| Тип | встраиваемые системы |
| Автор | Microsoft Research Cambridge |
| Разработчик | Microsoft |
| Написана на | C#, Visual Basic .NET |
| Движок | .NET Micro Framework |
| Первый выпуск | 20 сентября 2010 |
| Последняя версия | Core 2.14.500 (2012) |
| Репозиторий | archive.codeplex.com/?p=… |
| Состояние | прекращена |
| Лицензия | Apache License 2.0, Creative Commons 3.0 |
| Сайт | microsoft.com/en-us/rese… |
Платформа Gadgeteer
Платформа Gadgeteer строится вокруг основной платы (mainboard) с микроконтроллером, на котором работает .NET Micro Framework. В Gadgeteer определены правила подключения дополнительных аппаратных модулей посредством безпайковых соединителей push-on. Gadgeteer содержит небольшую библиотеку классов, упрощающую организацию работы с этими внешними модулями в системе. Это позволяет использовать широкий спектр возможностей микроконтроллера, упорядоченных по стандарту и физическим интерфейсам посредством рядовых разъёмов[3].
История и лицензирование
.NET Gadgeteer был создан исследователями из Microsoft Research Cambridge, где группа Sensors and Devices разработала платформу для быстрого и многократного прототипирования устройств. Проект быстро вызвал интерес среди энтузиастов, преподавателей и разработчиков, ищущих эффективную платформу для быстрой сборки электронных устройств[4].
В ответ на интерес со стороны сообщества Microsoft выпустила Gadgeteer как проект с открытым исходным кодом[5], определив его как «открытое сотрудничество между Microsoft, производителями аппаратного обеспечения и конечными пользователями»[4].
Базовые библиотеки распространяются по лицензии Apache License 2.0, а конструкции аппаратных модулей — по лицензии Creative Commons 3.0. Основной исходный код доступен в репозитории CodePlex[4].
Microsoft заявляла о планах по дальнейшей поддержке и развитию экосистемы .NET Gadgeteer, включая создание образовательных ресурсов и сотрудничество с компаниями по выпуску совместимых наборов и модулей[4]
Конструкция и разработка
Проекты .NET Gadgeteer состоят из основной платы и цепочки модулей, соединённых стандартным 10-контактным разъёмом. Разъёмы основной платы поддерживают определённые типы модулей, что указывается серией букв рядом с разъёмом. Каждый модуль помечен своей буквой типа. (Неправильное подключение модуля не повредит схему — при условии использования только одного красного модуля питания). Любой модуль, подающий питание (от USB, постоянного тока или батареи), окрашен в красный цвет, чтобы исключить одновременное использование нескольких источников питания, способных повредить устройство.
Библиотека Gadgeteer реализует слой событийных драйверов и автоматическую генерацию кода, интегрированную с Visual Studio. Это позволяет разработчику визуально собирать схему в среде Visual Studio, указывая, какие аппаратные модули (например, камера, кнопка, дисплей) подключены к каким разъёмам основной платы, после чего SDK обеспечивает автоматическую генерацию кода для всех соответствующих устройств. Таким образом, программист может сразу приступить к написанию .NET-кода для подключения к выбранному оборудованию.[6].
В настоящее время доступно множество разнообразных модулей от разных производителей: для беспроводной связи, мониторинга окружающей среды, приводов и иных задач, а также многочисленные пользовательские модули, формирующие широкую экосистему проектов[7].[8][9][10][11][12][13]
Аппаратные средства
Любой производитель, разработчик или энтузиаст может создавать совместимые с .NET Gadgeteer устройства; в проекте участвует ряд производителей.
| Основная плата | Тактовая частота (МГц) | Процессор | Ядер | Количество разъёмов | Ширина (мм) | Длина (мм) | Производитель |
|---|---|---|---|---|---|---|---|
| Argon R1 | 120 | LPC1788 Cortex-M3 | 1 | 14 | 57 | 92 | Love Electronics |
| Eth Mainboard 1.0 | 168 | STM32F407 Cortex-M4 | 1 | 8 | 42 | 57 | Mountaineer Group |
| USB Mainboard 1.0 | 168 | STM32F407 Cortex-M4 | 1 | 9 | 32 | 57 | Mountaineer Group |
| Nano | 200 | Freescale ARM920T | 1 | 10 | 42 | 57 | Sytech Design |
| FEZ Spider | 73 | ARM7 LPC2478 | 1 | 14 | 52 | 57 | GHI Electronics |
| FEZ Hydra | 200 | ARM9 AT91SAMRL | 1 | 14 | 62 | 87 | GHI Electronics |
| FEZ Cerberus | 168 | STM32F405 Cortex-M4 | 1 | 8 | 47 | 57 | GHI Electronics |
| FEZ Cebuino Bee | 168 | STM32F405 Cortex-M4 | 1 | 3 | 55 | 80 | GHI Electronics |
| Bambino 200 | 204 | LPC4330 Cortex-M4 & M0 | 2 | 5 | 58 | 102 | Micromint |
| Bambino 200E | 204 | LPC4330 Cortex-M4 & M0 | 2 | 10 | 58 | 102 | Micromint |


