Handwritten Text Recognition for manuscripts and early printed texts
IoT Getting Started with Intel® IoT Devkit
1. Getting Started with Intel® IoT Devkit
Dr. Matthias Hahn
Moscow Hackathon
November 22-23 2014
2. Agenda
Intel®Edison
Intel® IoTDeveloper Kit Overview
HW components
Arduino* andLinux native programming
Intel® IoTCloud Analytics
* Other names and brands may be claimed as the property of others.
5. Arduino*
Visual Programming
Node.JS
C / C++
Target
Audience
Maker
Beginner
Intermediate
Advanced
IDE
Arduino* IDE
Intel® XDK
Eclipse* IDE
Supporting you
Win/ Mac/ Linux
Wyliodrin*
Win/ Mac/ Linux
Win/ Mac / Linux
Browser
platform
6. Intel® Galileo
Gen 1 & 2
Board
Intel® Edison
Arduino Development Board
Yocto* based Linux OS image
API Bindings C/C++, Node JS, Python
UPM (Sensor/Actuator library repository)
LibMraa
NodeJSsupport
C/C++
Tool Chains
Wyliodrin*
agent
Hard Ware
Target SW
Intel® XDK IoTEdition
Eclipse* IDE
Wyliodrin* (Visual Programming)
IDE
Arduino* IDE
IoTDeveloping
Sensors / Actuators
* Other names and brands may be claimed as the property of others.
8. Intel® Galileo Development Board –Gen 2
Board I/O:
Mechanically compatible with Arduino* Uno*
20 digital input/output pins including 6 pins as PWM outputs
6 analog inputs
2 UART (RX/TX)
1 I2C
1 ICSP 6-pin header (SPI)
USB device connector (Host)
Micro USB device connector (client)
SD Card connector
DC power jack (7V –15V DC input)
* Other names and brands may be claimed as the property of others.
9. Intel® Edison -Mechanical Layout
Top Side
Bottom Side
4 GBeMMC
Intel® SoC/
1GB LPDDR3
WiFi/ BT
PMIC
USBULPI
70 pin
connector
antenna
Extern Coax
35.5 mm
25mm
10. Intel® Edison
Board
•2 Intel® Atom™ cores @ 500 MHz
•1 Intel® Quark™ MCU @ 100 MHz
•35.5 ×25.0 ×3.9 mm
•1 GB RAM (LPDDR3, 2ch @ 800 MT/s)
•4 GB eMMC
•WiFi(a/b/g/n) +BT 4.0 + antenna
•40 GPIOs: UART, I2C, SPI, I2S, PWM, USB 2.0, SD card, clock out, GPIO
Software
•Default OS: Yocto* 1.6 Linux*
•Rightnow3.10.17 kernel
•OTA upgradable
•libmraa: GPIO abstractionlayer
•UPM repository: sensorlibraries
* Other names and brands may be claimed as the property of others.
12. Expansion Boards
Partner
Expansion Boards
Intel
Expansion Boards
Built to Order
Expansion Boards
13. Extension Boards
Intel® Edison
•70 pinconnector
•HiroseDF40 Series
•Easy tobuildyourownboard
Intel currentlyoffers2 boards
•BreakoutBoard
•Arduino* expansionboard
* Other names and brands may be claimed as the property of others.
14. Intel® Edison –Arduino* Expansion Board
•Arduino* Uno compatibility (except 4 rather 6 PWM)
•20 digital GPIO (incl4 PWM)
•6 analog inputs
•1 UART (RX/TX)
•1 I2C
•1 ICSP 6-pin header (SPI)
•switchable: Micro USB device | USB host
•Micro USB device (UART)
•Mini SD Card connector
•DC power jack (7V –15V DC input)
* Other names and brands may be claimed as the property of others.
15. Intel® Edison BreakoutBoard
•I/O: array of through-hole solder points
•USB OTG with USB Micro (AB)
•Battery charger
•USB micro (B) [UART]
•DC power supply jack (7 to 15 VDC)
18. Grove* Starter Kit Plus -Intel® IoTVersion
1
Base Shield v2
2
Grove -Buzzer V1.1
3
Grove –Button
4
Grove-LED v1.3
5
Grove -Sound Sensor_V1.2
6
Grove -Rotary Angle Sensor
7
Grove-Touch Sensor
8
Grove -Smart Relay
9
Grove-Light Sensor
10
Grove -Temperature Sensor_V1.1
11
26AWG Grove Cable
12
Mini Servo
13
9V to Barrel Jack Adapter -126mm
14
DIP LED Blue-Blue
15
DIP LED Green-Green
16
DIP LED Red-Red
11
Grove -LCD RGB Backlight
USB, serial and Ethernet cables
20. Now connect your environment
Intel® Galileo / Intel® Edison
ForWindows*: firstinstalldriverfromUSB stick
Ref.: https://communities.intel.com/docs/DOC-23147
Serial 115200
Serial 9600
21. Connect board via serial –discover port (Windows*)
Ref.: https://software.intel.com/en-us/iot-c-eclipse
22. Connect via serial e.g. using PuTTy*, goSerial* or minicom* resp
User: root, no password
* Other names and brands may be claimed as the property of others.
23. Connecting Intel(R) Galileo
Wifi
connmanctl, rfkill, wpa_cli, hostapd_cli
Bluetooth
connmanctl, rfkill, bluetoothctl, hciconfig, hcidump, btmon
serial
24. Connecting Intel(R) Edison
On Windows* -first install driver from USB stick
“configure_edison --setup”
•One central way to set hostname, password and configure wifi
Wifi
connmanctl, rfkill, wpa_cli, hostapd_cli
Bluetooth
connmanctl, rfkill, bluetoothctl, hciconfig, hcidump, btmon
Eth over USB
serial
* Other names and brands may be claimed as the property of others.
25. Find your Galileo/Edison IP address and write it down: command `ip a`
Ping between board and your laptop to check connectivity
Ref.: https://software.intel.com/en-us/iot-c-eclipse
27. Arduino* IDE forIntel® Edison
* Other names and brands may be claimed as the property of others.
28. Arduino* IDE
Sketch /sketch/sketch.elf
•Cross compiler
•clloaderlisteningon /dev/ttyGS0
•Upload via serial
•Renamingexistingsketch.elf
* Other names and brands may be claimed as the property of others.
34. libmraa -https://github.com/intel-iot-devkit/mraa
IO abstraction layer (C, C++, Python, Node.JS)
Used by
•UPM
•Intel(R) XDK for IoT
•Wyliodrin*
API documentation http://iotdk.intel.com/docs/master/ mraa/
* Other names and brands may be claimed as the property of others.
35. Libmraa-C APIExpl: switch on GPIO #8
mraa_gpio_contextgpio; // Pointer to GPIO context
gpio= mraa_gpio_init(8); // Create GPIO context for pin 8
mraa_gpio_dir(gpio, MRAA_GPIO_OUT); // GPIO direction: out
mraa_gpio_write(gpio, 1); // Write to GPIO
mraa_gpio_close(gpio); // Close GPIO
36. Libmraa-C++ Expl: read analogue value on A0
mraa::Aio* a0;
a0 = new mraa::Aio(0); // Create AIO object for pin 0
std::cout<< a0->read() << std::endl;
37. Libmraa–Object API (Python) Expl: interrupt triggered on IO #6
from mraaimport * # Import mraalibrary
# define a callback function
defmy_isr():
print("Button pressed")
x = Gpio(6) # Create a GPIO object for pin 6
x.dir(DIR_IN) # Set GPIO direction to input
x.isr(EDGE_BOTH, my_isr) # Set callback on BOTH
38. Libmraa–Object API (Node.js) Expl: did we have this? –switch on IO #8
varm = require("mraa") # Import mraamodule
varx = new m.Gpio(8) # Create a GPIO object for pin 8
x.dir(m.DIR_OUT) # Set GPIO direction to output
x.write(1) # Write to GPIO
39.
40. UPM repository -https://github.com/intel-iot-devkit/upm
List of supported sensors in C++
API documentation -http://iotdk.intel.com/docs/master/upm/
Examples directory
C++ example:
// Copyright (c) 2014 Intel Corporation. MIT license
upm::GroveTemp* s = new upm::GroveTemp(0);
std::cout<< s->name() << std::endl;
for (inti=0; i < 10; i++) {
std::cout<< s->value() << std::endl;
sleep(1);
}
42. Updatinglibmraa/ UPM
cat> /etc/opkg/mraa-upm.conf<<EOF
srcmraa-upmhttp://iotdk.intel.com/repos/1.1/intelgalactic
EOF
opkgupdate
opkgupgrade
* Other names and brands may be claimed as the property of others.
43. Eclipse* IDE
* Other names and brands may be claimed as the property of others.
44.
45.
46. Eclipse(C/C++)–setting up
Copy to your computer
Extract the file you copied previously (iotdk-ide-${yourOS}.7z) with 7z
Treats long paths better, needed for this file.
If you need to download: http://www.7-zip.org/
Note: Better to extract the file to C:on Windows
Execute devkit-launcher.bat
Ref.: https://software.intel.com/en-us/iot-c-eclipse
66. Your SD Card is already with the Galileo Image, so all you need to do is to download (1) wyliodrin.json
and (2) write it on the root of the SD Card. Make sure the name is exactly wyliodrin.json
1
2
67. Install the updates and the extra libraries. This make take some time to run