the fish that looks like a jet

Dependencies:   ADXL345 ADXL345_I2C IMUfilter ITG3200 mbed Servo

Committer:
rkk
Date:
Mon Feb 03 21:04:35 2014 +0000
Revision:
13:5ed8fd870723
Parent:
12:7eeb29892625
Child:
15:dc5753a5b83e
change control approach to have bang bang and impulse length defining

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 11:8ec915eb70f6 50
rkk 11:8ec915eb70f6 51 private:
rkk 11:8ec915eb70f6 52 PwmIn ch3;
rkk 12:7eeb29892625 53 PwmIn ch4;
rkk 11:8ec915eb70f6 54 PwmIn ch6;
rkk 11:8ec915eb70f6 55 PololuMController mcon;
rkk 12:7eeb29892625 56 Guardian ap;
rkk 12:7eeb29892625 57
rkk 12:7eeb29892625 58
rkk 11:8ec915eb70f6 59 Timer timer1;
rkk 11:8ec915eb70f6 60 Ticker ticker1;
rkk 11:8ec915eb70f6 61 float vol;
rkk 11:8ec915eb70f6 62 float frq;
rkk 11:8ec915eb70f6 63 float dutyCycle;
rkk 11:8ec915eb70f6 64 float curTime;
rkk 11:8ec915eb70f6 65 float frqMin;
rkk 11:8ec915eb70f6 66 float frqMax;
rkk 11:8ec915eb70f6 67 float amplitude;
rkk 12:7eeb29892625 68 float rud;
rkk 13:5ed8fd870723 69 float goofftime;
rkk 13:5ed8fd870723 70 bool switched;
rkk 11:8ec915eb70f6 71 };
rkk 11:8ec915eb70f6 72
rkk 11:8ec915eb70f6 73 #endif
rkk 11:8ec915eb70f6 74
rkk 11:8ec915eb70f6 75