TOP Contributors

  1. MIKROE (2784 codes)
  2. Alcides Ramos (382 codes)
  3. Shawon Shahryiar (307 codes)
  4. jm_palomino (118 codes)
  5. Bugz Bensce (97 codes)
  6. S P (73 codes)
  7. dany (71 codes)
  8. MikroBUS.NET Team (35 codes)
  9. NART SCHINACKOW (34 codes)
  10. Armstrong Subero (27 codes)

Most Downloaded

  1. Timer Calculator (139705 times)
  2. FAT32 Library (72097 times)
  3. Network Ethernet Library (57318 times)
  4. USB Device Library (47663 times)
  5. Network WiFi Library (43284 times)
  6. FT800 Library (42618 times)
  7. GSM click (29958 times)
  8. mikroSDK (28370 times)
  9. PID Library (26975 times)
  10. microSD click (26359 times)
Libstock prefers package manager

Package Manager

We strongly encourage users to use Package manager for sharing their code on Libstock website, because it boosts your efficiency and leaves the end user with no room for error. [more info]

< Back
mikroSDK Library

ML Vibro Sens Click

Rating:

0

Author: MIKROE

Last Updated: 2024-12-02

Package Version: 2.1.0.1

mikroSDK Library: 2.0.0.0

Category: Motion

Downloaded: 10 times

Not followed.

License: MIT license  

ML Vibro Sens Click is a compact add-on board for motion sensing and vibration analysis. This board features the FXLS8974CF, a 3-axis low-g 12-bit digital accelerometer from NXP designed for precise motion detection and data collection. This Click board™ represents a machine learning training tool that communicates with the host MCU over an I2C interface, with selectable addresses and dual operating modes for interrupt signaling or motion detection. It features two DC motors - a balanced motor for generating steady baseline vibrations and an unbalanced motor for customizable vibration patterns controlled via PWM or PDM signals.

No Abuse Reported

Do you want to subscribe in order to receive notifications regarding "ML Vibro Sens Click" changes.

Do you want to unsubscribe in order to stop receiving notifications regarding "ML Vibro Sens Click" changes.

Do you want to report abuse regarding "ML Vibro Sens Click".

  • Information
  • Comments (0)

mikroSDK Library Blog


ML Vibro Sens Click

ML Vibro Sens Click is a compact add-on board for motion sensing and vibration analysis. This board features the FXLS8974CF, a 3-axis low-g 12-bit digital accelerometer from NXP designed for precise motion detection and data collection. This Click board™ represents a machine learning training tool that communicates with the host MCU over an I2C interface, with selectable addresses and dual operating modes for interrupt signaling or motion detection. It features two DC motors - a balanced motor for generating steady baseline vibrations and an unbalanced motor for customizable vibration patterns controlled via PWM or PDM signals.

mlvibrosens_click.png

Click Product page


Click library

  • Author : Stefan Filipovic
  • Date : Nov 2024.
  • Type : I2C type

Software Support

We provide a library for the ML Vibro Sens 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 ML Vibro Sens Click driver.

Standard key functions :

  • mlvibrosens_cfg_setup Config Object Initialization function.

    void mlvibrosens_cfg_setup ( mlvibrosens_cfg_t *cfg );
  • mlvibrosens_init Initialization function.

    err_t mlvibrosens_init ( mlvibrosens_t *ctx, mlvibrosens_cfg_t *cfg );
  • mlvibrosens_default_cfg Click Default Configuration function.

    err_t mlvibrosens_default_cfg ( mlvibrosens_t *ctx );

Example key functions :

  • mlvibrosens_get_int_pin This function returns the interrupt pin logic state.

    uint8_t mlvibrosens_get_int_pin ( mlvibrosens_t *ctx );
  • mlvibrosens_get_data This function reads accel X, Y, and Z axis data in g and temperature in degrees Celsius.

    err_t mlvibrosens_get_data ( mlvibrosens_t *ctx, mlvibrosens_data_t *data_out );
  • mlvibrosens_set_vibro_state This function sets the vibro motors state.

    void mlvibrosens_set_vibro_state ( mlvibrosens_t *ctx, uint8_t state );

Example Description

This example demonstrates the use of the ML Vibro Sens Click board by capturing and logging acceleration data on the X, Y, and Z axes, along with temperature readings. The data is output over USB UART and can be visualized in real-time using tools like SerialPlot. Additionally, the vibro motor state changes periodically, cycling through different vibration states for added feedback.

The demo application is composed of two sections :

Application Init

Initializes the communication interface and configures the ML Vibro Sens Click board with default settings. This setup enables an interrupt on the INT pin when data is ready, sets the acceleration sensitivity to a +/-4G range, and sets the output data rate to 100 Hz.


void application_init ( void )
{
    log_cfg_t log_cfg;  /**< Logger config object. */
    mlvibrosens_cfg_t mlvibrosens_cfg;  /**< Click config object. */

    /** 
     * Logger initialization.
     * Default baud rate: 115200
     * Default log level: LOG_LEVEL_DEBUG
     * @note If USB_UART_RX and USB_UART_TX 
     * are defined as HAL_PIN_NC, you will 
     * need to define them manually for log to work. 
     * See @b LOG_MAP_USB_UART macro definition for detailed explanation.
     */
    LOG_MAP_USB_UART( log_cfg );
    log_init( &logger, &log_cfg );
    log_info( &logger, " Application Init " );

    // Click initialization.
    mlvibrosens_cfg_setup( &mlvibrosens_cfg );
    MLVIBROSENS_MAP_MIKROBUS( mlvibrosens_cfg, MIKROBUS_1 );
    if ( I2C_MASTER_ERROR == mlvibrosens_init( &mlvibrosens, &mlvibrosens_cfg ) )
    {
        log_error( &logger, " Communication init." );
        for ( ; ; );
    }

    if ( MLVIBROSENS_ERROR == mlvibrosens_default_cfg ( &mlvibrosens ) )
    {
        log_error( &logger, " Default configuration." );
        for ( ; ; );
    }

    log_info( &logger, " Application Task " );
}

Application Task

Monitors the data-ready interrupt, retrieves acceleration and temperature data when available, and logs it over USB UART in the format X;Y;Z;TEMP. After every 1000 data readings, the vibro motor state cycles through predefined states to demonstrate the motor's functionality.

void application_task ( void )
{
    static uint8_t vibro_state = MLVIBROSENS_VIBRO_STATE_IDLE;
    static uint16_t result_num = 0;
    static mlvibrosens_data_t accel_data;

    // Wait for a data ready interrupt
    while ( mlvibrosens_get_int_pin ( &mlvibrosens ) );

    if ( MLVIBROSENS_OK == mlvibrosens_get_data ( &mlvibrosens, &accel_data ) )
    {
        log_printf ( &logger, "%f;%f;%f;%d;\r\n", accel_data.x, accel_data.y, 
                                                  accel_data.z, accel_data.temperature ); 
    }
    if ( ++result_num > 1000 )
    {
        result_num = 0;
        if ( ++vibro_state > MLVIBROSENS_VIBRO_STATE_BOTH )
        {
            vibro_state = MLVIBROSENS_VIBRO_STATE_IDLE;
        }
        mlvibrosens_set_vibro_state ( &mlvibrosens, vibro_state );
    }
}

Note

We recommend using the SerialPlot tool for data visualization. The temperature measurements should be visualized independently. The data format for plotter is as follows: X;Y;Z;TEMP;

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.MLVibroSens

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.


ALSO FROM THIS AUTHOR

IR Grid 3 Click

0

IR Grid 3 Click is a thermal imaging sensor. It has an array of 768 very sensitive, factory calibrated IR elements (pixels), arranged in 32 rows of 24 pixels, each measuring an object temperature up to 300˚C within its local Field of View (FOV). The MLX90640ESF-BAA IR sensor used on this Click board™ has only four pins, and it is mounted inside of the industry standard TO39 package.

[Learn More]

Heart Rate 5 Click

0

Heart Rate 5 Click is the optical biosensor Click board™ which can be used for the heart-rate monitoring (HRM), as well as the peripheral capillary oxygen saturation monitoring (SpO2). This Click board™ employs a very sensitive analog front-end IC with high dynamic range, which ensures accurate and reliable readings.

[Learn More]

DC Motor 8 Click

0

DC Motor 8 Click is a DC motor driver. It can drive simple DC motors with brushes, providing them with a significant amount of current and voltage up to 40V. The Click has one control input, that uses the PWM signal from the host MCU. It uses the half-bridge topology to regulate the speed of the motor rotation, employs advanced dead-time circuitry that monitors the output stage, providing maximum switching efficiency and features an advanced technique to avoid shoot-through currents.

[Learn More]