tommy321

Member Since: March 9, 2010

Country: Canada

  • Tutorial - Tweeting Kegerator | about 4 months ago

    You guys have been serving some pretty warm beer lately ;)

  • News - Your August Caption Conte… | about 9 months ago

    And you thought I was an idiot for bringing that giant soldering iron along on the trip.

  • News - According to Pete: August… | about 9 months ago

    You’ll get there! I also learned on 2-33s. In Canada the Air Cadets use them for training… which is how I first got my license. By the time I finished with cadets, I think I had over 300 flights in them :)

    The only real difference between flying a 2-33 and something like the ASW-24 is that you can still hear yourself think when you accelerate to 98knots in the ASW-24. :)

  • News - According to Pete: August… | about 9 months ago

    Pete!

    I did this exact same project last year. I’ve been flying gliders for about 17 years, and actually spent the afternoon today chasing thermals.

    My project was using an ArduIMU that I had lying around along with a GPS, and an Openlog to log to MicroSD. Actually the whole reason I made the logger was I had the ArduIMU in my parts box and wasn’t using it for UAV experimenting anymore. The best part was that the ArduIMU not only already had all of the GPS protocols written, it also outputted yaw pitch and roll data. I wasn’t recording any barometric information. Getting reasonable vario data from the GPS is totally do-able. If I was going to add some analog data, personally I would get the Arduino to read the analog and dump it all via serial to the OpenLog.

    If I recall correctly my logger display also gave me some other stuff on the screen in flight. Altitude, Groundspeed, rate of climb. Distance from take-off point, and gliding range before I hit the ground (based on take-off elevation). Instantaneous L-over-D. Current Track and Rate of Turn Flight Duration

    I mounted mine in a project box, and then used a Go-Pro camera Suction Cup Mount to suction cup it to the side of the canopy. At least at my club, they have no issues with you suction cupping equipment into the cockpit. Everyone up here flies with a PDA of some sort to log their flight.

    This project kinda fizzled out for me after having some pretty good success with it. What finally killed it for me was when I got a Nexus 7. There is a free android App called “XCSoar” which pretty much does all of this and more and includes a moving map of where you are, and also logs your flight into the gliding standard logging format (lookup “IGC file” online). I was flying with my Nexus 7 today. My experience is that the GPS altitude in XCSoar is within 50-100ft of what my altimeter is saying.

    I’ll fire you an email with my Arduino code tomorrow if you’re interested. It is pretty much a heavily hacked version of the DIYDrones ArduIMU code with all the gliding stuff piggybacked on it.

    Here’s me, before I got the suction cup mount for the Nexus 7: http://www.youtube.com/watch?v=od3Tn6iLnNQ&feature=share&list=UUTGf8b9CGSvmqN64jP-Y01A

    Have fun!

    Tom

  • News - Engineering Thursday: LED… | about 10 months ago

    My latest LED project was a scoreboard for Ultimate Frisbee games. Here’s a tour: http://youtu.be/Q-YWABsCgqs The enclosure is a custom made wood case with the screen being white styrofoam that has been router-ed where required to show the numbers. I then glued some 1mm depron (super thin/light foam) on top of the router-ed foam to diffuse the light from the LEDs. It works amazing for indoor games in the winter, and for evening games in the fall. In summer on bright sunny days it’s a little hard to read though. You need to find a shady spot to place the scoreboard.

  • News - December Caption Contest | about a year ago

    This year’s Christmas party is going to be a real HOOT!

  • News - June Caption Contest | about 2 years ago

    Binary Solo! 0000001 0000011 0000111 0001111

  • News - According to Pete - June … | about 2 years ago

    “really nice is if you could have a tab devoted to these “Acording to Pete” videos ”….

    Like this? http://www.youtube.com/playlist?list=PL9EF3C374FD903ACE&feature=plcp

  • Product DEV-09530 | about 2 years ago

    Yep… the github posts above are dead, and need to be redirected.

    Also, the wiki on the github is out of date. For flashing firmware it still talks about needing to hack the HardwareSerial.cpp file. After looking high and low for the new HardwareSerial, I finally found the correct instructions inside the OpenLog_v3.ino within the downloadable zip file. The instructions there point you at the Bill Greiman libraries needed to compile in Arduino… Once I figured that out, everything worked fine.

    Tom

  • Tutorial - Processor Interrupts with Arduino | about 2 years ago

    The fact that there are only 2 interrupts available “easily” in the Arduino code means you run out of “interrupt” pins really quickly. Fortunately, It is actually really easy in the Arduino language to access the rest of the Pin Change Interrupts with only a couple of lines of code. It only takes two lines of code to activate them. It does require opening the datasheet for the micro-processor which might be a little bit scary for first timers, but once you’ve done it once it is easy after that. If you look at the pinout of the chip, and pin marked “PCINT#” where “#” is a number can be used as an external interrupt. The Arduino language has all of the registers mapped to constants which makes them really easy to control.

    I recently finished a scoreboard for Ultimate Frisbee games that is driven by an Arduino Pro Mini 328. I’m using pin change interrupts on almost every pin to read the state of 9 buttons and one rotary encoder. The main loop basically just sits there and updates the game clock until it sees a flag being set by the interrupt routines telling it that a button has been pressed.

    Here’s a tour of the scoreboard.

    http://youtu.be/Q-YWABsCgqs

    Here’s an excerpt from my code. This should be all you need to access the pin change interrupts (just make sure you have set the relevant pins as inputs).

    void setup() {
    PCMSK1 = _BV(PCINT14) | _BV(PCINT8) | _BV(PCINT9) | _BV    (PCINT10); //Enable Pin Change interrups on PCINT 14, 8, 9, and 10
    PCICR |= _BV(PCIE1);// Enable interrupt control register
    ...
    }
    
    
    
    
    ISR(PCINT1_vect) {
      //whenever one of the pins set to 1 in PCMSK1 changes     state, this routine runs.
      // Put some code here to figure out what which button was     pressed. 
      //set a flag  that is read by the main loop to do something     based on the 
      //pressed button. 
    
    }
    

No public wish lists :(