![](/media/cache/group/default_image.jpg.50x50_q85.jpg)
the fish that looks like a jet
Dependencies: ADXL345 ADXL345_I2C IMUfilter ITG3200 mbed Servo
motor_controller.cpp
- Committer:
- rkk
- Date:
- 2014-01-31
- Revision:
- 11:8ec915eb70f6
- Parent:
- 10:d9f1037f0cb0
- Child:
- 12:7eeb29892625
File content as of revision 11:8ec915eb70f6:
#include "motor_controller.h" // //float sigm(float input) //{ // if (input>0) // return 1; // else if (input<0) // return -1; // else // return 0; //} PololuMController::PololuMController(PinName pwmport, PinName A, PinName B) :pwm(pwmport),outA(A),outB(B){ outA.write(0); outB.write(1); // timestamp=0; // ome1 = 0.0; // amp1 = 0.0; // phi1 = 0.0; // firstTime = true; } //void PololuMController::setspeed(float speed) //{ // pwm->write(speed); // return; //} void PololuMController::setpolarspeed(float speed) { if (speed>=0) { outA.write(0); outB.write(1); pwm.write(abs(speed)); } else { outA.write(1); outB.write(0); pwm.write(abs(speed)); } return; } //void PololuMController::reverse() //{ // outA->write(!(outA->read())); // outB->write(!(outB->read())); // return; //} //float PololuMController::drive_sinusoidal(float currentTime, float amplitude, float frequency) //{ // // //convert inputs // float amp2; // if(amplitude > 1.0) { // amp2 = 1.0; // } else if(amplitude < 0.0) { // amp2 = 0.0; // } else { // amp2 = amplitude; // } // float ome2 = 2.0* MATH_PI * frequency; // // float dutycycle; // float phi2; // if (firstTime) // { // dutycycle = amp2*sin(ome2 * currentTime); // firstTime = false; // } // else if(amp2 > 0.0) { // phi2 = asin(amp1 * sin(ome1 * currentTime + phi1) / amp2 ) - (ome2*currentTime); // dutycycle = amp2*sin(ome2 * currentTime + phi2); // phi1 = phi2; // } else { // dutycycle = 0.0; // } // setpolarspeed(dutycycle); // // //set previous values // ome1 = ome2; // amp1 = amp2; // // return dutycycle; //} // //void PololuMController::drive_rectangular(float currentTime, float amplitude, float frequency) //{ // //setpolarspeed(dutyCycle*sin( 2.0* MATH_PI* f * currentTime)); // float sinRes = sin( 2.0* MATH_PI* frequency * currentTime); // // float dutycycle = amplitude * sigm( sinRes); // setpolarspeed(dutycycle); // return; //}