VNG bot battle

Dependencies:   BLE_API mbed nRF51822

Committer:
bintech91
Date:
Mon Sep 05 19:55:23 2016 +0000
Revision:
0:122d7bf3bbf0
update

Who changed what in which revision?

UserRevisionLine numberNew contents of line
bintech91 0:122d7bf3bbf0 1 /*
bintech91 0:122d7bf3bbf0 2 * MotorController.cpp
bintech91 0:122d7bf3bbf0 3 *
bintech91 0:122d7bf3bbf0 4 * Created on: Aug 23, 2016
bintech91 0:122d7bf3bbf0 5 * Author: tanpt
bintech91 0:122d7bf3bbf0 6 */
bintech91 0:122d7bf3bbf0 7
bintech91 0:122d7bf3bbf0 8 #include "MotorController.h"
bintech91 0:122d7bf3bbf0 9
bintech91 0:122d7bf3bbf0 10 DigitalOut MotorController::motorLeftDirection_(p25);
bintech91 0:122d7bf3bbf0 11 PwmOut MotorController::motorLeftSpeed_(p23);
bintech91 0:122d7bf3bbf0 12 DigitalOut MotorController::motorRightDirection_(p28);
bintech91 0:122d7bf3bbf0 13 PwmOut MotorController::motorRightSpeed_(p24);
bintech91 0:122d7bf3bbf0 14
bintech91 0:122d7bf3bbf0 15 DigitalOut MotorController::motorBoostSpeed_(p20);
bintech91 0:122d7bf3bbf0 16
bintech91 0:122d7bf3bbf0 17 MotorController::MotorController() {
bintech91 0:122d7bf3bbf0 18 motorRightDirection_ = DIRECTION_FORWARD;
bintech91 0:122d7bf3bbf0 19 motorRightSpeed_.period_ms(1000);
bintech91 0:122d7bf3bbf0 20 motorLeftDirection_ = DIRECTION_FORWARD;
bintech91 0:122d7bf3bbf0 21 motorLeftSpeed_.period_ms(1000);
bintech91 0:122d7bf3bbf0 22 }
bintech91 0:122d7bf3bbf0 23
bintech91 0:122d7bf3bbf0 24 MotorController::~MotorController() {
bintech91 0:122d7bf3bbf0 25
bintech91 0:122d7bf3bbf0 26 }
bintech91 0:122d7bf3bbf0 27
bintech91 0:122d7bf3bbf0 28 int8_t MotorController::setMotorRight(Direction direction, uint16_t speed) {
bintech91 0:122d7bf3bbf0 29 motorRightDirection_ = direction;
bintech91 0:122d7bf3bbf0 30 motorRightSpeed_.pulsewidth_ms(speed);
bintech91 0:122d7bf3bbf0 31 return 0;
bintech91 0:122d7bf3bbf0 32 }
bintech91 0:122d7bf3bbf0 33
bintech91 0:122d7bf3bbf0 34 int8_t MotorController::setMotorLeft(Direction direction, uint16_t speed) {
bintech91 0:122d7bf3bbf0 35 motorLeftDirection_ = direction;
bintech91 0:122d7bf3bbf0 36 motorLeftSpeed_.pulsewidth_ms(speed);
bintech91 0:122d7bf3bbf0 37 return 0;
bintech91 0:122d7bf3bbf0 38 }
bintech91 0:122d7bf3bbf0 39
bintech91 0:122d7bf3bbf0 40 int8_t MotorController::moveForward(uint16_t speed) {
bintech91 0:122d7bf3bbf0 41 motorRightDirection_ = DIRECTION_FORWARD;
bintech91 0:122d7bf3bbf0 42 motorRightSpeed_.pulsewidth_ms(speed);
bintech91 0:122d7bf3bbf0 43 motorLeftDirection_ = DIRECTION_FORWARD;
bintech91 0:122d7bf3bbf0 44 motorLeftSpeed_.pulsewidth_ms(speed);
bintech91 0:122d7bf3bbf0 45 return 0;
bintech91 0:122d7bf3bbf0 46 }
bintech91 0:122d7bf3bbf0 47
bintech91 0:122d7bf3bbf0 48 int8_t MotorController::moveBackward(uint16_t speed) {
bintech91 0:122d7bf3bbf0 49 motorRightDirection_ = DIRECTION_BACKWARD;
bintech91 0:122d7bf3bbf0 50 motorRightSpeed_.pulsewidth_ms(speed);
bintech91 0:122d7bf3bbf0 51 motorLeftDirection_ = DIRECTION_BACKWARD;
bintech91 0:122d7bf3bbf0 52 motorLeftSpeed_.pulsewidth_ms(speed);
bintech91 0:122d7bf3bbf0 53 return 0;
bintech91 0:122d7bf3bbf0 54 }
bintech91 0:122d7bf3bbf0 55
bintech91 0:122d7bf3bbf0 56 int8_t MotorController::turnRight(uint16_t speed) {
bintech91 0:122d7bf3bbf0 57 motorRightDirection_ = DIRECTION_BACKWARD;
bintech91 0:122d7bf3bbf0 58 motorRightSpeed_.pulsewidth_ms(speed);
bintech91 0:122d7bf3bbf0 59 motorLeftDirection_ = DIRECTION_FORWARD;
bintech91 0:122d7bf3bbf0 60 motorLeftSpeed_.pulsewidth_ms(speed);
bintech91 0:122d7bf3bbf0 61 return 0;
bintech91 0:122d7bf3bbf0 62 }
bintech91 0:122d7bf3bbf0 63
bintech91 0:122d7bf3bbf0 64 int8_t MotorController::turnLeft(uint16_t speed) {
bintech91 0:122d7bf3bbf0 65 motorRightDirection_ = DIRECTION_FORWARD;
bintech91 0:122d7bf3bbf0 66 motorRightSpeed_.pulsewidth_ms(speed);
bintech91 0:122d7bf3bbf0 67 motorLeftDirection_ = DIRECTION_BACKWARD;
bintech91 0:122d7bf3bbf0 68 motorLeftSpeed_.pulsewidth_ms(speed);
bintech91 0:122d7bf3bbf0 69 return 0;
bintech91 0:122d7bf3bbf0 70 }
bintech91 0:122d7bf3bbf0 71
bintech91 0:122d7bf3bbf0 72 int8_t MotorController::moveBackRight(uint16_t speed) {
bintech91 0:122d7bf3bbf0 73 motorRightDirection_ = DIRECTION_BACKWARD;
bintech91 0:122d7bf3bbf0 74 motorRightSpeed_.pulsewidth_ms(speed);
bintech91 0:122d7bf3bbf0 75 motorLeftDirection_ = DIRECTION_BACKWARD;
bintech91 0:122d7bf3bbf0 76 motorLeftSpeed_.pulsewidth_ms(speed / 3);
bintech91 0:122d7bf3bbf0 77 return 0;
bintech91 0:122d7bf3bbf0 78
bintech91 0:122d7bf3bbf0 79 }
bintech91 0:122d7bf3bbf0 80
bintech91 0:122d7bf3bbf0 81 int8_t MotorController::moveBackLeft(uint16_t speed) {
bintech91 0:122d7bf3bbf0 82 motorRightDirection_ = DIRECTION_BACKWARD;
bintech91 0:122d7bf3bbf0 83 motorRightSpeed_.pulsewidth_ms(speed / 3);
bintech91 0:122d7bf3bbf0 84 motorLeftDirection_ = DIRECTION_BACKWARD;
bintech91 0:122d7bf3bbf0 85 motorLeftSpeed_.pulsewidth_ms(speed);
bintech91 0:122d7bf3bbf0 86 return 0;
bintech91 0:122d7bf3bbf0 87 }
bintech91 0:122d7bf3bbf0 88
bintech91 0:122d7bf3bbf0 89 int8_t MotorController::setBoost(BoostState state) {
bintech91 0:122d7bf3bbf0 90 motorBoostSpeed_ = state;
bintech91 0:122d7bf3bbf0 91 }
bintech91 0:122d7bf3bbf0 92