CRシャトル

Dependencies:   QEI mbed

Committer:
Wbeee
Date:
Thu Dec 21 08:42:39 2017 +0000
Revision:
0:0ce0b0fb5215
CR????

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Wbeee 0:0ce0b0fb5215 1 #include "QEI.h"
Wbeee 0:0ce0b0fb5215 2 #include "mbed.h"
Wbeee 0:0ce0b0fb5215 3
Wbeee 0:0ce0b0fb5215 4
Wbeee 0:0ce0b0fb5215 5 Serial pc(USBTX, USBRX);
Wbeee 0:0ce0b0fb5215 6 DigitalIn enA(p21);
Wbeee 0:0ce0b0fb5215 7 DigitalIn enB(p22);
Wbeee 0:0ce0b0fb5215 8
Wbeee 0:0ce0b0fb5215 9 DigitalIn sw(p23);
Wbeee 0:0ce0b0fb5215 10 DigitalIn sw2(p24);
Wbeee 0:0ce0b0fb5215 11
Wbeee 0:0ce0b0fb5215 12 DigitalIn lim1(p7);
Wbeee 0:0ce0b0fb5215 13 DigitalIn lim2(p8);
Wbeee 0:0ce0b0fb5215 14
Wbeee 0:0ce0b0fb5215 15
Wbeee 0:0ce0b0fb5215 16 #define target 300.0 // :mm
Wbeee 0:0ce0b0fb5215 17 //#define target2 0 // :mm
Wbeee 0:0ce0b0fb5215 18 Timer t;
Wbeee 0:0ce0b0fb5215 19
Wbeee 0:0ce0b0fb5215 20 //AnalogIn aIn_1(PTD4); // Command input 1(0.0 to 1.0).
Wbeee 0:0ce0b0fb5215 21 //AnalogIn aIn_2(PTD5); // Command input 2(0.0 to 1.0).
Wbeee 0:0ce0b0fb5215 22 // tx, rx for PC terminal.
Wbeee 0:0ce0b0fb5215 23 Serial sabertooth(p13,p14); // tx, rx for Sabertooth.
Wbeee 0:0ce0b0fb5215 24
Wbeee 0:0ce0b0fb5215 25 //Use X4 encoding.
Wbeee 0:0ce0b0fb5215 26 //QEI wheel(PTD5 A, PTD4 B, NC, 200, QEI::X4_ENCODING);
Wbeee 0:0ce0b0fb5215 27 //Use X2 encoding by default.
Wbeee 0:0ce0b0fb5215 28 QEI wheel (p21, p22, NC, 1024);//
Wbeee 0:0ce0b0fb5215 29
Wbeee 0:0ce0b0fb5215 30 double len =0;
Wbeee 0:0ce0b0fb5215 31
Wbeee 0:0ce0b0fb5215 32 int main() {
Wbeee 0:0ce0b0fb5215 33 sw.mode(PullUp);
Wbeee 0:0ce0b0fb5215 34 sw2.mode(PullUp);
Wbeee 0:0ce0b0fb5215 35
Wbeee 0:0ce0b0fb5215 36 sabertooth.baud(9600); // Set baudrate of serial port for Sabertooth.
Wbeee 0:0ce0b0fb5215 37 //char cmd_1=0 ;
Wbeee 0:0ce0b0fb5215 38 sabertooth.putc(0); // Send "Stop" to Motor 1 and 2.
Wbeee 0:0ce0b0fb5215 39 //double j=0;
Wbeee 0:0ce0b0fb5215 40 t.start();
Wbeee 0:0ce0b0fb5215 41
Wbeee 0:0ce0b0fb5215 42 while(1){
Wbeee 0:0ce0b0fb5215 43
Wbeee 0:0ce0b0fb5215 44 len = wheel.getPulses()*(157.0/(1024.0*2.0));//一回転で進む距離
Wbeee 0:0ce0b0fb5215 45 pc.printf("lenghth is: %.0f mm\n", len);
Wbeee 0:0ce0b0fb5215 46 pc.printf("pulse: %d \n", wheel.getPulses());
Wbeee 0:0ce0b0fb5215 47
Wbeee 0:0ce0b0fb5215 48
Wbeee 0:0ce0b0fb5215 49 pc.printf("%.0f seconds\n", t.read());
Wbeee 0:0ce0b0fb5215 50
Wbeee 0:0ce0b0fb5215 51
Wbeee 0:0ce0b0fb5215 52 if(sw.read()== 1 ){
Wbeee 0:0ce0b0fb5215 53 if(lim1 == 0){
Wbeee 0:0ce0b0fb5215 54 //cmd_1 = (char)(80);//full_reverse=1 forward,stop=63,full=127 back
Wbeee 0:0ce0b0fb5215 55 sabertooth.putc(207); // Output cmd_1 to Motor 1(Right).
Wbeee 0:0ce0b0fb5215 56 }
Wbeee 0:0ce0b0fb5215 57 else{
Wbeee 0:0ce0b0fb5215 58 sabertooth.putc(191); // Output cmd_1 to Motor 1(Right).
Wbeee 0:0ce0b0fb5215 59 }
Wbeee 0:0ce0b0fb5215 60 }
Wbeee 0:0ce0b0fb5215 61
Wbeee 0:0ce0b0fb5215 62 else if(sw2.read()== 1 ){
Wbeee 0:0ce0b0fb5215 63 if(lim2 == 0){
Wbeee 0:0ce0b0fb5215 64 //cmd_1 = (char)(80);//full_reverse=1 forward,stop=63,full=127 back
Wbeee 0:0ce0b0fb5215 65 sabertooth.putc(172); // Output cmd_1 to Motor 1(Right).
Wbeee 0:0ce0b0fb5215 66 }
Wbeee 0:0ce0b0fb5215 67 else{
Wbeee 0:0ce0b0fb5215 68 sabertooth.putc(191); // Output cmd_1 to Motor 1(Right).
Wbeee 0:0ce0b0fb5215 69 }
Wbeee 0:0ce0b0fb5215 70 }
Wbeee 0:0ce0b0fb5215 71
Wbeee 0:0ce0b0fb5215 72 else{
Wbeee 0:0ce0b0fb5215 73 sabertooth.putc(191); // Output cmd_1 to Motor 1(Right).
Wbeee 0:0ce0b0fb5215 74 }
Wbeee 0:0ce0b0fb5215 75
Wbeee 0:0ce0b0fb5215 76 wait_ms(1);
Wbeee 0:0ce0b0fb5215 77 //j++;
Wbeee 0:0ce0b0fb5215 78 }
Wbeee 0:0ce0b0fb5215 79 }