Hello everyone. I am fairly new to Arduino. I am trying to make a device which could be mounted on a stick to find the horizontal plane.I have read a lot about IMU sensors and have made a digital compass using MPU 6050. I have noticed that the readings tend to change even on a stationary surface i have used kalman filter in the code and it gives some stabilization . I have come across BNO055 sensor which claims to give an absolute reading also invesense has an IMU 9050.
My Doubts:
1) Are BNO0055 and invesense9050 better sensors.
2) Is it practically possible to get a true horizontal position with an IMU sensor. ie x=180,y=0,z=0.
It's impossible to get any absolute value. There will always be an error. Just deside what error you can work with and aim for that. In your example would 1/10th of a degree be acceptable?
You only need a 2-axis accelerometer to find what is level. Many accelerometers are 3-axis, so you may end up using one of those. There is no advantage in having a device that measures magnetic fields or angular velocities as well.
An accuracy of 1 mg (1/1000 g, or 0.01 m/s2) will give you an angular accuracy of 1/20 of a degree.
Most accelerometers will have a noisy output that is improved by filtering for the speed of response that you want.
You also need to look at the temperature dependence of the signal. The Bosch BNO055 quotes a typical +/- 1mg/C so that would give you 0.5 degrees of angular error for a 10 deg C change. The LIS3DHH made by ST is better for that, as it's maximum shift is +/- 0.4 mg / C
Thanks everyone.
0.5 degrees of angular error for a 10 deg C change is acceptable but as mentioned by Diver300 LIS3DHH made by ST is better. I checked online and it is available as
Want to know if it works with arduino . I have a space constraint also so would like the sensor to be as small as possible. Any idea about the size of the adapter board.
The adapter board is made to fit a DIL24 pattern; two rows of 12 pins on 0.1" spacing between pins, and the rows 0.6" apart; the overall adapter is likely about 1.2" x 0.7"; 28 x 18mm approx.
The height is not mentioned, at a guess probably about 8 - 10mm. You could de-solder the pins and just use the PCB with wires attached, taking it down to 2 - 2.5mm
There appears to be Arduino support; some info here:
lis3dhh,stm32duino | Arduino library to support the LIS3DHH 3D accelerometer from Coder Social
coder.social
The commoner LIS3DH is readily available on various smaller adapter boards for hobby use, but it appears no one is making any other adapter for the DHH version.
It is also well supported on the Arduino.
The LIS3DH is a very popular low power triple-axis accelerometer. It's low-cost, but has just about every 'extra' you'd want in an accelerometer:Three axis sensing, ...
The device features ultra-low-power operational modes that allow advanced power saving and smart embedded functions. The self-test capability allows the user to check the functioning of the sensor in the final application.