Windows 10 IoT on Raspberry Pi with Visual Studio and C# Universal Apps
With Windows 10, Microsoft continues it’s edition of Windows that sheds all of its Win32/16 baggage from 1985 on. In fact, on November 20th of this year was the 30th birthday of the original Windows. Wayne Williams wrote an interesting piece about Windows’ beginnings here.
We first saw a glimpse of what Windows IoT would be with WindowsRT. I still have one of the first Surface tablets that ran WindowsRT, and the big difference was that while it was Windows, it didn’t have anything that required a Win32 API – or at least the ones that couldn’t be recompiled for ARM processors. Windows IoT continues with that and only includes newer APIs that don’t have the historical baggage tying it to the Intel x86 family of processor architectures.
I decided to give Windows IoT a try. I didn’t set out with this explicit goal in mind, but I had been teaching my son and oldest daughter to program, and they also enjoyed Snap Circuits electronics kits. My guess is that while I entered computer programming and the Internet age in 1995 at the right time, their generation will be at the front of the robotics age. Not interesting robots, but the Internet of Things robots – small computers that have sensors and motors and do something interesting to enable a very interesting and useful business system for one of our clients at Clear Measure. This will combine programming skills, physics, math, and probably some chemistry. Perhaps a mix of electrical engineer, mechanical engineer, and software engineer will be in demand. Either way, it’s also fun to do these things with my kids. So I researched a programmable mini-computer that could connect to things and make things do things, and a stumbled across what I’d been researching for work as well – Windows IoT Core.
On WindowsOnDevices.com, we see several supported choices for the Windows IoT edition. I chose the Raspberry Pi because I’d researched it before, and it’s probably the most popular – at least it appears that way. I also just read about the Raspberry Pi Zero, that costs $5.00 and is super small.
I ordered this AdaFruit Windows IoT Raspberry Pi kit from Amazon, and it came in today. After bribing my daughter to do some chores, we set out together to put it together and see what it could do. After the obligatory Blinky sample (blinking LED), we set out to do something more interesting, and we found the BrightOrNot sample. This combined the photocell sensor with a microcontroller, two potentiometers (voltage dials), and the Windows speed synthesizer, which I was surprised was included in Windows IoT Core (an API that can make the computer talk!). We put it together, wrote the necessary C# code, deployed from Visual Studio to the Raspberry Pi over the Wi-Fi network and ran it. Worked like a charm. I’ve recorded a video showing it in action.