3D Visualization Of IMU Motion Sensor In Processing IDE

Before diving into the software part, let's assemble our hardware kits .
 
What is an MPU-6050 sensor

The MPU-6050 devices combine a 3-axis gyroscope and a 3-axis accelerometer on the same silicon die, together with an onboard Digital Motion Processor (DMP), which processes complex 6-axis MotionFusion algorithms. So, now you will be able to decipher the meaning of 6DOF- 6 degrees of freedom.
 
"These MotionTracking devices are designed for the low power,low cost, and high-performance requirements of smartphones,tablets and wearable sensors."  
 
For the details about the connection schematic and hardware setup, kindly refer to my previous blog.

 
                              Figure 1: Blog Screenshot

Hope you've successfully interfaced the hardware components from the tutorial. Kudos! You are already half way through.

Now, let's come to the processing software, which will facilitate the 3D visualization of this motion sensor.

Software required 
Considering that you already have installed ArduinoIDE involving two separate IDEs might make you feel a bit confused. Well, there's no need to panic. Follow the steps below and all your doubts will be cleared up!

Processing is quite similar to Arduino IDE except for a few specialized functions. So, you'll see an influence/similarity in ProcessingIDE.

Figure 2 and Figure 3 will make my statements clear.
 
 
                                       Figure 2: Arduino IDE

 
                                             Figure 3: Processing IDE (v2.2.1)
 
So, we see that there's a stunning visual similarity in both these IDEs.

Now that you've installed the Processing IDE, you need to download a special library named "Toxi" for processing purpose. Locating a "Toxi" file can be very hectic on the world wide web. So, I've made it easier for you by uploading it to my github. Click on this link and download the file named “toxiclibs-complete-0020”. Next, extract the folder . Copy the "toxiclibs-complete-0020" folder and paste it under the "libraries" folder of Processing.

Cant find "libraries folder"? then, make one! yeah. if you can't find a "libraries" folder, make a folder and name it as "libraries". Now, paste your "toxiclibs-complete-0020" folder inside it.

Having followed these steps properly, run the Processing IDE. Time to code!

In order to visualise the 3D visualization , you need to first upload the Arduino code for MPU-6050 (Extract the .ino file from MPU6050_DMP6.rar folder). After having done so, you need to make certain alterations as below.

You need to comment this code which says:
  1. #define OUTPUT_READABLE_YAWPITCHROLL     by      
  2.  // #define OUTPUT_READABLE_YAWPITCHROLL  
likewise, uncomment the code that says:
  1. //#define OUTPUT_TEAPOT       by         
  2. #define OUTPUT_TEAPOT  
Next, open the processing example for the MPU-6050. Go to toolbar, click on File -> Open. And then navigate to the folder where you had installed the MPU-6050 library for Arduino. You can easily locate the processing example : follow the flow sequence: MPU6050 > Examples >MPU6050_DMP6 > Processing > MPUTeapot.

As you did in case of ArduinoIDE, likewise in this case, check the serial-port which is defined in it. Now, check the code.

You'll see that by default, the line defines it for linux/mac users as:
  1. String portName = "/dev/ttyUSB1";    
You need to change String portName to the port on which your Arduino is connected. Refer to Figure 4.
 
 
                  Figure 4: Editing the Processing file for MPU 6050 
 
For windows users, comment this code as:
  1. //String portName = "/dev/ttyUSB1";   
Likewise, uncomment this code as: 
  1. //String portName ="COM15";  by  String portName ="COM15";   
Replace "COM15" with the COM port on which your arduino is connected (check this by going into arduino and Tools -> Serial Port).

So, finally the setup is complete, now it's just a matter of few minutes!

Upload the Arduino code (MPU6050_DMP6) through Arduino.

Note: DO NOT OPEN THE SERIAL MONITOR while the process is underway.

(Why? because we will visualize the code on ProcessingIDE instead of ArduinoIDE)
 
Next, run the processing code (MPUTeapot) by pressing the button with "play" symbol. You will see a small plane like object.

Wait for about 10-12 seconds for the MPU-6050 values to get stabilised. After which, you will see the 3D model moving accordingly with the MPU-6050 sensor.

Refer to the GIF below .For better understanding go to YouTube
 
 
            Figure 5: Final Output
 
Read more articles on Robotics: