All Posts (14054)

Sort by

Interesting 900MHz radio

Take a look at http://www.avalanwireless.com/product_list.htm. Click on OEM Radio Modules and check out the AW900mSPI.The AW900m is a 900MHz digital radio with lots of range and throughput - 1.54Mbps radio channel with 900-1100kbps delivered. SPI/UART version will retail for $129 per card. These look really good - I should have a couple of modules shortly and will report on performance. The UART version is actually designated AW900mUART.
Read more…
3D Robotics

How to program the Attiny on ArduPilot

To load the failsafe firmware on ArduPilot's Attiny chip, you need to do the following. 1) You'll need an ICSP AVR programmer. We recommend AVRSIP2. Connect the cable to the correct ICSP port on your board, as shown above. The red stripe on the cable should be on the same side of the connector as the square solder pad on the back of the board. (On our boards that means that the red strip is on the side closest to the processor) 2) Now you'll need to change (turn off) one of the default "fuse" settings in the Attiny45, which divides the internal clock by 8 so it only runs at 1 Mhz. (Explanation of all that and more about fuses are in the excellent Sparkfun tutorial here). Run the AVR Studio program that came with the AVRSIP2 programmer. Ensure that the board is powered on by connecting it to an ESC or other power source! The red LED on the board should be on. 3) To change the fuse with AVR Studio, connect the programmer and go to Tools/Program AVR/Connect. Choose AVRISP mkII. You may get an error (choose cancel). On the "Main" tab of the dialog, click the "Settings" button and pick 125khz and click "Write". Then make sure "Device" is Attiny45 and "Read signature". At the bottom it should say that all's okay. If so, switch to "Fuses" tab and uncheck CKDIV8. Press "Progam", then "Verify" to make sure it's woking. [Note for those who are curious: the AVR programmer can only work at 1/4 of the clock speed of the chip. The Attiny ships with a 8Mhz internal clock, but when that DIV8 fuse is set it's only running at 1Mhz, so the programmer must be running at less than 250khz. Once you clear that fuse and the chip is running at full speed, the programmer can run at 2Mhz, which is 1/4 of 8Mhz]. Your processor is working fine and ready to program. 4) Now you'll need to burn the firmware. Still in the AVR Studio dialog box you used above, go to the Program tab. Where it says "Flash", input our firmware hex file. If you've already downloaded it in some folder, you can select that here. If not, switch to your browser and download this file. Click "Program". All should go well and you'll see the OKs below. If you want to make sure it's working, you can click "Verify". Now you can go back to the "Main" tab and change the Settings to 2Mhz. That's it! The failsafe should be working now. Connect the CTRL lead to channel 5 or 6 of your RC receiver and power on the ArduPilot board. When you toggle that channel a red LED should go on and off on the ArduPilot board, indicating that control of the output channels is being switched from the RC receiver to the autopilot or vice versa. For extra fun, toggle it back and forth fast five times. That should reset the autopilot (for in-air recovery).
Read more…
3D Robotics

New ArduPilot MUX code

We fixed some bugs in the ArduPilot's failsafe code, which runs on the board's second processor, an Attiny45. It now works great, and has a secret "reboot the autopilot" feature. Just toggle the autopilot enable switch on your transmitter five times fast, and it will reset the Atmega168. Great for times when you don't want to land just because a random bug froze the autopilot. Otherwise it just does what it's supposed to do: transfer control from RC to autopilot and back again on command--every time, without fail. The new code (source and everything) is here. If all you want is the hex file to load on the Attiny in AVR Studio, it's here.
Read more…
3D Robotics

Day two at DIY Drones HQ--success!

Jordi came over today and finished up the work on ArduPilot and the second simulator. He caught a lot of bugs that had been bedeviling us, especially unintended crosstalk between the main autopilot processor (the atmega168) and the failsafe processor (the attiny45) that made it impossible to load code when one or the other was on. All fixed now: it was a code error, not a problem with the hardware. The new MUX code is here. The ArduPilot code is still in alpha but we should be able to release it in a few days. But the important news is that the boards have checked out fine. You know what that means? GREEN LIGHT TO PRODUCTION! The picture above is the final version. The countdown to commerical release starts now. Stay tuned....
Read more…
I have been working on/off on an autopilot to use in RC airplanes. The goal is to fully automatically take pictures of an object like a house, construction site, etc.I made the hardware in last year's Christmas holiday. During the year I spend a few hours writing the embedded software for it (in C, works much faster then assembly).The hardware is super low cost: The PIC dsPIC30f4012 is very cheap and still has enough memory and speed (30 MIPS) to be self sufficient autopilot.

The goal for this Christmas holiday is to do in flight testing of the hardware and stabilization routines.
Read more…
Hi - My interest till now has been building scale RC aircraft. Lately I see that it is possible to be able to view the world from the rc aircraft, I can build a drone but it is dumb. I need to start looking at what equipment is required to be able to pilot the aircraft out of sight.Can any body help with where I would go to start to collect this information on the web? Not being an electronics person is a bit of a hindrance but I can learn. Any help appreciated.Thanks
Read more…
3D Robotics

When autopilots kill

From a long and very good article in Vanity Fair about a Brazillian mid-air collision last year, when two aircraft coming from opposite directions were given the same altitude and heading. The autopilots were so accurate that the two planes hit each other dead on in the open skies over the vast Amazonian rain forest: Excerpt: "Navigational precision poses dangers not immediately apparent. In the Legacy, it was based on three systems. The first was an ultra-accurate altimeter, capable of measuring the atmosphere with such finesse that at Flight Level 370 it could distinguish the Legacy's altitude within perhaps five feet. The second was almost as accurate. It was the airplane's satellite-based G.P.S. receiver, a positioning system that kept track of the airplane's geographic location within a distance of half of its wingspan, and that, linked to a navigational database, defined the assigned airway with equal precision. The third was an autopilot that flew better than its human masters, and, however mindlessly, worked with the altimeter and G.P.S. to keep the airplane spot-on. Such capability is relatively new. Until recently, head-on airplanes mistakenly assigned the same altitude and route by Air Traffic Control would almost certainly have passed some distance apart, due to the navigation slop inherent in their systems. But this is no longer true. The problem for the Legacy was that the Boeing coming at them on the same assigned flight path had equipment that was every bit as precise."
Read more…
3D Robotics

Cool new all-in-one prototyping software

Fritzing is designed to help non-engineers take breadboard Arduino prototypes and quickly create schematics and PCB files. It's just in an alpha version now, but the potential of this software is tremendous. It's amazing to see how quickly the Arduino community is growing and innovating, thanks to its open source foundations. Check it out and stay tuned for the beta, which should be out in a few months.
Read more…

Tracking your UAV in a 3D environment

NB: Edited earlier post with new link to script download site. Also, if you check the arcscripts site there is a flip book animator for the application that will iterate through georectified images in the order you set based on a timer, or manually (this allows you to move backward and forward), or you can click the image in the list to have it display. Allows you to set the transparency of the image so you can see the base layers beneath. Will post the live GPS feed task for ArcGIS explorer to ArcScripts in the coming weeks. Has support for Thales digital radios proprietary sentence. Hope some of you like it and can use it for your applications.Hey Guys,I'm a developer at ESRI and work on a product called ArcGIS Explorer. Its a free 3D mapping application you can download from the ESRI website. Now I don’t mean to plug ESRI here, but this application is free, and you have a clean entry point to add custom coding to it.At our developer summit back in April I presented and wrote a sample app that positions a 3D glyph (model) of the millenium falcon above Area 51. I added some code to predict where you will be in a straight line based on your current lat / long, alt, speed and bearing. Running the task you are able to change its speed, bearing, pitch and roll. I didn't add code to overcome gimle lock however.So, if you can provide the lat/long/alt and bearing, you will have an instant tracking solution for your UAV. The code for the sample is located here:http://arcscripts.esri.com/details.asp?dbid=15900and you can download ArcGIS Explorer from here.http://www.esri.com/software/arcgis/explorer/index.htmlI made the code as generic as I could, its written in C#, and all of the drawing is in OpenGL. Take a look at the code and you should easily spot where to plug in the coordinates.

I've also written a live GPS task that we will release probably later this year (not source code however).Few snap shots from Visual Studio

This parses NMEA and shows you your position bearing etc. I’ve added the ability to track your movement which creates pushpins on the surface. The added pushpin content is what we call a result. A result when double clicked will show you a popup. A popup can contain anything from text, to a web ref, or a locale file on disk. Here you’ll see I am referencing a picture of a car.

So, imagine not only your position being shown, but if you are taking stills, or capturing stills from a video stream, you could create a pushpin on the ground below your position, write the image to disk, then write the location and file name into the Popup’s description. Then as you see above you would have something that conveys a lot of information.Also, I’ve written a Geotagging task that will be available later this year. Sorry but I have no control over the release times, except for sample code. Geotagging will enable you to send the image to anyone with mapping software that can open geotagged images, and it will place them exactly where the coordinates tagged to the image specify.It would be interesting to hear from any of you interested in this, ideas, issues, let me know. Not knocking Google, I think its great (virtual earth rocks too), but a lot of this type of functionality you only get with the pro version I think.Edan Cain
Read more…
3D Robotics

New failsafe code for the ArduPilot/Pro

We caught a small bug in the attiny code that runs the failsafe on ArduPilot and ArduPilot Pro. On ArduPilot, the failsafe will allow you to reboot the main microcontroller remotely, and this was stuck in the on position, making it impossible to load the autopilot code. Corrected Attiny code is here (if all you want is the hex file to load onto the attiny, it's in the Defualt folder).
Read more…

Another Parallax Propeller Autopilot

Introducing the "OughtToPilot"

Default.aspx

OughtToPilot-Project-L.jpg

It seems the parallel processing ability of the prop makes it a top candidate for autopilot brains. This project was entered in the Parallax Design Contest and won second place!! The designer opted for a fuzzy-logic algorithm over a kalman filter for the IMU.The OughtToPilot employs a non-linear fuzzy-logic algorithm to blend two different types of inertial sensors (accelerometers and gyros) in a computationally efficient manner. This model free blending and estimation method was chosen over Kalman filtering to reduce the design-side system modeling effort and the real-time computational burden. All computations are conducted upon integer based pseudo float numbers with most values corresponding to a fractional number with three digits after the decimal point, multiplied by a thousand.The source code and material list is available from the link above.
Read more…
3D Robotics

Instructions for using BlimpDuino


Here's how to use Blimpduino:


First thing, needless to say: inflate the envelope. For that you'll need helium. You can get it in a party balloon kit that you can find at most Targets or Wal-Marts or any party supply store. You can also buy it from Amazon, or rent a tank from a local welding supply store.


You shouldn't need to fill the whole envelope with helium. Just tape the BlimpDuino board (with battery and RC receiver) temporarily to the envelope and add helium until it floats upwards pretty strongly with that weight. The envelope will still look pretty saggy, so get a straw and fill the rest with air so it looks full. You can then ballast the blimp by taping on coins until it's neutrally bouyant. The envelope will slowly leak over a week or two, so if you have a little extra buoyancy, you can just take off ballast from day to day as it loses a little lift.


Note that the envelope in the kit comes with some foam cutouts, which can be taped on to the envelope as fins. They looks cool and can add directional stability, but are not necessary. I usually don't bother with them.


Make sure the board is configured as per the photo above, with the switch side facing forward and the props pushing the air backwards, which you can check in RC mode. (click on the photo for a bigger version). Tape or velcro the board to the bottom of your blimp, with all the components facing down.


Note: The Blimpduino code sends lots of useful status and debug information that you can see if you leave your FTDI cable plugged in and open the serial window in the Arduino IDE (circled in red below):



RC Mode
  1. It's best to start in RC mode. Plug RC receiver channels 1 and 2 into the first two (furthest from the reset switch) 3-pin connectors on the BlimpDuino board (see diagram below). Plug the vectoring servo straight into channel 3 (throttle) of the RC receiver. Turn on the transmitter, and then power on BlimpDuino. The code should auto-detect the RC signal, and after the green LEDs flash in a circle they'll flash back and forth and do another funky jig. That means you're in RC mode.

  2. Controlling a blimp is a little different than flying an airplane. The "aileron" stick controls the differential thrust of the motors to turn. The "elevator" stick controls the thrust to go forward: the further you push it up, the faster it goes. The "throttle" stick controls the pitch of the vectoring servo, which determines the tilt of the thrust. If the blimp is neutrally ballasted, you can often leave it in the middle position, but if the blimp tends to go up or down under power, you'll move that stick to control the vertical direction of the thrust. It's a little bit like an elevator with a plane, but with the added dimension of changing thrust.
  3. Now is the right time to test that the motor are plugged in the right way. When you move the "aileron" stick, the motor on the opposite side should spin, blowing air backwards. If the motor doesn't turn in the right direction (blowing air backwards), just reverse their plug on the board. Pushing the "elevator" stick forwards should increase the speed of both motors, again blowing backwards. If that actually turns the props in the other direction, so they're blowing air forwards, despite them working correctly with "aileron" stick, you may need to reverse the direction of this channel with your transmitter.
  4. If one green LED just blinks rapidly and the servos don't go through their startup moves, your battery is too low. Recharge it and try again. (If you find that this happens too soon or often, go the the definitions portion of the first tab of the code and change "#define low_battery_limit 6000" to a lower number)
  5. Now you should be able to fly around. You'll note that it turns one way better than other due to motor torque effects. We're looking for a reverse-pitch prop so we can have the motors counter-rotate and avoid this. But for now it shouldn't be too bad.

If that all works, it's time to try...


Autonomous Mode.

  1. Unplug the RC receiver channels from BlimpDuino, and plug the vectoring servo into the third 3-pin connector (closest to the reset switch).
  2. Plug the beacon into a 5-9v power source.
  3. Make sure that there aren't any cables obscuring the ultrasonic sensor or blocking the IR sensors.
  4. Hold the blimp at shoulder height over a hard floor (not over carpet).
  5. Power it on and wait until the LEDs flash in a circle. That means it's measuring its altitude and is ready to hold it.The servo will turn the motors all the way up, down and back to the middle to show that it passed its self-test.
  6. If one green LED just blinks rapidly and the servos don't go through their startup moves, your battery is too low. Recharge it and try again. (If you find that this happens too soon or often, go the the definitions portion of the first tab of the code and change "#define low_battery_limit 6000" to a lower number)
  7. Before you let it go, make sure it can see the beacon and is responding correctly. The green LED should light up on the side of the beacon, and the motor should turn on the opposite side (at least when the beacon is on the left and right side). You can hold the beacon in your hand and test this.
  8. If that works, let the blimp go and put the beacon on a chair in the middle of the room.

When the blimp can "see" the beacon, it's will go into navigation mode and the vectoring servo will move proportionally as the blimp steers towards the beacon (if you're holding the beacon and walking around, it should follow you). If the the blimp can't see the beacon, it goes into altitude hold-only mode, where the vectoring servo is pointed all the way up or down and it just holds altitude in one place.

Enjoy the show!

Read more…