NOT FINISHED YET!!! My first try to get a self built fully working Quadrocopter based on an mbed, a self built frame and some other more or less cheap parts.

Dependencies:   mbed MODI2C

Committer:
maetugr
Date:
Mon Oct 29 16:43:10 2012 +0000
Revision:
15:753c5d6a63b3
Child:
26:96a072233d7a
I2C/Interrupt-Problem gel?st!! erste Versuche an gespannter schnur, falsche PID werte mitten im umschreiben auf I2C_Sensor mutterklasse

Who changed what in which revision?

UserRevisionLine numberNew contents of line
maetugr 15:753c5d6a63b3 1 // by MaEtUgR
maetugr 15:753c5d6a63b3 2
maetugr 15:753c5d6a63b3 3 #ifndef SERVO_PWM_H
maetugr 15:753c5d6a63b3 4 #define SERVO_PWM_H
maetugr 15:753c5d6a63b3 5
maetugr 15:753c5d6a63b3 6 #include "mbed.h"
maetugr 15:753c5d6a63b3 7
maetugr 15:753c5d6a63b3 8 /** Class to control a servo on any pin, without using pwm
maetugr 15:753c5d6a63b3 9 *
maetugr 15:753c5d6a63b3 10 * Example:
maetugr 15:753c5d6a63b3 11 * @code
maetugr 15:753c5d6a63b3 12 * // Keep sweeping servo from left to right
maetugr 15:753c5d6a63b3 13 * #include "mbed.h"
maetugr 15:753c5d6a63b3 14 * #include "Servo.h"
maetugr 15:753c5d6a63b3 15 *
maetugr 15:753c5d6a63b3 16 * Servo Servo1(p20);
maetugr 15:753c5d6a63b3 17 *
maetugr 15:753c5d6a63b3 18 * Servo1.Enable(1500,20000);
maetugr 15:753c5d6a63b3 19 *
maetugr 15:753c5d6a63b3 20 * while(1) {
maetugr 15:753c5d6a63b3 21 * for (int pos = 1000; pos < 2000; pos += 25) {
maetugr 15:753c5d6a63b3 22 * Servo1.SetPosition(pos);
maetugr 15:753c5d6a63b3 23 * wait_ms(20);
maetugr 15:753c5d6a63b3 24 * }
maetugr 15:753c5d6a63b3 25 * for (int pos = 2000; pos > 1000; pos -= 25) {
maetugr 15:753c5d6a63b3 26 * Servo1.SetPosition(pos);
maetugr 15:753c5d6a63b3 27 * wait_ms(20);
maetugr 15:753c5d6a63b3 28 * }
maetugr 15:753c5d6a63b3 29 * }
maetugr 15:753c5d6a63b3 30 * @endcode
maetugr 15:753c5d6a63b3 31 */
maetugr 15:753c5d6a63b3 32
maetugr 15:753c5d6a63b3 33 class Servo_PWM {
maetugr 15:753c5d6a63b3 34
maetugr 15:753c5d6a63b3 35 public:
maetugr 15:753c5d6a63b3 36 /** Create a new Servo object on any mbed pin
maetugr 15:753c5d6a63b3 37 *
maetugr 15:753c5d6a63b3 38 * @param Pin Pin on mbed to connect servo to
maetugr 15:753c5d6a63b3 39 */
maetugr 15:753c5d6a63b3 40 Servo_PWM(PinName Pin);
maetugr 15:753c5d6a63b3 41
maetugr 15:753c5d6a63b3 42 /** Change the position of the servo. Position in us
maetugr 15:753c5d6a63b3 43 *
maetugr 15:753c5d6a63b3 44 * @param NewPos The new value of the servos position (us)
maetugr 15:753c5d6a63b3 45 */
maetugr 15:753c5d6a63b3 46 void SetPosition(int position);
maetugr 15:753c5d6a63b3 47
maetugr 15:753c5d6a63b3 48 //operator for confortable positioning
maetugr 15:753c5d6a63b3 49 void operator=(int position);
maetugr 15:753c5d6a63b3 50
maetugr 15:753c5d6a63b3 51 // initialize ESC
maetugr 15:753c5d6a63b3 52 void initialize();
maetugr 15:753c5d6a63b3 53
maetugr 15:753c5d6a63b3 54 private:
maetugr 15:753c5d6a63b3 55 PwmOut ServoPin;
maetugr 15:753c5d6a63b3 56
maetugr 15:753c5d6a63b3 57 };
maetugr 15:753c5d6a63b3 58
maetugr 15:753c5d6a63b3 59 #endif