Wednesday
Oct032012

Warehouse FPV Flying

I have been working on this for a month or so.  Getting all the shots together, and editing all the sequences took a bit of time.  I hope you enjoy this.  As far as progress on piloting, This is significant for me as I shot the whole thing flying FPV,  no Line of Site flying was done in this video.

I was going for a RCExplorer style video although, I in no way consider myself as good of a pilot as David Windestål.

 

I hope you enjoy this video,  let me know what you think in the comments!

Saturday
Sep152012

GoPro Vibration Dampening using Moongels.

I have been messing with the quadcopter lately and since rebuilding it from the last crash, I decided to take more measures to eliminate or at least dampen some of the vibration I have been experiencing on the GoPro camera.  First I dynamically balanced all the props using a laser from the idea I found on flitetest.

This helped out however I was still getting more vibration then I would like.  I recently heard an idea on thecrashcast podcast where people were using Moongels to dampen vibrations.  Moongels are a product marketed towards drummers who want to eliminate some of the excess ringing on their drums.  I decided to give this idea a try.

I must confess,  I lied took the cheap way out as I didn't use use actual moongels, but rather used those sticky toy things you often find at grocery stores in the front where they have all the candy/toy dispensors for kids.  As I understand it, this is the same material used in moongels.

Here is how I did the assembly.  Meet Roswell,  Roswell is going to sacrifice himself for the better of FPV video everywhere...

 The next thing I did was to make a separate plate to hold the gopro mount itself, I then sandwiched the pieces of the toy between the new plate and the plate on the quad.  I also noticed the buckle for the go-pro had more play in it then I would like, so I used some small pieces of electrical tape to make it fit tighter...

Here is the finished result ready to fly!

 

Lastly, the results.  I made this before and after video to illustrate the difference.  I feel this improved things greatly,  see for youself...

 

 

Friday
Aug172012

Arduino Speed Test

Just for funsies, I had this idea in my head to try to see if I could measure how fast the Arduino Uno can process a very simple loop of code using an oscilloscope. For this experiment I wanted to toggle a pin on, then turn it off while turning another pin on, rinse, repeat.  Basically toggle 2 pins off and on opposite of each other.

For the first part of the experiment I wrote the following code...


void setup() {   //Setup routine (runs once)
  pinMode(5, OUTPUT); //Configure I/O pin 5 as an output
  pinMode(6, OUTPUT); //Configure I/O pin 6 as an output      
}

// the loop routine runs over and over again forever:
void loop() {
  digitalWrite(5, LOW);  // turn off pin 5
  digitalWrite(6, HIGH); // turn on pin 6

  digitalWrite(6, LOW);  //turn off pin 6
  digitalWrite(5, HIGH); //turn on pin 5
}

 

The code above ensures that neither pin is on at the same time as the other.  Using the Arduino's digitalWrite commands, I had to use a line of code to turn one pin off before I could turn another on.  Here is the screenshot from the scope,  the yellow signal trace represents pin5 and the blue trace is pin 6.  The measurements displayed are for the channel associated with Pin5.

 

 

So a few interesting take aways,  the maximum frequency is ~51kHz, I feel this is rather slow considering the Arduino is running at 16MHZ.  The other interesting point is the +Duty% is roughly %25, this makes perfect sense considering the code is 4 parts and pin5 being only represents 1 out of the 4 lines of code, so the math works.  The last thing is the massive overshoot, the waveform peaks at 6.6V and undershoots to -.4V.  This seems extremely "loose" considering it is supposed to be 0-5V.  I am running this board off of 12V power supply but the Arduinos onboard regulator should regulate the operating voltage down to 5V, so I am not sure what to make of this.

Moving forward, I read a chapter in the "Arduino Cookbook" that explains how to set digital pins directly by accessing the bare metal on the chip via its hardware registers.  I have read that this can lead to speed increases by as much as a factor of 30.  So,  I decided to run the experiment again.

With this new code, being as I was manipulating the hardware registers directly, I no longer had to "waste" a line of code to turn a pin off,  I could toggle the states of up to all 8 pins on PortD on or off with a single line of code.  Here is what the new version of the above code looks like.

 

void setup()
{
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
}

void loop()
{
PORTD = B00100000; //Sets the output of ALL pins on PortD (0-7) to LOW except Digital Pin 5
PORTD = B01000000; //Sets the output of ALL pins on PortD (0-7) to LOW except Digital Pin 6
}

 

 
And here is the new waveform...

So here we have some expected and unexpected results...  First, the speed has dramatically improved,  The measurements indicate a 1MHz frequency.  This was predicted, it works out to be about 19.5 times faster than the previous code, although I am disappointed that a 30x speed increase wasn't realized.  What I did not expect is the uneven duty cycle of the 2 waveforms.  Pin6 stays on 87% of the time while pin5 is only on for the remaining 13%.  This represents the state of the 2nd (and last) line of code in the loop.  My only thought is the MCU needs time to "Rewind" back to the beginning of the loop.  It actually seems like this requires about %75 of the total time to accomplish this in this example.  Were talking roughly 800nanoseconds (or 800 billionths of a second / .000,000,800 seconds), so in most use cases this is negligible.

 

Perhaps if I knew assembly, even more fun could be had, but for the time being, this will have to suffice.  Hit me up in the comments below to let me know what you think.

Saturday
Aug112012

Solder Reflow Experiement

I've been working with SMT soldering for a while now, and up to this point I have been using a conventional iron to hand solder componenets to the board.  I have read about various reflow techniquies used in mass production and most of those use solderpaste or wave soldering techniques.  Wave soldering requires specialized equipment, so for my purposes this is inpractical. 

If I had a decent volume to assemble I could use a solderpaste/stencil technique and do my "pick and place" by hand.  However for the small 1 off type projects I had a thought.  An idea popped into my head on how I could do reflow soldering without dealing with messy solderpaste or special (expensive) equipment.  I decided to test this idea out,  the video below is the results of this test, enjoy.

Thanks for watching.

Sunday
Aug052012

H-Quad: A new way to think about quad-copters.

I have been working on building up an H-Quad.  For all intents and purpose, an H-Quad is no different then a regular Quadcopter in Xconfig, except it has a larger center section to mount loads of electronics.  I finally have just about everything mounted that I would want on it (lights coming).  So now it is just a matter of optimizing it for longer flight times.  There are still many bugs to workout, but I am very pleased with how this bird flys.  Here are a few pictures and video of it in action.