LabVIEW Interface for Arduino Documents

cancel
Showing results for 
Search instead for 
Did you mean: 

LIFA MPU-60X0

LIFA MPU-60X0

Here is a small library that I created for the MPU-6000 and the MPU-6050.  This has been tested on a MPU-6050.

EDIT:  I just noticed that the temperature sensor is not working correctly and unfortunately, I can't figure it out at the moment.

Comments
Niffer
Member
Member
on

hey, thank you for your code... I found your misstake. You need to convert to "I16" not to "D16". (Get all Data.vi).

greetings from Germany

libraryguy
Member
Member
on

Would this work with the MyRio?

Nathan_B.
Active Participant
Active Participant
on

I'm not familiar with what the MyRIO has by default.  If it has I2C VIs already for you then you can easily port it over to that.  For something similar to LIFA, you can look at LINX (written by the same NI employee who supports LIFA).  I'm not sure if he has I2C implemented but I know I've seen him say that the MyRIO will be supported in his architecture.

I have it for an sbRIO but I don't use serial communication for that one.

libraryguy
Member
Member
on

Hi again! It works.

Islam_Alam
Member
Member
on

I can't open this link it gie me
It appears you're not allowed to view what you requested. You might contact your administrator if you think this is a mistake.
can you send it to my mail please & thank you for your amazing code

libraryguy
Member
Member
on

Seems it got deleted. I can only make screenshots right know. Pls try to change it yourself the following: Delete all Arduino-related items and insert an MyRio-I2C element for each reading, writing with the same adress and read/write inputs. For the main loop, take the I2C-read AND write block.

Capture1.PNG

The "clockset" block is as follows:

Capture2.PNG

You maybe can see the changes i did. It really is just replacing of arduino with MyRio elements!

I can post the other single elements as well. Pls take my apologize that I can't send the originals since I altered them and only have the screenshots.

Dennis

Islam_Alam
Member
Member
on

ok thanks for  you and i wnat to ask you how to get

Euler angle yaw, beach, rol


getRotationX ()
int16_t getRotationY ()
int16_t getRotationZ ()
bool getDMPEnabled ()
void setDMPEnabled (bool enabled)

showin in this link http://www.i2cdevlib.com/docs/html/class_m_p_u6050.html
and thank you very much for respone and I hope help me?

tlzebin
Member
Member
on

Hi All,

Is anyone here using the MPU_9150 with the magnetometer data? I've got the following board from sparkfun:https://www.sparkfun.com/products/11486 and an Arduino mega. The basic example included in Nathan's code works on fine to give accelerometer and gyroscope data.

http://dlnmh9ip6v2uc.cloudfront.net/datasheets/Sensors/IMU/RM-MPU-9150A-00.pdf

Page 52 in the register map provides the list of registers for the magnetometer, will it be possible to add those in the registerAddress.ctl to extract data from the magnetometer?

bdye815
Member
Member
on

Hi there, thank you for your posts about connecting the MPU-6050 to the MyRio. If possible are you able to post your code for this? I am a beginner in this area but I am trying to connect these to read gyroscope and accelerometer data. If you could post how you connected the myRio and the MPU-6050 physically too that would be greatly appreciated.

Nathan_B.
Active Participant
Active Participant
on

Physical connection is the same as any I2C device:  Power, Ground, Clock, Data.  Depending on the breakout board that you have for the sensor, you may need to add in pull-up resistors to the clock and data wires.

bobson
Member
Member
on

I could use the example in library to  read mpu6050 normally when I connected with one uno in my one pc

I want to use three   uno with mpu6050 in one pc ,but I could not read data when I exerted  three uno in my pc at the same time

I think that it maybe exist a problem in decide which one com port to read , so if I can change some block diagram that  it  decided which com port  to read automatically  to replace it by a method to determine which com port I wnat to read  manually.

please talk me some suggestions how to remedy and how to work, thanks

I use the basic example in the file which downloaded from lib in this web

If I want to use three uno with mpu6050 in one pc

akesh.dhiman
Member
Member
on

Hi there,this post was really helpful to me, but i have a question. I want to read the values from MPU 6050 without using this library. I just want to use LIFA I2C functions, displyed below.LIFA I2C Functions.JPG

Give me some hints.

Thanks..!!

Nathan_B.
Active Participant
Active Participant
on

There is no good reason to not use the library. Also, if for some odd reason

you still don't want to use the library, you can simply look inside the functions to see how it's all done.

akesh.dhiman
Member
Member
on

Thank you Nathan.

I found the functions, as your replied.

I2C.JPG

Actually,  MPU libaray made my way easy in my exercise. And i wanted to do my exercise in some comlex manner to understand the logics. Now i have cleared my all doubts. Thanks once again.

abirry
Member
Member
on

Hi All,
Is it possible to use this library for read 2 MPU6050 with 1 arduino uno?

thanks in advance

ferizitko
Member
Member
on

hi there,

I have been using  LIFA-BASE.ino library for arduino interface with labview and i used the

library written by Nathan_B to see the data IN LABVIEW.

im using : mpu-6050 , arduino Uno.

the data that i see in labview is unmeaningful and i need to use different formula to calibrate the imu and get the precise rotation.

I have downloaded a library named i2cdevlibf written by Jeff Rowberg. the data that are shown in

serial monitor demonstrate the accurate roll, pitch , and yaw. everything is perfect with this library but....

the problem: i dont know how to hook up the labview interface library with i2cdevlib library. and i need to know how to read only data from i2c bus in labview, as the configuration and calibraton of MPU-6050 is done in i2cdevlib and the data are accurate.

Nathan_B.
Active Participant
Active Participant
on

My library doesn't have any roll, pitch, or yaw calculation. You would need

to do that in LabVIEW with your own code. I recommend using LINX instead of

LIFA where my library has already been included. You also have the option

to add custom functions in LINX which is what you would need to do to use

your Arduino library.

ferizitko
Member
Member
on

appreciate for your reply dear Nathan B

currently i have one problem and that is how to read only data from i2c bus in labview. cause the configuration and initialization of MPU6050 is done in i2cdevlib arduino library and the data in serial monitor show roll , pitch , and yaw with high accuracy.

what I have done: I tried to modify your labview library and I deleted mpu INT block but it didn't work.

what do I need??: I need a simple I2C read library for labview to retrieve the data that arduino produces.

ferizitko
Member
Member
on

so lets make it easier to what I'm looking for ;

the data (yaw, pitch, and roll) that i received in serial monitor of arduino with respect to i2cdevlib is as figure below;

d.PNG

what I have done was to remove mpu INT from labview library written by Nathan_B as below;

a.PNG

inside arduino MPU 60X0 BLOCK, I saw the data for accelerometer, gyroscope, and temp are retrieved from I2C bus as below;

b.PNG

what I need respect to figure above: as arduino sends only 3 data (YPR), i need to read only these three data (YPR) from i2c bus.

and in figure below i dont understand what that ACCEL_XOUT_H does to i2c write block, and DO i need to change it if i need to get YPR from arduino\?

c.PNG

I appreciate your help.

Nathan_B.
Active Participant
Active Participant
on

The Yaw, Pitch, and Roll are not coming from the I2C bus (the sensor only outputs acceleration and angular rate data).  They are being calculated in your Arduino library.  If the only thing that you need from the Arduino is the roll, pitch, and yaw, you can simply read the serial data via LabVIEW using the VISA functions and then interpret the values that you are seeing in your serial monitor (you cannot use LIFA for this if that's how you want to do it).

armenda26
Member
Member
on

Hi Nathan.

Nice work with this library, it has been a great support for my projects.

I just have a question, what means the "0x68" thas is wired in the MPU block?

Sorry for my ignorance.

Regards from México.

Nathan_B.
Active Participant
Active Participant
on

That is the 7-bit slave address as specified in the datasheet.

Stijn_Stoffels
Member
Member
on

Hi All,

With the MPU6050 in a stable position (no movement) I'm getting (relative) high values.

For example: Z-axis is know 16000, and it should 9,81 m/s^2. The X - and Y-acc are good I guess.

For the Gyro data I've to change to offsets or do a callibration first?

Knipsel.JPG

My questions:

Is there a possibility to calibrate the MPU6050 in LabVIEW and implement the offsets for the Gyro?

How can I adjust the values (Gyro and Acc data) so that they have a correct size (m/s^2 and rad/s)?

Grtz,

Stijn

jamiya
Member
Member
on

Screenshot_5.png

jamiya
Member
Member
on

lost this icons. how did u find this icons. help me!!

Gemitec
Member
Member
on

Hello, im trying to change the values of 2g,4g and 250 degress but the raw values doesnt change, can you tell me why?

Nathan_B.
Active Participant
Active Participant
on

I recommend that you upgrade to LINX.  It has native support for the MPU-6050 based on my code here.  If you still have issues, please create a post on the LINX forums.

Contributors