シリアル

Dependencies:   mbed

Committer:
e5115026
Date:
Tue Nov 28 10:01:32 2017 +0000
Revision:
0:886eded5868a
????

Who changed what in which revision?

UserRevisionLine numberNew contents of line
e5115026 0:886eded5868a 1 //
e5115026 0:886eded5868a 2 // Sample "SaberTooth_serial"
e5115026 0:886eded5868a 3 // 2012/10/06 created by matsuo@edu.teu.ac.jp
e5115026 0:886eded5868a 4 // 2014/06/13 revised by matsuo@edu.teu.ac.jp
e5115026 0:886eded5868a 5
e5115026 0:886eded5868a 6 #include "mbed.h"
e5115026 0:886eded5868a 7
e5115026 0:886eded5868a 8 //AnalogIn aIn_1(p19); // Command input 1(0.0 to 1.0).
e5115026 0:886eded5868a 9 //AnalogIn aIn_2(p20); // Command input 2(0.0 to 1.0).
e5115026 0:886eded5868a 10
e5115026 0:886eded5868a 11 Serial pc(USBTX, USBRX); // tx, rx for PC terminal.
e5115026 0:886eded5868a 12 Serial sabertooth(p28, p27); // tx, rx for Sabertooth.
e5115026 0:886eded5868a 13 double moterDeg;
e5115026 0:886eded5868a 14 double deg[3];
e5115026 0:886eded5868a 15
e5115026 0:886eded5868a 16
e5115026 0:886eded5868a 17 void getDeg()
e5115026 0:886eded5868a 18 {
e5115026 0:886eded5868a 19 deg[0]=pc.getc()-48;
e5115026 0:886eded5868a 20 deg[1]=pc.getc()-48;
e5115026 0:886eded5868a 21 deg[2]=pc.getc()-48;
e5115026 0:886eded5868a 22
e5115026 0:886eded5868a 23 moterDeg=deg[0]+deg[1]*0.1+deg[2]*0.01;
e5115026 0:886eded5868a 24 pc.printf("%lf\t",moterDeg);
e5115026 0:886eded5868a 25 }
e5115026 0:886eded5868a 26
e5115026 0:886eded5868a 27 int main()
e5115026 0:886eded5868a 28 {
e5115026 0:886eded5868a 29 sabertooth.baud(19200); // Set baudrate of serial port for Sabertooth.
e5115026 0:886eded5868a 30 int cmd_1=0;
e5115026 0:886eded5868a 31 sabertooth.putc(0); // Send "Stop" to Motor 1 and 2.
e5115026 0:886eded5868a 32 pc.attach(getDeg,Serial::RxIrq);
e5115026 0:886eded5868a 33 while (1) {
e5115026 0:886eded5868a 34 cmd_1 = (int)(moterDeg * 126 + 1); // Convert aIn_1 from 0.0-1.0 to 1-127.
e5115026 0:886eded5868a 35 //cmd_2 = (int)(aIn_2*126+128); // Convert aIn_2 from 0.0-1.0 to 128-255.
e5115026 0:886eded5868a 36
e5115026 0:886eded5868a 37 sabertooth.putc(cmd_1); // Output cmd_1 to Motor 1.
e5115026 0:886eded5868a 38 //sabertooth.putc(cmd_2); // Output cmd_2 to Motor 2.
e5115026 0:886eded5868a 39
e5115026 0:886eded5868a 40 pc.printf("%d\t", cmd_1);
e5115026 0:886eded5868a 41
e5115026 0:886eded5868a 42 wait_ms(10);
e5115026 0:886eded5868a 43 }
e5115026 0:886eded5868a 44 }