6DOF IMU 21 click
PRVIH_PAR_RECENICA_SA_PRODUCT_PAGE_DA_ISPRATE_CELINU
[click Product page](CLICK_PRODUCT_PAGE_LINK)
Click library
- Author : Stefan Ilic
- Date : Dec 2023.
- Type : I2C/SPI type
Software Support
We provide a library for the 6DOF IMU 21 Click as well as a demo application (example), developed using MikroElektronika compilers. The demo can run on all the main MikroElektronika development boards.
Package can be downloaded/installed directly from NECTO Studio Package Manager(recommended way), downloaded from our LibStock™ or found on Mikroe github account.
Library Description
This library contains API for 6DOF IMU 21 Click driver.
Standard key functions :
c6dofimu21_cfg_setup
Config Object Initialization function.
void c6dofimu21_cfg_setup(c6dofimu21_cfg_t *cfg)
6DOF IMU 21 configuration object setup function.
6DOF IMU 21 Click configuration object.
Definition: c6dofimu21.h:296
c6dofimu21_init
Initialization function.
err_t c6dofimu21_init(c6dofimu21_t *ctx, c6dofimu21_cfg_t *cfg)
6DOF IMU 21 initialization function.
6DOF IMU 21 Click context object.
Definition: c6dofimu21.h:275
c6dofimu21_default_cfg
Click Default Configuration function.
err_t c6dofimu21_default_cfg(c6dofimu21_t *ctx)
6DOF IMU 21 default configuration function.
Example key functions :
c6dofimu21_software_reset
This function performs the device software reset.
err_t c6dofimu21_software_reset(c6dofimu21_t *ctx)
6DOF IMU 21 software reset device function.
c6dofimu21_read_accel_data
This function reads the accelerometer of X, Y, and Z axis relative to standard gravity (mg).
err_t c6dofimu21_read_accel_data(c6dofimu21_t *ctx, c6dofimu21_data_t *accel_data)
6DOF IMU 21 read accel function.
6DOF IMU 21 data object.
Definition: c6dofimu21.h:322
c6dofimu21_read_gyro_data
This function reads the angular rate of X, Y, and Z axis in degrees per second (mdps).
err_t c6dofimu21_read_gyro_data(c6dofimu21_t *ctx, c6dofimu21_data_t *gyro_data)
6DOF IMU 21 read gyro function.
Example Description
This example demonstrates the use of 6DOF IMU 21 click board by reading and displaying
the accelerometer and gyroscope data (X, Y, and Z axis).
The demo application is composed of two sections :
Application Init
Initializes the driver performs the click default configuration,
and checks communication by reading device ID.
{
log_cfg_t log_cfg;
LOG_MAP_USB_UART( log_cfg );
log_init( &logger, &log_cfg );
log_info( &logger, " Application Init " );
if ( ( I2C_MASTER_ERROR == init_flag ) || ( SPI_MASTER_ERROR == init_flag ) )
{
log_error( &logger, " Communication init." );
for ( ; ; );
}
{
log_error( &logger, " Default configuration." );
for ( ; ; );
}
uint8_t dev_id = 0;
{
log_error( &logger, " Communication error " );
}
log_printf( &logger, " Device ID: 0x%.2X \r\n", ( uint16_t ) dev_id );
log_info( &logger, " Application Task " );
}
@ C6DOFIMU21_ERROR
Definition: c6dofimu21.h:336
#define C6DOFIMU21_MAP_MIKROBUS(cfg, mikrobus)
MikroBUS pin mapping.
Definition: c6dofimu21.h:239
#define C6DOFIMU21_REG_DEVICE_ID
Definition: c6dofimu21.h:69
#define C6DOFIMU21_DEVICE_ID
6DOF IMU 21 device ID setting.
Definition: c6dofimu21.h:188
err_t c6dofimu21_generic_read(c6dofimu21_t *ctx, uint8_t reg, uint8_t *data_out, uint8_t len)
6DOF IMU 21 data reading function.
void application_init(void)
Definition: main.c:29
Application Task
Reading the accelerometer and gyroscope measurements, results are displayed on the USB UART every second.
{
log_printf( &logger, " Accel data | Gyro data \r\n" );
log_printf( &logger,
" X: %.2f mg | %.2f mdps \r\n", accel_data.
x_data, gyro_data.
x_data );
log_printf( &logger,
" Y: %.2f mg | %.2f mdps \r\n", accel_data.
y_data, gyro_data.
y_data );
log_printf( &logger,
" Z: %.2f mg | %.2f mdps \r\n", accel_data.
z_data, gyro_data.
z_data );
Delay_ms( 1000 );
}
void application_task(void)
Definition: main.c:74
float y_data
Definition: c6dofimu21.h:324
float z_data
Definition: c6dofimu21.h:325
float x_data
Definition: c6dofimu21.h:323
The full application code, and ready to use projects can be installed directly from NECTO Studio Package Manager(recommended way), downloaded from our LibStock™ or found on Mikroe github account.
Other Mikroe Libraries used in the example:
- MikroSDK.Board
- MikroSDK.Log
- Click.C6DOFIMU21
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. UART terminal is available in all MikroElektronika compilers.