IoT with Windows 10

Post on 30-Jul-2015

84 views 2 download

transcript

Tamir DresherSenior Software ArchitectJune 2015

Windows 10 IoT Core

About Me

• Software architect, consultant and instructor• Software Engineering Lecturer @ Ruppin Academic Center• Technology addict• .NET and Native Windows Programming

@tamir_dreshertamirdr@codevalue.nethttp://www.TamirDresher.com.

4

Windows 10

Multiple device families

Commonstore and dev center

Common APIsand SDK

Commontoolset

Adaptive user interface

Naturaluser inputs

HoloLensXbox

Surface Hub

Mobile

Devices +IoT

PC

One Device Platform

5

Windows IoT CoreFor Industry DevicesDesktop Shell, Win32 apps

1 GB RAM, 16 GB Storage

For Mobile DevicesModern Shell

Mobile Chassis requirement

512 MB RAM, 4 GB storage

For Small DevicesDedicated devices

Optional DisplayNo Shell/Store/MS Apps

256MB RAM, 2GB storage

Universal Apps

Requires desktop or desktop apps– Win32, .NET, WPF, etc. ?

Requires a Shell experience, multiple applications, Windows first-party

applications, or mobile voice?

Otherwise

6

Setting your environment

• https://www.windowsondevices.com/• https://connect.microsoft.com/windowsembeddedIoT/Downlo

ads/

1. Download the zip2. Flash to SD Card (only in Windows 10)3. Plug it in

7

Look mum no hands

8

Windows IoT Core Watcher

• Known issue with 64bit OS• Fix:

sn -Vr WindowsIoTCoreWatcher.execoreflags WindowsIoTCoreWatcher.exe /32BIT+ /FORCE

9

10

Windows IoT Extensions SDK

Windows.Devices.DevicesLowLevelContract Windows.System.SystemManagementContract

11

Windows.Devices.Gpio

var gpio = GpioController.GetDefault();

pin = gpio.OpenPin(LED_PIN, GpioSharingMode.SharedReadOnly);

pin.Write(GpioPinValue.High);pin.SetDriveMode(GpioPinDriveMode.Output);

GpioPinValue pinValue = pin.Read();//Low or High

12

Other APIs

13

HW Schematics

Rotation ServoRotation Servo

14

Controlling the Servo

https://www.khanacademy.org/computer-programming/pulse-width-demo/4961611581489152

15

SW Architecture

UIController

XBoxController

NetworkController

RobotDriver MotorController

public enum CtrlCmds { Stop, Forward, Backward, Left, Right, ForwardLeft ... }; public enum CtrlSpeeds { Min = 0, Mid = 5000, Max = 10000 }

cmd & speed

cmd & sp

eed

cmd & speed pulse

XBoxHid

SetPin

SignalRController

cmd & speed

16

Checking API Availability

17

HID – Human Interface Devices http://ms-iot.github.io/content/en-US/win10/Peripherals.htm

Presenter contact detailst: @tamir_dreshere: tamirdr@codevalue.netb: TamirDresher.comw: www.codevalue.net