SlideShare una empresa de Scribd logo
1 de 17
Descargar para leer sin conexión
Intel®
Curie™
Pervasive Systems 2015/2016
DIAG, Università degli Studi di Roma, “La Sapienza”
Davide Tiriticco
Email Address
davide.tiriticco@gmail.com
Linkedin
https://www.linkedin.com/in/davide-tiriticco-2278719a
GitHub
https://github.com/davtir/curie-examples
Pervasive Systems Course
http://ichatz.me/index.php/Site/PervasiveSystems2016
1 - Introduction
Intel®
Curie™ Module
The Intel®
Curie™ Module includes:
● 2 Low power cores: 32-bit Intel®
Quark™ and ARC both clocked at 32 MHz
● 384 Kb of flash memory, 80 Kb SRAM
● Bluetooth Low Energy (BLE)
● 6-axis combo sensor with accelerometer and gyroscope
● Battery charging circuit (PMIC)
It is an ideal solution for “always on” applications such as wellness and sport
activities
Arduino / Genuino 101
The Intel®
Curie™ module have been embedded in the Genuino 101 board in order to
combine the “ease-of-use” of classic Arduino boards with the latest Intel technologies in the
field of microprocessors.
● 14 digital input/output pins
● 6 analog inputs
● USB connector for serial communication and sketch upload
● Power jack
In order to be able to interface with the Curie™ module,
two libraries have been made available:
● CurieIMU: to control motion sensors
● CurieBLE: to control BLE module
2 - Inertial Measurement Unit (IMU)
IMU - Calibration
IMU calibration provides to compensate the offsets values for accelerometer and gyroscope
along each one of the reference axis.
In order to calibrate motion sensors, some runtime API are made available in the CurieIMU
library:
● autoCalibrateAccelerometerOffset(int axis, int target)
● autoCalibrateGyroOffset() Z
X
Y
IMU - Gyroscope
Gyroscope is a sensor which is able to measure the angular velocity of the device
over each one of the three reference axis.
● readGyro(int gx, int gy, int gz)
Values returned by the function are 16-bit integers ( [-32768/ +32767 ] ).
● The sensitivity of the gyroscope could be:
○ +/- 2000 deg/sec
○ +/- 1000 deg/sec
○ +/- 500 deg/sec
○ +/- 250 deg/sec
○ +/- 125 deg/sec
● in order to get the effective value for the angular velocity
we have to apply the following formula:
○ gyro = ( raw * max_sensitivity) / INT16_MAX
IMU - Accelerometer
The accelerometer is a sensor which is able to measure the acceleration of the
device over each one of the three reference axis.
● readAccelerometer(int ax, int ay, int az)
Values returned by the function are 16-bit integers ( [-32768 / +32767 ] )
● Accelerometer values are always in the following ranges:
○ +/- 2 G
○ +/- 4 G
○ +/- 8 G
○ +/- 16 G
In order to get the effective value for the acceleration we have to
apply the following formula:
○ acc = ( raw * range) / INT16_MAX
IMU - Sensors Rate
The CurieIMU library allows developers to retrieve or setup the frequency at which
sensors events are sent to the application.
● getAccelerometerRate()/getGyroRate():
○ Returns the sensor data rate expressed in Hz
○ Values returned could be 12.5, 25, 50, 100, 200, 400, 800, 1600 for the
accelerometer, and 12.5, 25, 50, 100, 200, 400, 800, 1600, 3200 for the
gyroscope.
Rate is important because if your application reads sensors registers faster
than sensors rate you will read the same value more than once!! (even if
there is no motion!).
CurieIMU - Example
The example provides an implementation of a remote controller for a 3D shape
using the Intel Curie Module.
The main tasks are:
● Device calibration
● Sensors interaction
● Shape orientation ( Madgwick filter )
● Communication through serial port between the Intel Curie and the 3D
application.
Code link: https://github.com/davtir/curie-examples/tree/master/3D-Orientation
3 - Bluetooth Low Energy (BLE)
Bluetooth Low Energy (BLE)
What are the main analogies and differences between BLE and classic
Bluetooth ?
● Different power consumption and targets:
○ Classic bluetooth was designed for continuous, streaming data
applications.
○ BLE is generally used for applications that do not need to exchange large
amounts of data.
● Same band but different approach:
○ Both BLE and bluetooth operates at 2.4 GHz
○ Differently from classic Bluetooth, BLE remains in
sleep mode constantly except for when a connection
is initiated.
● BLE connection times are only few ms (1 Mb/s data rate)
unlike Bluetooth which would take ~100ms
BLE - Devices Roles
● Peripheral: small, low power devices that can connect to a much more
powerful central device.
● Central: mobile phones, tablets or laptop with much more processing power
and memory than peripherals.
Advertising
Data
Advertising
Data
Scan Response
Request
Scan Response
Data
Advertising
Data
Peripheral
Central
Advertising
Interval
Advertising
Interval
Advertising
Interval
BLE - Services and Characteristic
● Characteristics
○ It represents the shared resource among peripheral and centrals.
○ It is identified by a 16-bit or 128-bit UUID
● Services
○ Represents a service that is offered by peripherals and that interacts with
one or more characteristic.
○ Similarly to characteristics, it is identified by a 16-bit or 128-bit UUID
Service
16/128-bit UUID
Characteristic
16/128-bit UUID
Characteristic
16/128-bit UUID
CurieBLE - Entities
● BLEPeripherals:
○ Constantly sends advertising packets
○ Receive connections from centrals
○ You can associated BLEServices and BLECharacteristic to this
entity using the function addAttribute()
● BLEService
○ The service offered by the BLEPeripherals
● BLECharacteristic
○ The resource on which the service works
○ Can be define as:
■ BLERead: centrals are allowed to read the value of the characteristic
■ BLEWrite: centrals are allowed to write the value of the characteristic
■ BLENotify: centrals are allowed to get notifications when the value
changes
CurieBLE - Example
The example provides an implementation of a dynamic blinking, i.e., you can
control the velocity of the led blinking through a mobile device using BLE.
The mobile device uses the nRF Master Control Panel application in order to send
data to the Intel Curie.
Code link: https://github.com/davtir/curie-examples/tree/master/dynamicBlink
QUESTIONS ?

Más contenido relacionado

La actualidad más candente

Arduino and Internet of Thinks: ShareIT TM: march 2010, TM
Arduino and Internet of Thinks: ShareIT TM: march 2010, TMArduino and Internet of Thinks: ShareIT TM: march 2010, TM
Arduino and Internet of Thinks: ShareIT TM: march 2010, TM
Alexandru IOVANOVICI
 

La actualidad más candente (20)

Introducing the Arduino
Introducing the ArduinoIntroducing the Arduino
Introducing the Arduino
 
Arduino for beginners- Introduction to Arduino (presentation) - codewithgauri
Arduino for beginners- Introduction to Arduino (presentation) - codewithgauriArduino for beginners- Introduction to Arduino (presentation) - codewithgauri
Arduino for beginners- Introduction to Arduino (presentation) - codewithgauri
 
Basics of arduino uno
Basics of arduino unoBasics of arduino uno
Basics of arduino uno
 
Esp8266 basics
Esp8266 basicsEsp8266 basics
Esp8266 basics
 
Arduino uno
Arduino unoArduino uno
Arduino uno
 
arduino-ppt
 arduino-ppt arduino-ppt
arduino-ppt
 
Introduction to arduino
Introduction to arduinoIntroduction to arduino
Introduction to arduino
 
Arduino and c programming
Arduino and c programmingArduino and c programming
Arduino and c programming
 
Arduino course
Arduino courseArduino course
Arduino course
 
Embedded system introduction - Arduino Course
Embedded system introduction - Arduino CourseEmbedded system introduction - Arduino Course
Embedded system introduction - Arduino Course
 
Practical Introduction to Internet of Things (IoT)
Practical Introduction to Internet of Things (IoT)Practical Introduction to Internet of Things (IoT)
Practical Introduction to Internet of Things (IoT)
 
Arduino and Internet of Thinks: ShareIT TM: march 2010, TM
Arduino and Internet of Thinks: ShareIT TM: march 2010, TMArduino and Internet of Thinks: ShareIT TM: march 2010, TM
Arduino and Internet of Thinks: ShareIT TM: march 2010, TM
 
PPT ON Arduino
PPT ON Arduino PPT ON Arduino
PPT ON Arduino
 
Lesson 10- NodeMCU with LCD I2C
Lesson 10- NodeMCU with LCD I2CLesson 10- NodeMCU with LCD I2C
Lesson 10- NodeMCU with LCD I2C
 
Introduction to Arduino and Hands on to Iot
Introduction to Arduino and Hands on to IotIntroduction to Arduino and Hands on to Iot
Introduction to Arduino and Hands on to Iot
 
Arduino technical session 1
Arduino technical session 1Arduino technical session 1
Arduino technical session 1
 
Arduino uno
Arduino unoArduino uno
Arduino uno
 
Introduction to Arduino
Introduction to ArduinoIntroduction to Arduino
Introduction to Arduino
 
WHD global 2017 - Smart Power Plant
WHD global 2017 - Smart Power PlantWHD global 2017 - Smart Power Plant
WHD global 2017 - Smart Power Plant
 
Arduino Platform with C programming.
Arduino Platform with C programming.Arduino Platform with C programming.
Arduino Platform with C programming.
 

Destacado

Destacado (20)

Redis - Usability and Use Cases
Redis - Usability and Use CasesRedis - Usability and Use Cases
Redis - Usability and Use Cases
 
Adafruit Huzzah Esp8266 WiFi Board
Adafruit Huzzah Esp8266 WiFi BoardAdafruit Huzzah Esp8266 WiFi Board
Adafruit Huzzah Esp8266 WiFi Board
 
Blynk presentation
Blynk presentationBlynk presentation
Blynk presentation
 
AltBeacon
AltBeaconAltBeacon
AltBeacon
 
AltBeacon
AltBeaconAltBeacon
AltBeacon
 
Introduction to influx db
Introduction to influx dbIntroduction to influx db
Introduction to influx db
 
ThingStudio Presentation
ThingStudio PresentationThingStudio Presentation
ThingStudio Presentation
 
Presentation raspberry pi
Presentation   raspberry piPresentation   raspberry pi
Presentation raspberry pi
 
InfluxDb
InfluxDbInfluxDb
InfluxDb
 
Intel® Curie™ Module High Density System-in-Package for IoT 2016 teardown rev...
Intel® Curie™ Module High Density System-in-Package for IoT 2016 teardown rev...Intel® Curie™ Module High Density System-in-Package for IoT 2016 teardown rev...
Intel® Curie™ Module High Density System-in-Package for IoT 2016 teardown rev...
 
Sensor de proximidad con el modulo
Sensor de proximidad con el moduloSensor de proximidad con el modulo
Sensor de proximidad con el modulo
 
Elm 327 Obd
Elm 327 ObdElm 327 Obd
Elm 327 Obd
 
Genuino and codebender
Genuino and codebenderGenuino and codebender
Genuino and codebender
 
Genuino 101
Genuino 101Genuino 101
Genuino 101
 
Temboo
TembooTemboo
Temboo
 
Presentazione resin.io
Presentazione resin.ioPresentazione resin.io
Presentazione resin.io
 
Ecohome lab: From Monitoring to Control
Ecohome lab: From Monitoring to ControlEcohome lab: From Monitoring to Control
Ecohome lab: From Monitoring to Control
 
Weathercraft Presentation
Weathercraft PresentationWeathercraft Presentation
Weathercraft Presentation
 
Smart Museum
Smart MuseumSmart Museum
Smart Museum
 
BEACON AND ITS PROTOCOLS
BEACON AND ITS PROTOCOLS BEACON AND ITS PROTOCOLS
BEACON AND ITS PROTOCOLS
 

Similar a Intel Curie Presentation

Paper id 24201428
Paper id 24201428Paper id 24201428
Paper id 24201428
IJRAT
 
Resume for Embedded Engineer_1
Resume for Embedded Engineer_1Resume for Embedded Engineer_1
Resume for Embedded Engineer_1
gajendra parmar
 
Iaetsd vlsi based implementation of a digital
Iaetsd vlsi based implementation of a digitalIaetsd vlsi based implementation of a digital
Iaetsd vlsi based implementation of a digital
Iaetsd Iaetsd
 
Robotics Report final.compressed (1)
Robotics Report final.compressed (1)Robotics Report final.compressed (1)
Robotics Report final.compressed (1)
Kael Kristjanson
 

Similar a Intel Curie Presentation (20)

Casp report
Casp reportCasp report
Casp report
 
Report on Embedded Based Home security system
Report on Embedded Based Home security systemReport on Embedded Based Home security system
Report on Embedded Based Home security system
 
project seminor
project seminorproject seminor
project seminor
 
Modern Software Architectures - Overview
Modern Software Architectures - Overview Modern Software Architectures - Overview
Modern Software Architectures - Overview
 
Paper id 24201428
Paper id 24201428Paper id 24201428
Paper id 24201428
 
IRJET- Design & Implementation of Black Box in Automobiles System
IRJET-  	  Design & Implementation of Black Box in Automobiles SystemIRJET-  	  Design & Implementation of Black Box in Automobiles System
IRJET- Design & Implementation of Black Box in Automobiles System
 
M44096368
M44096368M44096368
M44096368
 
weather monitoiring system.pptx
weather monitoiring system.pptxweather monitoiring system.pptx
weather monitoiring system.pptx
 
Resume for Embedded Engineer_1
Resume for Embedded Engineer_1Resume for Embedded Engineer_1
Resume for Embedded Engineer_1
 
Interfacing Of PIC 18F252 Microcontroller with Real Time Clock via I2C Protocol
Interfacing Of PIC 18F252 Microcontroller with Real Time Clock via I2C ProtocolInterfacing Of PIC 18F252 Microcontroller with Real Time Clock via I2C Protocol
Interfacing Of PIC 18F252 Microcontroller with Real Time Clock via I2C Protocol
 
Iaetsd vlsi based implementation of a digital
Iaetsd vlsi based implementation of a digitalIaetsd vlsi based implementation of a digital
Iaetsd vlsi based implementation of a digital
 
IRJET- Area Calculation by using Adxl335 and Ultrasonic Distance Sensor
IRJET- Area Calculation by using Adxl335 and Ultrasonic Distance SensorIRJET- Area Calculation by using Adxl335 and Ultrasonic Distance Sensor
IRJET- Area Calculation by using Adxl335 and Ultrasonic Distance Sensor
 
REAL-TIME LOCATION TRACKER FOR HEALTH PATIENT IN CRISIS
REAL-TIME LOCATION TRACKER FOR HEALTH PATIENT IN CRISISREAL-TIME LOCATION TRACKER FOR HEALTH PATIENT IN CRISIS
REAL-TIME LOCATION TRACKER FOR HEALTH PATIENT IN CRISIS
 
OSMC 2018 | Learnings, patterns and Uber’s metrics platform M3, open sourced ...
OSMC 2018 | Learnings, patterns and Uber’s metrics platform M3, open sourced ...OSMC 2018 | Learnings, patterns and Uber’s metrics platform M3, open sourced ...
OSMC 2018 | Learnings, patterns and Uber’s metrics platform M3, open sourced ...
 
GPS Assisted Roadmapping and Vehicle Monitoring
GPS Assisted Roadmapping and Vehicle Monitoring GPS Assisted Roadmapping and Vehicle Monitoring
GPS Assisted Roadmapping and Vehicle Monitoring
 
IRJET- Data Acquisition using Tensile Strength Testing Machine
IRJET- Data Acquisition using Tensile Strength Testing MachineIRJET- Data Acquisition using Tensile Strength Testing Machine
IRJET- Data Acquisition using Tensile Strength Testing Machine
 
WIRELESS SURVILLANCE ROBOT
WIRELESS SURVILLANCE ROBOT WIRELESS SURVILLANCE ROBOT
WIRELESS SURVILLANCE ROBOT
 
Robotics Report final.compressed (1)
Robotics Report final.compressed (1)Robotics Report final.compressed (1)
Robotics Report final.compressed (1)
 
DSP Processor
DSP Processor DSP Processor
DSP Processor
 
A STUDY OF AN ENTRENCHED SYSTEM USING INTERNET OF THINGS
A STUDY OF AN ENTRENCHED SYSTEM USING INTERNET OF THINGSA STUDY OF AN ENTRENCHED SYSTEM USING INTERNET OF THINGS
A STUDY OF AN ENTRENCHED SYSTEM USING INTERNET OF THINGS
 

Último

AKTU Computer Networks notes --- Unit 3.pdf
AKTU Computer Networks notes ---  Unit 3.pdfAKTU Computer Networks notes ---  Unit 3.pdf
AKTU Computer Networks notes --- Unit 3.pdf
ankushspencer015
 
Call Girls In Bangalore ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Bangalore ☎ 7737669865 🥵 Book Your One night StandCall Girls In Bangalore ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Bangalore ☎ 7737669865 🥵 Book Your One night Stand
amitlee9823
 
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
dollysharma2066
 
Call Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort ServiceCall Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar ≼🔝 Delhi door step de...
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar  ≼🔝 Delhi door step de...Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar  ≼🔝 Delhi door step de...
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar ≼🔝 Delhi door step de...
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 

Último (20)

NFPA 5000 2024 standard .
NFPA 5000 2024 standard                                  .NFPA 5000 2024 standard                                  .
NFPA 5000 2024 standard .
 
Intze Overhead Water Tank Design by Working Stress - IS Method.pdf
Intze Overhead Water Tank  Design by Working Stress - IS Method.pdfIntze Overhead Water Tank  Design by Working Stress - IS Method.pdf
Intze Overhead Water Tank Design by Working Stress - IS Method.pdf
 
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
 
Unleashing the Power of the SORA AI lastest leap
Unleashing the Power of the SORA AI lastest leapUnleashing the Power of the SORA AI lastest leap
Unleashing the Power of the SORA AI lastest leap
 
Call for Papers - International Journal of Intelligent Systems and Applicatio...
Call for Papers - International Journal of Intelligent Systems and Applicatio...Call for Papers - International Journal of Intelligent Systems and Applicatio...
Call for Papers - International Journal of Intelligent Systems and Applicatio...
 
The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...
The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...
The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...
 
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdfONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
 
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
 
Java Programming :Event Handling(Types of Events)
Java Programming :Event Handling(Types of Events)Java Programming :Event Handling(Types of Events)
Java Programming :Event Handling(Types of Events)
 
Thermal Engineering -unit - III & IV.ppt
Thermal Engineering -unit - III & IV.pptThermal Engineering -unit - III & IV.ppt
Thermal Engineering -unit - III & IV.ppt
 
(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7
(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7
(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7
 
Roadmap to Membership of RICS - Pathways and Routes
Roadmap to Membership of RICS - Pathways and RoutesRoadmap to Membership of RICS - Pathways and Routes
Roadmap to Membership of RICS - Pathways and Routes
 
AKTU Computer Networks notes --- Unit 3.pdf
AKTU Computer Networks notes ---  Unit 3.pdfAKTU Computer Networks notes ---  Unit 3.pdf
AKTU Computer Networks notes --- Unit 3.pdf
 
Call Girls In Bangalore ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Bangalore ☎ 7737669865 🥵 Book Your One night StandCall Girls In Bangalore ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Bangalore ☎ 7737669865 🥵 Book Your One night Stand
 
PVC VS. FIBERGLASS (FRP) GRAVITY SEWER - UNI BELL
PVC VS. FIBERGLASS (FRP) GRAVITY SEWER - UNI BELLPVC VS. FIBERGLASS (FRP) GRAVITY SEWER - UNI BELL
PVC VS. FIBERGLASS (FRP) GRAVITY SEWER - UNI BELL
 
UNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its PerformanceUNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its Performance
 
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
 
Call Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort ServiceCall Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
 
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar ≼🔝 Delhi door step de...
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar  ≼🔝 Delhi door step de...Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar  ≼🔝 Delhi door step de...
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar ≼🔝 Delhi door step de...
 
Thermal Engineering-R & A / C - unit - V
Thermal Engineering-R & A / C - unit - VThermal Engineering-R & A / C - unit - V
Thermal Engineering-R & A / C - unit - V
 

Intel Curie Presentation

  • 1. Intel® Curie™ Pervasive Systems 2015/2016 DIAG, Università degli Studi di Roma, “La Sapienza” Davide Tiriticco Email Address davide.tiriticco@gmail.com Linkedin https://www.linkedin.com/in/davide-tiriticco-2278719a GitHub https://github.com/davtir/curie-examples Pervasive Systems Course http://ichatz.me/index.php/Site/PervasiveSystems2016
  • 3. Intel® Curie™ Module The Intel® Curie™ Module includes: ● 2 Low power cores: 32-bit Intel® Quark™ and ARC both clocked at 32 MHz ● 384 Kb of flash memory, 80 Kb SRAM ● Bluetooth Low Energy (BLE) ● 6-axis combo sensor with accelerometer and gyroscope ● Battery charging circuit (PMIC) It is an ideal solution for “always on” applications such as wellness and sport activities
  • 4. Arduino / Genuino 101 The Intel® Curie™ module have been embedded in the Genuino 101 board in order to combine the “ease-of-use” of classic Arduino boards with the latest Intel technologies in the field of microprocessors. ● 14 digital input/output pins ● 6 analog inputs ● USB connector for serial communication and sketch upload ● Power jack In order to be able to interface with the Curie™ module, two libraries have been made available: ● CurieIMU: to control motion sensors ● CurieBLE: to control BLE module
  • 5. 2 - Inertial Measurement Unit (IMU)
  • 6. IMU - Calibration IMU calibration provides to compensate the offsets values for accelerometer and gyroscope along each one of the reference axis. In order to calibrate motion sensors, some runtime API are made available in the CurieIMU library: ● autoCalibrateAccelerometerOffset(int axis, int target) ● autoCalibrateGyroOffset() Z X Y
  • 7. IMU - Gyroscope Gyroscope is a sensor which is able to measure the angular velocity of the device over each one of the three reference axis. ● readGyro(int gx, int gy, int gz) Values returned by the function are 16-bit integers ( [-32768/ +32767 ] ). ● The sensitivity of the gyroscope could be: ○ +/- 2000 deg/sec ○ +/- 1000 deg/sec ○ +/- 500 deg/sec ○ +/- 250 deg/sec ○ +/- 125 deg/sec ● in order to get the effective value for the angular velocity we have to apply the following formula: ○ gyro = ( raw * max_sensitivity) / INT16_MAX
  • 8. IMU - Accelerometer The accelerometer is a sensor which is able to measure the acceleration of the device over each one of the three reference axis. ● readAccelerometer(int ax, int ay, int az) Values returned by the function are 16-bit integers ( [-32768 / +32767 ] ) ● Accelerometer values are always in the following ranges: ○ +/- 2 G ○ +/- 4 G ○ +/- 8 G ○ +/- 16 G In order to get the effective value for the acceleration we have to apply the following formula: ○ acc = ( raw * range) / INT16_MAX
  • 9. IMU - Sensors Rate The CurieIMU library allows developers to retrieve or setup the frequency at which sensors events are sent to the application. ● getAccelerometerRate()/getGyroRate(): ○ Returns the sensor data rate expressed in Hz ○ Values returned could be 12.5, 25, 50, 100, 200, 400, 800, 1600 for the accelerometer, and 12.5, 25, 50, 100, 200, 400, 800, 1600, 3200 for the gyroscope. Rate is important because if your application reads sensors registers faster than sensors rate you will read the same value more than once!! (even if there is no motion!).
  • 10. CurieIMU - Example The example provides an implementation of a remote controller for a 3D shape using the Intel Curie Module. The main tasks are: ● Device calibration ● Sensors interaction ● Shape orientation ( Madgwick filter ) ● Communication through serial port between the Intel Curie and the 3D application. Code link: https://github.com/davtir/curie-examples/tree/master/3D-Orientation
  • 11. 3 - Bluetooth Low Energy (BLE)
  • 12. Bluetooth Low Energy (BLE) What are the main analogies and differences between BLE and classic Bluetooth ? ● Different power consumption and targets: ○ Classic bluetooth was designed for continuous, streaming data applications. ○ BLE is generally used for applications that do not need to exchange large amounts of data. ● Same band but different approach: ○ Both BLE and bluetooth operates at 2.4 GHz ○ Differently from classic Bluetooth, BLE remains in sleep mode constantly except for when a connection is initiated. ● BLE connection times are only few ms (1 Mb/s data rate) unlike Bluetooth which would take ~100ms
  • 13. BLE - Devices Roles ● Peripheral: small, low power devices that can connect to a much more powerful central device. ● Central: mobile phones, tablets or laptop with much more processing power and memory than peripherals. Advertising Data Advertising Data Scan Response Request Scan Response Data Advertising Data Peripheral Central Advertising Interval Advertising Interval Advertising Interval
  • 14. BLE - Services and Characteristic ● Characteristics ○ It represents the shared resource among peripheral and centrals. ○ It is identified by a 16-bit or 128-bit UUID ● Services ○ Represents a service that is offered by peripherals and that interacts with one or more characteristic. ○ Similarly to characteristics, it is identified by a 16-bit or 128-bit UUID Service 16/128-bit UUID Characteristic 16/128-bit UUID Characteristic 16/128-bit UUID
  • 15. CurieBLE - Entities ● BLEPeripherals: ○ Constantly sends advertising packets ○ Receive connections from centrals ○ You can associated BLEServices and BLECharacteristic to this entity using the function addAttribute() ● BLEService ○ The service offered by the BLEPeripherals ● BLECharacteristic ○ The resource on which the service works ○ Can be define as: ■ BLERead: centrals are allowed to read the value of the characteristic ■ BLEWrite: centrals are allowed to write the value of the characteristic ■ BLENotify: centrals are allowed to get notifications when the value changes
  • 16. CurieBLE - Example The example provides an implementation of a dynamic blinking, i.e., you can control the velocity of the led blinking through a mobile device using BLE. The mobile device uses the nRF Master Control Panel application in order to send data to the Intel Curie. Code link: https://github.com/davtir/curie-examples/tree/master/dynamicBlink