Archive for the ‘Windows 10 IoT’ Category

Aplikácie pre Raspberry Pi2 s Windows 10

1. septembra 2015

Pripomeňme, že doska (v Alze stojí 59 €, v zahraničných zásielkových obchodoch ju zoženiete lacnejšie) využíva štvorjadrový procesor ARM Cortex-A7 taktovaný na 800MHz a 1GB SDRAM. Umožňuje aj pripojenie klasického externého monitora cez rozhranie HDMI, alebo displeja ako súčiastky cez 15-pinový Display Serial Interface (DSI). Externý displej môžete využiť buď ako súčasť scenára nasadenia dosky, napríklad v informačnom paneli, alebo len v etape ladenia aplikácie na výpis obsahu premenných a podobne. Na doske je aj ďalší 15-pinový MIPI Camera Serial Interface (CSI-2) konektor na pripojenie kamery. Napájanie je štandardne riešené z micro USB portu (5V, 2A). K dispozícii sú 4 porty USB 2.0, Ethernet 10/100 a audio 3.5mm jack konektor.

Pri “elektrickom” zakomponovaní dosky do zariadenia, ktoré bude ovládať využijete 40-pinový systémový konektor. Obsahuje 27 vstupno – výstupných portov, pričom niektoré z nich sa dajú prekonfigurovať tak aby fungovali ako špeciálne porty (SPI, I2C, RS232…).

Ukážeme dva logicky na seba nadväzujúce príklady Hello World a Blinky. “Hello world” aplikácia bude zobrazovať text a grafiku cez monitor pripojený HDMI káblom. Názov druhej aplikácie “Blinky” je notoricky známy v komunite vývojárov aplikácií pre mikrokontroléry. Cieľom je rozblikať LED diódu pripojenú k GPIO portu. Po úspešnom spustení takejto aplikácie na doske bez displeja máte istotu, že všetko je správne prepojené a nakonfigurované a môžete sa pustiť do vývoja reálnych aplikácií. Pre jednoduchosť, druhý projekt popísaný v tomto článku vznikne doplnením aplikácie HelloWorld o obsluhu časovača a GPIO portu. Okrem blikania LED diódou bude zobrazovať na obrazovke aj synchrónne blikajúci kruh

Hello World

Na vývoj potrebujete fyzický, alebo virtuálny počítač s Windows 10 a vývojovým prostredím Visual Studio Vytvorte projekt typu Blank App v zložke Windows Universal a nazvite ho Hello World. Využijeme programovací jazyk C#.

Keďže neskôr v rámci UWP aplikácie pre dosku Raspberry Pi 2 s Windows 10, budeme využívať funkcionalitu špecifickú pre IoT Core edíciu tohto univerzálneho operačného systému, najskôr musíme do projektu pridať referenciu na Windows IoT SDK. Otvorte dialógové okno Reference Manager (v okne Soluton Explorer v kontextovom menu Referencess, položka Add) a označte položku Windows IoT Extension SDK

Používateľské rozhranie v súbore MainPage.xaml bude obsahovať len dva prvky – TextBox a tlačidlo

<Grid Background=”{ThemeResource ApplicationPageBackgroundThemeBrush}”>


<StackPanel HorizontalAlignment=”Center” VerticalAlignment=”Center”>


<TextBox x:Name=”HelloMessage” Text=”Hello, World!” Margin=”10″ IsReadOnly=”True”/>


<Button x:Name=”ClickMe” Content=”Klikni sem!”
Margin=”10″ HorizontalAlignment=”Center”/>


</StackPanel>

</Grid>

Obsluha zatlačenia tlačidla v súbore MainPage.xaml.cs je taktiež triviálna

private
void ClickMe_Click(object sender, RoutedEventArgs e)

{


this.HelloMessage.Text = “Hello, Windows IoT Core!”;

}

Keďže je to univerzálna aplikácia, ktorá pobeží nielen na Raspberry Pi2, ale na akomkoľvek Windows 10 zariadení, a zatiaľ sme do nej nepridali žiadnu funkcionalitu špecifickú len pre IoT Core môžete aplikáciu najskôr spustiť na svojom vývojárskom počítači. Všimnite si, že v poli Solution Platform je nastavená platforma x86, takže nemusíte nič meniť.

V druhej fáze pripojíme vývojovú dosku Raspberry Pi2 cez sieť k počítaču, na ktorom aplikáciu vyvýjame a spustíme aplikáciu priamo na nej. Pripojte k doske ethernetový kábel, monitor, klávesnicu a myš. Po nábehu operačného systému je doska pripravená na zavedenie aplikácie. Doska musí byť pripojená v rovnakej sieti ako vývojársky počítač a musí mať unikátny názov. Názov môžete zmeniť tak, že sa k doske pripojíte cez Power Shell a nový názov nastavíte príkazom

setcomputername <nový-názov>

Najskôr je potrebné v poli Solution Platform nastaviť ako hardvérovú platformu ARM a vo vedľajšom poli zmeniť voľbu Local Machine na Remote Machine. V dialógu Remote Connections vyberte pripojenú vývojovú dosku. Klávesom F5, alebo z menu Debug | Start Debugging aplikáciu spustíte.

Ak sa vám zobrazí oznam Unable to connect to the Microsoft Visual Studio Remote Debugger , je potrebné spustiť na doske externý debugger msvsmon.exe. Jeho spúšťanie nastavíte cez PowerShell príkazom

schtasks /run /tn StartMsvsmon.

Vo finále je potrebné nastaviť, aby sa vaša aplikácia spustila automaticky po nabootovaní Windows 10 IoT Core na Raspberry Pi2, je potrebné cez PowerShell zadať príkaz

iotstartup add headed HelloWorld.

Blinky

Námetom aplikácie je rozblikať LED diódu pripojenú k niektorému GPIO portu, v tomto prípade konkrétne ku GPIO5, ktorý je na pine konektora 29. LED diódu je potrebné zapojiť cez obmedzovací odpor, tak ako je naznačené na schéme. Môžete využiť univerzálnu prepojovaciu dosku, alebo jednoduchšie pripojiť LED diódu s odporom priamo na 40 pinový konektor pomocou dvoch dutiniek.


Pripojenie LED diódy k vhodnému GPIO pinu. Hodnotu odporu odporúčame 220 ohm

Rasbperry6 Príklad zapojenia na univerzálnej prepojovacej doske

Keďže je to úvodný príklad, bola by škoda nevyužiť možností výpisu ladiacich informácií, preto aplikáciu vytvoríme pre konfiguráciu s monitorom pripojeným cez HDMI. Pre jednoduchosť upravíme už vytvorený projekt Hello World, v ktorom už máte pridanú referenciu na Windows IoT Extension SDK. Používateľské rozhranie aplikácie v súbore MainPage.xaml bude obsahovať virtuálnu LED, údaj o perióde časovača a pole pre prípadný oznam.

<StackPanel HorizontalAlignment=”Center” VerticalAlignment=”Center”>

<Ellipse x:Name=”LED” Fill=”LightGray” Stroke=”White”

Width=”100″ Height=”100″ Margin=”10″/>

<TextBlock x:Name=”DelayText” Text=”500ms” Margin=”10″

TextAlignment=”Center” FontSize=”26.667″ />

<TextBlock x:Name=”GpioStatus” Text=”Inicializujem GPIO…”

Margin=”10,50,10,10″ TextAlignment=”Center” FontSize=”26.667″ />

</StackPanel>

 

Najskôr ukážeme príklad procedúry, ktorá nastaví výstup GPIO 5 na hodnotu logická 1. V príklade využijeme sofistikovanejší kód v obsluhe tiku časovača, ktorý bude diódu rozsvecovať a zhášať.

using Windows.Devices.Gpio;

 

public void GPIO()

{

//implicitný GPIO controller

GpioController gpio = GpioController.GetDefault();

if (gpio == null) return; //GPIO nedostupné

 

//Otvorenie GPIO 5

using (GpioPin pin = gpio.OpenPin(5))

{

//Nastavenie HIGH value (logická 1) – ipmlicitná hodnota pre výstup

pin.Write(GpioPinValue.High);

 

//Mód pinu výstup

pin.SetDriveMode(GpioPinDriveMode.Output);

}

}

 

Kód v súbore MainPage.xaml.cs obsahuje definovanie parametrov a inicializáciu časovača s periódou 500 ms.

private const int LED_PIN = 5;

private GpioPin pin;

private GpioPinValue pinValue;

private DispatcherTimer timer;

private SolidColorBrush redBrush = new SolidColorBrush(Windows.UI.Colors.Red);

private SolidColorBrush grayBrush = new SolidColorBrush(Windows.UI.Colors.LightGray);

 

public MainPage()

{

InitializeComponent();

 

timer = new DispatcherTimer();

timer.Interval = TimeSpan.FromMilliseconds(500);

timer.Tick += Timer_Tick;

InitGPIO();

if (pin != null)

{

timer.Start();

}

}

 

Procedúra pre inicializáciu GPIO portu najskôr testuje, či zariadenie takýto typ portov má a následne nastaví GPIO pin 5 do výstupného módu

private void InitGPIO()

{

var gpio = GpioController.GetDefault();

if (gpio == null)

{

pin = null;

GpioStatus.Text = “Zariadenie nemá GPIO”;

return;

}

 

pin = gpio.OpenPin(LED_PIN);

pinValue = GpioPinValue.High;

pin.Write(pinValue);

pin.SetDriveMode(GpioPinDriveMode.Output);

GpioStatus.Text = “GPIO inicializované.”;

}

 

Napokon vytvorte procedúru, ktorá sa volá v každom tiku časovača a ktorá periodicky rozsvecuje a zháša LED diódu a zároveň mení farbu kruhu na obrazovke

private void Timer_Tick(object sender, object e)

{

if (pinValue == GpioPinValue.High)

{

pinValue = GpioPinValue.Low;

pin.Write(pinValue);

LED.Fill = redBrush;

}

else

{

pinValue = GpioPinValue.High;

pin.Write(pinValue);

LED.Fill = grayBrush;

}

}

Používateľské rozhranie aplikácie. Pridali sme prvok typu slider, pomocou ktorého môžeme meniť periódu blikania.

Ľuboslav Lacko

 

 

 

Aktualizovaný postup inštalácia Windows 10 IoT na dosku Raspberry Pi 2

27. augusta 2015

Image operačného systému pre podporovanú mikrokontrolérovú dosku vytvoríte pomocou nástroja Imaging and Configuration Designer (ICD). Budete potrebovať

  • · Dosku Raspberry Pi 2 (dostupný napríklad na alza.sk).
  • · Počítač s Windows 10. Musí to byť fyzický stroj, nie virtuálny, nakoľko potrebujete prístup k čítačke pamäťových kariet
  • · 5V micro USB zdroj schopný dodať prúd aspoň 1 A, napríklad z tabletu
  • · 8GB micro SD kartu triedy 10, alebo vyššiu.
  • · HDMI a Ethernet kábel
  • · Monitor, klávesnicu a myš – budete potrebovať na pokusy s doskou po nainštalovaní operačného systému

clip_image002

Konfigurácia na prenesenie Windows 10 IoT Core na SD kartu a následné spustenie

Z webovej stránky http://go.microsoft.com/fwlink/?LinkId=616847 si stiahnite ISO image Windows 10 IoT Core, ktorý potom prenesiete na SD kartu. Veľkosť súboru je 530 MB. Po stiahnutí kliknite v aplikácii Prieskumník na ISO súbor, čím sa namapuje ako virtuálna jednotka, na ktorej je inštalačný súbor Windows_10_IoT_Core_RPi2.msi. Spustite ho a v procese inštalácie sa súbor flash.ffu prekopíruje do adresára C:\Program Files (x86)\Microsoft IoT\FFU\RaspberryPi2. Po ukončení inštalácie sa spustí aplikácia Windows 10 IoT Core Watcher

clip_image004

Dialóg ukončenia inštalácie Windows 10 IoT Core do vývojárskeho počítača

Na počítači s operačným systémom Windows 10 so slotom na micro SD kartu, alebo s externou čítačkou pamäťových kariet spustite aplikáciu IoTCoreImageHelper.exe, ktorá prenesie operačný systém Windows 10 IoT na SD kartu. Aplikáciu najjednoduchšie nájdete, ak do okna pre vyhľadávanie na paneli úloh vľavo dole vedľa tlačidla s logom Windows zadáte frázu “WindowsIoT” a nájdete odkaz “Windows IoT ImageHelper”. Vyberte písmeno jednotky na ktoré je namapovaná čítačka mikro SD karty a zadajte adresár do ktorého bol prekopírovaný súbor flash.ffu.

clip_image006

Aplikácia na prenesenie obrazu operačného systému na micro SD kartu.

Aplikácia Windows IoT ImageHelper vlastne len pripraví parametre pre príkaz dism.exe.

Po ukončení operácie aplikujte postup pre bezpečné odobranie externej pamäťovej jednotky. Týmto postupom máte vytvorený obraz operačného systému. Vložte micro SD kartu do slotu na spodnej strane dosky Raspberry PI2, , pripojte klávesnicu, myš, HDMI monitor a ethernetový kábel. Pripojte napájanie cez microe USB port. A ste vo finále. Môžete sledovať nábeh Windows 10.

clip_image008

Úvodná obrazovka pri prvom spustení, zatiaľ bez aplikácie

Windows 10 na RASPBERY PI 2 – vytvorenie image os a prvé spustenie

3. júna 2015

V predchádzajúcom príspevku je zoznam vecí, ktoré budete potrebovať na vytvorenie image OS na micro SD karte. Pre stiahnutie image sa prihláste sa na https://connect.microsoft.com/windowsembeddediot/SelfNomination.aspx?ProgramID=8558. Musíte súhlasiť s licenčnými podmienkami, ktoré sú uvedené formou povinného dotazníka.

Následne v sekcii Downloads, ktorá sa sprístupní po odoslaní súhlasu s licenčnými podmienkami stiahnite obraz operačného systému Windows 10 IoT Core Insider Preview Image for Raspberry Pi 2. Veľkosť inštalačného balíčka je 485 MB. Zo archívu Windows_IoT_Core_RPI2_BUILD.zip vybaľte súbor flash.ffu.

Ďalšie dejstvo pokračuje na počítači s operačným systémom Windows 10 Preview so slotom na microSD kartu, alebo s externou čítačkou pamäťových kariet. Otvorte príkazové okno (command prompt) ako administrátor (Run as administrator v kontextovom menu)

a pomocou príkazu CD (change directory) sa prepnite do adresára do ktorého ste rozbalili súbor flash.ffu

Zistite písmeno diskovej jednotky na ktoré sa namapovala SD karta. Môžete tak urobiť napríklad postupnosťou príkazov cez okno Command prompt

  • diskpart
  • list disk
  • exit

V našom prípade sa jedná o Disk 5. Následne pomocou príkazu dism prekopírujte image operačného systému na SD kartu:

dism.exe /Apply-Image /ImageFile:flash.ffu /ApplyDrive:\\.\PhysicalDriveX /SkipPlatformCheck

kde PhysicalDriveX je číslo disku na ktorý je namapovaná SD karta. Napríklad pre disk 5

dism.exe /Apply-Image /ImageFile:flash.ffu /ApplyDrive:\\.\PhysicalDrive5 /SkipPlatformCheck

Po ukončení operácie aplikujte postup pre bezpečné odobranie externej pamäťovej jednotky. Týmto postupom máte vytvorený obraz operačného systému.

Prvé spustenie Windows 10 na Raspberry PI 2

Vložte micro SD kartu s pripraveným obrazom OS do slotu, pripojte klávesnicu, myš, HDMI monitor a ethernetový kábel. Pripojte napájanie cez microe USB port. A ste vo finále. Môžete sledovať nábeh Windows 10.

Windows 10 na RASPBERY PI 2 – príprava na inštaláciu

3. júna 2015

Námetom je nainštalovať a nakonfigurovať Windows 10 IoT Core, ktorá bola v dobe písania príspevku vo verzii Insider Preview na mikrokontrolérovú dosku Raspberry Pi 2. Pre prvotnú konfiguráciu budete potrebovať celkom slušnú výbavu

  • Dosku Raspberry Pi 2 (dostupná napríklad na alza.sk).
  • Počítač a Windows 10 Insider Preview. Musí to byť fyzický stroj, nie virtuálny, nakoľko potrebujete prístup k čítačke pamäťových kariet
  • 5V micro USB zdroj schopný dodať prúd aspoň 1 A, napríklad z tabletu
  • 8GB micro SD kartu triedy 10, alebo vyššiu.
  • HDMI a Ethernet kábel
  • Monitor, klávesnicu a myš – budete potrebovať na pokusy s doskou po nainštalovaní operačného systému

Vybavenie na konfiguráciu názorne vysvetľuje obrázok. (Yorkšíra v pozadí nepotrebujete J )

Prihláste sa na https://connect.microsoft.com/windowsembeddediot/SelfNomination.aspx?ProgramID=8558 a vyplňte povinný dotazník

Windows 10 IoT Core je minimalizovaná zostava Windows 10 určená pre zariadenia obmedzenými zdrojmi, ktorá však využíva spoločné jadro operačného systému. Zostava IoT Core môže fungovať na zariadeniach s minimálne 256 MB pamäte RAM v konfigurácii bez obrazovky (v orig. terminológii headless), alebo s 512 MB RAM s možnosťou zobrazenia používateľského rozhrania Windows (headed). Typ sa volí pri úvodnej konfigurácii operačného systému. Obidve konfigurácie vyžadujú minimálne 2GB úložného priestoru a procesor x86, alebo ARM SoC (System on Chip ) taktovaný minimálne na 400 MHz. “Headed” zariadenia majú displej, či už klasický, alebo dotykový. Predpokladá sa využitie predovšetkým v zariadeniach spotrebnej elektroniky, pre bankomaty, predajné kiosky, informačné tabule, prípadne rôzne priemyselné zariadenia. Táto edícia nie je zameraná na spotrebiteľské osobné počítače, či tablety, ale na špecializované zariadenia. Preto neumožňuje kompatibilitu s Win32 kódom. Vývoj a ladenie UWP (Universal Windows Platform) aplikácií vo vývojovom prostredí Visual Studio 2015 umožní zariadenie rýchlo nasadiť. Ocenia to predovšetkým konštruktéri prototypov, ale ah hobby vývojári, či študenti pri svojich projektoch. Vďaka spoločnému Windows 10 jadru je možné využiť skúsenosti s vývojom pre staršie verzie Windows.

Windows 10 na RASPBERY PI 2

3. júna 2015

IoT nie je len o teórii, ale hlavne o praxi, preto začínam nový seriál o možnostiach využitia RASPBERRY PI 2 s operačným systémom Windows 10. Počnúc vytvorením image operačného systému, jeho nakonfigurovaním, zavedením z SD karty do dosky, cez vývoj UWP UWP (Universal Windows Platform) aplikácií vo vývojovom prostredí Visual Studio 2015. Prvým predpokladom je zaobstarať si dosku. Môžete si ju objednať zo zahraničia, ale aj podobne ako ja kúpiť cez Alza.sk, alebo priamo v Bratislavskej predajni. https://www.alza.sk/raspberry-pi-2-d2307258.htm. Budete potrebovať ešte monitor s možnosťou pripojenia cez HDMI, klávesnicu a myš, najlepšie klasické s USB káblom