Dependencies:   Motordriver mbed-rtos mbed

Fork of MultiModalRobotSM by Hemanth Koralla

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?

UserRevisionLine numberNew 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 }