Fabio Durigon
/
ServoTest
Sample program to demonstrate how to use DuryServo Library
main.cpp@0:0e4e520af2c1, 2013-06-14 (annotated)
- Committer:
- dury
- Date:
- Fri Jun 14 10:15:03 2013 +0000
- Revision:
- 0:0e4e520af2c1
Sample program to demonstrate how to use DuryServo Library
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
dury | 0:0e4e520af2c1 | 1 | #include "mbed.h" |
dury | 0:0e4e520af2c1 | 2 | #include "Servo.h" |
dury | 0:0e4e520af2c1 | 3 | |
dury | 0:0e4e520af2c1 | 4 | void ShowMenu(void); |
dury | 0:0e4e520af2c1 | 5 | |
dury | 0:0e4e520af2c1 | 6 | Servo myservo(p22); |
dury | 0:0e4e520af2c1 | 7 | Serial pc(USBTX, USBRX); |
dury | 0:0e4e520af2c1 | 8 | |
dury | 0:0e4e520af2c1 | 9 | int main() { |
dury | 0:0e4e520af2c1 | 10 | |
dury | 0:0e4e520af2c1 | 11 | ShowMenu(); |
dury | 0:0e4e520af2c1 | 12 | |
dury | 0:0e4e520af2c1 | 13 | float pulsemin = myservo.ReadPulseMin(); |
dury | 0:0e4e520af2c1 | 14 | float pulsemax = myservo.ReadPulseMax(); |
dury | 0:0e4e520af2c1 | 15 | float degreesmin = myservo.ReadDegreesMin(); |
dury | 0:0e4e520af2c1 | 16 | float degreesmax = myservo.ReadDegreesMax(); |
dury | 0:0e4e520af2c1 | 17 | |
dury | 0:0e4e520af2c1 | 18 | while(1) { |
dury | 0:0e4e520af2c1 | 19 | float degrees=myservo.ReadDegrees(); |
dury | 0:0e4e520af2c1 | 20 | float position=myservo.Read(); |
dury | 0:0e4e520af2c1 | 21 | printf("read position = %f, read degrees = %f\r\n", position, degrees); |
dury | 0:0e4e520af2c1 | 22 | |
dury | 0:0e4e520af2c1 | 23 | switch(pc.getc()) { |
dury | 0:0e4e520af2c1 | 24 | case ' ': ShowMenu(); break; |
dury | 0:0e4e520af2c1 | 25 | case 'z': |
dury | 0:0e4e520af2c1 | 26 | printf("pulsemin = %f, degreesmin = %f, pulsemax = %f degreesmax = %f\r\n", pulsemin, degreesmin, pulsemax, degreesmax); |
dury | 0:0e4e520af2c1 | 27 | break; |
dury | 0:0e4e520af2c1 | 28 | case '1': myservo = 0.0; break; |
dury | 0:0e4e520af2c1 | 29 | case '2': myservo = 0.5; break; |
dury | 0:0e4e520af2c1 | 30 | case '3': myservo = 1.0; break; |
dury | 0:0e4e520af2c1 | 31 | case 'q': |
dury | 0:0e4e520af2c1 | 32 | pulsemin += 0.0001; myservo.DefinePulseMin(pulsemin,degreesmin); myservo = 0.0; |
dury | 0:0e4e520af2c1 | 33 | printf("+pulsemin = %f, degreesmin = %f", pulsemin, degreesmin); |
dury | 0:0e4e520af2c1 | 34 | break; |
dury | 0:0e4e520af2c1 | 35 | case 'a': |
dury | 0:0e4e520af2c1 | 36 | pulsemin -= 0.0001; myservo.DefinePulseMin(pulsemin,degreesmin); myservo = 0.0; |
dury | 0:0e4e520af2c1 | 37 | printf("-pulsemin = %f, degreesmin = %f", pulsemin, degreesmin); |
dury | 0:0e4e520af2c1 | 38 | break; |
dury | 0:0e4e520af2c1 | 39 | case 'w': |
dury | 0:0e4e520af2c1 | 40 | pulsemax += 0.0001; myservo.DefinePulseMax(pulsemax,degreesmax); myservo = 1.0; |
dury | 0:0e4e520af2c1 | 41 | printf("+pulsemax = %f, degreesmax = %f", pulsemax, degreesmax); |
dury | 0:0e4e520af2c1 | 42 | break; |
dury | 0:0e4e520af2c1 | 43 | case 's': |
dury | 0:0e4e520af2c1 | 44 | pulsemax -= 0.0001; myservo.DefinePulseMax(pulsemax,degreesmax); myservo = 1.0; |
dury | 0:0e4e520af2c1 | 45 | printf("-pulsemax = %f, degreesmax = %f", pulsemax, degreesmax); |
dury | 0:0e4e520af2c1 | 46 | break; |
dury | 0:0e4e520af2c1 | 47 | case 'e': |
dury | 0:0e4e520af2c1 | 48 | degreesmin += 1; myservo.DefinePulseMin(pulsemin,degreesmin); myservo = 0.0; |
dury | 0:0e4e520af2c1 | 49 | printf("pulsemin = %f, +degreesmin = %f", pulsemin, degreesmin); |
dury | 0:0e4e520af2c1 | 50 | break; |
dury | 0:0e4e520af2c1 | 51 | case 'd': |
dury | 0:0e4e520af2c1 | 52 | degreesmin -= 1; myservo.DefinePulseMin(pulsemin,degreesmin); myservo = 0.0; |
dury | 0:0e4e520af2c1 | 53 | printf("pulsemin = %f, -degreesmin = %f", pulsemin, degreesmin); |
dury | 0:0e4e520af2c1 | 54 | break; |
dury | 0:0e4e520af2c1 | 55 | case 'r': |
dury | 0:0e4e520af2c1 | 56 | degreesmax += 1; myservo.DefinePulseMax(pulsemax,degreesmax); myservo = 1.0; |
dury | 0:0e4e520af2c1 | 57 | printf("pulsemax = %f, +degreesmax = %f", pulsemax, degreesmax); |
dury | 0:0e4e520af2c1 | 58 | break; |
dury | 0:0e4e520af2c1 | 59 | case 'f': |
dury | 0:0e4e520af2c1 | 60 | degreesmax -= 1; myservo.DefinePulseMax(pulsemax,degreesmax); myservo = 1.0; |
dury | 0:0e4e520af2c1 | 61 | printf("pulsemax = %f, -degreesmax = %f", pulsemax, degreesmax); |
dury | 0:0e4e520af2c1 | 62 | break; |
dury | 0:0e4e520af2c1 | 63 | case '6': degrees += 5.0; myservo.WriteDegrees(degrees); break; |
dury | 0:0e4e520af2c1 | 64 | case '4': degrees -= 5.0; myservo.WriteDegrees(degrees); break; |
dury | 0:0e4e520af2c1 | 65 | case '5': degrees = 0.0; myservo.WriteDegrees(degrees); break; |
dury | 0:0e4e520af2c1 | 66 | } |
dury | 0:0e4e520af2c1 | 67 | |
dury | 0:0e4e520af2c1 | 68 | } |
dury | 0:0e4e520af2c1 | 69 | } |
dury | 0:0e4e520af2c1 | 70 | |
dury | 0:0e4e520af2c1 | 71 | void ShowMenu(void) |
dury | 0:0e4e520af2c1 | 72 | { |
dury | 0:0e4e520af2c1 | 73 | printf("Servo Test and calibration:\r\n"); |
dury | 0:0e4e520af2c1 | 74 | printf("1,2,3 - Position Servo (full left, middle, full right)\r\n"); |
dury | 0:0e4e520af2c1 | 75 | |
dury | 0:0e4e520af2c1 | 76 | printf("q,a - Decrease or Increase pulsemin using pulse value\r\n"); |
dury | 0:0e4e520af2c1 | 77 | printf("w,s - Decrease or Increase pulsemax using pluse value\r\n"); |
dury | 0:0e4e520af2c1 | 78 | printf("e,d - Decrease or Increase pulsemin using degree value\r\n"); |
dury | 0:0e4e520af2c1 | 79 | printf("r,f - Decrease or Increase pulsemax using degree value\r\n"); |
dury | 0:0e4e520af2c1 | 80 | |
dury | 0:0e4e520af2c1 | 81 | printf("6,4 - Degrees +5 -5\r\n"); |
dury | 0:0e4e520af2c1 | 82 | printf("5 - Degrees = 0.0 \r\n"); |
dury | 0:0e4e520af2c1 | 83 | printf("SPACE - Show this menu\r\n"); |
dury | 0:0e4e520af2c1 | 84 | printf("z - Print Servo Values\r\n"); |
dury | 0:0e4e520af2c1 | 85 | printf("\r\nInstructions:\r\n"); |
dury | 0:0e4e520af2c1 | 86 | printf("Decrease pulsemin until the servo reach the full left position\r\n" |
dury | 0:0e4e520af2c1 | 87 | "Decrease degreesmin until the value reach the correct degrees you see\r\n" |
dury | 0:0e4e520af2c1 | 88 | "Increase pulsemin until the servo reach the full right position\r\n" |
dury | 0:0e4e520af2c1 | 89 | "Increase degreesmin until the value reach the correct degrees you see\r\n"); |
dury | 0:0e4e520af2c1 | 90 | } |