Dependencies: Motordriver mbed-rtos mbed
Fork of MultiModalRobotSM by
MultiModalRobot/MultiModalRobot.cpp@21:21f72bd7f649, 2017-12-12 (annotated)
- Committer:
- baijun
- Date:
- Tue Dec 12 03:11:49 2017 +0000
- Revision:
- 21:21f72bd7f649
- Parent:
- 20:e1a78ee68726
Working code;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
baijun | 20:e1a78ee68726 | 1 | #include "MultiModalRobot.h" |
baijun | 15:9bc36f47c8cf | 2 | |
baijun | 20:e1a78ee68726 | 3 | MultiModalRobot::MultiModalRobot(Motor& left, Motor& right) : leftWheel(left), rightWheel(right), leftDir(0), rightDir(0) {} |
baijun | 15:9bc36f47c8cf | 4 | |
baijun | 15:9bc36f47c8cf | 5 | |
baijun | 15:9bc36f47c8cf | 6 | |
baijun | 15:9bc36f47c8cf | 7 | void MultiModalRobot::driveWheels(float leftSpeed, float rightSpeed){ |
baijun | 20:e1a78ee68726 | 8 | if(leftSpeed*leftDir<0 || rightSpeed*rightDir<0){ |
baijun | 20:e1a78ee68726 | 9 | stop(0.5); |
baijun | 20:e1a78ee68726 | 10 | } |
baijun | 20:e1a78ee68726 | 11 | if(leftSpeed<0){ |
baijun | 20:e1a78ee68726 | 12 | leftDir = -1; |
baijun | 20:e1a78ee68726 | 13 | } else { |
baijun | 20:e1a78ee68726 | 14 | leftDir = 1; |
baijun | 20:e1a78ee68726 | 15 | } |
baijun | 20:e1a78ee68726 | 16 | if(rightSpeed<0){ |
baijun | 20:e1a78ee68726 | 17 | rightDir = -1; |
baijun | 20:e1a78ee68726 | 18 | } else { |
baijun | 20:e1a78ee68726 | 19 | rightDir = 1; |
baijun | 20:e1a78ee68726 | 20 | } |
baijun | 15:9bc36f47c8cf | 21 | leftWheel.speed(leftSpeed); |
baijun | 15:9bc36f47c8cf | 22 | rightWheel.speed(rightSpeed); |
baijun | 20:e1a78ee68726 | 23 | wait(0.1); |
baijun | 20:e1a78ee68726 | 24 | stop(0.5); |
baijun | 20:e1a78ee68726 | 25 | } |
baijun | 20:e1a78ee68726 | 26 | |
baijun | 15:9bc36f47c8cf | 27 | void MultiModalRobot::stop(float dutyCycle){ |
baijun | 20:e1a78ee68726 | 28 | leftDir = rightDir = 0; |
baijun | 20:e1a78ee68726 | 29 | leftWheel.coast(); |
baijun | 20:e1a78ee68726 | 30 | rightWheel.coast(); |
baijun | 20:e1a78ee68726 | 31 | } |