Quadcopter software. Flying - Contact me for more details or a copy of the PC ground station code

Dependencies:   ConfigFile PID PPM MODSERIAL mbed-rtos mbed MaxbotixDriver TinyGPS filter

Revision:
7:bc5822aa8878
Parent:
6:4c207e7b1203
Child:
9:7b194f83e567
--- a/hardware.h	Thu Jan 22 18:03:22 2015 +0000
+++ b/hardware.h	Tue Feb 10 20:55:44 2015 +0000
@@ -36,10 +36,10 @@
 #define             RC_ROLL_RATE_MIN -90
 #define             RC_PITCH_RATE_MAX 90
 #define             RC_PITCH_RATE_MIN -90
-#define             RC_ROLL_ANGLE_MAX 15
-#define             RC_ROLL_ANGLE_MIN -15
-#define             RC_PITCH_ANGLE_MAX 15
-#define             RC_PITCH_ANGLE_MIN -15
+#define             RC_ROLL_ANGLE_MAX 45
+#define             RC_ROLL_ANGLE_MIN -45
+#define             RC_PITCH_ANGLE_MAX 45
+#define             RC_PITCH_ANGLE_MIN -45
 #define             RC_THRUST_MAX 1
 #define             RC_THRUST_MIN 0
 
@@ -104,12 +104,12 @@
 char*               _str = new char[1024];
 
 //RC filters
-medianFilter        *_yawMedianFilter;
-medianFilter        *_pitchMedianFilter;
-medianFilter        *_rollMedianFilter;
-medianFilter        *_thrustMedianFilter;
-medianFilter        *_channel7MedianFilter;
-medianFilter        *_channel8MedianFilter;
+//medianFilter        *_yawMedianFilter;
+//medianFilter        *_pitchMedianFilter;
+//medianFilter        *_rollMedianFilter;
+//medianFilter        *_thrustMedianFilter;
+//medianFilter        *_channel7MedianFilter;
+//medianFilter        *_channel8MedianFilter;
 
 //HARDWARE////////////////////////////////////////////////////////////////////////////////////
 // M1  M2
@@ -120,10 +120,10 @@
 // M3  M4
  
 //Motors
-PwmOut              _motor1(p22);
-PwmOut              _motor2(p23);
-PwmOut              _motor3(p24);
-PwmOut              _motor4(p25);
+PwmOut              _motor1(p21);
+PwmOut              _motor2(p22);
+PwmOut              _motor3(p23);
+PwmOut              _motor4(p24);
 
 //USB serial
 Serial              _wiredSerial(USBTX, USBRX);
@@ -136,7 +136,7 @@
 
 //PPM in
 PPM *_ppm;
-InterruptIn *_interruptPin = new InterruptIn(p7);
+InterruptIn *_interruptPin = new InterruptIn(p8);
 
 //Battery monitor
 //DigitalIn         _batteryMonitor(p8);
@@ -148,20 +148,23 @@
 DigitalOut          _led4(LED4);
 
 //Outputs
-DigitalOut          _output1(p11);
-DigitalOut          _output2(p12);
-DigitalOut          _output3(p5);
-DigitalOut          _output4(p6);
+//DigitalOut          _output1(p11);
+//DigitalOut          _output2(p12);
+//DigitalOut          _output3(p5);
+//DigitalOut          _output4(p6);
 
 //IMU
 FreeIMU             _freeIMU;
 
+//Buzzer
+DigitalOut          _buzzer(p20);
+
 //Functions///////////////////////////////////////////////////////////////////////////////////////////////
 //Zero gyro and arm
 void Arm()
 {
     //Don't arm unless throttle is equal to 0 and the transmitter is connected
-    if(_rcMappedCommands[3] < (RC_THRUST_MIN + 0.1) && _rcMappedCommands[3] != -1)
+    if(_rcMappedCommands[3] < (RC_THRUST_MIN + 0.2) && _rcMappedCommands[3] != -1 && _armed == false)
     {
         //Zero gyro
         _freeIMU.zeroGyro();
@@ -174,14 +177,17 @@
 //Disarm
 void Disarm()
 {   
-    //Set armed to false
-    _armed = false;  
-    
-    //Disable modes
-    _levelOffset = false; 
-    
-    //Save settings
-    WriteSettingsToConfig();
+    if(_armed == true)
+    {
+        //Set armed to false
+        _armed = false;  
+        
+        //Disable modes
+        _levelOffset = false; 
+        
+        //Save settings
+        WriteSettingsToConfig();
+    }
 }
 
 //Zero pitch and roll