In 16 stappen Windows 10 op je Raspberry Pi
Sinds kort kun je op je href="https://computertotaal.nl/raspberry-pi/">Raspberry Pi</a> ook Windows installeren, aangezien Microsoft zijn nieuwste besturingssysteem geschikt heeft gemaakt voor meerdere soorten apparaten. In dit artikel leggen we uit hoe je Windows 10 installeert op je Raspberry Pi 2 en wat de mogelijkheden zijn.
Toen de Raspberry Pi Foundation in het begin van dit jaar onverwacht zijn nieuwe Raspberry Pi 2 aankondigde, kwam Microsoft met een al even verrassende aankondiging: het minicomputertje zou ook Windows 10 ondersteunen. Uiteraard niet de pc-versie van Windows 10, want die is te zwaar voor het kleine computertje en is geschreven voor een andere processorarchitectuur. Maar wel Windows 10 IoT Core, een speciale uitgeklede Windows-versie voor Internet of Things-toepassingen. Het is onderdeel van Microsofts visie om van Windows 10 een 'universeel besturingssysteem' te maken dat op allerlei apparaten draait. Lees ook: Aan de slag met de Raspberry Pi 3.
Benodigdheden
Wat heb je nodig om Windows 10 op je Raspberry Pi 2 uit te proberen? Allereerst heb je Windows 10 op je computer nodig. Heb je nog Windows 7 of 8, upgrade die dan (voorlopig nog gratis) naar Microsofts nieuwste besturingssysteem. Je hebt ook Visual Studio Community 2015 nodig, de gratis ontwikkelomgeving van Microsoft. Bovendien heb je een microSD-kaart van minimaal 8 GB nodig, waarop je een image van Windows 10 IoT Core schrijft. En tot slot natuurlijk een IoT-apparaat: naast de Raspberry Pi 2 wordt ook de MinnowBoard Max ondersteund.
Wat kun je met Windows 10 IoT Core?
Microsoft heeft op de website van Windows 10 IoT Core heel wat voorbeeldcode staan van software die je op het minibesturingssysteem kunt draaien. Ook is er een hele community ontstaan van ontwikkelaars die hun eigen creaties tonen. Naast pure softwaretoepassingen zijn er ook heel wat mogelijkheden met het uitlezen van sensoren en het aansturen van motoren. Als je wat op de website rondsurft, zie je onmiddellijk wat de mogelijkheden zijn: een weerstation, een robot op wielen die je met een afstandsbediening bestuurt, een domoticasysteem, een automatisch tuinbesproeiingssysteem en stembesturing voor je huis.
Visual Studio 2015
We gaan ervan uit dat je Windows 10 op je computer hebt staan. Verifieer of je minstens de publieke release hebt draaien. Als je winver in het startmenu typt en op Enter drukt, moet het infovenster minstens build 10240 vermelden. Is dat in orde, installeer dan Visual Studio Community 2015. Kies als installatietype Custom, vink Universal Windows App Development Tools / Tools and Windows SDK aan en klik op Install. De installatie duurt overigens wel een tijdje, want er worden meerdere gigabytes gedownload en geïnstalleerd.
Visual Studio starten
Start na de installatie Visual Studio 2015. De eerste keer vraagt het programma of je je wilt registreren, maar dat hoeft niet. Laat Development Settings op General staan, kies een kleurenschema en druk op Start Visual Studio. Dat kan de eerste keer enkele minuten duren omdat alle instellingen worden voorbereid. Ga na of in het menu Help / About Microsoft Visual Studio minstens versie 14.0.23107.0 D14Rel staat bij Visual Studio en minstens versie 14.0.23121.00 D14OOB bij Visual Studio Tools for Universal Windows Apps.
Ontwikkelaarsmodus
Open nu in Visual Studio het menu Tools / Extensions and Updates / Online. Zoek in de lijst Visual Studio Gallery naar Windows IoT Core Project Templates en klik op Download en daarna op Install. Sluit Visual Studio af. Ga daarna in de instellingen van Windows naar Bijwerken en beveiliging en open het tabblad Voor ontwikkelaars. Kies daar Modus voor ontwikkelaars. Bevestig met Ja dat je de beveiligingsrisico's begrijpt.
IoT Core downloaden
Nu onze computer klaar is, is het tijd om onze Raspberry Pi 2 te prepareren. Download daarvoor eerst het iso-bestand van Windows 10 IoT Core voor de Raspberry Pi 2. Open het iso-bestand, zodat het zichzelf als een virtuele schijf aankoppelt. Open de schijf en dubbelklik op het bestand Windows_10_IoT_Core_RPi2.msi om het te installeren. Na de installatie vind je een bestand flash.ffu in de directory C:\Program Files (x86)\Microsoft IoT\FFU\RaspberryPi2. Je kunt nu de virtuele schijf van het iso-bestand 'uitwerpen'.
Kaart beschrijven
Steek een microSD-kaart (eventueel met adapter) in je kaartlezer en start het programma WindowsIoTImageHelper op (zoek in het startmenu op WindowsIoT). Selecteer bovenaan in het programma de microSD-kaart die je wilt beschrijven (controleer of je de juiste schijfletter hebt!) en blader onderaan naar de locatie van het ffu-bestand uit de vorige stap. Klik tot slot op Flash. Wanneer het image volledig naar je microSD-kaart is geschreven, dan klik je op het icoontje Hardware veilig verwijderen en media uitwerpen rechtsonder in het systeemvak en selecteer je de kaartlezer. Haal pas daarna de microSD-kaart uit je kaartlezer.
Windows opstarten
Steek de microSD-kaart met Windows 10 IoT Core in het kaartslot van de Raspberry Pi 2. Verbind het computertje via een ethernetkabel met hetzelfde lokale netwerk als je computer. Sluit een toetsenbord, muis en HDMI-monitor aan en steek daarna de voedingskabel in je Pi en in het stopcontact. Windows 10 IoT Core start nu op. Na enkele minuten krijg je op je scherm een standaardapp te zien die wat informatie over de netwerkverbinding van je Raspberry Pi 2 en aangesloten usb-apparaten toont.
Blinkende led
Microsoft biedt op zijn website heel wat voorbeeldcode aan voor apps die je voor Windows 10 IoT Core kunt schrijven. Een interessante voorbeeldapp is Blinky Sample, die een ledje laat knipperen. Om de led op je Raspberry Pi 2 aan te sluiten, heb je een breadboard, twee m/f-jumperwires en een weerstand van 220 ohm nodig. Volg de instructies van de voorbeeldapp om het geheel op de correcte manier op de GPIO-pinnen van je Raspberry Pi 2 aan te sluiten.
Voorbeeldapp openen
Download de broncode van alle voorbeeldapps van Microsoft en pak het zip-bestand uit. Ga in de verkenner naar de map samples-develop\Blinky\CS en open het bestand Blinky.csproj. Visual Studio wordt nu geopend en toont je rechts alle onderdelen van het project. Dubbelklik op een bestand om de inhoud ervan te bekijken. De xaml-bestanden bevatten de xml-code die de interface beschrijft, terwijl de xaml.cs-bestanden de C#-code bevatten die het gedrag van de app definieert.
App op de Pi 2 starten
Ga na of in het uitklapmenu bovenaan in de toolbar als architectuur ARM staat. Klik daarnaast op Device en vink in het uitklapmenu dat verschijnt Remote Machine aan. Normaal staat je Pi (onder de naam minwinpc) onder Auto Detected. Indien dit niet het geval is, vul dan onder Manual Configuration bij Address het IP-adres van je Pi 2 in, kies None voor Authentication Mode en klik op Select. Druk dan op F5, waarna Visual Studio de Blinky app naar je Pi 2 uploadt en opstart. Het ledje zal nu samen met de simulatie op het scherm van je Pi knipperen. Druk in Visual Studio op Shift-F5 om de app te stoppen.
Inloggen met PuTTY
Net zoals je op Raspbian met het programma PuTTY via het netwerk kunt inloggen op je Pi, is dat ook mogelijk op Windows 10 IoT Core. Start dus PuTTY, geef het IP-adres van je Pi in en klik op Open. Na een beveiligingswaarschuwing waarbij je op Yes klikt, krijg je de vraag login as:. Vul hier als gebruikersnaam administrator in, druk op Enter en geef dan als wachtwoord p@ssw0rd. Na een druk op de Enter-toets krijg je de vertrouwde opdrachtprompt C:\> te zien, exact dezelfde als je op je pc met het programma Opdrachtprompt ziet.
Wachtwoord veranderen
Het eerste wat je nu zou moeten doen, is je wachtwoord veranderen. Iedereen kent immers het standaardwachtwoord van Windows 10 IoT Core. Typ daarvoor in PuTTY de opdracht net user administrator nieuwwachtwoord in, waarbij je uiteraard je wachtwoord invult in plaats van nieuwwachtwoord. Voor de veiligheid is het ook beter om niet altijd als administrator in te loggen. Maak daarom een gewone gebruiker aan zonder administratorrechten. Dat kan met de opdracht net user gebruikersnaam wachtwoord /add, waarbij je uiteraard een geschikte gebruikersnaam en wachtwoord kiest.
Procesbeheer
Met de opdracht tlist krijg je een lijst van processen die momenteel draaien. Als de lijst langer is dan je PuTTY-venster, voer dan tlist|more uit. Met de spatiebalk scrol je dan scherm voor scherm door de lijst. De lijst toont naast het process-ID de naam van het programma. Met tlist /t krijg je een boomstructuur te zien: een proces dat door een ander proces is opgestart, springt in de lijst in. En met tlist /c krijg je de volledige opdrachtregel te zien waarmee het proces is opgestart. Wil je een proces beëindigen, typ dan kill PID in, waarbij PID het proces-ID is.
Opstartprogramma's
Het programma IoTStartup beheert opstartprogramma's op je Windows 10 IoT Core-apparaat. Met IoTStartup list krijg je een lijst van alle geïnstalleerde apps. Staat er bij een app Headed, dan betekent het dat die app iets op het scherm toont. Een app met Headless draait op de achtergrond zonder interface. Met IoTStartup startup krijg je te zien welke van die apps automatisch opgestart worden. Je kunt ook de opstartprogramma's vervangen: zo zorg je met IoTStartup add Blinky ervoor dat niet de standaardapp wordt opgestart, maar de app Blinky waar we vanaf stap 9 mee aan de gang zijn gegaan.
Windows-services beheren
Windows 10 IoT Core start net zoals de desktopversie van Windows allerlei services op de achtergrond. Met de opdracht net start krijg je een lijst te zien van alle services die momenteel draaien. Met net stop servicenaam stop je een service en met net start servicenaam start je die opnieuw. Je Pi uitschakelen gaat overigens met shutdown /s /t 0 en rebooten met shutdown /r /t 0. Of als je een muis en scherm op je Pi hebt aangesloten, klik je bovenaan rechts op het powericoontje.
Bestanden delen
Windows 10 IoT Core start standaard een server voor Windows-bestandsdeling. De hele C-schijf van je Raspberry Pi 2 wordt daardoor gedeeld. Ga in je verkenner naar je netwerk en vul als adres \\IPADRES\c$ in. Geef dan je gebruikersnaam en wachtwoord voor Windows 10 IoT Core in. Je krijgt nu toegang tot alle bestanden op je Pi 2. Wil je bestandsdeling niet automatisch laten opstarten, typ dan de opdracht reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\lanmanserver /v Start /t REG_DWORD /d 0x3 /f in. Wil je terug naar het standaardgedrag, voer dan dezelfde opdracht in, maar dan met 0x2 in plaats van 0x3.