Developer

ArduIMU quadcopter part III

Hi all, I have a new drone in the family...

This tiny drone is able to do completely automatic flights, it can perform altitude hold (based on sonar sensor) and obstacle avoiding based on IR distance sensors (you could see the "black stange eyes" on the photo). It´s your personal droid...

Look at the video (the "tennis game" part it´s funny. Thanks to Ramon for the idea!!)

There are some new features in this thrid part... This is the list:

For outdoor configuration:

- GPS library support (actually UBLOX or NMEA)

- Position hold based on GPS

For indoor configuration:

- 4x IR distance sensors to detect obstacles (1.5m range)

- Obstacle avoiding (using distance sensors)

Common:

- Altitude hold based on Sonar (LV-EZ0)

- Automatic flight pattern (experimental).

--- Automatic takeoff

--- Position hold [outdoor] or obstacle avoiding [indoor] during a predefined time

--- Automatic descend

--- Automatic landing

- Added XBee for telemetry (and debug)

And some improvements in the code:

- New "radio test mode" to test radio equipment

- Revised control routines

Development

For the GPS position hold I had to implement the navigation algorithms for the quadcopter because it´s really different that the one used for planes...For this navigation it´s necesary to have the magnetometer to cancel the yaw drift in hover conditions. One thing I have observed is that you can only fly this tiny drone on very calm days because it´s too light for the wind... so it´s better suitted as an indoor drone. Then I started to think how to make a cheap way to navigate on indoor enviroments... I have one sharp IR disntace sensor so I start making some tests mounting the sensor in a servo to make a 180º scan. The idea was to mount 2 (or 4) of this sensors in the moving head.
On the tests I found that in this little machine the moving head caused some inestability, so I decided to mount 4 sensors in a fixed way. OK, this the cheap DIY version of an EXPENSIVE laser range finder, but it works...
there are many thing to improve and test, but it´s a promising start...


Details

Sonar module is an LV-EZ0. Because we don´t have any analog input available I use the PWM interface in a Port Change pin (PCINT20) to use an interrupt to read the sensor. (It´s recommended some solder skills to make this modification).

For the IR range finder (Sharp GP2Y0A02) I needed to use a separate Arduino Pro mini (again we don´t have any analog input free). This module connects to the ArduIMU via Serial port so we need to choose between GPS of range finder (outdoor-indoor decision).


On this III part, the hardware (ArduIMU) really show it´s limits... it´s not a problem of CPU power, it´s a problem of the limited I/O as I said before, so it´s time to move to the big brother, the new ArduPilot Mega Hardware... this new platform will be fantastic for this projects...


Behind the scenes

During the test of position hold I have some crashes (nothing important, only some broken propellers...) and there was a moment in that the quad performs not so good, so I start searching the reason. Again I suspect that it could be a vibrations problem so I decided to make a modified code to test the vibration on each motor.

As you can see I have problems on left motor, so I change this prop, also add a new layer of doubled sided foam tape to the ArduIMU and problem gone.

The code is here: Quad1_mini_test_motor_vibrations.zip (If you want to use it read the instrucctions)


Respect to the IR distance sensor, the first version was a moving head with a servo but this had some problems with vibrations that affect stability and also has a poor scanning rate, here is a photo of this prototype. Finally I decided to use 4 fixed sensors.

Codes

Some parts of this codes are still experimental but you can get it here:

Outdoor code (GPS): Quad_mini_1_27.zip . GPS libraries : GPS_libraries.zip

Indoor code (IR sensors): Quad_mini_1_29_rangefinder.zip External Arduino pro mini code: IR_distance1.zip


Old posts of this project: http://www.diydrones.com/profiles/blogs/arduimu-quadcopter-part-ii


Jose.




E-mail me when people leave their comments –

You need to be a member of diydrones to add comments!

Join diydrones

Comments

  • I am trying to figure out the Xbee connections here. Is there a photograph/ diagram of that wiring. I am trying to simplify this setup down to a PCB with female headers and give the IMU, and arduino mini pins so I can repace when needed as well as upgrade/ use in other projects.

    Also, could the telemetry for the quadcopter be read by an ardustation through the xbee?

    This is a great project and I am having a group of students build one for a science fair entry.
  • A very nice introdcution,I learnt much from your essay.and I think that some components can be find on SeekIC and ChinaICMart.
    Global IC Trading Platform - SeekIC.com
    Seekic.com is a global online marketplace of electronic components. Electronic suppliers, manufacturers, exporters and importers all over the world g…
  • Moderator
    Hi Dody , I'm Roberto N. a member of DEV TEAM of Arducopter , I'll support Arducopter yet now in his development stage , in september will be avaible also on our Fox Team store www.virtualrobotix.com .. now is yet available on Diydrones store .
  • https://www.youtube.com/watch?v=3E9KF11yU-o

    Good evening, while waiting to be able to order the complete kit of Arducopter, I make steal the quadcopter of José, it flies well and my son the pilot better than me.
    @Jani:
    how to order the complete kit of the arducopter for a delivery in France?
    On which site it is available?
    in a friendly way
    DODY.
  • Nice quad cholo.
    Did you install barometer?
    and could you share your code you modified?
    Thanks
  • hi,
    I've just finished my quad based od the ArduIMU and Jose's source.
    There is still some work to do with PID tunning but it flies quite stable even in high wind.

    http://vimeo.com/14180534

    vibrations test
    http://cholo.republika.pl/images/vibra_new.PNG
  • Hey Jose,
    Impressive work there.Is there anyway you can send me the details of the v3 of this project?
  • all escs have same throttle range.
    my quad as 30cm motor to motor
    my setup fly very stable with MK board (same esc converted to i2c)

    Do you know how i cam measure my esc ? to see if it can work at high rate ?
  • I don't know towerpro ESC supports high refresh rate 490hz.
    hobbyking ss and turnegy plush support high refresh rate 490hz.
    what's your spec? eduado.
    did you set the ESC manually same throttle range?
  • well ... my quad re flying but very ... very unstable.

    does anyone know what heapen is esc not support high speed update ?
    i am using towerpro 12amp with original firmware .

    i modified the PID values but the quad continue flying very unstable.

    regards.
This reply was deleted.