TOP Contributors

  1. MIKROE (2784 codes)
  2. Alcides Ramos (404 codes)
  3. Shawon Shahryiar (307 codes)
  4. jm_palomino (133 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 (141101 times)
  2. FAT32 Library (73898 times)
  3. Network Ethernet Library (58546 times)
  4. USB Device Library (48723 times)
  5. Network WiFi Library (44371 times)
  6. FT800 Library (43971 times)
  7. GSM click (30717 times)
  8. mikroSDK (29471 times)
  9. PID Library (27283 times)
  10. microSD click (27092 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: 34 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

Voltmeter Click

0

Voltmeter Click is a mikroBUS™ add-on board for measuring voltage in an external electric circuit.

[Learn More]

Air quality 5 Click

0

Air quality 5 Click is a triple MOS sensor on a single Click board™, which can detect gas pollution for a number of different gases. The onboard sensor is specially designed to detect the pollution from automobile exhausts, as well as the gas pollution from the industrial or agricultural industry.

[Learn More]

BT Audio 3 Click

0

BT Audio 3 Click is a compact add-on board with high-performing voice and audio post-processing capability for Bluetooth audio applications. This board features the BM83, a fully certified Bluetooth v5.0 stereo audio module from Microchip. The BM83 contains an onboard Bluetooth stack and audio profiles and supports 24-bit/96 kHz high-resolution audio formats to enable high-fidelity wireless audio. An integrated Digital Signal Processor (DSP) decodes AAC and SBC codecs and executes advanced audio and voice processing such as Wide-Band (WB) speech, Acoustic Echo Cancellation (AEC), and Noise Reduction (NR). Configured in Host mode, the BM83 allows data processing via the UART interface, and in addition, comes with many additional features such as audio control buttons, onboard microphones, LED indicators, and more.

[Learn More]