BNO055 - Orientation Sensor
Sensor has 3 sensor functions, accelerometer, gyroscope and geomagnetic function.
One of the most valuable feature is that sensor includes ARM Cortex-M0+ and fusion software function.
This means you can just use it without deep knowledge for motion control algorithm.
Please refer following wed page.
Fortunately, I got chip sample and evaluated it.
It's very easy to use from software point of view but it's very difficult to build up the hardware from chip because size is very small (5.2mm x 3.8mm x 1.1mm) and you need to solder over 16 pins.
3) Hardware Circuit
BNO055 Fusion control library
BNO055 Intelligent 9-axis absolute orientation sensor by Bosch Sensortec. It includes ACC, MAG and GYRO sensors and Cortex-M0+ processor.
Based on F401 example.Changed reset sequence and added RESET control and Power On/Off control. Check several mbed, LPC1768, LPC1114, NucleoF401RE, F411RE, L152RE and GR-PEACH
Another sample (old version)
As of April 8th, 2015
Power-on sequence and/or Reset sequence has a trouble. BNO055 nRESET control does NOT work well.
After reset, mbed cannot recognize BNO055 chip.
-> Added RESET pin control and Power ON/OFF control. (Done on April 7th, 2015)
2) For Nucle L152RE, I2C clock cannot set 400KHz due to reading data is not stable.
Tera Term output example (mbed board is at a standstill)
Euler Angles data
Heading:+227.0 [deg], Roll: +0.0 [deg], Pich: +0.0 [deg], #00
Heading:+227.0 [deg], Roll: +0.0 [deg], Pich: +0.0 [deg], #01
W:6583, X:-48, Y:6, Z:15003, #00
W:6583, X:-48, Y:6, Z:15003, #01
Linear accel data
X: +0.0 [m/s*s], Y: +0.0 [m/s*s], Z: +0.0 [m/s*s], #00
X: +0.0 [m/s*s], Y: +0.0 [m/s*s], Z: +0.0 [m/s*s], #01
Gravity vector data
X: +0.0 [m/s*s], Y: +0.0 [m/s*s], Z: +9.0 [m/s*s], #00
X: +0.0 [m/s*s], Y: +0.0 [m/s*s], Z: +9.0 [m/s*s], #01
Chip temperature data
Acc chip:+28 [degC], Gyr chip:+28 [degC], #00
Acc chip:+28 [degC], Gyr chip:+28 [degC], #01
This is only my Fusion setting condition, Fusion mode is NDOF.
I have NOT tried any other Fusion modes.
Data sheet said
Though the sensor fusion software runs the calibration algorithm of all the three sensors (accelerometer, gyroscope and magnetometer) in the background to remove the offsets, some preliminary steps had to be ensured for this automatic calibration to take place.
My understanding is that manual calibration is not mandatory but I implemented manual calibration method as an example in the above program.
Here is a result PDF file of the calibration execution.
Calibration Status Register
CALIB_STAT(0x35) is 4 calib. status. ->SYS Calib., GYR Calib., ACC Calib. and MAG Calib.
Gyro Calibration is very easy, just keep stable condition. It takes less than one second.
For Magnetometer Calibration, random moving (e.g. writing an 8 in the air) is required. It takes few seconds.
Accelerometer Calibration is difficult to done.If you rotate the BNO055 quickly, it's never done.
Data drift at stationary condition
Data writing an 8 in the air
Logging data: page 1 & 2, Graph: page 3
7 comments on BNO055 - Orientation Sensor:
Please log in to post comments.