Upload
haxuyen
View
256
Download
2
Embed Size (px)
Citation preview
Open.MEMS
What is Open.MEMS? 2
Open.MEMS licensing program is born to offer to our customers an easy way to evaluate,
program and play with sensors, speeding up production development and shortening time-to-
development.
To encourage broad use of its MEMS and sensors to all the customers and open-
community developers, the program makes freely available to Open.MEMS licensees drivers,
middleware, and application software, beginning with sensor fusion for 3-axis accelerometer,
3-axis gyroscope, and 3-axis magnetometer, considered vital for many portable and wearable
applications. ST anticipates continuing expansion of the Open.MEMS program with additional
and complementary software libraries, including, for example, blocks for pedometers, tilted
compasses, gesture-recognition, activity monitoring and pedestrian dead reckoning.
The Open.MEMS program is supported by ST’s STM32 Open Development platform, an
open, affordable, and extensible platform for product prototyping and development based on
ST’s industry-leading STM32 ARM® Cortex®-M processor-core microcontrollers and
integrating a wide range of other ST components for various sense, control, connectivity, and
other functions.
After acquiring an STM32 Nucleo development board, developers only need to download
and install STM32Cube development tools, STM32 Nucleo expansion software and additional
value-libraries. Once they have agreed to an online, click-through license agreement, they will
quickly receive a unique key for their STM32 Nucleo development board. Copying the key into
the software will automatically unlock all APIs (application programming interfaces) in each ST
value-library, and in as little as 5 minutes, they can be working on their prototype.
3
STM32 Nucleo expansion boards
Open.MEMS web siteopen.MEMS web site address: www.st.com/openmems
MEMS Sensors Expansion boardfor STM32 Nucleo
4
X-NUCLEO-IKS01A1
The X-NUCLEO-IKS01A1 is a MEMS inertial and
environmental sensor evaluation board system.
It is compatible with the Arduino UNO R3 connector
layout, and is designed around STMicroelectronics’
LSM6DS0 3-axis accelerometer + 3-axis gyroscope,
the LIS3MDL 3-axis magnetometer, the HTS221
humidity sensor and the LPS25HB pressure sensor.
Key Features
• LSM6DS0: MEMS 3D accelerometer (±2/±4/±8 g) + 3D
gyroscope (±245/±500/±2000 dps)
• LIS3MDL: MEMS 3D magnetometer (±4/ ±8/ ±12/ 16 gauss)
• LPS25HB: MEMS pressure sensor, 260-1260 hPa absolute
digital output barometer
• HTS221: capacitive digital relative humidity and temperature
• DIL 24-pin socket available for additional MEMS adapters and
other sensors
• Free comprehensive development firmware library and
example for all sensors compatible with STM32Cube firmware
Open.MEMS in 5 stepsStart coding your ideas in just few minutes
5
Installer
Download X-CUBE_MEMS2www.st.com/openmems
www.st.com
License request
License activation
Start developing
IAR v7.xx(demo project included)
1
2
3
4
5
X-CUBE-MEMS2
After receive the license authorization email,
replace the osx-mfx-license values with the new one
(osx_license.h)
Connect the Nucleo board to PC with USB,Then fill and mail the form for license request.
Open MotionFX demo project
How to download code (1)
• Method 1: using IAR to download as the following picture
6
Step 2: select download file
Step 1: select Project → Download → Download file
Step 1
Step 3: restart Nucleo board
How to download code (2)• Method 2: use Nucleo drive to download as the following picture
7
Step 2: drag and drop on your Nucleo drive
Step 1: select Download file (.bin file) from your IAR projects.
Step 3: restart the Nucleo board
How to demonstrate Sensor Fusion GUI 8
① A STLink Virtual COM Port will be display under device manager when the Nucleo boardconnects to PC.
② Open the Sensor Fusion GUI, customer may select
the display type for Sensor Data or Fusion Data.
Sensor Data Fusion Data
MotionFX Package 9
MotionFX Fusion fuction
osx_MotionFX_initialize() Initialize the sensor fusion engine
osx_MotionFX_getKnobs() Get the knobs from the library
osx_MotionFX_setKnobs() Set the knobs from the library
osx_MotionFX_enable_6X() Enable/disable the 6X algorithm (A+G)
osx_MotionFX_enable_9X() Enable/disable the 9X algorithm (A+G+M)
osx_MotionFX_get_status_6X() Get the status of the 6X algorithm (A+G)
osx_MotionFX_get_status_9X() Get the status of the 9X algorithm(A+G+M)
osx_MotionFX_setGbias() Set the Gyro bias in the lib
osx_MotionFX_getGbias() Get the Gyro bias from the lib
osx_MotionFX_update() Run the Kalman filter update
osx_MotionFX_propagate() Run the Kalman filter propagate
osx_MotionFX_getLibVersion() Get the lib versionCompass calibration function
osx_MotionFX_compass_Init() Initialize the compass calibration lib
osx_MotionFX_compass_SaveAcc() Set the acc data into the lib
osx_MotionFX_compass_SaveMag() Set the mag data into the lib
osx_MotionFX_compass_Run() Run the calibration algorithm
osx_MotionFX_compass_isCalibrated() Check if calibration is needed
osx_MotionFX_compass_ForceReCalibration() Force new Recalibration
osx_MotionFX_compass_getCalibrationData() Get Calibration Data
osx_MotionFX_compass_SetCalibrationData() Set Calibration Data
MotionFX uses advanced algorithms to
integrate outputs from multiple MEMS
sensors cleverly and independently of
environmental conditions, for maximum
performance. Real-time motion-sensor data
fusion is set to significantly improve the user
experience, increasing accuracy, resolution,
stability and response time in advanced
motion-based applications in consumer,
computer, industrial and medical fields.
MotionFX will include library and application
code for the 3 IDE (Kei, IAR, Atollic).
MotionFX can be combined with ST's
MotionFX inertial modules to create
the industry's first complete and
customizable hardware/software
multi-axis MEMS sensor solutions for
enhanced motion and accurate
heading recognition.
Usage restriction for MotionFX lib
The library works only on the NUCLEO-F401RE board at present, in
future it could also apply to different STM32 product families.
The lib is node-locked to the specific NUCLEO-F401RE board once
the license activated.
The production library needs LUA to apply.
This lib cannot used for Android OS, Smartphone lib, need LUA here
is need lib.
10