ESE350 project, Spring 2016, University of Pennsylvania
Dependencies: Adafruit9-DOf Receiver mbed-rtos mbed
quadcopter.cpp
- Committer:
- ivo_david_michelle
- Date:
- 2016-04-02
- Revision:
- 9:f1bd96708a21
- Parent:
- 8:326e7009ce0c
- Child:
- 10:e7d1801e966a
File content as of revision 9:f1bd96708a21:
#include "quadcopter.h" #include "sensor.h" #include "Adafruit_9DOF.h" #include "Serial_base.h" // Date constructor Quadcopter::Quadcopter() { setState(0.0,0.0,0.0); dof_ = Adafruit_9DOF(); accel_ = Adafruit_LSM303_Accel_Unified(30301); mag_ = Adafruit_LSM303_Mag_Unified(30302); gyro_ = Adafruit_L3GD20_Unified(20); // pc.printf("Entering control loop\n\r"); } void Quadcopter::initAllSensors() { print("Initializing Sensors with class method"); initSensors(accel_, mag_, gyro_,offsetAngRate_); // IMU } void Quadcopter::readSensorValues() { accel_.getEvent(&accel_event_); if (dof_.accelGetOrientation(&accel_event_, &orientation_)) { /* 'orientation' should have valid .roll and .pitch fields */ //s_com->print(("Roll: ")); //s_com->print(orientation.roll); //s_com->print(("; ")); //s_com->print(("Pitch: ")); //s_com->print(orientation.pitch); //s_com->print((";\t")); } /* Calculate the heading using the magnetometer */ mag_.getEvent(&mag_event_); if (dof_.magGetOrientation(SENSOR_AXIS_Z, &mag_event_, &orientation_)) { /* 'orientation' should have valid .heading data now */ //s_com->print(("Heading: ")); //s_com->print(orientation.heading); // s_com->print((";\r\n")); } } // Date member function void Quadcopter::setState(double phi, double theta, double psi) { state_.phi = phi; state_.theta = theta; state_.psi = psi; } void Quadcopter::print(char * myString){ (*pcPntr_).printf(myString); (*pcPntr_).printf("\n\r"); }