![](/media/cache/group/default_image.jpg.50x50_q85.jpg)
シリアル
Dependencies: mbed
main.cpp@0:886eded5868a, 2017-11-28 (annotated)
- Committer:
- e5115026
- Date:
- Tue Nov 28 10:01:32 2017 +0000
- Revision:
- 0:886eded5868a
????
Who changed what in which revision?
User | Revision | Line number | New 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 | } |