Jordi Muñoz's Posts (87)

Sort by
This is a nice example of how to control Google Maps.With this Labview VI you are able to:1-Control the center Point of the Map with the desired coordinates.2-Control the Size, Zoom and the Format of the Map (terrain, hybrid, etc).3- You are able to put multiple balloons, and change color, size,, etc.4-You are able to draw paths between the center point and the balloons.You can attach multiple GPS and display the position of each with a balloon, please modify it to your needs.The bad: Is a little bit slow, depending on your internet
Read more…
Well better read the source code and enjoy, please try to customize the code to your own system.You need an attiny85 and is programmed with AVR studio (don't forget to desactivate the CLOCK DIVIDED BY 8) it uses the internal crystal, you need also a mux like 74ls157, or either you can use the output pin to read it with you microcontroller in case you are decoding and pulsing the servo with the same system..News: i have internet at home again. (living in the mean time in Swiss).New record: this is the first program i made that runs at the first time i compile it. =)Note: This code will be used in the ardupilot PRO and the arduMUX v2, and maybe the arducopter v2 (coming soon).This code is very well tested... BUT NO WARRANTY'S..CODE Click over there:antifail_antiny.c
Read more…
Intercept the PPM signal is the best way to obtain all the channels from any receiver, for a lot of reasons. The first one is performance, and the second is the simplicity (in code =P). This hack is based on this tutorial from Paparazzi Autopilot.For more information about the PPM frames click here.For this hack i'm using a Futaba receiver FP-R127DF. Almost all the Futaba receivers came with the BU4015BF Shift Register chip, if your are able to locate this chip, you just need to solder a single wire in the pin 1 or 9 (clock), and you are done!Here is the Data Sheet of the IC:BU4015.pdfAnother good way to find the PPM signal pin is using this code with arduino:void setup(){Serial.begin(57600);pinMode(3, INPUT);}void loop(){Serial.println(pulseIn(3, LOW));}Then upload the code to arduino, and with a wire connected to the pin 3, start touching all the pins and spots you can of you receiver (don't forget to also connect ground to ground), until you see random values between 300 to 9000 on arduino terminal (that means you found it).After that, just solder a wire on it and use this code to decode all the channels:#define channumber 4 //How many channels have your radio?int value[channumber];void setup(){Serial.begin(57600); //Serial BeginpinMode(3, INPUT); //Pin 3 as input}void loop(){while(pulseIn(3, LOW) < 5000){} //Wait for the beginning of the framefor(int x=0; x<=channumber-1; x++)//Loop to store all the channel position{value[x]=pulseIn(3, LOW);}for(int x=0; x<=channumber-1; x++)//Loop to print and clear all the channel readings{Serial.print(value[x]); //Print the valueSerial.print(" ");value[x]=0; //Clear the value afeter is printed}Serial.println(""); //Start a new line}This a video where you can see everything i explained in action:
Read more…

Open Source MUX Antifail System by me

Has been pass a long time since my last post, and well, I have been very busy. Anyway I have a good gift for all the community and I hope you will enjoy it, is my final version of my MUX antifail system. Chris Anderson already talk about this, you can see it here.This device let you switch between automode or manual mode just using 1 channel of your remote control. My Antifail system is a little bit complex, the idea was to make it very flexible and you can adapt it to any homemade solution.. For example you can choose between a pull down or pull up resistor, and if you make contact with any servo activated device in the correct pins will let you switch between modes or if you system only have a TTL pin to send the signal you can use it with no problems… in other cases if you have weird pico-switch that is just a transistor that makes ground, anyway, you can use it, (maybe I confuse everybody now), this is just an introduction, but I will explain it in detail after.And off course if open source and almost free, (just 7 dlls for board), a commercial one will cost you about $50 dlls.Let me explain about the labels of the PCB:SA1,2,3,4= Servos Port A (Input): Input of servos in port A.SB1,2,3,4= Servos Port B (Input): Input of servos in port B.S1,2,3,4= Servos Outputs.PWR_SEL= Power Select Jumper: Let you choose from where you want to obtain the power to move the output servos, if you place the jumper in the pins 1 and 2 you will take the power from the receiver connected to input port A, and if you put the jumper in pins 2 and 3 you will obtain the power from the receiver connected to input Port B.IC_PWR= IC power select: This jumper let you choose from where you want to take the power to supply the multiplexor chip, if you place the jumper in pins 1 and 2 (SRV), you will obtain the power from the receiver selected in PWR_SEL, but in case that the receiver exceeds 5.5 volts, you will need to place the jumper in the pins 2 and 3 (VIN), and connect a 5 volts battery in the VIN jumper.VIN= Voltage In: Here is where you suppose to connect the 5 volts battery. Careful with the polarity =).RES_SEL= Resistance Selector : Here you can choose between a pulldown or pullup resistor, if you choose pulldown resistor, the autopilot will be disable by the default, until you send a 5 Volts signal. If you select the pullup resistor, the autopilot will be activated by default, until you ground it.PICO= PICO Switch, is where you suppose to connect a switch activated by a servo signal (connected to channel 5 of your remote control). The pin 1 is ground, the pin 2 is the mode selector (manual mode or auto mode) and the pin 3 is 5Volts. If you selected the pulldown resistor mode you will need to make contact between the pin 2 and 3 to activate or deactivate the autopilot,. In case that you selected the pullup resistor mode, you will need to ground the pin2 to activated or deactivate the autopilot, you can use any ground you want, but I already put you a ground pin, and is the pin1 =).In case that you have system that will send a TTL signal, like a microcontroller or something, you should connect the output pin of your MCU and connect it to the “PICO pin 2” (the middle one), and connect the ground of the MCU to the MUX Ground, in this case the ground pin (PICO pin 1).Just to rectify if the pin 2 of the PICO jumper is set to LOW or ground, the input port A will be redirected to the output port (you can connect here your receiver or you autopilot). If the pin is set to HIGH or 5 volts, the input ports B will be redirected to the output ports, instead the input port A. This will let you switch between to controllers (autopilot and the remote control receiver).LED1= Tells you when autopilot is activated or vise versa..LED2= Tells you when the system is powered..

Well I hope is enough… If I made a grammatical mistake (like always) just tell me, hehe.To order a PCB from click here.

About the Pico Switch, you can buy it from here: you can make you own, the switch is from radioshack:
Use it by your own risk!!, if you plane crash i don't know anything, i don't even exist for you, but if you plane is a successful, all the credit is mine off course =P
Read more…

ArduBlimp (minimum Blimp) V1

Finally we have the final version of the first prototype of ArduBlimp, wells know as the "Minimun Blimp".Capability's:* Hold altitude with PING))) sensor...* Fly around the infrared beacon...* Use Arduino Lilypad, for low power consumption ...
Some High res pictures:









Parts used:-The Blubberbot-The pololu motor controller x 2, used to control the motors of the blimp-The pololu infrared beacon, used for navigation-The Parallax Ping))) sensor, for hold altitude-And offcourse, the arduino LilyPad...Source code click here...
Read more…

Final version of ArduIMU (Include Video)

After a few more tests, I now have the final version of the ArduIMU. The main problem was the calibration of the gyros: converting the raw data to degrees/s. I had to change the source code, compile it, upload, and repeat it over and over again. Totally waste of time.So i configured Arduino to externally adjust the gyros and the accelerometer jitter filter, using the nunchuck potentiometers (joystick axis). Now it’s working pretty well. =)Please, in the source code, ignore all the lines marked with "//(kalman)", this lines are related to the kalman filter code, those marked by "//(nunchuck) are related to nunchuck accelerometer and axis control, and all marked by "//(gyro)" are code related to the control of the gyroscope.Another tip, all the data is processed in radians, then is converted to degrees (radian*180/PI = radians*57.295779= degrees). If somebody needs any help, please feel free of asking me.Video:-Yellow color = Just Accelerometer read-Red color= Accelerometer+Gyro+KalmanFIiter
Arduino Source Code: Labview (ground station) source code:

To do: -Integrate another Gyro (to make it dual axis) . -Program the SPI altimeter.-And put all the hardware together and make it work (GPS, Altimeter, IMU, Modem).

Done: -Servo control -Gps Waypoint navigation (I’ll post later about it).

The next article I'm going to post all the links to get started with Arduino environment. All you would need to learn: tutorials, examples, references, tips and tricks. If you already know C++ it’s going to be 99% easier. If not, you are going to discover why C/C++ is the most compressive and famous language ever ;-) Then jumping to any AVR, ARM, PIC microcontroller C/C++ language environment, is going to be a lot easier, because they’re all based on the same principles.

Read more…

First Arduino IMU test

I'm trying to develop an IMU for my Arduino-based UAVS (heli) project. In my first test I just used a three-axis accelerometer, but it didn't work because the motor vibration generated too much noise. I then tried it just with gyros, but of course the the gyros drifted. So I learned through experience what everyone already knows: that the onlyway to make a good IMU is by mixing accelerometers with gyros andKalman Filters, which is eventually what I did ;-)

I ran a test to see how my IMU is responding, and I made a line chart to see the results. The test consists of rotating the device to 70 degrees and then shake it, to see how the filters reduce the "noise". It looks pretty good:

The samples was taken every 20 miliseconds, the blue line is just accelerometer and the red line is Accelerometer+Gyros+KalmanFilters.

Source code here: ArduIMU Beta1

Special thanks to Tom Pycke

Read more…