Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Car.h@0:7676da98b5c1, 2019-03-26 (annotated)
- 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?
User | Revision | Line number | New 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 |