Om du har en Raspberry Pi är sannolikheten hög att du kör ett Linuxbaserat operativsystem. Men även Windows finns faktiskt för enkortsdatorer, och det är både gratis och olikt alla andra system.
Sedan den första enheten med namnet Raspberry Pi lanserades 2012 har konstruktionen uppdaterats några gånger och är nu uppe i version 3. Ubuntu, Fedora och de andra vanliga Linuxdistributionerna har versioner för ARM-arkitekturen och Raspberry Pi. Sedan förra året finns även Windows bland alternativen.
Redan på utvecklarkonferensen Build våren 2014 presenterades Windows for Devices, en avskalad version av Windows 8 för Arduino och Intels Galileo. Vid 2015 års upplaga av samma utvecklarkonferens var det dags för Windows IoT Core, som fungerar på bland annat Raspberry Pi 2 och 3.
Windows 10 utgör basplåten för IoT Core, men där slutar likheterna. Det kan köras på typiska inbäddade enheter både med och utan bildskärm.
För enheter utan skärm är du hänvisad till kommandoprompten, medan den saknas på enheter med skärm. På de senare förväntas du skriva en egen Universal Windows-applikation för gränssnittet. För utvecklare är hela flödet väl integrerat i Visual Studio och förutom C# kan flera andra språk användas.
Och att installera IoT Core är inte svårare än med Linuxalternativen. Du laddar ned en skivavbildning och skriver över den på ett minneskort.
Windows IoT Core är gratis och främst riktad till hemanvändare. För mer professionella tillämpningar finns både Windows 10 IoT Enterprise och Windows 10 IoT Mobile Enterprise, som innehåller mer kraftfulla funktioner på framför allt säkerhetssidan.
Jämfört med Linuxdistributioner för Raspberry Pi är Windows IoT Core annorlunda på ett par punkter. Först och främst är det tänkt att köras utan skärm, medan Linuxdistributionerna ofta har en fönsterhanterare. Det enda sättet att interagera med systemet är via SSH eller det inkluderade webbgränssnittet.
Windows IoT har också stöd för GPIO-anslutningen på Raspberry Pi, vilket gör det möjligt att programmera extern hårdvara.
De med Visual Studio kan dessutom köra applikationer direkt på Raspberry Pi via Remote Debugging, på samma sätt som med webb- och mobilapplikationer.
Flera programmeringsspråk
När detta skrivs är språken som stöds C#, C++, Node, Javascript, Visual Basic och Python. Microsoft har också tagit med sitt Universal Windows-koncept till denna plattform. Poängen är att du ska kunna återanvända en stor del av affärslogiken mellan olika plattformar.
Men även om Microsoft pratar varmt om att utvecklare själva ska kunna välja det språk de trivs bäst med, så är det från Windows du förväntas utveckla. Det tycks finnas olika vägar runt detta, men för en smärtfri upplevelse är du hänvisad till PC och Visual Studio. Gratisversionen Visual Studio Community Edition stöds dock.
Förutom Raspberry Pi 2 och 3 stöds även de mindre kända Dragonboard 410c och Minnowboard Max. De specifika systemkraven för IoT Core är två gigabyte lagringsutrymme och en processor på 400 megahertz. För att köra visuella Universal Windows-applikationer krävs 512 megabyte internminne, 256 megabyte räcker för dem utan grafiskt gränssnitt.
En installation
För att installera Windows IoT Core behöver du alltså en Raspberry Pi eller annan kompatibel enhet, en dator med Windows 10 version 10.0.10240 eller senare, en minneskortläsare och ett minneskort på minst åtta gigabyte. Saknar IoT-enheten Wi-Fi behöver du också en nätverkskabel för att kunna konfigurera den.
Först av allt behöver administrationsverktyget IoT Dashboard installeras på din Windows-dator. Ladda ned senaste versionen från http://bit.ly/iot-dmz. Därefter går du till nästa steg på samma webbsida, där en skivavbild för Windows 10 IoT Core kan laddas ned. För dem som har Raspberry Pi 3 finns kanske ännu ingen officiell avbild utan istället en Insider preview.
Öppna skivavbilden och kör igång msi-filen som finns på den. När den har installerats kan du öppna nyss installerade IoT Dashboard och välja ”Set up a new devi ce”. Som ”Device type” väljer du Custom, sedan väljer du den uppackade avbilden (Flash.ffu). Den sistnämnda ska ligga i C:\ Program Files (x86)\Microsoft IoT\FFU\DeviceType.
Se till att du har valt rätt minneskort och att du inte har något du vill spara på det. När avbilden har skrivits över på minneskortet kan du ta ur det och stoppa det i din Raspberry Pi.
Konfigurera IoT Core
Första gången som IoT Core startar behöver det konfigureras. Har enheten Wi-Fi-gränssnitt kommer den att börja annonsera sig själv som ett trådlöst nätverk. Något du kan se under ”My devices” i IoT Dashboard. Saknas gränssnitt för trådlöst nätverk kan du ansluta enheten via vanlig nätverkskabel till din router, den visas då i samma lista. Notera att enheter som inte har konfigurerats har namn som inleds med ”AJ_”. Det kan ta några minuter för allt att starta och upptäckas av IoT Dashboard.
När det väl visas kan du konfigurera nätverksuppgifter genom att klicka på ”Configure device”.
När enheten har konfigurerats första gången kan den sedan ansluta till nätverket. Du kan då ändra dess inloggningsuppgifter. Gå tillbaka till ”My devices” och klicka på pennan bredvid enheten för att komma till inställningarna. Byt ut standardlösenordet (p@ssw0rd) mot ett eget.
För att se att allt fungerar kan du köra någon av exempelapplikationerna. För att köra dessa behöver du varken skriva kod eller kompilera något. Klicka bara på fliken ”Try some samples” och välj ett projekt. Sedan väljer du din enhet och kör igång applikationen. Nu genomförs installationen i bakgrunden och när den är klar kommer IoT-enheten att meddela IoT Dashboard. Du tas då automatiskt till ett webbgränssnitt där du kan kontrollera applikationen utan att behöva ansluta en HDMI-skärm.
Övervaka med IoT Core
Något som utmärker Windows IoT Core är webbgränssnittet för att administrera en enhet, Windows Device Portal. Detta är aktiverat från start och du kommer åt det från valfri enhet på samma nätverk. Du kan se verktyget som en slags aktivitetshanterare. Där kan du sköta konfiguration, installera, starta samt ta bort appar och diagnostisera problem med hjälp av realtidsdata.
Gränssnittet har en avskalad utformning med ett antal menyval, likt en router. Du kan visa alla processer och deras resursanvändning i form av processor och minne. Det går även att aktivera spårande av händelser och prestanda för att i efterhand gå igenom detta, vilket underlättar felsökning. Precis som Windows har en enhetshanterare kan du även visa enheter i Device Portal. Det är också härifrån du kopplar upp enheten på ett annat nätverk, om så önskas. Du kan spara flera olika nätverksprofiler.
Enterprise Authentication stöds för närvarande inte. Hela webbgränssnittet pratar med ett REST-API som ska vara skyddat med CSRF. Däremot används HTTP som standard. Du kan dock aktivera HTTPS, lämpligen byter du även nätverksport. Det som krävs är ett par justeringar av registret på enheten, se webbplatsen som nämns i slutet för mer information.
Utöver att ansluta via SSH kan du också administrera IoT Core direkt från Powershell på en annan enhet. Microsoft har ett exempel på hur du konfigurerar Powershell: http://bit.ly/ps-dmz.
Kompilera och kör
De applikationer som ska laddas upp till enheten behöver först kompileras i Visual Studio. Du kan dock även köra dem direkt från Visual Studio. Utvecklingsmiljön har också ett tillägg som gör det enkelt att skriva applikationer för IoT Core som pratar med Azure.
Windows 10 IoT Core kommer kanske inte att attrahera de redan frälsta Linuxmassorna. Däremot kan alternativet till tala Microsoft-utvecklare som vill komma igång med sakernas internet utan att lämna den välbekanta Visual Studio. För de senare är detta en riktigt välbyggd plattform. Det verkar som om Microsoft har lärt sig läxan från det till synes förlorade slaget om mobilerna, de vill haka på IoT-tåget i tid.
[TIPS]
Stöd för Noobs-minneskort
För dem som tycker att det låter krångligt att installera IoT Core den vanliga vägen finns ett alternativ. Noobs (New out of box software) är ett projekt för att göra installation av operativsystem så enkelt som möjligt, du gör det helt enkelt direkt på enheten. Du behöver bara lad da ned en zip-fil och packa upp innehållet på ett nyformaterat minneskort (eller köpa ett minneskort som redan förberetts med Noobs). Sedan ansluter du din Raspberry Pi till en HD MI-skärm och installerar operativsystemet.
www.raspberrypi.org/help/noobs-setup/