![](/media/cache/group/default_image.jpg.50x50_q85.jpg)
CRシャトル
main.cpp@0:0ce0b0fb5215, 2017-12-21 (annotated)
- Committer:
- Wbeee
- Date:
- Thu Dec 21 08:42:39 2017 +0000
- Revision:
- 0:0ce0b0fb5215
CR????
Who changed what in which revision?
User | Revision | Line number | New 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 | } |