sábado, 20 de junio de 2015

Proyecto Atlantis 1 - Recuento de materiales.

El globo, Pawan 1600                                          125.59 Lo tengo
Paracaídas   42"                                                           24 € Lo tengo
GPS Tracker                                                         20.25 Lo tengo
Tarjeta operativa móvil para GPS                                     0 € Lo tengo
Tarjeta datos micro SD 2 Gb para GPS                             5 € Lo tengo
Cámara de video GoPro HD 72.71 Lo tengo
Cámara de video GoPro HD 50 Lo tengo
Tarjeta micro SD 32 Gb para GoPro                              12.99 Lo tengo
Tarjeta micro SD 32 Gb para GoPro                              12.99 Lo tengo
 Adaptador de pilas para GoPro 1.8 Lo tengo
3 pilas alcalinas de 1,5V para GoPro 4 € Lo tengo
Tarjeta datos micro SD 2 Gb                               5 € Lo tengo
Programador Arduino 22 € Lo tengo
 Arduino SD Card Shield 11.9 Lo tengo
Tarjeta micro SD 8 Gb para Arduino 6 € Lo tengo
Sonda de temperatura Arduino 1.73 Lo tengo
Altimetro Arduino  2 € Lo tengo
Pila de 9V con portapilas para Arduino 7.1 Lo tengo
Placa solar 5V 6 € Lo tengo
1 panel poliestireno 1,50 Lo tengo
Pegamento especial para poliestireno 4,75 Lo tengo
1 botella de gas helio 145 € Lo tengo
1 tarjeta para Arduino sensor de humedad DTH-11 5,40 Lo tengo
Materiales varios     25 Lo tengo
Total 535.79  

Proyecto Atlantis - Progamación software del Arduino.

Bueno, poco a poco, voy ensamblando los códigos para programar el Arduino, por lo pronto ya tengo hecho el software del altímetro, que mide altura, presión y temperatura interior del habitáculo.
Quedaría una cosa así:
 
Y el código sería este :

#include <SD.h> //Load SD card library
#include <SPI.h> //Load SPI Library
#include "Wire.h"    // imports the wire library for talking over I2C
#include "Adafruit_BMP085.h"  // import the Pressure Sensor Library We are using Version one of Adafruit API for this sensor
Adafruit_BMP085 Sensor;  // create sensor object called mySensor
// Ok everyone so this is the base that we will have for our data output to sd card coding.
float tempC;  // Variable for holding temp in C
float pressure; //Variable for holding pressure reading
float altitude; //Variable Fo altitude
float sealevelpressure;
float al;
const int greenPin = 9; //this is here for us to activate our pin warning system.
const int redPin = 7;
int chipSelect = 4; //chipSelect pin for the SD card Reader
File SensorData; //Data object you will write your sesnor data to
void setup(){
  pinMode(redPin, OUTPUT);
  pinMode(greenPin, OUTPUT);
  Serial.begin(9600); //turn on serial monitor
  Sensor.begin();   //initialize pressure sensor mySensor
  if (!SD.begin(4)) {
    Serial.println("Card failed, or not present");
    // don't do anything more:
    return;
   
  }
   Serial.println("card initialized.");
Serial.println("PROYECTO ATLANTIS 1.");
 
 }
void loop() {
  if (!Sensor.begin())
  {
        digitalWrite(redPin, HIGH); // turns on red warning LED
        digitalWrite(greenPin, LOW); // turns off green LED
 Serial.println("DANGER! DANGER! Check wiring, Check code, Check well... I don't know just look busy");
  }
    else
  {
  (Sensor.begin());
  SensorData = SD.open("Globo3.txt", FILE_WRITE);
 
  if (!SensorData)
  {
 
        digitalWrite(redPin, HIGH); // turns on red warning LED
        digitalWrite(greenPin, LOW); // turns off green LED
 Serial.println("Comprobando tarjeta SD , Then Press Reset");
        delay(3000);
  }
 
  else
  {
  (SensorData);
  digitalWrite(greenPin, HIGH); // turns on the green pin
  digitalWrite(redPin, LOW); // turns off red warning LED
  tempC = Sensor.readTemperature(); //Read Temperature from BMP180
  pressure = Sensor.readPressure(); //Read Pressure
  altitude = Sensor.readAltitude(101820); //Altitude
  al = Sensor.readAltitude();
  sealevelpressure = Sensor.readSealevelPressure();
  Serial.print("La temperatura es: "); //Print Your results
  Serial.print(tempC);
  Serial.println(" Grados C");
  Serial.print("La presion es: ");
  Serial.print(pressure);
  Serial.println(" Pa.");
  Serial.print("La altura real es: ");
  Serial.print(altitude);
  Serial.println(" metros");
  Serial.print("La altitud es: ");
  Serial.print(al);
  Serial.println("Metros");
  Serial.print("La presion a nivel de mar es: ");
  Serial.print(sealevelpressure);
  Serial.println(" metros  (calculado)");
  Serial.println("");
delay(50000); //para la prueba le pongo en un retraso de 50000 ms para nuestro lanzamiento, un retraso mayor sería más ideal y ahorraría energía de la batería.
SensorData.print(tempC);                             //write temperature data to card
SensorData.print(",");                               //write a commma
SensorData.print(pressure);
SensorData.print(",");
SensorData.print(altitude);                        //write pressure and end the line (println)
SensorData.print(",");
SensorData.println(sealevelpressure);
SensorData.close();                                  //close the file
}
}
}

Me queda que hacer el que mide la temperatura exterior, y quizás le ponga un relé programado para poner en servicio el panel solar.

Aquí pongo un video, donde se puede ver el Arduino trabajando con todos los sensores y alimentado únicamente por la placa solar. Trabaja a la perfección.