Learn how to run motors and servo's, build information radiators, communicate with Azure IoT, and even serve up web pages using Microsoft's smallest operating system: Windows IoT and a Raspberry Pi 3. We'll then put it all together to show how you can build a simple Remote Controlled Car entirely in C#.
9. Raspberry Pi 3* Raspberry Pi 2 MinnowBoard
MAX
DragonBoard 410c Intel Joule
$35 $35 $99 $75 $315
Broadcom BCM2837 Broadcom
BCM2836
Intel Atom (x86) Qualcomm Snap
Dragon 410
Intel Atom (x86)
900MHz Quad-Core
ARM Cortex A53
900MHz Quad-Core
ARM Cortex A7
1.91GHz Atom
E3845
900MHz Quad-Core
ARM Cortex A7
1.7 GHz Quad-Core
Atom
On-board WiFi** &
Bluetooth**
Firmware TPM On-board WiFi* &
Bluetooth & GPS
WiFi
IoT Core Boards
10. • System On Chip
• Operating System (Multitasking)
• USB (Mouse, Keyboard)
• HDMI / GPU
• Internet Connected
Arduino
• Microcontroller
• Single Program
• ~$2
Raspberry Pi
11. Linux vs Windows IoT
• Automatic Updates
• Identity Protection
• Trusted Platform
Module (TPM)*
• Native UEFI*
• BitLocker*
• Enterprise Data
Protection
• Azure IoT Hub
• Azure Iot Suite
• SignalR
• AllJoyn
• Http
• Visual Studio
• UWP
• Remote Desktop
• Language Support
• C#
• Python
• JavaScript
• Arduino C + Arduino
Libraries
• Learning Curve
Security Connectivity Ecosystem
*Only on MinnowBoard Max and Qualcomm DragonBoard
25. Part 2: How
• Stuff You Need
• Device Setup
• Dev Environment Setup
• Hello World
26. Things To Install
• Visual Studio (Any Edition)
• Universal Windows App Development Tools
• Windows IoT Core Project Templates
• https://visualstudiogallery.msdn.microsoft.com/55b35
7e1-a533-43ad-82a5-a88ac4b01dec
• Enable Developer Mode
32. AllJoyn
• P2P, Discoverable
• Open Source Standard
• Core component in Windows 10
• https://allseenalliance.org/
AllJoyn
Consumer
Discoverability
2-way Communication
AllJoyn
Producer
33. Web Browser
or Any App
HTTP
Web Server on Pi
• P2P Communication
• Headless
• Also available via Node
Background
App
36. Web Server Demo
• Headless Background Task
• Open Firewall
• Log in with Powershell
http://ms-iot.github.io/content/en-US/win10/samples/PowerShell.htm
• netsh advfirewall firewall add rule name=[Any name
to identify rule] dir=in action=allow protocol=TCP
localport=[Port number]
37. PWM
See Also: How to Fade an LED with PWM at http://blog.infernored.com or http://www.leerichardson.com
38. 1. Lightning Driver
2. Lightning SDK
3. Permissions
4. Code
<iot:Capability Name="lowLevelDevices" />
<DeviceCapability Name="109b86ad-f53d-4b76-
aa5f-821e2ddf2141"/>
if (LightningProvider.IsLightningEnabled) {
LowLevelDevicesController.DefaultProvider =
LightningProvider.GetAggregateProvider();
var pwmControllers =
await PwmController.GetControllersAsync(LightningPwmProvider.GetPwmProvider());
var pwmController = pwmControllers[1]; // use the on-device controller
pwmController.SetDesiredFrequency(50); // try to match 50Hz
_pin = pwmController.OpenPin(22);
_pin.SetActiveDutyCyclePercentage(.25);
_pin.Start();
}
39. Part 5: RC Car
• Prototyped
• 3D Printed Components
• Custom PCB Board
• Designed with Eagle -
http://www.cadsoftusa.com/
• Printed at OSH Park -
https://oshpark.com/
• Plans on Github
• http://www.github.com/lprichar/IotRcCar