the fish that looks like a jet

Dependencies:   ADXL345 ADXL345_I2C IMUfilter ITG3200 mbed Servo

Committer:
rkk
Date:
Mon Feb 17 14:04:09 2014 +0000
Revision:
16:79cfe6201318
Parent:
15:dc5753a5b83e
changed p5 to p7

Who changed what in which revision?

UserRevisionLine numberNew contents of line
rkk 11:8ec915eb70f6 1 #ifndef MBED_MAINCONTROLLER_H
rkk 11:8ec915eb70f6 2 #define MBED_MAINCONTROLLER_H
rkk 11:8ec915eb70f6 3
rkk 11:8ec915eb70f6 4 #include "mbed.h"
rkk 11:8ec915eb70f6 5 #include "PwmIn.h"
rkk 11:8ec915eb70f6 6 #include "motor_controller.h"
rkk 12:7eeb29892625 7 #include "guardian.h"
rkk 12:7eeb29892625 8 //#include "IMU.h"
rkk 12:7eeb29892625 9
rkk 11:8ec915eb70f6 10
rkk 11:8ec915eb70f6 11 #define MATH_PI 3.14159265359
rkk 11:8ec915eb70f6 12
rkk 11:8ec915eb70f6 13 /** MainController class to get control inputs and place them onto the system
rkk 11:8ec915eb70f6 14 *
rkk 11:8ec915eb70f6 15 *
rkk 11:8ec915eb70f6 16 */
rkk 11:8ec915eb70f6 17 class MainController {
rkk 11:8ec915eb70f6 18 public:
rkk 11:8ec915eb70f6 19 /** Create a MainController
rkk 11:8ec915eb70f6 20 *
rkk 11:8ec915eb70f6 21 * @param
rkk 11:8ec915eb70f6 22 */
rkk 11:8ec915eb70f6 23 MainController() ;
rkk 11:8ec915eb70f6 24
rkk 11:8ec915eb70f6 25 /** Start the main controller
rkk 11:8ec915eb70f6 26 *
rkk 11:8ec915eb70f6 27 * @returns
rkk 11:8ec915eb70f6 28 */
rkk 11:8ec915eb70f6 29 void start();
rkk 11:8ec915eb70f6 30
rkk 11:8ec915eb70f6 31 float getDutyCycle();
rkk 11:8ec915eb70f6 32 float getFrequency();
rkk 11:8ec915eb70f6 33 float getVolume();
rkk 11:8ec915eb70f6 34 float getAmplitude();
rkk 12:7eeb29892625 35 float getRudder();
rkk 11:8ec915eb70f6 36
rkk 11:8ec915eb70f6 37 /** Stop the main controller
rkk 11:8ec915eb70f6 38 *
rkk 11:8ec915eb70f6 39 * @returns
rkk 11:8ec915eb70f6 40 */
rkk 11:8ec915eb70f6 41 void stop();
rkk 11:8ec915eb70f6 42
rkk 11:8ec915eb70f6 43
rkk 11:8ec915eb70f6 44 protected:
rkk 11:8ec915eb70f6 45 void control();
rkk 11:8ec915eb70f6 46 float calculateFrequency();
rkk 11:8ec915eb70f6 47 float calculateVolume();
rkk 12:7eeb29892625 48 float calculateRudder();
rkk 13:5ed8fd870723 49 float signum(float input);
rkk 15:dc5753a5b83e 50 float saturate(float input);
rkk 11:8ec915eb70f6 51
rkk 11:8ec915eb70f6 52 private:
rkk 11:8ec915eb70f6 53 PwmIn ch3;
rkk 12:7eeb29892625 54 PwmIn ch4;
rkk 11:8ec915eb70f6 55 PwmIn ch6;
rkk 11:8ec915eb70f6 56 PololuMController mcon;
rkk 12:7eeb29892625 57 Guardian ap;
rkk 12:7eeb29892625 58
rkk 12:7eeb29892625 59
rkk 11:8ec915eb70f6 60 Timer timer1;
rkk 11:8ec915eb70f6 61 Ticker ticker1;
rkk 11:8ec915eb70f6 62 float vol;
rkk 11:8ec915eb70f6 63 float frq;
rkk 11:8ec915eb70f6 64 float dutyCycle;
rkk 11:8ec915eb70f6 65 float curTime;
rkk 11:8ec915eb70f6 66 float frqMin;
rkk 11:8ec915eb70f6 67 float frqMax;
rkk 11:8ec915eb70f6 68 float amplitude;
rkk 12:7eeb29892625 69 float rud;
rkk 13:5ed8fd870723 70 float goofftime;
rkk 13:5ed8fd870723 71 bool switched;
rkk 11:8ec915eb70f6 72 };
rkk 11:8ec915eb70f6 73
rkk 11:8ec915eb70f6 74 #endif
rkk 11:8ec915eb70f6 75
rkk 11:8ec915eb70f6 76