![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
h
Dependencies: Motor QEI Servo mbed
turret.cpp@0:f8f608a6114a, 2016-03-10 (annotated)
- Committer:
- caleblegis
- Date:
- Thu Mar 10 16:18:01 2016 +0000
- Revision:
- 0:f8f608a6114a
updated
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
caleblegis | 0:f8f608a6114a | 1 | #include "mbed.h" |
caleblegis | 0:f8f608a6114a | 2 | #include "Servo.h" |
caleblegis | 0:f8f608a6114a | 3 | #include "Motor.h" |
caleblegis | 0:f8f608a6114a | 4 | #include "QEI.h" |
caleblegis | 0:f8f608a6114a | 5 | #define pi (3.14159265) |
caleblegis | 0:f8f608a6114a | 6 | #define logfreq (100) |
caleblegis | 0:f8f608a6114a | 7 | #define data_pts (500) |
caleblegis | 0:f8f608a6114a | 8 | Serial pc(USBTX, USBRX); |
caleblegis | 0:f8f608a6114a | 9 | Motor m(p25, p23, p27); |
caleblegis | 0:f8f608a6114a | 10 | |
caleblegis | 0:f8f608a6114a | 11 | QEI enc(p16,p17,NC,3200); |
caleblegis | 0:f8f608a6114a | 12 | |
caleblegis | 0:f8f608a6114a | 13 | |
caleblegis | 0:f8f608a6114a | 14 | |
caleblegis | 0:f8f608a6114a | 15 | float motspeed; |
caleblegis | 0:f8f608a6114a | 16 | float x; |
caleblegis | 0:f8f608a6114a | 17 | float rad; |
caleblegis | 0:f8f608a6114a | 18 | int count; |
caleblegis | 0:f8f608a6114a | 19 | |
caleblegis | 0:f8f608a6114a | 20 | int main() |
caleblegis | 0:f8f608a6114a | 21 | { |
caleblegis | 0:f8f608a6114a | 22 | enc.reset(); |
caleblegis | 0:f8f608a6114a | 23 | printf("enter a angle\r\n"); |
caleblegis | 0:f8f608a6114a | 24 | scanf("%f", &x); |
caleblegis | 0:f8f608a6114a | 25 | |
caleblegis | 0:f8f608a6114a | 26 | |
caleblegis | 0:f8f608a6114a | 27 | |
caleblegis | 0:f8f608a6114a | 28 | while(1){ |
caleblegis | 0:f8f608a6114a | 29 | m.speed(0.25); |
caleblegis | 0:f8f608a6114a | 30 | wait(1/logfreq); |
caleblegis | 0:f8f608a6114a | 31 | |
caleblegis | 0:f8f608a6114a | 32 | count = enc.getPulses() ; |
caleblegis | 0:f8f608a6114a | 33 | rad = count*((2*pi)/1600) ; |
caleblegis | 0:f8f608a6114a | 34 | if (rad<x){ |
caleblegis | 0:f8f608a6114a | 35 | m.speed(0);} |
caleblegis | 0:f8f608a6114a | 36 | printf("The pulses are: %f\n\r", rad);} |
caleblegis | 0:f8f608a6114a | 37 | |
caleblegis | 0:f8f608a6114a | 38 | |
caleblegis | 0:f8f608a6114a | 39 | //0.2 for forward torque |
caleblegis | 0:f8f608a6114a | 40 | //-0.5 for backward |
caleblegis | 0:f8f608a6114a | 41 | |
caleblegis | 0:f8f608a6114a | 42 | |
caleblegis | 0:f8f608a6114a | 43 | //for (servopos=0; servopos<=1.0; servopos+=0.1){ |
caleblegis | 0:f8f608a6114a | 44 | //for (motspeed= 0.2; motspeed <= 1.0; motspeed += 0.1) { |
caleblegis | 0:f8f608a6114a | 45 | //myservo1 = servopos; |
caleblegis | 0:f8f608a6114a | 46 | //myservo2 = 1.0 - servopos; |
caleblegis | 0:f8f608a6114a | 47 | //printf("Servo 1 position %.2f Servo 2 position %.3f\n", servopos, (1-servopos)); |
caleblegis | 0:f8f608a6114a | 48 | |
caleblegis | 0:f8f608a6114a | 49 | //m.speed(motspeed); |
caleblegis | 0:f8f608a6114a | 50 | //printf("motor speed is %.2f\n", motspeed); |
caleblegis | 0:f8f608a6114a | 51 | //wait(0.0002); |
caleblegis | 0:f8f608a6114a | 52 | //m.speed(-1.0); |
caleblegis | 0:f8f608a6114a | 53 | //wait(0.002); |
caleblegis | 0:f8f608a6114a | 54 | //m.speed(1.0); |
caleblegis | 0:f8f608a6114a | 55 | } |
caleblegis | 0:f8f608a6114a | 56 | |
caleblegis | 0:f8f608a6114a | 57 | |
caleblegis | 0:f8f608a6114a | 58 |