2025-02-07 12:48 PM
Hi,
We are developing a product/device that is mounted on a machine/vehicle that generates vibrations when in the ON state. We need a sensor that can
1.. Detect vibration start and stop while the device is stationary, with good accuracy, to determine when the machine is ON and for how long.
2. Differentiate between vibration and actual motion, meaning it should detect when the device is no longer stationary and has started moving in any direction in on condition with vibration.
3. Detect motion in the OFF state, where the machine is off (no vibration), but the device itself has started moving and trigger an interrupt to alert the MCU.
Note: We can measure and predefine the acceleration threshold that should be considered as vibration.
Is there a sensor with an internal mechanism that can directly provide output to differentiate between vibration and motion?
Thanks,
Jay
2025-02-08 1:53 AM
You might be looking for an Accelerometer and Gyroscope sensor. Try searching.
The design logic is quite correlated to your application using an Accelerometer and Gyroscope sensor. You might want to use some open source code as a base for your application development. Try searching it, too.
There are some Accelerometer and Gyroscope sensor modules as electrical LEGO bricks, based on which you could build a prototype quickly.
2025-02-09 12:48 PM
yes, i want specific sensor as suggestion, and already described my use case i didn't have expertise on Which is best fit for my application. that's why i need your input for our low power application.
2025-02-10 6:31 PM
Try MPU6050 or MPU9250 from TDK. There also some modules built with these chips and some Arduino Libs are available.
2025-02-11 9:01 AM
This is an ST forum and one should recommend ST products.
2025-02-11 9:15 AM
The best accelerometer depends on the intensity and bandwidth of the vibrations you need to measure.
For example, if the bandwidth of the vibrations is really large, you would need to use a wide band accelerometer such as IIS3DWB which has a 6kHz bandwidth with an output data rate of 26.7kHz (max full scale is 16g).
If the vibrations are really strong, you would need to use an high-g acceleremoter such as H3LIS331 which has a full scale up to 400g (max output data rate is 1kHz meaning vibrations up to 500Hz can be measured in the best case).
If the vibrations intensity is below 16g or 32g and bandwidth is below 3.5kHz then LSM6DSV16X or LSM6DSV32X can fit the bill. Both are equipped with MLC (machine learning core) and FSM (finite state machine) engines.
With MLC you can digitally filter the data, extract features (such as norm), and run a decision tree to detect what is happening. You just collect data logs and run MEMS Studio, MLC tool, to automatically select the best feature/filter and automatically design the decision tree. Multiple decision trees can be run in parallel.
With FSM you can detect if a specific sequence of events has happened. Again, use MEMS Studio, FSM tool, to write the program, which is made of a sequence of conditions related to acceleration, time, or MLC outputs, that must be met for the end state to be reached (which is where you typically trigger an interrupt). Multiple FSM programs can be run in parallel.
The first step would then be to collect the logs with the sensor of choice and have a look at the data in the time and frequency domain (FFT), MEMS Studio can be used for that. After that, one can verify if vibrations can be isolated by a suitable 2nd order IIR filter (check the app note dedicated to MLC to learn more); one can also check if a suitable lowpass filter can isolate the components needed to check the gravity vector and the presence of any residual acceleration.
The gyro can also help in case motion does also mean a change in orientation.
2025-02-11 7:35 PM
Sorry for that. I have only ever used these kind of models.