Showing posts with label IPT. Show all posts
Showing posts with label IPT. Show all posts
Thursday, December 13, 2012
MIOS: Multi-Copter I/O Shield for the Arduino Due
As I previewed in my last post, I am making an shield to fit the Arduino Due that will simplify connecting the RC reciever, motor ESC, and I/O for sensor communication. The PCB's for the shield came this week and below are pictures and some explanations.
Labels:
accelerometer,
Arduino,
Arduino Due,
ESC,
gps,
gyro,
gyroscope,
Hexcopter,
I2C,
inertial navigation,
IPT,
magnetometer,
MIOS,
Serial,
SPI
Saturday, November 17, 2012
More Fun
It's been a while since I posted last, so here's a quick one for me to tell about where my quadcopter is and introduce my next project.
My current quadcopter is flying well. It has proved quite durable as I started at zero with 'copter flying experience and this one has shrugged off most of my silly mistakes. I have a lot to learn, but it has been a great learning tool so far.
Now on to my next adventure. Arduino announced about a month ago that they were coming our with a 32 bit ARM based board called the "Due" that would be roughly code compatible with the 8bit processors.
Now on to my next adventure. Arduino announced about a month ago that they were coming our with a 32 bit ARM based board called the "Due" that would be roughly code compatible with the 8bit processors.
![]() |
| Arduino Due |
Labels:
Arduino,
Arduino Due,
carbon fiber,
Hexcopter,
I2C,
inertial navigation,
Inertial position tracking,
IPT,
Quadcopter,
R/C,
Serial,
SPI
Thursday, June 21, 2012
Quadcopter: Inertial Position Tracking - RIP
Yep, you read that title right. IPT is dead.
After playing with my sensor for the last few months, I finally opened up an excel spreadsheet to figure out what kind of accuracy I need to make IPT work. Using some rough figures, I need a sensor that is at least 1000x+ more sensitive & accurate than my current one. One set of numbers I used suggest that 5000x is probably closer to what I need. Another way of looking at this is that my current sensor has a resolution of roughly 0.004g while I need something closer to 0.0000008g. There are sensors which provide ~2x more resolution, but clearly that is not going to be sufficient. Sensor drift over time and temperature will also be a significant issue. Similar accuracy issues exist with the gyro unit.
Thursday, March 29, 2012
Quadcopter: Inertial Position Tracking Tech Update #1
Here's a quick update to the status of the technical aspects of the Inertial Position Tracking (IPT) part of this quadcopter project.
Labels:
accelerometer,
gyro,
Inertial position tracking,
IPT,
Quadcopter,
Quadrotor
Monday, March 19, 2012
Quadcopter Quick Update #2
Here's another quick quadcopter update.
I'm still waiting for my motors and ESCs to arrive before I begin building up the frame. They should be here this week, hopefully sooner than later.
I have connected the Accelerometer/Gyro sensor to my Arduino. It took a little bit of work, but I now have good data coming from the accelerometer. The gyro seems to have an introverted personality as I have not been able to get it to communicate. I believe this is due to it needing a 3.3v I2C buss and the Arduino provides a 5v buss (although the accelerometer runs off of 3.3v, it can accept a 5v buss). I have ordered a level translator to solve this problem. Hopefully the 5v buss didn't fry the gyro.
The coding is coming along well. I estimate that I am over 3/4 of the way done, and I believe the most difficult tasks are completed. I have made up a flow diagram to show my control loop.
Quadcopter Control Loop
Once I am able to get both sensors working, I will be able to start testing the code and debugging more.
At this point the compiled code is arround 9k in size, so I am optimistic that when finished I will easily fit in the 30k that's available. I will be looking at my memory usage next to make sure I'm not going to run out of the 2KB SRAM I'm allowed. Right now I estimate my loop time to be 15ms not including the time to scan the RC inputs. I may use a second Arduino just for watching the RC inputs as they will only come every 20ms and if I start watching for them at the wrong time, I could waste a huge amount of time doing nothing. I would then transfer the the inputs from the second Arduino to the first through the I2C buss, which should only take 0.2ms.
That is all for now.
Phillip
<< Previous Quadrotor Post | Next Quadrotor Post >>
I'm still waiting for my motors and ESCs to arrive before I begin building up the frame. They should be here this week, hopefully sooner than later.
I have connected the Accelerometer/Gyro sensor to my Arduino. It took a little bit of work, but I now have good data coming from the accelerometer. The gyro seems to have an introverted personality as I have not been able to get it to communicate. I believe this is due to it needing a 3.3v I2C buss and the Arduino provides a 5v buss (although the accelerometer runs off of 3.3v, it can accept a 5v buss). I have ordered a level translator to solve this problem. Hopefully the 5v buss didn't fry the gyro.
The coding is coming along well. I estimate that I am over 3/4 of the way done, and I believe the most difficult tasks are completed. I have made up a flow diagram to show my control loop.
Quadcopter Control Loop
Once I am able to get both sensors working, I will be able to start testing the code and debugging more.
At this point the compiled code is arround 9k in size, so I am optimistic that when finished I will easily fit in the 30k that's available. I will be looking at my memory usage next to make sure I'm not going to run out of the 2KB SRAM I'm allowed. Right now I estimate my loop time to be 15ms not including the time to scan the RC inputs. I may use a second Arduino just for watching the RC inputs as they will only come every 20ms and if I start watching for them at the wrong time, I could waste a huge amount of time doing nothing. I would then transfer the the inputs from the second Arduino to the first through the I2C buss, which should only take 0.2ms.
That is all for now.
Phillip
<< Previous Quadrotor Post | Next Quadrotor Post >>
Labels:
accelerometer,
Arduino,
gyro,
I2C,
Inertial position tracking,
IPT,
Quadcopter,
Quadrotor
Tuesday, March 13, 2012
Quadcopter Quick Update #1
Here's a quick update:
I received the Arduino Pro Mini today and the 6 degree of freedom accelerometer and gyro sensor.
Yes, they are that awesomely small. I soldered a right angle header onto the end of the Arduino that has the pin-out for serial data transfer. I can now attach my FTDI cable that emulates a com port with a USB connection.
I haven't had much time to work with it yet, but I was able to run a quick test to see how quickly my position update function will run (the one with the fancy math). With semi random and arbitrary non-zero inputs it takes 2ms to run through all of the math. It only takes 1.5ms if all of the inputs are 0... not that that will ever happen in real life. I would love for this number to be much lower, but at 10% of my ideal total loop time I don't see it as being a deal breaker. We'll see how much time everything else takes.
Next step is to connect to the sensor and figure out how to communicate with it.
Phillip
<< Previous Quadrotor Post | Next Quadrotor Post >>
Labels:
accelerometer,
Arduino,
FTDI,
gyro,
I2C,
Inertial position tracking,
IPT,
Quadcopter,
Quadrotor
Subscribe to:
Posts (Atom)



