# 9-Axis IMU LESSON 3: Understanding How Accelerometers Work

In this lesson we describe how the acceleromters on chips like the Adafruit BNO055 work. They work based on microscopic masses suspended on springs on the chip. As the chip moves, the suspended masses respond to the motion, and the gaps between the suspended masses and the substrate changes. The chips detect these changes in position by monitoring the capacitance between the suspended mass and the substrate, or between the suspended masses and carefully designed interdigitated fingers between the mass and the substrate. C=eA/d, e is the dielectric constant of the material, A is the area of the capacitor, and d is the gap between the two capacitor plates. Changes in measured capacitance come from either a change in A or a change in d. Both d and A change in response to motion, so by monitoring the capacitance of the suspended mass, acceleration can be inferred. The video below explains clearly how this works.

Code for Getting Raw Acceleration Data from the BNO055 9-axis Inertial Measurement Sensor.

The code below is for demo purposes only, and should not be used in any real applications. It just demonstrates how to work with this sensor in benchtop presentations.

# IMUl 9-Axis IMU LESSON 2: Connecting and Getting Raw Data from the BNO055 9-Axis Sensor

In this tutorial we show you how to get raw sensor data from the Adafruit BNO055 9-axis sensor. We are using an Arduino Nano, since it allows for neat, compact builds on a breadboard. The sensor can provide acceleration along x,y and z axis, rotational velocities around x, y and z axis, as well as the strength of the earth’s magnetic vector along the sensor’s x, y, and z axis. The sensor can do a lot more than this, but to get things started, we will show you how to get these raw sensor readings from the device.

The video shows you how to connect the sensor, and below we include the code developed in the video. We strongly suggest you type the code in yourself, as you follow along with the video. You will never learn how to develop projects on your own, if you just copy and paste my code.

The code below is for demo purposes only, and should not be used in any real applications. It just demonstrates how to work with this sensor in benchtop presentations.