Sunday, April 8, 2012

Cameras Working and Verified at Low Temperature


Lead Author: Mauricio Ayllon Unzueta



Cameras Used

The cameras used and installed in the payload are the GoPro HD Hero 960 and the Canon Power shot A2200.




Performance in Cold Temperatures

The GoPro HD Hero 960 is specifically designed to withstand extreme conditions. According to the specifications found in the manual and website, there is a heating system built into it in order to keep the battery warm. Furthermore, the camara is enclosed in a perfectly sealed case that will provide insulation as well as strength. This is necessary since the payload will be exposed to temperatures as low as -60 ̊C. The Hero 960 takes full high definition video at resolutions up to 1280x960 pixels at 30 frames per second. The battery lasts up to 2.5hrs, which is enough for the duration of the intended flight. We will use this camera to take video throughout the whole flight.

The Canon Power shot A2200, on the other hand, cannot withstand harsh conditions as well as the GoPro. Moreover, it is originally set to turn off after some predetermined time, and its battery does not last the two hours needed when running continuously. Therefore, these original setting were changed using a firmware. The firmware used is the CHDK (Cannon Hack Development Kit), which is free software uploaded to the camera’s memory card in order to enhance certain capabilities. More specifically, the UBASIC script was uploaded with the purpose of doing time- lapsed photography and to disable the automatic turn-off. This makes it possible to choose the interval of how many seconds in between pictures being taken. After this first issue was resolved, in order to save battery life, the back LCD screen was disabled. The firmware for our specific camera is still in beta so that function does not work. To get around this, a 3.5mm headphone jack was plugged into the AV ports. In this way, the screen turns off but the camera remains running. This works because the camera “thinks” it is outputting its display to another source. That is how we resolved both issues.



Summary

We did not expose the Cannon camera to very low temperatures because the LCD screen might have cracked and any additional last minute changes would not have been possible. This is not a problem since even if the screen gets cracked during flight; all we need is the SD card where the pictures will be stored. For final adjustments, the Cannon will be in the insulated “hot” side of our payload were a small hole was opened for the lens, and the GoPro will be outside of the payload attached to it with screws.

Recommendations

The final step is to make sure the lenses do not get obstructed or fogged. In order to avoid this, we can spray the lenses with RainX and cool them down before launch.

Saturday, April 7, 2012

Flight conditions testing of complete system


Lead author: Hanayo Shelton

Goals: 

The goal of the flight conditions testing of complete system is to ensure that our system for this high altitude balloon project can work fine under actual flight conditions since air temearture decreases with altittude, dropping down to below -20̊C at near 30km above the ground.

 Testing:

We placed the circuit board consisting of an Arduino and all the sensors into a cooler box in which dry ice to cool the inside of the box had been put in advance. The measurements  were performed for 24hours and the data were taken every 100 ms. During the measurents, the readngs of all the sensors were sento to a SD-card and stored in it. The entire data was too long to put here, so we show the readings of each sensor for the first 1 second. When we strated the testing, temperature was 22  ̊C, and humidty was 42 %. Dcreasing over time, temperature dropped down to -8  ̊C  in about 100 minutes, and humidity also dropped down to 30 % while both pressure and acceleration were stable over the measurment.
        
Temp (̊C )
  RH (%)
 Pressure(Pa)
      Accel X
  Accel Y
 Accel Z
 Time Since Start (ms)

    21.78
      41.74
          99312
           -0.74
       -0.27
      -1.76
475
20.8
41.84
99313
-0.75
-0.27
-1.79
575
20.8
41.64
99313
-0.78
-0.32
-2.27
675
20.8
41.74
99316
-0.73
-0.25
-1.72
775
20.8
41.84
99321
-0.75
-0.27
-1.75
875
20.8
41.54
99321
-0.75
-0.27
-1.76
975
20.8
41.84
99318
-0.74
-0.27
-1.75
             1075
20.8
41.84
99324
-0.74
-0.25
-1.72
1175
20.8
41.64
99322
-0.73
-0.23
-1.73
1275
20.8
41.84
99318
-0.74
-0.27
-1.75
1375
21.29
41.74
99321
-0.75
-0.25
-1.45
1475

Recommenation:
Since the calibrations for temperature sensor and accelormeter have not been done
 yet, in order to get appropriate data, we need to complete it before lunch.

Friday, April 6, 2012

Complete Payload Integration


Lead Author: Hanayo Shelton

Goals for payload integration:
The goal of the complete payload integration is ensure that all instruments will be put together as one complete payload which will travel up to near 30km above the ground and recovered successfully in two hours after the launch of the balloon.

Payload integration:
All sensors such as a humidity sensor, an accelerometer, and a thermometer as well as a data logger were integrated into one circuit on a perf-board, and put inside a sturdy Styrofoam box (16 in ×18in). A camera which will be used to take pictures over the flight was mounted on one side of the box with the lens exposed to the outside. A video camera was mounted on the outside of the box to record video images during the flight. GPS-transmitter was placed inside the box with an antenna penetrated through the box wall to send the information of the location of the balloon. Parachute was attached to the outside of the box by 4 strings connected to the corners of the box to secure a safe landing of the payloads. Our payloads weighed about 2.5kg.



Recomendations on integaration:

The total weight of our payloads was a little over 2kg which was a desirable weight for our project. We would be able to decrease the weight by making the size of the box smaller.

Thursday, April 5, 2012

Triple Axis Accelerometer-ADXL335


Lead Author: Mauricio Ayllon Unzueta



Triple Axis Accelerometer Breakout - ADXL335



Introduction

Accelerometers measure acceleration caused by motion, mainly. However, when they are at rest with respect to earth’s surface, the acceleration sensed by the accelerator is due to gravity pulling down on it.

A particular aspect of accelerometers of this sort is that they sense rotations. Nevertheless, they can only sense differences in 180 ̊of movement as the other 180 ̊ is just a mirror image of the first. In order to detect a 360 ̊ rotation, the two axes sensors work differently. For instance, when the sensor is being rotated around the X Axis, the sensed values do not change, so it is possible to combine the y and z values to find x using a trigonometric function called Atan2 (ADXL335), which returns values as -180 ̊ to 180 ̊ in radians. [1].

Yaw is the name for rotation around an axis that is similar to spinning a top, or shaking motion sideways. Accelerometers cannot measure this type of motion. However, it is possible to incorporate a gyro or digital compass in order to accomplish this task. This will be done for the present project. [1]

The accelerometer reports proper data when it stands still. When it is in free fall or any other kind of motion, the accelerometer’s reading is no longer purely gravity based. For the purpose of this project, a clean reading during movement is required, and hence, a gyro and an accelerometer working in combination are needed. Together they form what is called an IMU (Inertial Measurement Unit). The gyro is able to kick in where an accelerometer leaves off, and vise versa. In summary, a gyro serves for measuring rotation, and an accelerometer for determining orientation. [1]

The particular type of accelerometer used in this project is the ADXL335, and connecting it to the Arduino is fairly simple. It powers off of the 3.3v, and the x, y, z connectors connect to the 0, 1, 2 analog input pins. This accelerometer outputs an analog voltage depending on the sensed value. [1]

Purpose

The purpose of installing this accelerometer in our payload is to sense sharp changes in wind speed and direction. In particular, we expect to know when the balloon crosses the troposphere into the stratosphere since the jet stream is located within that boundary, and we expect the balloon to experience abrupt movements.

The ADXL335

The ADXL335 is a thin, small, low power, complete 3-axis accelerometer with signal conditioned voltage outputs. It measures acceleration with a minimum full-scale range  3g. This device measures the static acceleration of gravity in tilt-sensing applications and dynamic acceleration resulting from motion, shock, or vibration. [2]


The user selects the bandwidth of the accelerometer using the CX, CY, and CZ capacitors at the XOUT, YOUT, and ZOUT pins. There are few bandwidths that can be selected to suit the task needed. They range from 0.5 Hz to 1600 Hz for the X and Y axes and from 0.5 Hz to 550 Hz for the Z axis. [2]

The ADXL335 contains a polysilicon surface-micromachined structure built on top of a silicon wafer. Polysilicon springs suspend the structure over the surface of the wafer and provide a resistance against acceleration forces. A differential capacitor, consisting of independent fixed plates and plates attached to the moving mass, measures the deflection of the structure. Acceleration unbalances the capacitor, which in turn, results in a sensor output with amplitude proportional to the acceleration experienced. [2]

·         Mechanical Sensor

The ADXL335 uses a single structure for sensing the three axes. Therefore, the axes’ sense direction is orthogonal and has little cross-axis sensitivity. Mechanical misalignment is the principal source of cross-axis sensitivity. However, this misalignment can be calibrated out at the system level. [2]

·         Performance

Innovative design techniques make sure that high performance is achieved by the ADXL335. For this reason, there is no quantization error or nonmonotonic behavior, and temperature hysteresis is very low (usually less than 3mg over the -25 ̊C to +70 ̊C temperature range) [2]

Testing Procedure

The team tested the accelerometer in cool dry ice at -20 ̊C for over 24 hours. The accelerometer gave constant readings throughout the test. It was tested after complete integration including data logging. The code implemented for the Arduino to correctly read these values was:

/*

 ADXL3xx



 Reads an Analog Devices ADXL3xx accelerometer and communicates the

 acceleration to the computer.  The pins used are designed to be easily

 compatible with the breakout boards from Sparkfun, available from:

 http://www.sparkfun.com/commerce/categories.php?c=80


 http://www.arduino.cc/en/Tutorial/ADXL3xx



 The circuit:

 analog 0: accelerometer self test

 analog 1: z-axis

 analog 2: y-axis

 analog 3: x-axis

 analog 4: ground

 analog 5: vcc



 created 2 Jul 2008

 by David A. Mellis

 modified 16 Mar 2012

 by Capstone420



 This example code is in the public domain.



*/


// these constants describe the pins. They won't change:

// const int groundpin = 18;             // analog input pin 4 -- ground

// const int powerpin = 19;              // analog input pin 5 -- voltage

const int xpin = A2;                  // x-axis of the accelerometer

const int ypin = A3;                  // y-axis

const int zpin = A4;                  // z-axis (only on 3-axis models)



void setup()

{

  // initialize the serial communications:

  Serial.begin(9600);


  // Provide ground and power by using the analog inputs as normal

  // digital pins.  This makes it possible to directly connect the

  // breakout board to the Arduino. 

 // pinMode(groundpin, OUTPUT);

 //

 // pinMode(powerpin, OUTPUT);

  // digitalWrite(groundpin, LOW);

 // digitalWrite(powerpin, HIGH);

}


void loop()

{


  // print the sensor values:

  float xRead = analogRead(xpin);

  float yRead = analogRead(ypin);

  float zRead = analogRead(zpin);

 

  float xg = -(xRead - 352)/73.;

  float yg = -(yRead - 361)/75.;

  float zg = -(zRead - 361)/71.

  ;


  Serial.print(xg);

  // print a tab between values:

  Serial.print("\t");

  Serial.print(yg);

  // print a tab between values:

  Serial.print("\t");

  Serial.print(zg);

  Serial.println();



   Serial.print(xRead);

  // print a tab between values:

  Serial.print("\t");

  Serial.print(yRead);

  // print a tab between values:

  Serial.print("\t");

  Serial.print(zRead

  );

  Serial.println();


 
  // delay before next reading:

  delay(1000);

}


Results

The results obtained were as follows:

Accel X
 Accel Y
 Accel Z
-0.74
-0.27
-1.76
-0.75
-0.27
-1.79
-0.78
-0.32
-2.27
-0.73
-0.25
-1.72
-0.75
-0.27
-1.75
-0.75
-0.27
-1.76
-0.74
-0.27
-1.75
-0.74
-0.25
-1.72
-0.73
-0.23
-1.73
-0.74
-0.27
-1.75
-0.75
-0.25
-1.45
-0.73
-0.29
-1.76
-0.74
-0.31
-1.76
-0.74
-0.27
-1.75
-0.73
-0.27
-1.75
-0.74
-0.25
-1.75
-0.75
-0.27
-1.75
-0.75
-0.27
-1.76
-0.74
-0.25
-1.73
-0.41
-0.13
-1.77
-0.74
-0.25
-1.75
-0.75
-0.25
-1.72
-0.74
-0.24
-1.72

The values were a little bit off since calibration is still needed. The team will calibrate it right before launch to ensure precision.

Conclusion

In summary, the ADXL335 accelerometer is a small, low profile package, 3-axis sensing device that requires low power (350 , typically) and a single supply operation: 1.8V to 3,6V. It also possesses 10,000 g shock survival, excellent temperature stability, BW adjustment with a single capacitor per axis, and RoHS/WEEE lead-free compliant. [2]
We expect to know when the balloon will pass the jet stream once the payload is recovered.

Recommendations on Test Results
As mentioned before, Calibration is still needed to ensure proper data gathering. However, this will be done right before launch. 

References


[1] (http://bildr.org/2011/04/sensing-orientation-with-the-adxl335-arduino/, Sensing Orientation With The ADXL335 + Arduino” Friday, April 22 nd , 2011 )

[2] (http://www.sparkfun.com/datasheets/Components/SMD/adxl335.pdf, AnalogDevices, 2009)