How does it work?
Main component on 6DOF IMU 11 click is the KMX63 from Kionix (ROHM company), a tri-axis accelerometer, tri-axis magnetometer, and temperature sensor on a single chip combo solution. The Accelerometer and Magnetometer data can be accumulated in an internal 384-byte FIFO buffer and transmitted to the application processor.
Acceleration sensing is based on the principle of a differential capacitance arising from acceleration induced motion of the sense element, which utilizes common mode cancellation to decrease errors from process variation, temperature, and environmental stress. Capacitance changes are amplified and converted into digital signals which are processed by a dedicated digital signal processing unit. The digital signal processor applies filtering, bias, and sensitivity adjustments, as well as temperature compensation.
Magnetic sensing is based on the principle of magnetic impedance. The magnetic sensor detects very small magnetic fields by passing an electric pulse through a special electron spin aligned amorphous wire. Due to the high Curie temperature of the wire, the sensor's thermal performance shows excellent stability.
Noise performance is excellent with bias stability over temperature. Bias errors resulting from assembly can be trimmed digitally by the user. These sensors can accept supply voltages between 1.7V and 3.6V, and digital communication voltages from the MCU between 1.2V and 3.6V.
The Kionix KMX63 digital sensor can communicate on the I2C digital serial interface bus. This flexibility allows for easy system integration by eliminating analog-to-digital converter requirements and by providing direct communication with system processors. The I2C interface is compliant with high-speed mode, fast mode, and standard mode I2C protocols.
With 6DOF IMU 6 click you may communicate by using I2C serial interface. The I2C is primarily used for serial communication between a Master device and one or more Slave devices. The KMX63 always operates as a Slave device during standard Master-Slave I2C operation.
Given all of the possibilities its features offer, the 6DOF IMU 11 click can be used for applications which require movement and orientation features, such as screen orientation, navigation, game playing, machine/vibration analysis, etc...
Specifications
Type |
Motion |
Applications |
A magnetometer accelerometer can be used to enable a variety of simultaneous features for Machine health, screen orientation, navigation, faming, automatic sleep mode |
On-board modules |
KMX63, a 6 Degrees-of-Freedom inertial sensor system from Kionix |
Key Features |
Programmable ±8g/±16g/±32g/±64g full scale range accelerometer range and a +/-1200 µT range for the magnetometer |
Interface |
GPIO,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 11 click corresponds to the pinout on the mikroBUS™ socket (the latter shown in the two middle columns).
Notes |
Pin |
|
Pin |
Notes |
---|
|
NC |
1 |
AN |
PWM |
16 |
GP1 |
General purpose #1 |
|
NC |
2 |
RST |
INT |
15 |
GP2 |
General puprpose #2 |
|
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 |
Ground |
Software Support
We provide a library for the 6DOF IMU 11 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 to control 6DOF IMU 11 click board. Library performs a standard I2C interface communication.
Key functions:
void c6dofimu11_set_default_sensor_config ( void )
- Set default sensor configuration function.
void c6dofimu11_read_accel ( c6dofimu11_accel_t *accel_data )
- Get Accel range X, Y and Z value function.
void c6dofimu11_read_mag ( c6dofimu11_mag_t *mag_data )
- Get Magnetometer magnetic field strength X, Y and Z value ( nT ) function.
Examples description
The application is composed of three sections :
- System Initialization - Initializes I2C and start to write log.
- Application Initialization - Initialization driver enables - I2C, check device ID, sets default configuration, also write log.
- Application Task - (code snippet) This is an example which demonstrates the use of 6DOF IMU 11 Click board. Measured and display Accel and Magnetometer magnetic field strength values for X-axis, Y-axis and Z-axis. Results are being sent to the Usart Terminal where you can track their changes. All data logs write on USB uart changes for every 2 sec.
void application_task ( )
{
c6dofimu11_read_accel ( &accel_data );
Delay_ms( 10 );
c6dofimu11_read_mag ( &mag_data );
Delay_ms( 10 );
mikrobus_logWrite( " Accel X : ", _LOG_TEXT );
FloatToStr( accel_data.x, log_text );
c6dofimu11_uart_sign_print( );
mikrobus_logWrite( log_text, _LOG_TEXT );
mikrobus_logWrite( " g", _LOG_LINE );
mikrobus_logWrite( " Accel Y : ", _LOG_TEXT );
FloatToStr( accel_data.y, log_text );
c6dofimu11_uart_sign_print( );
mikrobus_logWrite( log_text, _LOG_TEXT );
mikrobus_logWrite( " g", _LOG_LINE );
mikrobus_logWrite( " Accel Z : ", _LOG_TEXT );
FloatToStr( accel_data.z, log_text );
c6dofimu11_uart_sign_print( );
mikrobus_logWrite( log_text, _LOG_TEXT );
mikrobus_logWrite( " g", _LOG_LINE );
mikrobus_logWrite( "- - - - - - - - - - - - - ", _LOG_LINE );
mikrobus_logWrite( " Mag X : ", _LOG_TEXT );
FloatToStr( mag_data.x, log_text );
c6dofimu11_uart_sign_print( );
mikrobus_logWrite( log_text, _LOG_TEXT );
mikrobus_logWrite( " uT", _LOG_LINE );
mikrobus_logWrite( " Mag Y : ", _LOG_TEXT );
FloatToStr( mag_data.y, log_text );
c6dofimu11_uart_sign_print( );
mikrobus_logWrite( log_text, _LOG_TEXT );
mikrobus_logWrite( " uT", _LOG_LINE );
mikrobus_logWrite( " Mag Z : ", _LOG_TEXT );
FloatToStr( mag_data.z, log_text );
c6dofimu11_uart_sign_print( );
mikrobus_logWrite( log_text, _LOG_TEXT );
mikrobus_logWrite( " uT", _LOG_LINE );
mikrobus_logWrite( "--------------------------", _LOG_LINE );
Delay_ms( 1000 );
}
Additional Functions :
void c6dofimu11_uart_sign_print ( )
- For beauty reasons in displaying the data log, this function inserts "+" sign when positive values have been read.
The full application code, and ready to use projects can be found on our LibStock page.
Other mikroE Libraries used in the example:
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.
Resources
Downloads