Jump to content
I2Cdevlib Forums

Sondre

Members
  • Posts

    16
  • Joined

  • Last visited

Everything posted by Sondre

  1. Well, I've tried it myself, and I've seen others trying this. It works for a few seconds, before the velocity makes the position "run" away. What I'd try if I had needed this, is to use some other way of measuring the speed/position to correct the position in the long term. If you make this work using only the MPU, please tell us!
  2. Well, you could integrate the acceleration twice, but this will amplify both the error and the noise, such that the precision will be poor.
  3. Hi! Did you use Arduino? In that case, do you still have the code for communicating with the DMP?
  4. I would recommend taking a look at AeroQuad. It is a very good open source platform, that will probably help you in the right direction if you're stuck. Good luck to you too!
  5. Lots of exclamation marks there.. I know implementing a control system is challenging. That's the sole reason why we started this project. We want to be challenged and learn from it. It is simply a short term hobby, sort of. What I'm saying is that if the DMP has noise, you have to implement everything yourself. For my friend and me, this is not a problem as we use an ATSAM running at 84MHz, but since you're running an AVR it's probably a bigger concern as you say. I'll upload it, just wait a minute.
  6. Ahh, I understand. Well, the accelerometer is very noisy. It can only correct for the long term drift of the gyroscope. So the closest you can get, really is by processing the gyroscope data. As I'm making an octocopter, I also need as little noise as possible when implementing a PID controller of some sort. But we haven't really spent much time yet, so I don't know whether or not the MPU can do this by itself. It's a very small chip, that of course has limited processing power. In the worst case scenario, you'd have to implement a Kalman-filter, or at least a complementary filter yourself. And maybe smooth the gyroscope data by using median and average calculations. I would appreciate if you had left a comment on how you achieved your goal when you're done! All I know is you can download the sample library from InvenSense. Did you get it downloaded, or do you want me to upload it here?
  7. I signed up as a hobbyist using just my private email address. If you still cannot get the files, I can upload them to you. I don't know what your background is, and how long you've been attending university. I'm 19 years old and attending university in about one month. However, I've been programming since I was 11-12 years old. So I know my programming. What I need is more maths and physics, which is why I've applied for cybernetics. After 8 years of programming, I've learned how to make a robust API. In fact, I always try to abstract away as much of the code as possible, so that it's easy to reuse later on. That's why I make a library out of the MPU communication. Additionally I'll make a library that will know everything about the orientation etc. about the device. Thus, using a different chip without a DMP, will just be a matter of reimplementing the API. No big code rewrites necessary. So to me, a robust library makes the code easier and more simple to write.. I'm using the MPU9150 to make an octocopter (quadcopter with eight rotors). It's a pretty heavy duty one capable of lifting a 1.5 kg DSLR. So I really want this code to be robust. The octocopter will be controlled by a PS3 controller, or by an autopilot. The autopilot "route maker program" is written in HTML5 and ported to the iPad. Thus you'll be able to set up the autopilot in the field over WiFi. So as you might think, this is a huge project. We're hoping that this thing is flying in a few months, and that it is completely done in about a year, although this is probably going to take a bit more time... As my friend has never programmed before, and I have never done bare metal programming before, I'm really excited to see how your project goes along. It would be interesting to see a few updates from you. Since you're doing this at the university, you have a deadline, which means you have to start right away. So I suppose we have to make the library at the same time... Well, that's how it is. I hope you get the quadcopter up running quickly!
  8. I'm making an octocopter, which means I need a library that will handle the DMP, raw acceleration and the compass on the 9150. I'll make a robust library for it, so you can download if you want. I'm attending university in a month, so I'll probably be a bit busy. I'm working on this with a friend who's leaving for the military for one year. So if you write a library before me, I'd be very happy if you shared it with us!
  9. Hi! Have you created an account and logged in before clicking the link? Register here, and make sure you are logged in. Then you can click the link I supplied! The "Embedded Motion Driver" is the example code provided. The three PDF documents provide a documentation for the code and DMP.
  10. And so you just replaced the I2C functions with the Wire ones? Are you sure you did configure the DMP correctly? It would be peculiar if the creators themselves would make something that doesn't work. After all, they made the evaluation board the I2CDevLib is based on.
  11. Well that sounds very peculiar. Did you implement the DMP communiction yourself? Or did you just implement the I2C-functions yourself, using the provided implementation from InvenSense?
  12. All documentation on how to use the DMP is now freely available from InvenSense here. This means you can either rewrite this library so it works with all aspects of the DMP, or you can use the documentation and sample code written by InvenSense, to make the DMP work without this library. This information has been released for over two years... I hope you finally get to fully appreciate the DMP, instead using this half working library made by hacking an evaluation board. (To the creator: Your work has been to great help for many people, and now finally we get to use the DMP fully. Hadn't this been released, I would have been very grateful for your work.)
  13. Is the DMP limited to a 4g sensitivity? I tried changing the sensitivity, but it still outputs 8192... I changed this line: setFullScaleAccelRange(MPU6050_ACCEL_FS_2); into setFullScaleAccelRange(MPU6050_ACCEL_FS_8); And it didn't change anything on the DMP...
  14. EDIT: I found an FAQ that said this is not possible with the i2cdevlib. I tried affecting the MPU with a magnet, but the DMP doesn't do anything. How can it be set up to take the magnetometer into account?
  15. Is there an API supplied to fetch the magnetometer values the much same way you can fetch the orientation values? Or do I have to read the datasheet and figure it out myself? I'm completely new to compiled programming... I wish I didn't have to ask about simple stuff like this, but I find the MPU overwhelming compared to for example the simple datasheet of the BMP085. I can't see why the company is stupid enough to spend a lot of money developing a DMP, without providing anything about how to use it in the datasheet! I mean, why make something no one really cannot use? Being completely new to bare metal programming (not programming in general), I got the BMP085 up running without using any libraries in a matter of hours, but the MPU is really a mess...
×
×
  • Create New...