Sistema de vuelo.

Hola a todos espero que todos estén bien.

soy un novato total en arduino, he comenzado hace unos meses y creo que me ha ido bien :grin: antes de comenzar con el asunto quería agradeceros por este foro, ha sido de mucho ayuda para mi.

El problema es el siguiente.

Tengo una lata de cerveza con unos alerones que son accionados por unos servos de 5gr, la lata va a caer desde 5000 metros de altura, regulando el descenso con la ayuda de un paracaídas.

en un arduino uno esta corriendo el siguiente software,

#include <Servo.h>
#include <SoftwareSerial.h>
#include <TinyGPS.h>

Servo servo ;

int Pos;

#define RXPIN 2
#define TXPIN 3

TinyGPS gps;

SoftwareSerial uart_gps(RXPIN, TXPIN);

void getgps(TinyGPS &gps);

void setup()
{
servo.attach(9) ;

Serial.begin(115200);
uart_gps.begin(9600);
}

void loop()
{
while(uart_gps.available()) // While there is data on the RX pin...
{
int c = uart_gps.read(); // load the data into a variable...
if(gps.encode(c)) // if there is a new valid sentence...
{
getgps(gps); // then grab the data.
}
}
}

// The getgps function will get and print the values we want.
void getgps(TinyGPS &gps)
{
delay(2000) ;

// Iniciamos las varibales para la lectura de las coordenadas
float latitude, longitude;
// Leemos las coordenadas
gps.f_get_position(&latitude, &longitude);
// Mostramos las coordenadas en el puerto serie
Serial.print("Lat/Long: ");
Serial.print(latitude,5);
Serial.print(", ");
Serial.println(longitude,5);

// Creamos un link de google maps para ubicar la direccion.
Serial.print("Google Maps") ;

/*
Aqui es donde supongo se deben coomparar las coordenadas y hacer los cambios
necesarios
*/

}

que lo que hace hasta ahora es, con la ayuda de la libreria TinyGPS sacar las coordenadas e imprimirlas en el puerto serie,
la forma que yo pensé para hacer lo que quiero es crear un array que sea igual a las coordenadas e ir comprobando cada elemento del array, y segun lo que contenga tomar desiciones.

se que no me explico bien y tampoco se como hacerlo en codigo por eso voy a escribir en mi "lenguaje" como creo yo que se hace, y espero que por favor alguien me ilustre de como llevar esto al arduino;

voy a mostrarlo en el caso de la latitud solamente.

latitud[] = {latitude} // latitud es el array que contendra las coordenadas, latitude es la variable que almacena las coordenadas leidas con la libreria TinyGPS
if (latitud[3] == 2) // preguntamos si elemento numero 4 del array es igual a 2, en este caso estariamos comprobando el primer elemento correspondiente a //los minutos
{
** servo.write(125) ; // si es asi entonces el servo debe accionar un servomotor con el fin de hacer que la lata vuele hacia la izquierda o a la derecha.**
}

el "codigo" anterior es como yo he pensado que se hace, pero no se como llevarlo a arduino muchas gracias por la atencion prestada espero poder encontrar algo de ayuda, si no quedo claro lo que quiero yo no me molesto porque me pregunten.

muchas gracias.

saludos.

Hola,
yo le pondría además un par de cohetes auxiliares, para cuando haga mucho viento y sea necesaria una corrección del rumbo :grin:
Deberías desmenuzar más detalladamente cómo quieres guiar la caída, hacia dónde lo quieres llevar... Dedícale tiempo a esa primera fase, o sea, exponer detalladamente tu idea. Es la etapa más importante. No son ninguna pérdida de tiempo las horas que pases aclarando lo que quieres hacer. Luego la solución será mucho más sencilla.

neptuno:
la lata va a caer desde 5000 metros de altura,

Como sube hasta 5km?

Sergegsx:

neptuno:
la lata va a caer desde 5000 metros de altura,

Como sube hasta 5km?

Hola, muchas gracias por responder, de hecho estoy trabajando en eso pienso presentaros un ejemplo de lo que quiero conseguir con gráficos y todos jajajajjaa

La lata sube a 5 km con un globo de helio, cuando se encuentra a esa altura hay un sistema que libera a la lata del globo y esta cae!

saludos.