yuri

Dependencies:   mbed CrazyflieController CrazyflieSensors USBDevice

main.cpp

Committer:
yurindes
Date:
2018-11-21
Revision:
5:d8e1cf0be63d
Parent:
1:0f858d1630a2

File content as of revision 5:d8e1cf0be63d:

#include "mbed.h"
#include "CrazyflieController.h"
// Crazyflie controller objects
//dfu-util -d 0483:df11 -a 0 -s 0x08000000 -D controladoatitude.NUCLEO_F446ZE.bin
AttitudeEstimator att_est ;
AttitudeController att_cont ;
Mixer mixer ;
// Timer and tickers
Timer tim;
Ticker tic ;
// Interrupt flag
bool flag = false ;
// Callback function
void callback ()
{
    flag = true ;
}
// Current time
float current_time ;
// Main program
int main ()
{
    // Set references
    float f_t = 1.0f * m * g;
    float phi_r = 0.0f;
    float theta_r = 0.0f;
    float psi_r = 0.0f;
    // Wait 5s for safety
    wait (5);
    // Initialize estimator object
    att_est.init () ;
    // Initialize interrupts
    tic.attach (&callback , dt);
    // Start timer
    tim.start () ;
    while ( current_time <=10.0f)
    {
        // Update current time
        current_time = tim.read () ;
        // Estimate and control
        if ( flag )
        {
            flag = false ;
            att_est.estimate () ;
            att_cont.control (phi_r , theta_r ,psi_r , att_est.phi , att_est.theta , att_est.psi);
            mixer.actuate (f_t ,0.0f, att_cont.tau_theta ,0.0f);
        }
    }
    // Turn off all motors
    mixer.actuate (0.0f ,0.0f ,0.0f ,0.0f);
    while (1) ;
}