# 9-Axis Inertial Measurement Unit (IMU)

In this series of lessons, we will teach you step by step how to create an intelligent 9-axis IMU using the Arduino microcontroller and a BNO055 sensor. We will explain how the acceleromters, gyros and magnetometers work, and we will take you through the math you need to know. Additionally we will show you how to visualize the data coming from the sensor in stunning Vpython 3D simulations. We will explain in detail both Euler Angles and Quaternions. Below are links to all the lessons in this incredible free class.  To play along at home, you will need an Arduino Nano, and an Adafruit BNO055 Inertial Measurement Sensor.

9-Axis IMU LESSON 1: Introduction to Inertial Measurement Systems

9-Axis IMU LESSON  2: Connecting the BNO055 to the arduino and Collecting Raw Sensor Data

9-Axis IMU LESSON  3: Understanding How Accelerometers Work

9-Axis IMU LESSON 4: Plotting Serial Data from the Arduino with Control of Axis Scale

9-Axis IMU LESSON 5: Calibrating the BNO055 9-Axis Sensor Module

9-Axis IMU LESSON 6: Determine Tilt from Accelerometers

9-Axis IMU LESSON 7: Understanding Low Pass Filters

9-Axis IMU LESSON 8: Using Gyros to Measure Rotational Velocity and Angle

9-Axis IMU LESSON 9: Accurate Tilt Measurements using Accelerometers and Gyros with a Complimentary Filter

9-Axis IMU LESSON 10: Making a Tilt Compensated Compass With Arduino

9-Axis IMU LESSON 11: install Python

9-Axis IMU LESSON 12: Passing Data From Arduino to Python

9-Axis IMU LESSON 13: Introduction to Visual Python

9-Axis IMU LESSON 14: Introduction to Animating Ojects in Visual Python

9-Axis IMU LESSON 15: Dynamic 3D Visualizations in Visual Python

9-Axis IMU LESSON 16: Install and configure Pycripter

9-Axis IMU LESSON 17: Review of Basic Trigonometry

9-Axis IMU LESSON 18: Visualizing Pitch and Yaw

9-Axis IMU LESSON 19: Visual Python Simulation of Pitch and Yaw

9-Axis IMU LESSON 20: Vpython Visualization of Roll, Pitch, and Yaw

9-Axis IMU LESSON 21: Understanding 3D Rotations and Quaternions

9-Axis IMU LESSON 22:  Create a Tilt Stabilized Platform with Arduino

9-Axis IMU LESSON 23: Self Leveling Platform Using BNO055 and Arduino Controlled Servos

9-Axis IMU LESSON  24: Self Leveling Platform Build and Code

9-Axis IMU LESSON 25: Proportional Control System for Self-Leveling Platform

9-Axis IMU LESSON 26: Understanding PID Control Systems with Arduino