![](/media/cache/profiles/8158fa3e4de806e614f7ff02e7b22fde.jpg.50x50_q85.png)
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
Diff: main.cpp
- Revision:
- 9:7b194f83e567
- Parent:
- 7:bc5822aa8878
--- a/main.cpp Tue Feb 10 20:58:12 2015 +0000 +++ b/main.cpp Sun Feb 22 20:10:12 2015 +0000 @@ -9,6 +9,7 @@ #include "serialPortMonitor.h" #include "flightController.h" #include "rcCommandMonitor.h" +#include "altitudeMonitor.h" //Declarations void LoadSettingsFromConfig(); @@ -209,20 +210,16 @@ //Setup wired serial coms _wiredSerial.baud(115200); - _buzzer = 0; - printf("\r\n"); printf("*********************************************************************************\r\n"); printf("Starting Setup\r\n"); printf("*********************************************************************************\r\n"); + //Disable buzzer + _buzzer = 0; + //Setup wireless serial coms _wirelessSerial.baud(57600); - printf("Setup wireless serial\r\n"); - - //Setup GPS serial comms - //_gpsSerial.baud(115200); - //printf("Setup GPS serial\r\n"); //Read config file LoadSettingsFromConfig(); @@ -232,61 +229,56 @@ _rcMappedCommands[1] = 0; _rcMappedCommands[2] = 0; _rcMappedCommands[3] = 0; - printf("Setup initial RC commands\r\n"); //Setup RC median filters - //_yawMedianFilter = new medianFilter(10); - //_pitchMedianFilter = new medianFilter(10); - //_rollMedianFilter = new medianFilter(10); - //_thrustMedianFilter = new medianFilter(10); - //_channel7MedianFilter = new medianFilter(10); - //_channel8MedianFilter = new medianFilter(10); - printf("Setup RC median filters\r\n"); - + _yawMedianFilter = new medianFilter(5); + _pitchMedianFilter = new medianFilter(5); + _rollMedianFilter = new medianFilter(5); + _thrustMedianFilter = new medianFilter(5); + //Initialise PPM _ppm = new PPM(_interruptPin, RC_OUT_MIN, RC_OUT_MAX, RC_IN_MIN, RC_IN_MAX, RC_CHANNELS, RC_THROTTLE_CHANNEL); - printf("Setup PPM\r\n"); //Initialise IMU - wait(1); _freeIMU.init(true); - printf("Setup IMU\r\n"); + + //Initialise MaxBotix ping sensor + _maxBotixTimer.start(); + + //Initialise GPS + _gps.baud(115200); //Initialise PID InitialisePID(); - printf("Setup PID\r\n"); //Initialise PWM InitialisePWM(); - printf("Setup PWM\r\n"); //Set initialised flag _initialised = true; - - printf("*********************************************************************************\r\n"); - printf("Finished Setup\r\n"); - printf("*********************************************************************************\r\n"); // Start threads _flightControllerThread = new Thread (FlightControllerThread); _flightControllerThread->set_priority(osPriorityRealtime); _rcCommandMonitorThread = new Thread (RcCommandMonitorThread); _rcCommandMonitorThread->set_priority(osPriorityHigh); + _altitudeMonitorThread = new Thread (AltitudeMonitorThread); + _altitudeMonitorThread->set_priority(osPriorityHigh); _serialPortMonitorThread = new Thread (SerialPortMonitorThread); _serialPortMonitorThread->set_priority(osPriorityLow); _statusThread = new Thread(StatusThread); _statusThread->set_priority(osPriorityIdle); + + Thread::wait(1000); + + printf("*********************************************************************************\r\n"); + printf("Finished Setup\r\n"); + printf("*********************************************************************************\r\n"); } int main() -{ +{ Setup(); - // Wait here forever - Thread::wait(osWaitForever); - - /*while(true) - { - printf("%f\r\n", _ypr[1]); - }*/ + Thread::wait(osWaitForever); } \ No newline at end of file