9dof3 2.2.0
9dof3


9DOF 3 Click

9DOF 3 Click demo application is developed using the NECTO Studio, ensuring compatibility with mikroSDK's open-source libraries and tools. Designed for plug-and-play implementation and testing, the demo is fully compatible with all development, starter, and mikromedia boards featuring a mikroBUS™ socket.


Click Library

  • Author : MikroE Team
  • Date : jun 2020.
  • Type : I2C/SPI type

Software Support

Example Description

This Click introduces a small-scale absolute orientation sensor in the class of low-noise 9-axis measurement units. It comprises the full functionality of a triaxial, low-g acceleration sensor, a triaxial angular rate sensor and a triaxial geomagnetic sensor. All three sensor components can be operated and addressed independently from each other. 9DOF 3 Click offers both SPI and I2C digital interfaces

Example Libraries

  • MikroSDK.Board
  • MikroSDK.Log
  • Click.9Dof3

Example Key Functions

Application Init

Initialization driver enables - I2C or SPI, check communication, set default configuration for accelerometer, gyroscope and magnetometer, also write log.

void application_init ( void )
{
log_cfg_t log_cfg;
LOG_MAP_USB_UART( log_cfg );
log_init( &logger, &log_cfg );
log_info( &logger, "---- Application Init ----" );
// Click initialization.
C9DOF3_MAP_MIKROBUS( cfg, MIKROBUS_1 );
c9dof3_init( &c9dof3, &cfg );
Delay_ms ( 100 );
{
log_printf( &logger, " Communication OK \r\n" );
}
else
{
log_printf( &logger, " Communication ERROR \r\n" );
log_printf( &logger, " Reset the device \r\n" );
log_printf( &logger, "-------------------------\r\n" );
for ( ; ; );
}
log_printf( &logger, "-------------------------\r\n" );
c9dof3_default_cfg( &c9dof3 );
Delay_ms ( 100 );
}
#define C9DOF3_ACC_COMM_SUCCESS
Definition c9dof3.h:407
#define C9DOF3_GYRO_COMM_SUCCESS
Definition c9dof3.h:409
#define C9DOF3_MAG_COMM_SUCCESS
Definition c9dof3.h:411
#define C9DOF3_MAP_MIKROBUS(cfg, mikrobus)
Definition c9dof3.h:68
void application_init(void)
Definition main.c:44

Application Task

This is an example which demonstrates the use of 9DOF 3 Click board. Measures and displays Accel, Gyroscope and Magnetometer 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 1 sec.

void application_task ( void )
{
log_printf( &logger, " Accel X: %d | Gyro X: %d | Mag X: %d\r\n", accel_data.x, gyro_data.x, mag_data.x );
log_printf( &logger, " Accel Y: %d | Gyro Y: %d | Mag Y: %d\r\n", accel_data.y, gyro_data.y, mag_data.y );
log_printf( &logger, " Accel Z: %d | Gyro Z: %d | Mag Z: %d\r\n", accel_data.z, gyro_data.z, mag_data.z );
log_printf( &logger, "------------------------------------------\r\n" );
Delay_ms ( 1000 );
}
void application_task(void)
Definition main.c:88

Application Output

This Click board can be interfaced and monitored in two ways:

  • Application Output - Use the "Application Output" window in Debug mode for real-time data monitoring. Set it up properly by following this tutorial.
  • UART Terminal - Monitor data via the UART Terminal using a USB to UART converter. For detailed instructions, check out this tutorial.

Additional Notes and Information

The complete application code and a ready-to-use project are available through the NECTO Studio Package Manager for direct installation in the NECTO Studio. The application code can also be found on the MIKROE GitHub account.