Jump to content
I2Cdevlib Forums

Search the Community

Showing results for tags 'acceleration'.

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


  • I2Cdevlib Web Tools
    • I2C Protocol Analyzer
    • I2C Device Entry Interface
    • I2C Device Library API
  • I2Cdev Platform Discussion
    • Arduino (ATmega)
    • Arduino Due (ARM Cortex M3)
    • MSP430
    • Other Platforms
  • I2C Device Discussion
    • AD7746 capacitance-to-digital converter (Analog Devices)
    • ADS1115 16-bit A/D converter (Texas Instruments)
    • ADXL345 3-axis accelerometer (Analog Devices)
    • AK8975 3-axis magnetometer (AKM Semiconductor)
    • BMA150 3-axis accelerometer (Bosch Sensortec)
    • BMP085 pressure sensor (Bosch Sensortec)
    • DS1307 real-time clock (Maxim)
    • HMC5843 3-axis magnetometer (Honeywell)
    • HMC5883L 3-axis magnetometer (Honeywell)
    • iAQ-2000 indoor air quality sensor (AppliedSensor)
    • IQS156 ProxSense capacitive touch sensor (Azoteq)
    • ITG-3200 3-axis gyroscope (InvenSense)
    • L3G4200D 3-axis accelerometer (STMicroelectronics)
    • MPL3115A2 Xtrinsic Smart Pressure Sensor (Freescale)
    • MPR121 12-bit capacitive touch sensor (Freescale)
    • MPU-6050 6-axis accelerometer/gyroscope (InvenSense)
    • MPU-9150 9-axis accelerometer/gyroscope/magnetometer (InvenSense)
    • PanelPilot multi-screen digital meter (Lascar Electronics)
    • SSD1308 128x64 OLED/PLED driver (Solomon Systech)
    • TCA6424A 24-bit I/O expander (Texas Instruments)

Find results in...

Find results that contain...

Date Created

  • Start


Last Updated

  • Start


Filter by number of...


  • Start





Website URL







Found 6 results

  1. Hi, I am currently doing a project in which I need to capture the acceleration of a pivoted rotating wooden beam. From the acceleration, I need to determine the velocity. I am using Jeff's teapot sketch with the mpu6050 and I have managed to also include the acceleration in the teapotPacket to print acceleration in processing. I know that velocity is the first integral of acceleration. Such integral can be expressed as: v = u + AT, where v is the current velocity, u is the velocity before, A is the acceleration and T is a time interval. This is my code for the velocities in the three directions with sampling time of 1ms: vX = uX + (AX)*0.001; //vX = current velocity in the X direction, uX = velocity in the previous iteration, AX = acceleration in the x direc uX = vX; //setting the current velocity as the previous velocity vY = uY + (AY)*0.001; uY = vY; vZ = uZ + (AZ)*0.001; uZ = vZ; If I move the sensor say in the x direction, acceleration in the x direction increases and when I stop the sensor, acceleration becomes negative and converges to zero, as expected. The velocity seems to be calculated and printed right when increasing from zero to a particular value. Now my problem is, that when I stop moving the sensor, velocity does not go back to zero when the sensor is stationary, but it decreases by a small amount only (say it stops decreasing at 0.5m/s. This gets worse when the sensor is moved faster. It seems like the acceleration is read more than the deceleration (decreasing acceleration) and therefore, less negative values for acceleration are captured. Can anybody help me? Thanks, Hatt
  2. This is a great library to work with. Thank you for putting it together. I am looking to measure the pitch of a vehicle (I'm using a bicycle). While using the DMP-6 example code, I get the pitch; which, is great under static conditions. Unfortunately, when I apply the brakes, accelerate, or just move, the pitch will increase moving forward and decrease while braking. Do you have advice on how to compensate or remove the acceleration from the IMU to get accurate values like the static condition? Thanks
  3. My question is simple. Is it possible to use the DMP output without using the interruptions method? My goal is also simple. I'm trying to read 3D acceleration without gravity by taking advantage of the actual dedicated processor for that task. I took the example that comes with the Jeff's library and got it complied and executed just perfectly. The thing is I don't want the interruption system because half I don't completely understand the code, half I need to take samples at a fixed rate. I'm pretty sure the DMP is way faster than my sampling rate, and even though it isn't, skipping a couple of random samples is not an issue in my project. So it would be awesome if I could do just something like this (my imagination coming out now) void loop() { mpu.dmpGetQuaternion(&q, fifoBuffer); mpu.dmpGetAccel(&aa, fifoBuffer); mpu.dmpGetGravity(&gravity, &q); mpu.dmpGetLinearAccel(&aaReal, &aa, &gravity); Serial.print(aaReal.x); // awfully printed just to make my point Serial.print(aaReal.y); Serial.println(aaReal.z); delay(100); } to get acceleration without gravity using only a few functions. Note: I already did the corresponding calibration to get my offsets.
  4. Hello, I am new to this forum and have started experimenting with the MPU-6050 a few weeks ago. I am using it for a Design Technology project in hopes of measuring acceleration in any specific direction. After much research it was concluded this cheap, but useful chip was the go-to piece and so after more searching around on youtube I stumbled upon Jeff Rowberg's code. It took me a lot of time to get the processing teapot screen running but it was so worth it. Anyways now that I accomplished that, I moved on to the main task at hand and found out that by uncommented "OUTPUT_READABLE_REALACCEL" . This gave a significant amount of values and raw data in the serial monitor itself but the problem I have is that I do not understand the values or know how to convert them into acceleration that I can then use to perform other functions. I have only started coding last year and I am currently 16 in Year 11. If anyone could give some input or understandable references on the following values I would appreciate that a lot. Send any character to begin DMP programming and demo: Initializing DMP... Enabling DMP... Enabling interrupt detection (Arduino external interrupt 0)... DMP ready! Waiting for first interrupt... areal -293 49 -1190 areal -153 22 66 areal -50 10 868 areal 4 -14 1370 areal 23 -39 1676 areal 59 -54 1878 areal 86 -68 2013 areal 107 -77 2119 areal 119 -83 2175 areal 112 -89 2187 areal 99 -10 72182 areal 116 -118 2198 areal 144 -120 2222 So here is the following data I have received: Also many thanks to Jeff Rowberg for producing such valuable and useful code. I will make sure to include you in my project credits and when I master Arduino I will definitely try to share and teach this to others. Thank you
  5. Hello, I'm playing around with the MPU6050 to compute displacement (yes, quite aware of how inaccurate it is) using the real and world acceleration in the DMP sketche (a God sent!). I'm also using the raw data. With the raw data I was able to compute the displacement without any trouble, whereas in the case of the real and world acceleration I'm getting results that hardly make sense in the context of displacement. Which made me wonder what unit of measurement is being used? I assumed g (acceleration of gravity), but I must be mistaken. Apologises for the newb question and thank you!
  6. I am using the I2C library and the source code on github (https://github.com/jrowberg/i2cdevlib/tree/master/Arduino/MPU6050) to collect the yaw, pitch and roll fused from the gyrometer and accelerometer outputs: accelgyro.dmpGetQuaternion(&q, fifoBuffer_1); accelgyro.dmpGetGravity(&gravity, &q); accelgyro.dmpGetYawPitchRoll(ypr, &q, &gravity); So I have two questions: 1) I have read that the values above are calculated by fusing the output from the accelerometer and the gyroscope. In this case, I was wondering what is the used algorithm to calculate these way, pitch and roll ? 2) Also, I would like get the acceleration from the accelerometer in m²/s and the angle speed from the gyrometer in °/s. What function should I call or what should I do to get these values? dmpgetGyro() and dmgGetAccel() don't give me correct values: I am adding the measured value to the last measure, but if I move my arduino by 90° it outputs 50° instead, and even if I hold still in the position it slowly decreases/increases back to zero. I am truely desesperated on this one. I really need my second question to be answered. I am read the documentation and the datasheet many times but can't get it work properly.
  • Create New...