getting started with intel iot developer kit
Post on 27-Nov-2014
2.062 Views
Preview:
DESCRIPTION
TRANSCRIPT
Getting Started with Intel IoT Developer Kit – Dev kitSetup, Installing, Hello World and Sensors testing
Sulamita Garcia – Developer Evangelist - @sulagarcia
Munich, October 18 2014
Agenda
• Devkit components: hardware and software
• Setting up Galileo/Edison
• Setting up developer environment
• Running sample codes
• Creating your application
• Dev kit library (MRAA) and sensors repository (UPM)
Important – before starting
Intel Galileo Gen 1 -> 5V power supply
Intel Galileo Gen 2 -> 12V power supply
Intel Galileo Gen 1 + 12V power supply =
Devkit components
Dev kit components
Software
• Linux (Yocto) image to be used with micro SD card on Galileo; already installed on Edison
• IDEs for cross platform development
• MRAA and UPM libraries for abstracting complexity when using sensors and actuators
Hardware
• Intel Galileo Gen 2 or Edison
• Grove Starter Kit – Intel IoT Edition
• Micro SD
• Serial cable
• Ethernet cable
• Sensors and components
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)
Ref.: http://maker.intel.com
Intel® Edison module
• 22 nm Intel® SoC that includes a dual-core, dual-threaded Intel® Atom™ CPU at 500 MHz
• 32-bit Intel® Quark™ microcontroller at 100 MHz
• 1 GB LPDDR3 POP memory
• Flash storage 4 GB eMMC
• WiFi and Bluetooth® Low Energy
• 35.5 × 25.0 × 3.9 mm (1.4 × 1.0 × 0.15 inches)
• 40 GPIOs: UART, I2C, SPI, I2S, GPIO(PWM), USB, Sd cardRef.: http://maker.intel.com
Intel® Edison - Arduino Expansion Board
Board I/O: Compatible with Arduino Uno (except only 4 PWM instead of 6 PWM) 20 digital input/output pins including 4 pins as PWM
outputs 6 analog inputs 1 UART (RX/TX) 1 I2C 1 ICSP 6-pin header (SPI) Micro USB device connector OR (via mechanical
switch) dedicated standard size USB host Type-A connector
Micro USB device (connected to UART) SD Card connector DC power jack (7V – 15V DC input)
Ref.: http://maker.intel.com
Grove Starter Kit Plus - Intel® IoT EditionBase Shield
Buzzer
Button
Grove-LED
Sound Sensor
Rotary Angle Sensor
Touch Sensor
Smart Relay
Light Sensor
Temperature Sensor
Grove Cables
Mini Servo
9V to Barrel Jack Adapter - 126mm
DIP LED Blue-Blue
DIP LED Green-Green
DIP LED Red-Red
LCD RGB Backlight
Extra sensors available depending on your project
SEN04031P Grove - Piezo Vibration Sensor
SEN01111P Grove - Air quality sensor
SEN11425P Grove - 125KHz RFID Reader
ACC90453O 4 pin grove adapter (5 per pack)
KIT80949P Wireless Sensor Node - Solar Kit
ROB08211P Grove Mini Servos
SEN04051P Grove - 3-Axis Digital Accelerometer
SEN11763P Grove - 3-Axis Digital Gyro
SEN12753P Grove - 3-Axis Digital Compass
COM22639P Grove - Relay
COM05231P Grove - Slide Potentiometer
Important – before starting
• The next session can save you a lot of time and trouble – which will count tomorrow when you are trying to finish your project
• We will cover step by step how to get started
• Your options:
• C/C++ with Eclipse (recommended)
• JavaScript with XDK (recommended)
• Arduino (recommended)
• Visual programming with Wyliodrin – if you are new to programming
• Vi/terminal – if you are more comfortable with command line environment
Online documentation for reference
This presentation: http://slidesha.re/1uuFgBH
https://software.intel.com/en-us/iot/getting-started
http://intel.com/edison/getstarted
Setting up the Galileo board
Setup the Galileo board
Distributed micro SD cards already prepared with latest image – just plug them in
Why do we need a micro SD and an image?
- Provide easy way to permanently store application on board
- Provides extra libraries and bindings
- Supports multiple programming languages
Note: For future updates, please refer to online documentation.Ref.: https://software.intel.com/en-us/iot-c-eclipse , Appendix
Setup the Edison board
Distributed Edison already updated
If not, update software: https://communities.intel.com/docs/DOC-23192
Setting up the developer environment
Connect the SD card in your computer – copy the IDE file correspondent to your OS; for Windows, copy win-driver too
Windows & Arduino – extract and install the contents of win-driver
Now connect your environment
microUSB <-> USB
Ref.: https://communities.intel.com/docs/DOC-23147
Now connect your environment
USB <-> Serial cable
Ethernet
SD Card
Power
Serial
3
1
2
4
Ref.: https://software.intel.com/en-us/iot-c-eclipse
USB-Serial on Gen2 – black wire means ground
Connect board via serial – discover port on Windows
Ref.: https://software.intel.com/en-us/iot-c-eclipse
Connect board via serial – discover port on MacOS
After connecting the serial cable, check if you have /dev/cu.usbserial(*)
If not, you may need to install a serial-USB FTDI driver.
Example:
Ref.: https://software.intel.com/en-us/iot-c-eclipse
Connect via serial – putty, goSerial or minicom
User: root, no passwordRef.: https://software.intel.com/en-us/iot-c-eclipse
Connecting Edison – configure_edison --setup
Configure password
Configure wifi
Galileo should automatically set up an IP address.
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
Shortcut – if you feel comfortable with vi
If you have experience coding directly from the command line, you have:
• Busybox/vi
• Gcc
• Python
• Node.js
But we will continue with the IDEs, keep paying attention
Vim: https://github.com/IntelOpenDesign/MakerNode/tree/master/iotkd_libs
Time to chose your path:
C/C++:
• Eclipse
Javascript:
• XDK
Arduino
• Arduino IDE for Galileo
Visual Programming (Blocky)
• Wyliodrin
Arduino for Galileo/Edison
Arduino for Galileo or Edison
https://communities.intel.com/docs/DOC-23242
C/C++/Eclipse
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
Ref.: https://software.intel.com/en-us/iot-c-eclipse
Click on Remote System Explorer
Ref.: https://software.intel.com/en-us/iot-c-eclipse
Fill the IP address on (3)
Ref.: https://software.intel.com/en-us/iot-c-eclipse
Running a sample - Click back on C/C++
Ref.: https://software.intel.com/en-us/node/519969
Galileo - Right click 4_cpp_onboard_led
Ref.: https://software.intel.com/en-us/node/519969
Click Run, select 4_cpp_onboard_led
Ref.: https://software.intel.com/en-us/node/519969
JavaScript/Node.js/XDK
Install the file copied from the SD card, XDK directory
Ref.: https://software.intel.com/en-us/html5/xdk-iot
Login/create your account
Start with a Sample (under IoT Projects) – click on “Use this Template”
Should look like this
Select Galileo/Edison board
Toggle the console
Click Manage your daemon/IoT device menu in the bottom taskbar. Select sync PC time w/ clock on target board to avoid computer and device timing issues.
Click Install/Build to fetch node modules specified in package.json and install them on device; 1st time click Build
Click Upload to upload the current project to the Galileo board
Click Run to run the project on the device. The LED should be blinking.
Devkit library (MRAA) and sensor repository (UPM)
MRAA lib - https://github.com/intel-iot-devkit/mraaMRAA – random letters, doesn’t mean anything
API documentation available - http://iotdk.intel.com/docs/master/mraa/
Examples directory
Minimum code sample:
mraa_gpio_context gpio;
gpio = mraa_gpio_init(6);
mraa_gpio_dir(gpio, MRAA_GPIO_IN);
for (;;) {
fprintf(stdout, "Gpio is %d\n", mraa_gpio_read(gpio));
sleep(1);
}
mraa_gpio_close(gpio);
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
Minimum code example:
upm::GroveTemp* s = new upm::GroveTemp(0);
std::cout << s->name() << std::endl;
for (int i=0; i < 10; i++) {
std::cout << s->value() << std::endl;
sleep(1);
}
Just remember to use the correspondent library
Project name (right click) -> Settings -> C/C++ Build -> Settings -> Tool Settings -> Cross G++ Linker -> Miscelaneous
UPM API documentation – which library to use?
Creating new app
If using Eclipse
Create your first app – copy&paste an existing sample
Creating your first app – if you use UPM repository
Project name (right click) -> Settings -> C/C++ Build -> Settings -> Tool Settings -> Cross G++ Linker -> Miscelaneous
If using XDK
Node.js
Find the library name – example: libupm-grove
-> replace “lib” for “js” and you have it: jsupm_grove
Code:
require(“jsupm_grove”);
If using Python
Python
Find the library name – example: libupm-grove
-> replace “lib” for “py” and you have it: pyupm-grove
Code:
import pyupm_grove
If using Arduino
Go to IDZ IoT page, find your sensor
Under References, follow Grove Wiki
Recap – navigating IDZ IoT - https://software.intel.com/iot
Now, who has problems???
top related