We provide a library for the 6DOF IMU 13 Click Board™ 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 enable the use of the 6DOF IMU 13 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 and magnetometer, as well as generic read and write function that offers reading( and writing) of different lengths of data.
Key Functions
void c6dofimu13_get_magneto ( float *mag_x, float *mag_y, float *mag_z );
- Function is used to read magnetometer data.
void c6dofimu13_get_accel ( float *accel_x, float *accel_y, float *accel_z );
- Function is used to get acceleration rate.
void c6dofimu13_accel_init ( uint8_t samp_rate, uint8_t samp_range, uint8_t samp_res );
- Function is used to initialize accelerometer, user can select data rate, range and resolution.
Example Description
The application is composed of three sections :
- System Initialization - Initializes I2C module, LOG and GPIO structures, sets INT and AN pins as input.
- Application Initialization - Initialises I2C driver, initiates magnetometer and accelerometer and writes an initial log.
- Application Task - (code snippet) Demonstrates use of 6DOF IMU 13 click board by reading angular rate, acceleration rate and displaying data via USART terminal.
void application_task ( )
{
mikrobus_logWrite( "-----------------------", _LOG_LINE );
mikrobus_logWrite( " Magnetometer readings ", _LOG_LINE );
c6dofimu13_get_magneto ( &mag_x, &mag_y, &mag_z );
FloatToStr( mag_x, log_txt );
mikrobus_logWrite( "X-axis :", _LOG_TEXT );
mikrobus_logWrite( log_txt, _LOG_TEXT );
mikrobus_logWrite( "µT", _LOG_LINE );
FloatToStr( mag_y, log_txt );
mikrobus_logWrite( "Y-axis :", _LOG_TEXT );
mikrobus_logWrite( log_txt, _LOG_TEXT );
mikrobus_logWrite( "µT", _LOG_LINE );
FloatToStr( mag_z, log_txt );
mikrobus_logWrite( "Z-axis :", _LOG_TEXT );
mikrobus_logWrite( log_txt, _LOG_TEXT );
mikrobus_logWrite( "µT", _LOG_LINE );
mikrobus_logWrite( "-----------------------", _LOG_LINE );
Delay_ms( 500 );
mikrobus_logWrite( " Accelerometer readings ", _LOG_LINE );
c6dofimu13_get_accel( &acc_x, &acc_y, &acc_z );
FloatToStr( acc_x, log_txt );
mikrobus_logWrite( "X-axis :", _LOG_TEXT );
mikrobus_logWrite( log_txt, _LOG_TEXT );
mikrobus_logWrite( "g", _LOG_LINE );
FloatToStr( acc_y, log_txt );
mikrobus_logWrite( "Y-axis :", _LOG_TEXT );
mikrobus_logWrite( log_txt, _LOG_TEXT );
mikrobus_logWrite( "g", _LOG_LINE );
FloatToStr( acc_z, log_txt );
mikrobus_logWrite( "Z-axis :", _LOG_TEXT );
mikrobus_logWrite( log_txt, _LOG_TEXT );
mikrobus_logWrite( "g", _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:
Additional Notes and Information
Depending on the development board you are using, you may need a 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.