My modifications/additions to the code

Dependencies:   ADXL345 ADXL345_I2C IMUfilter ITG3200 Servo fishgait mbed-rtos mbed pixy_cam

Fork of robotic_fish_ver_4_8 by jetfishteam

Committer:
rkk
Date:
Thu May 22 04:32:19 2014 +0000
Revision:
17:6970aef8154b
Parent:
15:dc5753a5b83e
Child:
18:9ba4566f2361
jet fish with simple yaw motion and added channels for pwm in and pwm out

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 17:6970aef8154b 9 #include "Servo.h"
rkk 17:6970aef8154b 10
rkk 12:7eeb29892625 11
rkk 11:8ec915eb70f6 12
rkk 11:8ec915eb70f6 13 #define MATH_PI 3.14159265359
rkk 11:8ec915eb70f6 14
rkk 11:8ec915eb70f6 15 /** MainController class to get control inputs and place them onto the system
rkk 11:8ec915eb70f6 16 *
rkk 11:8ec915eb70f6 17 *
rkk 11:8ec915eb70f6 18 */
rkk 11:8ec915eb70f6 19 class MainController {
rkk 11:8ec915eb70f6 20 public:
rkk 11:8ec915eb70f6 21 /** Create a MainController
rkk 11:8ec915eb70f6 22 *
rkk 11:8ec915eb70f6 23 * @param
rkk 11:8ec915eb70f6 24 */
rkk 11:8ec915eb70f6 25 MainController() ;
rkk 11:8ec915eb70f6 26
rkk 11:8ec915eb70f6 27 /** Start the main controller
rkk 11:8ec915eb70f6 28 *
rkk 11:8ec915eb70f6 29 * @returns
rkk 11:8ec915eb70f6 30 */
rkk 11:8ec915eb70f6 31 void start();
rkk 11:8ec915eb70f6 32
rkk 11:8ec915eb70f6 33 float getDutyCycle();
rkk 11:8ec915eb70f6 34 float getFrequency();
rkk 11:8ec915eb70f6 35 float getVolume();
rkk 11:8ec915eb70f6 36 float getAmplitude();
rkk 12:7eeb29892625 37 float getRudder();
rkk 17:6970aef8154b 38 float getPitch();
rkk 11:8ec915eb70f6 39
rkk 11:8ec915eb70f6 40 /** Stop the main controller
rkk 11:8ec915eb70f6 41 *
rkk 11:8ec915eb70f6 42 * @returns
rkk 11:8ec915eb70f6 43 */
rkk 11:8ec915eb70f6 44 void stop();
rkk 11:8ec915eb70f6 45
rkk 11:8ec915eb70f6 46
rkk 11:8ec915eb70f6 47 protected:
rkk 11:8ec915eb70f6 48 void control();
rkk 11:8ec915eb70f6 49 float calculateFrequency();
rkk 11:8ec915eb70f6 50 float calculateVolume();
rkk 12:7eeb29892625 51 float calculateRudder();
rkk 17:6970aef8154b 52 float calculatePitch();
rkk 13:5ed8fd870723 53 float signum(float input);
rkk 15:dc5753a5b83e 54 float saturate(float input);
rkk 11:8ec915eb70f6 55
rkk 11:8ec915eb70f6 56 private:
rkk 17:6970aef8154b 57 PwmIn ch1;
rkk 17:6970aef8154b 58 PwmIn ch2;
rkk 11:8ec915eb70f6 59 PwmIn ch3;
rkk 12:7eeb29892625 60 PwmIn ch4;
rkk 11:8ec915eb70f6 61 PwmIn ch6;
rkk 11:8ec915eb70f6 62 PololuMController mcon;
rkk 12:7eeb29892625 63 Guardian ap;
rkk 17:6970aef8154b 64 Servo leftservo;
rkk 17:6970aef8154b 65 Servo rightservo;
rkk 12:7eeb29892625 66
rkk 11:8ec915eb70f6 67 Timer timer1;
rkk 11:8ec915eb70f6 68 Ticker ticker1;
rkk 11:8ec915eb70f6 69 float vol;
rkk 11:8ec915eb70f6 70 float frq;
rkk 11:8ec915eb70f6 71 float dutyCycle;
rkk 11:8ec915eb70f6 72 float curTime;
rkk 11:8ec915eb70f6 73 float frqMin;
rkk 11:8ec915eb70f6 74 float frqMax;
rkk 11:8ec915eb70f6 75 float amplitude;
rkk 12:7eeb29892625 76 float rud;
rkk 17:6970aef8154b 77 float pitch;
rkk 17:6970aef8154b 78
rkk 17:6970aef8154b 79 int state;
rkk 17:6970aef8154b 80 int change;
rkk 17:6970aef8154b 81 //float goofftime;
rkk 17:6970aef8154b 82 //bool switched;
rkk 11:8ec915eb70f6 83 };
rkk 11:8ec915eb70f6 84
rkk 11:8ec915eb70f6 85 #endif
rkk 11:8ec915eb70f6 86
rkk 11:8ec915eb70f6 87