the fish that looks like a jet

Dependencies:   ADXL345 ADXL345_I2C IMUfilter ITG3200 mbed Servo

Committer:
rkk
Date:
Sat Feb 01 00:03:40 2014 +0000
Revision:
12:7eeb29892625
Parent:
11:8ec915eb70f6
Child:
13:5ed8fd870723
first design to put to water

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