Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

IoT:Windows Remote Arduino и универсальные приложения

Компоненты и расходные материалы

Arduino UNO
× 1
Bluetooth-модем SparkFun - BlueSMiRF Silver
Я использовал версию Gold
× 1

Об этом проекте

Примечание. Смотрите обновления в комментариях внизу.

Приложение Windows 10 UWP может быть создано на основе удаленного подключения библиотека, чтобы приложение могло взаимодействовать с устройством Arduino, на котором запущена Firmata. Разработано приложение, подобное примеру Windows Remote Arduino «Blinky», но с добавлением функций. Он выполняет GPIO (выход и вход), а также некоторый аналоговый ввод-вывод. Это приложение функционально такое же, как версия Windows 8.1 из предыдущего блога этой серии. В этом блоге используется тот же материал (т. Е. Большая его часть), что и в предыдущем блоге, но из контекста универсальной платформы Windows (UWP), а не из контекста универсального приложения Windows 8.1. Целью приложения является рабочий стол Win 10, телефон Win 10 и Raspberry PI2 (под управлением Win 10 IoT). Последняя цель - «работа в стадии разработки». Этот блог можно читать без ссылки на предыдущий.

Этот проект подробно описан в моем блоге по адресу http://embedded101.com/Blogs/David-Jones/entryid/636/Windows-10-IoT-Windows-Remote-Arduino-and-Universal-Windows-Platform-Apps

Пример Windows Remote Arduino «Blinky» находится на ms-iot.github.io.


Универсальные приложения и приложения универсальной платформы Windows

Универсальные приложения (UA) достигли своего апогея в Windows 8.1. Вы можете реализовать приложения, ориентированные на рабочий стол Windows Intel, ARM RT Surface и Windows Phone (ARM), все в одном решении. Они могут использовать общий код, такой как обработчики событий, общие вычисления и данные. Код XAML должен быть специфичным для целевого объекта. Вы просто скомпилировали отдельные подпроекты для каждой цели. Во время компиляций был включен общий код.

Благодаря сдвигу парадигмы «Единая Windows» в Windows 10 один и тот же код для всех целей, включая код XAML, может использоваться для всех целей. Один и тот же проект просто нужно перекомпилировать для разных целей. Поскольку имя UA применялось к приложениям Windows 8, требовалось новое имя для действительно универсальных приложений. Отсюда и название «Приложения универсальной платформы Windows» было придумано для Windows 10.

Все платформы Windows 10 поддерживают приложения UWP. Но есть расширения, специфичные для каждой платформы. Например, расширения Windows 10 IoT поддерживают GPIO, I2C, SPIO и т. Д. Мобильные расширения поддерживают функции телефона. И т. Д. UWP обеспечивает гарантированный базовый уровень API для всех устройств.


Пакеты SDK расширений Windows 10. Проверены расширения Desktop, Mobile и IoT.

Для этого блога мы используем шаблон UWP, а не UA, как в предыдущем блоге. Нам не нужны никакие SDK расширения.


[1] Настройте связь Bluetooth с устройством Arduino.

Вы можете пропустить этот раздел, если вы уже выполнили действие с Win 8.1.

USB или Bluetooth могут использоваться для обмена данными Firmata между устройством Arduino и устройством Windows. Для Windows 10 можно использовать оба варианта, тогда как для Windows 8.1 можно использовать только Bluetooth. В этой версии приложения будет использоваться Bluetooth. Я использовал Sparkfun Bluetooth Mate Gold, тогда как Sparkfun Bluetooth Mate Silver использовался с примером «Blinky», упомянутым выше. Основное отличие заключается в том, что дальность действия золота составляет до 100 метров, а у серебра - 10 метров. Настройки квитирования по умолчанию также отличаются. Оба они имеют интерфейс UART уровня TTL, который можно использовать как для настройки режима работы устройства Bluetooth, так и для взаимодействия с последовательным портом Arduino.

Если вам необходимо настроить устройство Bluetooth, для настройки устройства через последовательный терминал настольного компьютера можно использовать устройство Sparkfun или Freetronics USB-Serial или Free. Вы также можете выполнить сброс устройства до заводских настроек по умолчанию, подключив вывод PIO6 (на самом деле PIO4) к высокому уровню и трижды переключив его.

Bluetooth Mate имеет те же контакты, что и Sparkfun FTDI Basic, поэтому их можно использовать взаимозаменяемо. вы не можете напрямую подключить Bluetooth Mate к плате FTDI Basic (вам придется поменять местами TX и RX). Эту конфигурацию можно использовать с настольным последовательным терминалом, с USB-устройством FTDI, подключенным к рабочему столу, для настройки устройства Bluetooth (или для использования устройства Bluetooth для последовательной связи с рабочего стола.

Настройки последовательного порта TTL UART по умолчанию:

  • · Скорость передачи 115 200
  • · 8 бит
  • · Без паритета
  • · 1 стоповый бит.
  • · Аппаратное управление потоком включен (на Mate Silver это Нет)
  • · Профиль последовательного порта (SPP): FireFly-WXYZ
    где WXYZ - это последние 4 цифры MAC-адреса BT устройства.
  • · Пароль 1234

Обратите внимание, что на устройстве может храниться до 8 сопряжений устройств.

Документация к устройству Bluetooth находится по адресу:
http://www.sparkfun.com/datasheets/Wireless/Bluetooth/rn-bluetooth-um.pdf

Конфигурация Firmata предназначена для скорости передачи 57600, которую необходимо изменить, или для этого настроено устройство Bluetooth. В этом упражнении мы изменим конфигурацию Firmata, что является более простым подходом. Аппаратный поток управления также может быть обработан путем настройки устройства Bluetooth, но для этого упражнения выполняется путем подключения RTS к CTS.

Поскольку устройство Bluetooth можно установить на макетной плате и подключить оттуда к устройству Arduino, я решил установить для него разъем на Prototyping Shield.

6-контактный разъем Arduino Shield был припаян к устройству Bluetooth на контактах TTL UART разъемом наружу. Штифты были загнуты на 900 вниз, чтобы устройство можно было вертикально вставить в другой коллектор экрана. Затем разъем BT можно использовать для прямого подключения к аналогичному установленному модулю FTDI Basic, если требуется конфигурация. Позже к PIO6 (PIO4) на модуле Bluetooth был припаян провод для восстановления заводских настроек.

Рис. 3. Модуль Bluetooth с заголовком экрана на выводах UART и заголовками экрана

Заголовок щита 8 был установлен в середине щита прототипа внизу. Также добавьте заголовки на внешней стороне щита, чтобы он мог подключаться напрямую к Uno.

Рис. 4. Экран прототипа Arduino для установки модуля Bluetooth

Затем модуль Bluetooth вставляется лицом к контактам GPIO по направлению к контактам 0 и 1 (Rx / Tx), оставляя желтое место свободным. Один из них можно использовать в качестве временного места для провода сброса к заводским настройкам.

Рис. 6. Установленный модуль Bluetooth на устройстве Arduino


[2] Настроить фирму

Вы можете пропустить этот раздел, если вы уже выполнили действие с Win 8.1.

Примечание. Контакты 0 и 1 UART Arduino Uno недоступны, когда он программируется через USB из Arduino IDE. Эти же контакты подключаются к интерфейсу TTL UART модуля Bluetooth, когда он используется для связи Firmata. Следовательно, когда устройство Arduino должно быть запрограммировано в этом разделе, устройство Bluetooth не должно подключаться.

2.1 Предполагая, что вы ранее разработали для устройства Arduino (Uno), создайте новый щит Standard Firmata:

2.2 Необходимо сделать одно изменение - скорость передачи данных. В среде IDE выполните поиск 57600. Замените его 115200. Сохраните скетч, я назвал его Firmata_115200. Запрограммируйте Uno, и эта часть готова.


[3] Настройте программный стек Universal App Firmata

Этот раздел лишь немного отличается от того, что уже выполнялось в Win 8.1.

Программный стек состоит из трех уровней:

API удаленного подключения реализует свойства (конфигурацию), методы и события на концептуально высоком уровне для взаимодействия с оборудованием Arduino. Например, GPIO (например, Get and Set Pin, On Pin изменены и т. Д.). Он взаимодействует с уровнем Firmata, используя протокол Firmata. Firmata обменивается данными по стеку через последовательный протокол, который реализован как транспортные уровни Bluetooth и USB-Serial на последовательном уровне. Опция USB недоступна в Windows 8.1.

Этот программный стек доступен для двух источников:

  1. https://github.com/ms-iot/windows-remote-arduino-samples
  2. https://github.com/ms-iot/remote-wiring/

Оба содержат версии Windows 8.1 и Windows 10. Хотя обе версии Windows 10 будут собираться, я обнаружил, что Windows 8.1 второй не будет. Я использовал версию Visual Studio 2015 RC:

  • Microsoft Visual Studio Community 2015 RC
  • Версия 14.0.22823.1 D14REL
  • Microsoft .NET Framework
  • Версия 4.6.00076

3.1 Скачайте первую версию. Чтобы сделать это правильно, вам необходимо клонировать репозиторий (не загружайте zip-архив):

  • Установите git или GitHub
  • В оболочке git или GitHub Desktop Shell (это Powershell) введите следующее из подходящего каталога:
     git clone --recursive https://github.com/ms-iot/windows-remote-arduino-samples.git 

    Структура каталогов того, что вы получаете, выглядит следующим образом:

windows-remote-arduino-samples o удаленное подключение Microsoft.Maker.win8_1 Microsoft.Maker.win10 источник o win8_1 o win10

Последние две папки (win8_1 и win10) - это просто примеры приложений (включая «мигающий» пример), которые мы пока проигнорируем. Обе версии Maker используют одну и ту же папку источников, поэтому для Windows 10 нам нужно только:

windows-remote-arduino-samples o удаленное подключение Microsoft.Maker.win10 источник

в подходящую папку. Я предлагаю один в корне диска, скажем, c:\ wras10, поскольку я обнаружил, что вы можете получить некоторые ошибки при сборке ARM из-за слишком длинных имен путей. Вы также можете скопировать файлы .md для справки. Их можно открыть в VS.

3.2 Откройте файл решения в Microsoft.Maker.win10

3.3 Задайте для Win32 цель построения решения.

Сделано три сборки. По одному для каждого из трех уровней в стеке программного обеспечения.

3.4 Сделайте то же самое для конфигурации ARM. Если у вас есть машина x64, вы можете попробовать и эту сборку.


[4] Создайте приложение HW LED UWP

В этом разделе есть «короткое замыкание» для тех, кто выполнял предыдущие действия с Win 8.1.

Для этой начальной версии приложений одна программная кнопка включает аппаратный индикатор, а другая - выключает. Светодиод будет подключен к контакту 5 GPIO.

В документации «Blinky» говорится, что есть несколько способов получить и использовать эти библиотеки. В конечном итоге Nuget будет подходящим вариантом, но он пока недоступен. Вы можете ссылаться на эти встроенные версии в общем виде в своей системе разработки. Самый простой способ - просто добавить необходимое универсальное приложение в решение и сослаться на них. Мы воспользуемся этим методом.

4.1 Добавьте новое универсальное приложение C # Windows Blank в решение . (Обратите внимание, на этот раз не Windows 8.1):

Дайте ему подходящее имя. Я назвал свой wrauwp:Windows Remote Arduino Universal app UWP.
Обратите внимание, что на этот раз создан только ОДИН проект (UWP). Код XAML и CSharp одинаков для настольной и мобильной версий приложения. Разница в том, как он компилируется.

Возможности последовательного порта и Bluetooth необходимы в манифесте пакета:

4.2 Откройте package.appmanifest в текстовом редакторе (не в его графическом интерфейсе) с помощью View Code. Возможности Интернет-клиента включены внизу. Измените этот раздел на:

В packkage.appmanifest

Кроме того, если бы мы использовали USB-последовательный порт, а не Bluetooth-последовательный на рабочем столе, мы бы добавили возможность для этого.

Ссылка на каждый из соответствующих уровней программного обеспечения обязательна:

4.3 Добавьте ссылки Firmata, RemoteWiring и Serial для настольного UA (опять же, это нужно сделать только для одного проекта):

ПОДСКАЗКА: Для тех, кто уже работал с предыдущей версией Windows 8.1, теперь вы можете сократить следующее :

  • Скопируйте XML-код сетки из этого проекта в MainPage.xaml в этом новом проекте.
  • Теперь вы можете перейти к тестированию приложения на целевых объектах.

Для тех, кто продолжает здесь…

4.4. Измените XAML сетки UA на:

MainPage.xaml:пользовательский интерфейс

Комментарий На этот раз у нас есть только один MainPage.cs, так как есть только один проект приложения… Одна Windows.
Раньше был один для настольного компьютера и один для телефона, которые мы сделали общими, разместив одну версию в подпроекте общего доступа.

Весь код cs будет ссылаться на MainPage.cs

4.7. В классе MainPage добавьте следующие объявления вверху класса:

Объявления MainPage.cs

// Usb не поддерживается в Win8.1. Чтобы увидеть шаги подключения USB, обратитесь к решению win10. Последовательный Bluetooth Bluetooth; RemoteDevice arduino; // Используемые контакты. Примечание. Фактическое количество контактов. private const int LED_PIN =5;

4.8 в конструкторе MainPage после InitializeComponent () добавить:

В MainPage () конструктор

bluetooth =new BluetoothSerial ("FireFly-748B"); arduino =новое удаленное устройство (bluetooth); bluetooth.ConnectionEstablished + =OnConnectionEstablished;

Замените FireFly-748B своим SPP.

4.9. Реализуйте OnConnectionEstablished, добавив в класс следующий метод:

Добавить OnConnectionEstablished ()

private void OnConnectionEstablished () { // включаем кнопки в потоке пользовательского интерфейса! var action =Dispatcher.RunAsync (Windows.UI.Core.CoreDispatcherPriority.Normal, новый Windows.UI.Core.DispatchedHandler (() => { this.OnButton.IsEnabled =true; это. OffButton.IsEnabled =true; arduino.pinMode (LED_PIN, PinMode.OUTPUT); })); }

4.10 И, наконец, добавьте в класс обработчики событий для кнопок:

Добавить обработчики событий кнопок

private void OnButton_Click (отправитель объекта, RoutedEventArgs e) { // включаем светодиод, подключенный к выводу 5 arduino.digitalWrite (5, PinState.HIGH); } private void OffButton_Click (отправитель объекта, RoutedEventArgs e) { // выключаем светодиод, подключенный к выводу 5 arduino.digitalWrite (5, PinState.LOW); }

4.11 Тестовая сборка приложения UWP в конфигурациях x86, x64 и ARM


[5] Развертывание и тестирование универсальных приложений.

В этом разделе мы подключим аппаратный светодиод к устройству Arduino и запустим приложение на рабочем столе и на телефоне с Windows 10 *

Протестируйте на своем компьютере

5.1 Установите настольное приложение в качестве запускаемого проекта

5.2 Установите в качестве цели x86 и локальную машину. Восстановите настольное приложение UWP

5.3 Подключите вывод 5 Arduino к аппаратному светодиоду. Подключите GND, VCC и подходящий резистор последовательно.

Как упоминалось в предыдущем блоге относительно Windows 10 IoT Raspberry PI 2 GPIO Я использую плату для разработки для реализации моего тестирования ввода-вывода, такого как светодиоды, переключатели и т. д. Если у вас нет аналогичной платы, вы можете использовать «Мигающая» конфигурация оборудования но вам нужно будет изменить полярность установки контактов в обработчиках кнопок.

5.4 Включите устройство Arduino и подключите модуль Bluetooth к рабочему столу (пароль =1234). .. Предполагаю, вы знаете, как это сделать.

5.5. Запустите приложение.

5.6. Вероятно, вас спросят, нормально ли приложение подключается к устройству Bluetooth. ОК

5.7 Проверьте работоспособность приложения. Установите точку останова в обработчике кнопок и убедитесь, что вы можете отлаживать.

5.8 Повторите 4.1–4.6 для x64, если у вас 64-разрядный рабочий стол.

5.9 Отключите Bluetooth на рабочем столе

Теперь протестируем ваш Windows 10 Phone, если телефон настроен для разработки.

5.10 Включите телефон, перейдите в «Настройки» / «Bluetooth» и включите его. Выполните сопряжение с модулем Bluetooth (пароль =1234).

5.11 Продолжение использования универсального приложения Windows в качестве начального проекта.

5.12 Установите цель на ARM ,, устройство и перестройте

5.11 Подключите телефон к рабочему столу через последовательный порт USB и разверните приложение.

Теперь протестируем Raspberry PI 2

ЭТО РАБОТА В ПРОЦЕССЕ. СМ. ПРИМЕЧАНИЕ В КОНЦЕ ЭТОГО РАЗДЕЛА

5.13 Удаленный отладчик уже установлен и активен на RPI2, настроенном для Win 10 IoT.

5.14 Определите IP-адрес RPI2, например, с помощью Windows IoT Core Watcher

5.15 В «Свойства проекта» - «Отладка» установите для цели «Удаленный компьютер», «Без аутентификации» и введите IP-адрес

5.16 Перестройка приложения UWP

5.17 Разверните и протестируйте приложение на RPI2.

У меня еще нет версии RPI2 для подключения через Bluetooth:

  • Bluetooth в основном еще не поддерживается
  • Пожалуйста, оставляйте комментарии, если у вас есть какие-либо идеи или успехи в этом.
  • Я буду обновлять здесь, когда добьюсь прогресса
Ключ Bluetooth загружен в RPI2.

[6] "Красивый" интерфейс

Следующее будет украшать пользовательский интерфейс и добавлять кнопки Bluetooth Connect и Disconnect.

6.1 Измените код XAML UI GRID на ( PS:обратите внимание на изменение предыдущих строк сетки кнопок ):

Добавьте две кнопки & amp; amp;

Код

  • WindowsRemoteArduino_Win10.zip
WindowsRemoteArduino_Win10.zipC#
An extended version of "Blinky"
Input, Output, Analog Input
Fancier UI
No preview (download only).

Схема


Производственный процесс

  1. Универсальный пульт дистанционного управления Raspberry Pi
  2. Windows IoT:дверь распознавания лиц
  3. Windows 10 IoT Core и SHT15
  4. Windows 10 IoT Core для Raspberry Pi 3, модель B +
  5. GoPiGo v2 с Windows IoT
  6. Приложения и устройства, поддерживающие удаленные команды цепочки поставок
  7. Универсальный пульт дистанционного управления с использованием Arduino, 1Sheeld и Android
  8. ЖК-анимация и игры
  9. Руководство по печатным платам и IoT
  10. Cisco представляет решения удаленного мониторинга IoT для ИТ и ОТ