If you are a robot builder, there is a good chance you used an H-Bridge to drive your motors. This would have been in the form of an IC such as the SN754410 or the L293D H-Bridge IC. The problem with these H-Bridges are that they don’t usually go above 1A and when looking for a motor driver with higher capacity, it can get expensive very quickly. To overcome this problem we can build our own H-Bridge using MOSFETs to do the switching. The H-Bridge we are building can handle 12-24v motors at up to 10A of stall current giving 240 W total power handling ability.
With all this rage about using and programming drones and other robots, the word “IMU” has become to be understood by many persons. An IMU or Inertial Measurement Unit is an important component of robotic systems. The IMU is essentially uses and “fuses” together data from other sensors which is then used to track things such as position, orientation and velocity. In robotic systems and frameworks such as ROS, the data used to measure these things is in the form of quaternion data. Also any device that tracks movement can benefit from using quaternions to determine orientation.
As such a low cost IMU such as the MPU6050 can be used for prototyping and low cost robotics. The MPU6050 is very low cost and readily available from a variety of sources. In this post we look at how we can use the MPU6050 to generate the quaternion data needed for accurate orientation measurement for your robots and devices. Skipping all the complex theory, I will explain what quaternions are and how we can use the MPU6050 to generate quaternion output with the STM32F103C8T6. The principles in this post will apply to any IMU as we only use the MPU 6050 for it’s accelerometer and gyroscope readings and do not use the on board Digital Motion Processing Unit (DMP) calculations.