Fatima Fouda
Published © GPL3+

1Sheeld CanSat

A successful attempt at making a fully functional Telemetry CanSat using 1Sheeld.

IntermediateFull instructions provided4,859

Things used in this project

Hardware components

Arduino UNO & Genuino UNO
Arduino UNO & Genuino UNO
×1
1Sheeld
1Sheeld
×1
9V battery (generic)
9V battery (generic)
×1
Smartphone with necessary sensors
Purple phones work best.
×1

Story

Read more

Custom parts and enclosures

Body

Material: PLA
Resolution: 0.4mm
Infill: 25%
Circular cutouts are used for ventilation, so that the sensors record the most accurate readings.

Upper Cover

Material: PLA
Resolution: 0.4mm
Infill: 25%
Ridges in the top and lower cover are used to anchor the smartphone.
Adjust the size to fit your smartphone

Base

Material: PLA
Resolution: 0.4mm
Infill: 25%
Ridges in the top and lower cover are used to anchor the smartphone.
Adjust the size to fit your smartphone

Schematics

1Sheeld Arduino Assembly

Use the proper battery connector to connect the 9V battery to the Arduino.

Fritzing File

Code

Untitled file

Arduino
#include <OneSheeld.h>

int counter = 0;

void setup()
{
  //initialize 1Sheeld
	OneSheeld.begin();
//Save previous data
	Logger.stop();
	
}

void loop()
{
	/* Always check if the push button is pressed. */
  if(PushButton.isPressed())
  {
  	Logger.start("Telemetry");
  for(counter=0; counter<4; counter++){
    //log accelartion 
  		Logger.add("Xacc", AccelerometerSensor.getX());
  		Logger.add("Yacc", AccelerometerSensor.getY());
  		Logger.add("Zacc", AccelerometerSensor.getZ());
  		//Insert empty column
  		Logger.add(" ", " " );
		
		//log angular velocity
  		Logger.add("Xrate", GyroscopeSensor.getX() );
  		Logger.add("Yrate", GyroscopeSensor.getY() );
  		Logger.add("Zrate", GyroscopeSensor.getZ() );
		//Insert empty column
		Logger.add(" ", " " );
	
		//log euler angles
	  	Logger.add("Pitch", OrientationSensor.getX() );
	  	Logger.add("Yaw", OrientationSensor.getY() );
  		Logger.add("Roll", OrientationSensor.getZ() );
		//Insert empty column
		Logger.add(" ", " " );
		
		//log GPS coordinates
      	        Logger.add("Latitude", GPS.getLatitude());
                Logger.add("Longitude", GPS.getLongitude());
                //Insert empty column
		Logger.add(" ", " " );
		
		//log pressure
		Logger.add("Pressure", PressureSensor.getValue());
		//Insert empty column
		Logger.add(" ", " " );
                OneSheeld.delay(500);
		
		//log temperature
		Logger.add("temp", TemperatureSensor.getValue());
                OneSheeld.delay(500);
               //Insert empty column
		Logger.add(" ", " " );
               
		//Log the row
		Logger.log();
              OneSheeld.delay(1000);
  }
  Logger.stop();
  }
  counter=0;
}

Untitled file

Arduino
#include <OneSheeld.h>

int counter = 0;

void setup()
{
  //initialize 1Sheeld
	OneSheeld.begin();
//Save previous data
	Logger.stop();
	
}

void loop()
{
	/* Always check if the push button is pressed. */
  if(PushButton.isPressed())
  {
  	Logger.start("Telemetry");
  for(counter=0; counter<4; counter++){
    //log accelartion 
  		Logger.add("Xacc", AccelerometerSensor.getX());
  		Logger.add("Yacc", AccelerometerSensor.getY());
  		Logger.add("Zacc", AccelerometerSensor.getZ());
  		//Insert empty column
  		Logger.add(" ", " " );
		
		//log angular velocity
  		Logger.add("Xrate", GyroscopeSensor.getX() );
  		Logger.add("Yrate", GyroscopeSensor.getY() );
  		Logger.add("Zrate", GyroscopeSensor.getZ() );
		//Insert empty column
		Logger.add(" ", " " );
	
		//log euler angles
	  	Logger.add("Pitch", OrientationSensor.getX() );
	  	Logger.add("Yaw", OrientationSensor.getY() );
  		Logger.add("Roll", OrientationSensor.getZ() );
		//Insert empty column
		Logger.add(" ", " " );
		
		//log GPS coordinates
      	        Logger.add("Latitude", GPS.getLatitude());
                Logger.add("Longitude", GPS.getLongitude());
                //Insert empty column
		Logger.add(" ", " " );
		
		//log pressure
		Logger.add("Pressure", PressureSensor.getValue());
		//Insert empty column
		Logger.add(" ", " " );
                OneSheeld.delay(500);
		
		//log temperature
		Logger.add("temp", TemperatureSensor.getValue());
                OneSheeld.delay(500);
               //Insert empty column
		Logger.add(" ", " " );
               
		//Log the row
		Logger.log();
              OneSheeld.delay(1000);
  }
  Logger.stop();
  }
  counter=0;
}

1Sheeld CanSat

Credits

Fatima Fouda

Fatima Fouda

1 project • 8 followers

Comments