Windows 10: как использовать расширение IoT для Raspberry Pi 2 (часть 1)

Если вы уже установили Windows 10 на Raspberry — значит пришло самое время обсудить, как правильно использовать пины и I2C. Конечно, если вы собираетесь создавать приложение, которое не работает с GPIO, вы не должны делать что-то особенное — нужно попросту создать обычное универсальное приложение, такое же  как для настольного компьютера или телефона с использованием C# или других языков и задеплоить его на ARM платформы непосредственно из Visual Studio. Но GPIO устройства особенные, фичи которых нет смысла включать в общую библиотеку. Так что, если вы собираетесь использовать специфические особенности IoT необходимо добавить IoT расширение в ваш проект.

Это расширение описывает только два контракта: Windows.Devices.DevicesLowLevelContract и Windows.System.SystemManagementContract. Их легко найти по данному пути: C:\Program Files (x86)\Windows Kits\10\Extension SDKs\WindowsIoT\10.0.10069.0 и проверить SDKManifest.xaml. SystemManagement не содержит ничего особенного — просто классы, которые помогают выключать устройство и изменять часовой пояс. А вот DevicesLowLevelContract содержит много важных классов. Давайте посмотрим на Raspberry и поймем, чего же мы можем достичь благодаря этим классам.

В случае GPIO можно использовать желтые пины, чтобы посылать сигналы датчикам или принимать данные от них. В Raspberry все выводы генерируют напряжения в 3,3 вольта. Розовые контакты поддерживает протокол SPI, которые позволяют вам подключить до двух устройств/датчиков (возможно и три, но я никогда не пробовал так сделать). Наконец, синие пины позволяют использовать I2C концентратор, который поддерживает более ста устройств/датчиков. НУ и напоследок: GND пины для земли и еще четыре пина питания (два 5V и два 3,3V).

Начнем с GPIO. Вы можете найти необходимые классы и перечисления в пространстве имен Windows.Devices.Gpio, и они позволяют разработчикам контролировать GPIO пины. Первый класс это GpioController, который позволяет получить доступ к контроллеру и получить ссылку на необходимые контакты. Если вы собираетесь использовать GPIO, то вы должны начать с вызова метода GetDefault, который возвращает ссылку на текущий контроллер GPIO (если он есть):

var controller=GpioController.GetDefault();

Если вы собираетесь написать действительно универсальный код, то вам необходимо проверить контроллер на  null (убедиться в том, что он есть). Если это так (равно null) это значит, что у вашего устройства нет GPIO (дектоп, телефон и т.п.) Такого рода проверки очень полезны, т.к. начиная с Windows 10 у нас есть универсальная платформа, которую вы можете запустить на любом поддерживаемом устройстве.

Если у вас есть доступ к контроллеру, это значит, что вы можете попробовать получить ссылку на контакты. Метод OpenPin позволяет получить ссылку на штифт блокировки пина. Конечно, этот метод не поможет вам настроить пин и просто предоставить ссылку на объект GpioPin. Тут необходимо поступить так же, как поступали выше — проверить объект на null, потому что другие процессы могут заблокировать штифт для собственных целей.

var pin = controller.OpenPin(0);
if (pin == null)
{
     return;
}

Метод OpenPin должен получить номер пина. Вы должны использовать те же самые номера, как и на изображении выше. Наконец, если вы получили доступ к пину — вы можете попробовать работать с ним. Есть три важных метода: SetDriveMode, Read и Write.  С помощью первого Вы можете установить пин как вход или выход. Остальные два позволяют принимать и отправлять сигнал соответственно.

Так что, если вы уже работали с подобными устройствами — вы не найдете ничего особенного, но если вы новичок в IoT — вы можете начать с создания простого проекта Blinky от Microsoft, который вы можете найти здесь.

Необходимо признать, что наиболее интересные классы находятся в Windows.Devices.I2C и Windows.Devices.SPI пространствах имен. Но о них мы поговорим в следующий раз.

 

Ссылка на источник: Windows 10: How to use IoT extension for Raspberry Pi 2 (part 1)

Advertisements
Tagged with: , , , ,
Опубликовано в Development, Windows 10

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s

%d такие блоггеры, как: