Eduardo Munoz Gutierrez / Mbed OS mbed-os-micromouse

Dependencies:   Motor

Committer:
edmugu
Date:
Tue Mar 26 03:27:14 2019 +0000
Revision:
0:7676da98b5c1
Child:
8:14e91fdf70e8
Initial Commit:; Basic functionality checks passed

Who changed what in which revision?

UserRevisionLine numberNew contents of line
edmugu 0:7676da98b5c1 1
edmugu 0:7676da98b5c1 2 #ifndef MBED_MOTOR_H
edmugu 0:7676da98b5c1 3 #define MBED_MOTOR_H
edmugu 0:7676da98b5c1 4
edmugu 0:7676da98b5c1 5 #include "mbed.h"
edmugu 0:7676da98b5c1 6 #include <Motor.h> // DC motor driver
edmugu 0:7676da98b5c1 7
edmugu 0:7676da98b5c1 8 struct Car_vector {
edmugu 0:7676da98b5c1 9 float speed;
edmugu 0:7676da98b5c1 10 float turnCW;
edmugu 0:7676da98b5c1 11 };
edmugu 0:7676da98b5c1 12
edmugu 0:7676da98b5c1 13
edmugu 0:7676da98b5c1 14 class Car {
edmugu 0:7676da98b5c1 15 public:
edmugu 0:7676da98b5c1 16 Car( PinName pwm1,
edmugu 0:7676da98b5c1 17 PinName fwd1,
edmugu 0:7676da98b5c1 18 PinName rev1,
edmugu 0:7676da98b5c1 19 PinName pwm2,
edmugu 0:7676da98b5c1 20 PinName fwd2,
edmugu 0:7676da98b5c1 21 PinName rev2
edmugu 0:7676da98b5c1 22 );
edmugu 0:7676da98b5c1 23
edmugu 0:7676da98b5c1 24 //Sets the speed as a percentage (i.e. 1 = 100% and 0.5 = 50%)
edmugu 0:7676da98b5c1 25 void speed(float speed);
edmugu 0:7676da98b5c1 26 float speed(void);
edmugu 0:7676da98b5c1 27
edmugu 0:7676da98b5c1 28 //Sets the speed difference between the motors
edmugu 0:7676da98b5c1 29 // Example 1: if original speed is 50%
edmugu 0:7676da98b5c1 30 // turnCW(0.5) => rightMotor @ 25% and leftMotor @ 75%
edmugu 0:7676da98b5c1 31 // turnCW(0.1) => rightMotor @ 45% and leftMotor @ 55%
edmugu 0:7676da98b5c1 32 //
edmugu 0:7676da98b5c1 33 // Example 2: if original speed is 100%
edmugu 0:7676da98b5c1 34 // turnCW(0.5) => rightMotor @ 75% and leftMotor @ 100%
edmugu 0:7676da98b5c1 35 // turnCW(0.1) => rightMotor @ 95% and leftMotor @ 100%
edmugu 0:7676da98b5c1 36 void turnCW(float turn);
edmugu 0:7676da98b5c1 37
edmugu 0:7676da98b5c1 38 protected:
edmugu 0:7676da98b5c1 39 void _set_motors(void);
edmugu 0:7676da98b5c1 40 float _clamp_speed(float sp);
edmugu 0:7676da98b5c1 41 void _mlspeed(float sp);
edmugu 0:7676da98b5c1 42 void _mrspeed(float sp);
edmugu 0:7676da98b5c1 43
edmugu 0:7676da98b5c1 44
edmugu 0:7676da98b5c1 45 float _car_speed;
edmugu 0:7676da98b5c1 46 float _car_turn;
edmugu 0:7676da98b5c1 47 PwmOut _ml_pwm;
edmugu 0:7676da98b5c1 48 PwmOut _mr_pwm;
edmugu 0:7676da98b5c1 49 DigitalOut _ml_fwd;
edmugu 0:7676da98b5c1 50 DigitalOut _mr_fwd;
edmugu 0:7676da98b5c1 51 DigitalOut _ml_rev;
edmugu 0:7676da98b5c1 52 DigitalOut _mr_rev;
edmugu 0:7676da98b5c1 53
edmugu 0:7676da98b5c1 54 };
edmugu 0:7676da98b5c1 55
edmugu 0:7676da98b5c1 56
edmugu 0:7676da98b5c1 57 #endif