Windows 10 iot core для raspberry pi 4

Как работает Windows 10 на Raspberry Pi 4 и Pi 3

Разработчики наконец установили оптимизированную для ARM версию Windows 10 на Raspberry Pi 4 после того, как некоторым людям удалось запустить ее на Raspberry Pi 3 в первой половине 2019 года.

Raspberry Pi 4 и Pi 3 официально поддерживают версию Windows 10 для IoT Core, которая не совпадает с версией Windows 10, которая работает на настольном компьютере, но является упрощенной версией для маломощных компьютерных плат.

Например, Windows 10 IoT Core не позволяет запускать традиционные приложения Win32 или даже загружаться на рабочий стол. IoT позволяет вам запускать одновременно одно приложение UWP, и реальная цель ОС на Pi – запускать небольшие приложения, предназначенные для миниатюрных компьютерных плат.

К счастью, есть новое руководство, чтобы заставить Windows 10 на ARM работать на Pi 3 B + и Pi 4B, используя неподдерживаемую техническую предварительную сборку. В отличие от IoT, Windows 10 on ARM представляет собой ARM-ориентированную версию ОС, которая поставляется с традиционным десктопом и поддержкой приложений Win32 посредством эмуляции.

Разработчику Marcin удалось установить Windows 10 on ARM на Raspberry Pi 4 Model B, и он также опубликовал подробное руководство.

Как установить Windows 10 на Raspberry Pi 4

– Загрузите прошивку UEFI отсюда и распакуйте ее на карту MicroSD в формате FAT32.
– Загрузите сборку Windows 10 ARM64 отсюда. Только сборка 17134 была протестирована, но любая более новая сборка, которая проходит OOBE, также должна быть совместимой.
– Загрузите ISO-компилятор отсюда. В соответствии с разработкой, это создаст файл ISO, но вам все равно понадобится файл «install.wim» из «sources».
– Загрузите «Windows на Raspberry» отсюда. Оно установит Build 17134 или новее на USB-накопитель, но необходимо выбрать разметку GPT.

После загрузки этих файлов вы должны запустить командную строку и выполнить действия, описанные здесь.

Стоит отметить, что некоторые функции Raspberry Pi 4 могут не работать с Windows 10 на ARM. Например, вы можете использовать только USB-порт Type-C для зарядки и OTG. Windows 10 on ARM также ограничивает использование ОЗУ только в 1 ГБ, а драйвер контроллера Broadcom auxspi не работает.

Разработчики также портируют Windows 10 on ARM на телефоны Android, такие как Galaxy S8, OnePlus 6 и Xiaomi Mi Mix.

Windows 10 on ARM на Raspberry Pi 4 – хорошее начало

Raspberry Pi 4 выводит Pi на другой уровень, и производительность намного лучше, чем у предыдущей Raspberry Pis. Если вы хотите запустить Windows 10 на вашем Raspberry Pi, вам нужно использовать Windows 10 IoT Core, которая была разработана для гаджетов Интернета вещей (IoT), но версия IoT Core ОС Microsoft не так хороша, как полная версия ОС.

В 2019 году группа независимых разработчиков начала работу над проектом по внедрению Windows 10 на устройства, от которых сама Microsoft, возможно, отказалась. Мы видели Windows 10 на ARM, работающем на телефонах Lumia, и голландский разработчик также представил Windows 10 для Raspberry Pi 3.

Ранее взлом был ограничен моделью Raspberry Pi 3, но теперь, по-видимому, есть возможно запустить Windows 10, опять же версию ARM, на Pi 4. Это достигается с помощью инструмента установки под названием «WoA Deployer», который в основном позволяет любому с базовые технические знания для установки Windows 10 on ARM на поддерживаемое оборудование.

По словам разработчика Marcin, можно запустить Windows 10 на ARM Build 17134 (обновление за апрель 2018) на Raspberry Pi 4 Model B.

Raspberry Pi 4 работает на новом процессоре Broadcom BCM2711B0, а новый чип основан на 28-нм техпроцессе. Raspberry Pi 4 имеет четыре ядра с тактовой частотой 1,5 ГГц и включает в себя Cortex A72 с глубиной конвейера из 15 команд по сравнению с 8 на Raspberry Pi 3B+.

Проект на Pi 4 еще не идеален, и он может быть медленным при открытии определенных приложений. Windows 10 на ARM выполняет эмуляцию x86, поэтому вы сможете запускать настольные приложения, но это будет мучительно медленно.

Если вы хотите опробовать проект, вам необходимо иметь WoA Deployer, Raspberry Pi 4, USB-накопитель, а также образ Windows 10 ARM64.

WoA для Pi 4 все еще в разработке, и вы, вероятно, не захотите его пробовать, поскольку процесс установки сложен.

Читайте также:  Возможностей безопасности windows 10

Настройка Raspberry Pi Setting up a Raspberry Pi

Обзор Overview

Нельзя установить ОС на Raspberry Pi 3B+ с помощью панели мониторинга. Dashboard cannot be used used to setup the Raspberry Pi 3B+. Для устройств 3B+ необходимо использовать бета-версию 3B+. If you have a 3B+ device, you must use the 3B+ technical preview. Ознакомьтесь с известными ограничениями бета-версии, чтобы выяснить, подходит ли она вам. Please view the known limitations of the technical preview to determine if this is suitable for your development.

При появлении запроса о форматировании диска не выполняйте форматирование. When the «format this disk» pop up comes up, do not format the disk. Мы создаем исправление для этой проблемы. We are working on a fix for this issue.

Если Raspberry Pi настраивается для создания прототипов, рекомендуем использовать панель мониторинга Windows 10 IoT Базовая. When setting up a Raspberry Pi for prototyping, we recommend using the Windows 10 IoT Core Dashboard. Если вы намерены использовать Raspberry Pi в производстве, ознакомьтесь с руководством по производственному использованию Windows 10 IoT Базовая. However, if you’re looking to manufacture with a Raspberry Pi, please refer to the IoT Core Manufacturing Guide. Образы ОС, поставляемые изготовителем платы, нельзя использовать при производстве устройств. You cannot use maker images for manufacturing.

Использование панели мониторинга Using the Dashboard

Для установки образа Windows 10 IoT Базовая на плату Raspberry Pi вам потребуется следующее: To flash, or download, IoT Core onto your Raspberry Pi, you’ll need:

  • компьютер под управлением Windows 10; A computer running Windows 10
  • Панель мониторинга Windows 10 IoT Базовая Windows 10 IoT Core Dashboard
  • SD-карта с высоким уровнем производительности, например производства компании SanDisk; A high-performance SD card, such as a SanDisk SD card
  • внешний монитор; An external display
  • периферийные устройства, такие как мышь, клавиатура и т. п. Any other peripherals (e.g. mouse, keyboard, etc.)

Instructions Instructions

  1. Откройте панель мониторинга Windows 10 IoT Базовая, щелкните Настроить новое устройство и вставьте SD-карту в компьютер. Run the Windows 10 IoT Core Dashboard and click on Set up a new device and insert an SD card into your computer.
  2. Подключите к Raspberry Pi внешний монитор. Hook up your Raspberry Pi to an external display.
  3. Заполните все поля. Fill out the fields. Выберите «Broadcomm [Raspberry Pi 2 и 3]» в качестве типа устройства. Select «Broadcomm [Raspberry Pi 2 & 3]» as the device type. Не забудьте присвоить устройству новое имя и пароль. Make sure to give your device a new name and password. В противном случае сохранятся следующие учетные данные, настроенные по умолчанию: Otherwise the default credentials will remain as:
  1. Примите условия лицензионного соглашения и щелкните Download and install (Скачать и установить). Accept the software license terms and click Download and Install. Если все пройдет нормально, на мониторе отобразится ход установки ОС Windows 10 IoT Базовая на SD-карту. If all goes well, you’ll see that Windows 10 IoT Core is now flashing your SD card.

Подключение к сети Connect to a network

Проводное подключение Wired connection

Если у вашего устройства есть порт Ethernet или оно поддерживает USB-адаптер Ethernet, подключите к устройству кабель Ethernet для соединения с сетью. If your device comes with an Ethernet port or USB Ethernet adapter support to enable a wired connection, attach an Ethernet cable to connect it to your network.

Беспроводное подключение Wireless connection

Если ваше устройство поддерживает подключение к сети по Wi-Fi и к устройству подключен монитор, сделайте следующее: If your device supports Wi-Fi connectivity and you’ve connected a display to it, you’ll need to:

  1. Перейдите к приложению по умолчанию и нажмите кнопку настройки, расположенную рядом с часами. Go into your default application and click the settings button next to the clock.
  2. На странице параметров выберите Network and Wi-Fi (Сеть и Wi-Fi). On the settings page, select Network and Wi-Fi.
  3. Устройство начнет поиск беспроводных сетей. Your device will begin scanning for wireless networks.
  4. Как только ваша сеть отобразится в списке, выберите ее и щелкните Connect (Подключить). Once your network appears in this list, select it and click Connect.

Для беспроводного подключения к сети устройства, к которому не подключен монитор, сделайте следующее: If you haven’t connected a display and would like to connect via Wi-Fi, you’ll need to:

  1. Перейдите к панели мониторинга Windows 10 IoT Базовая и щелкните My Devices (Мои устройства). Go to the IoT Dashboard and click on My Devices.
  2. Найдите в списке свою ненастроенную плату. Find your unconfigured board from the list. Ее имя будет начинаться с «AJ_», например AJ_58EA6C68. Its name will begin with «AJ_». (e.g. AJ_58EA6C68). Если плата не отобразится в списке через несколько минут, перезагрузите ее. If you don’t see your board appear after a few minutes, try rebooting your board.
  3. Щелкните Configure Device (Настроить устройство) и введите учетные данные для своей сети. Click on Configure Device and enter your network credentials. После этого плата должна подключиться к сети. This will connect your board to the network.
Читайте также:  Виртуальная машина windows общая папка

Модуль Wi-Fi нужно включить на компьютере для поиска других сетей. Wifi on your computer will need to be turned on in order to find other networks.

Подключение к порталу устройств Windows Connect to Windows Device Portal

Используйте портал устройств Windows для подключения устройства через веб-браузер. Use the Windows Device Portal to connect your device through a web browser. На портале устройств доступны полезные функции настройки устройств и управления ими. The device portal makes valuable configuration and device management capabilities available.

Как работает Windows 10 на Raspberry Pi 4 и Pi 3

Разработчики наконец установили оптимизированную для ARM версию Windows 10 на Raspberry Pi 4 после того, как некоторым людям удалось запустить ее на Raspberry Pi 3 в первой половине 2019 года.

Raspberry Pi 4 и Pi 3 официально поддерживают версию Windows 10 для IoT Core, которая не совпадает с версией Windows 10, которая работает на настольном компьютере, но является упрощенной версией для маломощных компьютерных плат.

Например, Windows 10 IoT Core не позволяет запускать традиционные приложения Win32 или даже загружаться на рабочий стол. IoT позволяет вам запускать одновременно одно приложение UWP, и реальная цель ОС на Pi – запускать небольшие приложения, предназначенные для миниатюрных компьютерных плат.

К счастью, есть новое руководство, чтобы заставить Windows 10 на ARM работать на Pi 3 B + и Pi 4B, используя неподдерживаемую техническую предварительную сборку. В отличие от IoT, Windows 10 on ARM представляет собой ARM-ориентированную версию ОС, которая поставляется с традиционным десктопом и поддержкой приложений Win32 посредством эмуляции.

Разработчику Marcin удалось установить Windows 10 on ARM на Raspberry Pi 4 Model B, и он также опубликовал подробное руководство.

Как установить Windows 10 на Raspberry Pi 4

– Загрузите прошивку UEFI отсюда и распакуйте ее на карту MicroSD в формате FAT32.
– Загрузите сборку Windows 10 ARM64 отсюда . Только сборка 17134 была протестирована, но любая более новая сборка, которая проходит OOBE, также должна быть совместимой.
– Загрузите ISO-компилятор отсюда . В соответствии с разработкой, это создаст файл ISO, но вам все равно понадобится файл «install.wim» из «sources».
– Загрузите «Windows на Raspberry» отсюда . Оно установит Build 17134 или новее на USB-накопитель, но необходимо выбрать разметку GPT.

После загрузки этих файлов вы должны запустить командную строку и выполнить действия, описанные здесь .

Стоит отметить, что некоторые функции Raspberry Pi 4 могут не работать с Windows 10 на ARM. Например, вы можете использовать только USB-порт Type-C для зарядки и OTG. Windows 10 on ARM также ограничивает использование ОЗУ только в 1 ГБ, а драйвер контроллера Broadcom auxspi не работает.

Разработчики также портируют Windows 10 on ARM на телефоны Android, такие как Galaxy S8, OnePlus 6 и Xiaomi Mi Mix.

Не IoT, а малина! Строим IoT-проект на Raspberry Pi с Windows 10 и DeviceHive

Наверное каждый разработчик на определенном этапе задумывался о собственном IoT-проекте. Internet of Things сейчас поистине вездесущ и многим из нас хочется попробовать свои силы. Но не все знают, с чего начать и за что браться в первую очередь. Сегодня давайте посмотрим, как легко и непринужденно запустить свой собственный IoT-проект под Raspberry Pi 2, используя Windows 10 IoT Core и DeviceHive.

Деплоим Windows 10 приложения на Raspberry Pi 2

Для начала давайте установим Windows 10 IoT Core на Raspberry Pi. Для этого нам потребуется Windows 10 IoT Core Dashboard, который можно взять вот здесь. Там же можно при желании скачать отдельно ISO-образ, но особого смысла в этом нет — инструмент сделает это за вас.

Затем мы загружаем образ на misroSD-флешку.

Подключаем флешку к Raspberry и включаем. Первую загрузку ОС придется подождать, мгновенной она, конечно, не будет. Когда устройство «оживет» — подключаем Raspberry к локальной сети по Ethernet. Снова открываем Windows 10 IoT Core Dashboard и видим в списке «Мои устройства» заветную строчку. К слову, можно обойтись и без проводного подключения – список WiFi-донглов, поддерживаемых Windows 10 IoT Core, находится тут.

Далее нам понадобится Visual Studio 2015. Если она у вас все еще не установлена (хотя вы бы вряд ли читали эту статью в таком случае), можно скачать Community Edition.

Создаем новый или же открываем существующий Windows Universal проект. Кстати, если в проекте не нужен UI, можно создать Headless Application, выбрав тип проекта Windows IoT Core Background Application.

Выбираем деплой на Remote Machine.

Вводим адрес Raspberry. Посмотреть его можно на стартовом экране Win10 IoT Core или в Windows 10 IoT Core Dashboard.

Читайте также:  Iccup для mac os

Собственно, Internet of Things

Раз уж у нас статья о embedded — «моргать светодиодами» придется в любом случае. Хорошо, что мы имеем дело с DeviceHive, у которого заготовлены инструменты на все случаи жизни и все платформы. Поэтому светодиод будет виртуальный и тоже на .NET.

Клонируем master-ветку DeviceHive.NET репозитория с GitHub. На момент написания статьи рабочие примеры для Win10 IoT были именно там.

Открываем solution DeviceHive.Device и в файле Program.cs проекта VirtualLed настраиваем доступ к песочнице DeviceHive.

Если вы интересуетесь IoT, но по какой-то немыслимой причине еще не обзавелись DeviceHive Playground – это можно сделать здесь.

А управлять нашим «светодиодом» будет… Нет, пока не Raspberry, а клиент виртуального светодиода. Пример находится в проекте VirtualLedClient солюшена DeviceHive.Client. Его тоже нужно настроить в файле Program.cs:

Самое интересное

Наше приложение на Raspberry Pi будет не просто кнопочкой включения/выключения светодиода, а практически полноценной админкой всех IoT-устройств нашей DeviceHive-сети. При желании, конечно, можно упростить его до той самой «кнопочки» или наоборот расширить, например, до клиента, управляющего роботом телеприсутствия.

Готовое приложение находится в том же репозитории, в solution DeviceHive.WindowsManager.Universal. Не будем останавливаться на нюансах гайдлайнов Win10 – корни приложения растут еще из Win8. Не будет тут и MVVM – все и так знают, как его применять. Давайте сосредоточимся на главном: нам нужна консоль мониторинга и управления устройствами, подключенными к DeviceHive, под Windows 10 на Raspberry Pi2.

Для DeviceHive реализовано три клиентских библиотеки:

  • DeviceHive.Client – для «большого» .NET 4.5 и выше. Использует WebSocket4Net.
  • DeviceHive.Client.Portable – для Windows 8.1 и Windows Phone 8.1. Использует нативные WebSockets.
  • DeviceHive.Client.Universal – для всех редакций Windows 10, в том числе для Win10 IoT Core. Именно она используется в нашем приложении.

Наследуем ClientService от DeviceHiveClient и инициализируем его сеттингами:

А также указываем не использовать LongPolling, а только WebSocket, дабы не упираться в лимит одновременных HTTP-запросов:

Загружаем список девайсов и группируем их по сетям в MainPage:

А вот и наш виртуальный светодиод:

Переходим на DevicePage, подгружаем информацию о нем:

Переключаемся на вкладку с уведомлениями. Уведомления отправляются от управляемого устройства к управляющему устройству. В нашем случае – от VirtualLedClient к VirtualLed.
Инициализируем автоподгружающийся список с «бесконечным» скроллом:

Если не определена конечная дата фильтрации списка нотификаций, подписываемся на новые уведомления, которые будут приходить через вебсокет:

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

Если поменять настройки фильтрации, то автоподгружающийся список заново инициализируется с новым фильтром.

Теперь пришла очередь вкладки команд. Команды похожи на нотификации, но направлены от управляющего устройства к управляемому, а также могут иметь статус и результат выполнения.

Аналогично подписываемся на новые команды:

Поскольку мы делаем инструмент не только для мониторинга, но и для управления устройствами в DeviceHive сети, нужно реализовать возможность отправки команд:

При отправке команды мы подписались на ее обновление методом CommandResultCallback. Обрабатываем результат выполнения команды:

Чтобы не копировать команды вручную, нужно предусмотреть клонирование команд. Выделяем, клонируем, если нужно – редактируем, отправляем.

Задача выполнена! Как видите, Raspberry Pi 2 c Windows 10 IoT Core и DeviceHive – отличное решение для практически любой задачи в контексте Internet of Things. Прикрутите пару кнопок, dashboard и подключите Raspberry Pi к телевизору в гостиной – мониторинг и управление умным домом готово. Купили лишних Raspberry? Не вопрос, библиотека DeviceHive.Client умеет работать не только в качестве управляющего клиента, но и в качестве управляемого девайса – реализуем Headless Application, подключаем датчики/реле и устанавливаем Raspberry Pi по дому. Ограничивает вас лишь ваша фантазия.

Заключение

Появление Windows 10 IoT Core – это именно то, чего ждали embedded-разработчики. Когда ресурсов даже самого мощного микроконтроллера на .NET Micro Framework (для которого, кстати, тоже есть реализация DeviceHive) не хватает, а ставить полноценный компьютер на Windows – все равно, что стрелять из пушки по воробьям, то Windows 10 IoT Core – настоящее спасение. И пусть пока есть нюансы с аппаратным ускорением графики и недостатком драйверов для некоторых USB-устройств – это всё простительно. Ведь еще недавно мы только мечтали, чтобы Windows-приложения, работающие на настольных ПК и планшетах запускались не только на телефонах, но и на микрокомпьютерах. А теперь – это реальность, добро пожаловать в «сегодня».

Об авторе

Антон Седышев — Senior .NET-разработчик «DataArt »

В IT работает с далекого 2003, к команде DataArt присоединился в 2012. Ранее занимался разработкой веб- и мобильных проектов, автоматизицией логистических процессов на складах крупной международной компании. Сейчас выступает в роли ведущего .NET-разработчика и идеолога Microsoft-сообщества DataArt. Занимается разработкой приложений на Windows Phone и Windows 10, сервисом DeviceHive и embedded-технологиями вообще. В свободное время работает над собственным OpenSource embedded-проектом по интеграции .NET Micro Framework устройства в автомобили BMW.

Оцените статью