Final project 4180 (incomplete)

Dependencies:   mbed Motor

Committer:
Shahan
Date:
Wed Dec 14 04:58:43 2011 +0000
Revision:
0:6893dd9a88b3

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Shahan 0:6893dd9a88b3 1 #include "mbed.h"
Shahan 0:6893dd9a88b3 2 #include "Motor.h"
Shahan 0:6893dd9a88b3 3 #include "movement.h"
Shahan 0:6893dd9a88b3 4
Shahan 0:6893dd9a88b3 5 Serial pc(USBTX,USBRX);
Shahan 0:6893dd9a88b3 6
Shahan 0:6893dd9a88b3 7 DigitalOut myled(LED1);
Shahan 0:6893dd9a88b3 8
Shahan 0:6893dd9a88b3 9 AnalogIn rightsensorval(p15);
Shahan 0:6893dd9a88b3 10 AnalogIn leftsensorval(p16);
Shahan 0:6893dd9a88b3 11
Shahan 0:6893dd9a88b3 12 DigitalOut rightsensorcontrol(p5);
Shahan 0:6893dd9a88b3 13 DigitalOut leftsensorcontrol(p6);
Shahan 0:6893dd9a88b3 14
Shahan 0:6893dd9a88b3 15 Motor motor_right(p21,p7,p8);
Shahan 0:6893dd9a88b3 16 Motor motor_left(p22,p9,p10);
Shahan 0:6893dd9a88b3 17
Shahan 0:6893dd9a88b3 18
Shahan 0:6893dd9a88b3 19 volatile int rightspokecount = 0;
Shahan 0:6893dd9a88b3 20 volatile int leftspokecount = 0;
Shahan 0:6893dd9a88b3 21
Shahan 0:6893dd9a88b3 22 volatile int rightspokecountrequired = 0;
Shahan 0:6893dd9a88b3 23 volatile int leftspokecountrequired = 0;
Shahan 0:6893dd9a88b3 24
Shahan 0:6893dd9a88b3 25 volatile float rightmotorspeed = 1;
Shahan 0:6893dd9a88b3 26 volatile float leftmotorspeed = 1;
Shahan 0:6893dd9a88b3 27
Shahan 0:6893dd9a88b3 28 Ticker charge_period;
Shahan 0:6893dd9a88b3 29 Ticker discharge_period;
Shahan 0:6893dd9a88b3 30
Shahan 0:6893dd9a88b3 31 int main() {
Shahan 0:6893dd9a88b3 32
Shahan 0:6893dd9a88b3 33 QTIsensor_init();
Shahan 0:6893dd9a88b3 34 charge_period.attach(&QTIsensor_charge,0.02);
Shahan 0:6893dd9a88b3 35 wait_ms(0.5);
Shahan 0:6893dd9a88b3 36 discharge_period.attach(&QTIsensor_discharge,0.02);
Shahan 0:6893dd9a88b3 37 while(1) {
Shahan 0:6893dd9a88b3 38 //calibratemotors();
Shahan 0:6893dd9a88b3 39 myled = 1;
Shahan 0:6893dd9a88b3 40 wait(0.4);
Shahan 0:6893dd9a88b3 41 move(2);
Shahan 0:6893dd9a88b3 42 //motors_stop();
Shahan 0:6893dd9a88b3 43 while((rightspokecount < rightspokecountrequired) || (leftspokecount < leftspokecountrequired)){
Shahan 0:6893dd9a88b3 44 pc.printf("right = %d, left =%d\n\r",rightspokecount,leftspokecount);
Shahan 0:6893dd9a88b3 45 float right = rightsensorval;
Shahan 0:6893dd9a88b3 46 float left = leftsensorval;
Shahan 0:6893dd9a88b3 47 pc.printf("rightval = %f, leftval =%f\n\r",right,left);
Shahan 0:6893dd9a88b3 48 wait(0.2);
Shahan 0:6893dd9a88b3 49 }
Shahan 0:6893dd9a88b3 50 motors_stop();
Shahan 0:6893dd9a88b3 51 wait(1);
Shahan 0:6893dd9a88b3 52 move(-2);
Shahan 0:6893dd9a88b3 53 while((rightspokecount < rightspokecountrequired) || (leftspokecount < leftspokecountrequired)){
Shahan 0:6893dd9a88b3 54 pc.printf("right = %d, left =%d\n\r",rightspokecount,leftspokecount);
Shahan 0:6893dd9a88b3 55 float right = rightsensorval;
Shahan 0:6893dd9a88b3 56 float left = leftsensorval;
Shahan 0:6893dd9a88b3 57 pc.printf("rightval = %f, leftval =%f\n\r",right,left);
Shahan 0:6893dd9a88b3 58 wait(0.2);
Shahan 0:6893dd9a88b3 59 }
Shahan 0:6893dd9a88b3 60 motors_stop();
Shahan 0:6893dd9a88b3 61 //motor_reset = 1;
Shahan 0:6893dd9a88b3 62 //goforward(right,left,0.5);
Shahan 0:6893dd9a88b3 63 //wait(1.5);
Shahan 0:6893dd9a88b3 64
Shahan 0:6893dd9a88b3 65 myled = 0;
Shahan 0:6893dd9a88b3 66 wait(0.4);
Shahan 0:6893dd9a88b3 67 //gobackward(right,left,0.5);
Shahan 0:6893dd9a88b3 68 //wait(1.5);
Shahan 0:6893dd9a88b3 69 }
Shahan 0:6893dd9a88b3 70 }
Shahan 0:6893dd9a88b3 71
Shahan 0:6893dd9a88b3 72
Shahan 0:6893dd9a88b3 73