6DOF IMU 7 CLICK
PID: MIKROE-3776 Weight: 25 g
6DOF IMU 7 Click is an advanced 6-axis motion tracking Click board™, which utilizes
the ICM-20649, a high-performance integrated motion sensor, equipped with a 3-axis
gyroscope, and a 3-axis accelerometer. There is a MEMS structure hermetically sealed
and bonded at wafer level. Data streams from each axis are fed to a signal processing
engine, offering calibrated readings of each axis over the I2C interface. This Click
board™ represents an ideal solution for development applications in sports, wearable
sensors and high impact applications.
6DOF IMU 7 Click is supported by a mikroSDK compliant library, which includes
functions that simplify software development. This Click board™ comes as a fully tested
product, ready to be used on a system equipped with the mikroBUS™ socket.
HOW DOES IT WORK?
6DOF IMU 7 click is based on the ICM-20649, a high-performance, 6-axis MEMS
MotionTracking™ IC from TDK Invensense. It is an advanced, integrated
microelectromechanical gyroscope and accelerometer sensor (MEMS). This allows very
high integration and very small dimensions, at an affordable cost. The IC contains a
MEMS structure hermetically sealed and bonded at wafer level. The ICM-20649 is the
world’s first wide-range 6-axis MotionTracking device for Sports and other High Impact
applications. It is available in a 3x3x0.9 mm 24-pin QFN package.
Many of today’s wearable and sports solutions, which analyze the motion of a user’s
golf or tennis swings, soccer ball kicks, or basketball activities, require higher than
currently available ±2000 dps (degrees per second) FSR for gyroscope and ±16g FSR
for accelerometer to better insure that critical data is not lost at the point of high impact
or high speed rotation. The ICM-20649 - 6-axis inertial sensor used on the 6DOF IMU 7
click offers the smallest size, lowest profile and lowest power in conjunction with
industry leading high FSR. With an extended FSR range of ±4000 dps for gyroscope
and ±30g for accelerometer, it enables precise analysis of contact sports applications
providing continuous motion sensor data before, during and after impact providing more
accurate feedback.
ICM-20649 devices, with their 6-axis integration, on-chip DMP, and run-time calibration
firmware, enable manufacturers to eliminate the costly and complex selection,
qualification, and system level integration of discrete devices, guaranteeing optimal
motion performance for consumers. The gyroscope has a programmable full-scale
range up to ±4000 dps. The accelerometer has a user-programmable accelerometer
full-scale range up to ±30g. Factory-calibrated initial sensitivity of both sensors reduces
production-line calibration requirements. Other key features include on-chip 16-bit
ADCs, programmable digital filters, an embedded temperature sensor, and
programmable interrupts.
The embedded Digital Motion Processor (DMP) within the ICM-20649 offloads
computation of motion processing algorithms from the host processor. The DMP
acquires data from accelerometers, gyroscopes, and additional third party sensors such
as magnetometers, and processes the data. The resulting data can be read from the
512 bytes FIFO that is accessible via the I2C Serial Interface. The FIFO configuration
register determines which data is written into the FIFO. The interrupt function may be
used to determine when new data is available.
SPECIFICATIONS
Type
Motion
Applications
It is a perfect solution for development of different types of motion
detection and MotionTracking™ applications: sports, wearable
sensors and high impact applications
On-board
modules
ICM-20649, a high-performance, 6-axis MEMS MotionTracking™
IC from TDK Invensense.
Key Features
MEMS structure hermetically sealed and bonded at wafer level,
512-byte FIFO buffer enables the applications processor to read
the data in bursts • On-Chip 16-bit ADCs and Programmable
Filters
Interface
I2C
Compatibility
mikroBUS
Click board
size
S (28.6 x 25.4 mm)
Input Voltage
3.3V
PINOUT DIAGRAM
This table shows how the pinout on 6DOF IMU 7 Click corresponds to the pinout on the
mikroBUS™ socket (the latter shown in the two middle columns).
Notes
Pin
NC
Pin
1
AN
PWM
16
INT2
Notes
External Sync
NC
2
RST
INT
15
INT1
NC
3
CS
RX
14
NC
NC
4
SCK
TX
13
NC
NC
5
MISO
SCL
12
SCL
I2C Clock
NC
6
MOSI
SDA
11
SDA
I2C Data
Power Supply
3.3V
7
3.3V
5V
10
NC
Ground
GND
8
GND
GND
9
GND
Interrupt
Ground
ONBOARD SETTINGS AND INDICATORS
Label
Name
Default
LD1
PWR
-
JP1
ADD SEL
Left
Description
Power LED Indicator
Slave I2C address LSB selection: left position 0, right
position 1
SOFTWARE SUPPORT
We provide a library for the 6DOF IMU 7 Click on our LibStock page, as well as a demo
application (example), developed using MikroElektronika compilers. The demo can run
on all the main MikroElektronika development boards.
Library Description
The library covers all the necessary functions that enables the usage of the 6DOF IMU
7 Click board. It initializes and defines the I2C bus driver and drivers that offer a
plethora of settings. The library also offers functions that allow reading of
accelerometer,gyroscope and dye temperature, as well as generic read and write
function that offer reading( and writing) of different lenghts of data(byte, word or user
defined number of bytes).
Key functions:
void c6dofimu7_Gyroscope( float *xGyro, float *yGyro, float *zGyro, float gyroSens ) -
Function is used to get angular momentum.
void c6dofimu7_Accelerometer( float *xAccel, float *yAccel, float *zAccel, float
accelSens ) - Function is used to get acceleration measurement.
float c6dofimu7_getTemperatureC( float tempSens, float tempOffset ) - Function is used to get
temperature in degree.
Examples description
The application is composed of three sections :
System Initialization - Initializes I2C module, LOG and GPIO structures, sets INT and PWM pins as
input.
Application Initialization - Initalizes I2C driver, applies default setup and writes an initial log.
Application Task - (code snippet)This example demonstrates the use of 6DOF IMU 7 Click board. It
calculates angular momentum, acceleration measurement and temperature in degree Centigrade.
Results are displayed on USART terminal.
void applicationTask()
{
c6dofimu7_Gyroscope( &xGyro, &yGyro, &zGyro, gyroSens );
FloatToStr( xGyro, logTxt );
mikrobus_logWrite( "X angular rate: ", _LOG_LINE );
Ltrim( logTxt );
mikrobus_logWrite( logTxt, _LOG_LINE );
FloatToStr( yGyro, logTxt );
mikrobus_logWrite( "Y angular rate: ", _LOG_LINE );
Ltrim( logTxt );
mikrobus_logWrite( logTxt, _LOG_LINE );
FloatToStr( zGyro, logTxt );
mikrobus_logWrite( "Z angular rate: ", _LOG_LINE );
Ltrim( logTxt );
mikrobus_logWrite( logTxt, _LOG_LINE );
mikrobus_logWrite( "‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐", _LOG_LINE );
c6dofimu7_Accelerometer( &xAccel, &yAccel, &zAccel, accelSens );
FloatToStr( xAccel, logTxt );
mikrobus_logWrite( "X acceleration rate: ", _LOG_LINE );
Ltrim( logTxt );
mikrobus_logWrite( logTxt, _LOG_LINE );
FloatToStr( yAccel, logTxt );
mikrobus_logWrite( "Y acceleration rate: ", _LOG_LINE );
Ltrim( logTxt );
mikrobus_logWrite( logTxt, _LOG_LINE );
mikrobus_logWrite( "Z acceleration rate: ", _LOG_LINE );
Ltrim( logTxt );
FloatToStr( zAccel, logTxt );
mikrobus_logWrite( logTxt, _LOG_LINE );
mikrobus_logWrite( "‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐", _LOG_LINE );
temperature = c6dofimu7_getTemperatureC( tempSens, tempOffset );
mikrobus_logWrite( "Temperature: ", _LOG_LINE );
Ltrim( logTxt );
FloatToStr( temperature, logTxt );
mikrobus_logWrite( logTxt, _LOG_TEXT );
mikrobus_logWrite( degCel, _LOG_LINE );
mikrobus_logWrite( "‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐", _LOG_LINE );
Delay_ms( 1000 );
}
The full application code, and ready to use projects can be found on our LibStock page.
Other mikroE Libraries used in the example:
I2C
UART
Conversions
Additional notes and informations
Depending on the development board you are using, you may need USB UART
click, USB UART 2 click or RS232 click to connect to your PC, for development systems
with no UART to USB interface available on the board. The terminal available in all
MikroElektronika compilers, or any other terminal application of your choice, can be
used to read the message.
MIKROSDK
This Click board™ is supported with mikroSDK - MikroElektronika Software
Development Kit. To ensure proper operation of mikroSDK compliant Click board™
demo applications, mikroSDK should be downloaded from the LibStock and installed for
the compiler you are using.
For more information about mikroSDK, visit the official page.
https://www.mikroe.com/6dof‐imu‐7‐click/11‐8‐19