because there's no easy way to connect the arduino to a normal perf-baord (stupid 2mm space between digi7 and digi8) i decided to make it the right way from the beginning. so i downloaded eagle and played around the last few days. this is what has come out. :) i plan to use the arduino bootloader and just connect the few needed pins to a empty diecimila board for easy programming. all the traces are already handrouted.

i'll use the following sensors (plugged in on the pinheaders [should be female ones on the board]):

3x Gyro Breakout Board - MLX90609
Triple Axis Accelerometer Breakout - LIS3LV02DQ
Breakout Board for MEMs Barometric Pressure Sensor - SCP1000

they all run on the spi bus. there's a 74hc4050 for level-shifting 5v to 3.3V for the accelerometer and pressure sensor.

- there are 4 keys based on http://www.arduino.cc/en/Tutorial/TwoSwitchesOnePin

- the 4 pins on the left are i2c + power for the sparkfun-blinkm

- ppm input (see my previos blog post)

- ppm output (ppm and reset signal also driven by timer1) and a 4017N decoder to 10 servos. that should be enough :)

the cool thing about this is that when coded correctly, this thing wont lose control when the software crashes. since the the interupts are called in hardware by the timer, as long as the crashed software doesn't modify the timer-setup-registers, the interupts will continue to be called! so you could check in the input capture interupt each time if the programm is running (increment variable for each loop or like that): if yes, use the computed servo-position, if not, directly pass the position from the receiver.

the display (ttl serial crystalfontz) is pluged in for setup.

the ublox (got it here http://ppzuav.com/) has a very nice software for windows. you can connect it with usb, experiment with the settings, and save the default settings to flash! so you wont need to do this on every start up. the gps is only connected with serial-in, 5V and gnd.

what i noticed on the ublox is that it's not as sensitive as a sirf3! my old sirf3 easily works indoors. the ublox wont, i have to at least put it next to the window...

this is just a prototype or alpha version. i connected all the stuff the way i think it should work.

- ppm input works
- ppm output works, but without the reset-signal at the moment (should usually work without problems, but if for some reason a pulse is skipped, all the following pulses/servo-positions will be shifted by one servo... which is not so good...)
- gps works (at least with nmea messages, ublox messages will be even easier)
- display with simple menu-system works
- pressure sensor works (but with a simpler level shifter, have to first get the 74hc4050)

todo:
- connect all parts on a breadboard
- read all sensors
- get board made
- write software....

once the baord is finshed, i'll probably release the eagle files. the design is quite universal and can be used for everything! more sensors/hardware can be easily connected to i2c or spi-bus (there are 3 unused i/o pins the atmega)

PS: i should probably add headers for a rf-transmitter or maybe add battery-voltage-input (voltage divider) or a sd-card slot (on the backside?) instead of eeprom.

Views: 439


3D Robotics
Comment by Chris Anderson on July 10, 2008 at 7:37am
Cool! How confident are you that the atmega168 can handle the IMU functions in real time along with the navigation functions? It seems like quite a processing load...
Comment by James Ross on July 10, 2008 at 9:33am
Be careful with that gyro. It has a max rate of 75 degrees/sec (that's a slow 1 revolution per 4.61 seconds). This might be good enough for your application, but it could get saturated in most R/C airplanes.

100KM
Comment by crystal garris on July 10, 2008 at 9:49am
looks good . nice work .
Comment by Jack Crossfire on July 10, 2008 at 11:51am
$100 for a uBlox5 reference board. Wonder how much money ppzuav is making off the Paparrazi gravy train.
Comment by quix-fz on July 10, 2008 at 4:36pm
@chris: i think the memory will be the bigger problem. mikrokopter.de is using similar hardware, but with 64kb. might update to a 20mhz crystal if needed...

@james: i have to 150degrees/sec version. should be enough.

@jack: they have the modules from rfdesign, sells at 56 US$ :) but i haven't found any international shipping info on that page...
Comment by paul hubner on July 14, 2008 at 7:00pm
Q - Cool render too - what tool did you use? can is take Eagle input?

Paul
Comment by quix-fz on July 14, 2008 at 11:57pm
very easy

http://www.instructables.com/id/Render-3D-images-of-your-PCBs-using-Eagle3D-and-PO/

Comment

You need to be a member of DIY Drones to add comments!

Join DIY Drones

© 2019   Created by Chris Anderson.   Powered by

Badges  |  Report an Issue  |  Terms of Service