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.
Dependencies: mbed mbed-rtos Motor LSM9DS1_Library_cal X_NUCLEO_53L0A1
RobotController.h@5:77c6821ae418, 2019-04-14 (annotated)
- Committer:
- rpatelpj
- Date:
- Sun Apr 14 03:23:36 2019 +0000
- Revision:
- 5:77c6821ae418
- Parent:
- 3:1dce1ba5b8bd
- Child:
- 8:bfa4bf23522c
Setup empty methods for RobotController
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
rpatelpj | 3:1dce1ba5b8bd | 1 | #ifndef ROBOT_CONTROLLER_H |
rpatelpj | 3:1dce1ba5b8bd | 2 | #define ROBOT_CONTROLLER_H |
rpatelpj | 3:1dce1ba5b8bd | 3 | |
rpatelpj | 5:77c6821ae418 | 4 | #include "mbed.h" |
rpatelpj | 3:1dce1ba5b8bd | 5 | #include "Motor.h" |
rpatelpj | 3:1dce1ba5b8bd | 6 | #include "HALLFX_ENCODER.h" |
rpatelpj | 3:1dce1ba5b8bd | 7 | #include "LSM9DS1.h" |
rpatelpj | 3:1dce1ba5b8bd | 8 | |
rpatelpj | 3:1dce1ba5b8bd | 9 | /** |
rpatelpj | 5:77c6821ae418 | 10 | * Robot Controller class. |
rpatelpj | 3:1dce1ba5b8bd | 11 | */ |
rpatelpj | 3:1dce1ba5b8bd | 12 | class RobotController { |
rpatelpj | 3:1dce1ba5b8bd | 13 | public: |
rpatelpj | 3:1dce1ba5b8bd | 14 | /** |
rpatelpj | 5:77c6821ae418 | 15 | * Robot Controller Constructor. |
rpatelpj | 5:77c6821ae418 | 16 | * @param leftWheelPwm mbed pin transmitting speed to left motor driver |
rpatelpj | 5:77c6821ae418 | 17 | * @param leftWheelFwd mbed pin transmitting forward direction to left motor driver |
rpatelpj | 5:77c6821ae418 | 18 | * @param leftWheelRev mbed pin transmitting reverse direction to left motor driver |
rpatelpj | 5:77c6821ae418 | 19 | * @param rightWheelPwm mbed pin transmitting speed to right motor driver |
rpatelpj | 5:77c6821ae418 | 20 | * @param rightWheelFwd mbed pin transmitting forward direction to right motor driver |
rpatelpj | 5:77c6821ae418 | 21 | * @param rightWheelRev mbed pin transmitting reverse direction to right motor driver |
rpatelpj | 5:77c6821ae418 | 22 | * @param leftEncoderIn mbed pin receiving rotation count from left encoder |
rpatelpj | 5:77c6821ae418 | 23 | * @param rightEncoderIn mbed pin receiving rotation count from right encoder |
rpatelpj | 5:77c6821ae418 | 24 | */ |
rpatelpj | 5:77c6821ae418 | 25 | RobotController(PinName leftWheelPwm, PinName leftWheelFwd, |
rpatelpj | 5:77c6821ae418 | 26 | PinName leftWheelRev, PinName rightWheelPwm, PinName rightWheelFwd, |
rpatelpj | 5:77c6821ae418 | 27 | PinName rightWheelRev, PinName leftEncoderIn, PinName rightEncoderIn); |
rpatelpj | 5:77c6821ae418 | 28 | |
rpatelpj | 5:77c6821ae418 | 29 | /** |
rpatelpj | 3:1dce1ba5b8bd | 30 | * Detect obstacles in 360-degree field of view around the robot. |
rpatelpj | 3:1dce1ba5b8bd | 31 | * @return angle-distance pairs of obstacles |
rpatelpj | 3:1dce1ba5b8bd | 32 | */ |
rpatelpj | 3:1dce1ba5b8bd | 33 | float* obstacleDetection(); |
rpatelpj | 3:1dce1ba5b8bd | 34 | |
rpatelpj | 3:1dce1ba5b8bd | 35 | /** |
rpatelpj | 3:1dce1ba5b8bd | 36 | * Follow trajectory set by user in C# GUI. |
rpatelpj | 3:1dce1ba5b8bd | 37 | * @param trajectory angle-distance vectors |
rpatelpj | 3:1dce1ba5b8bd | 38 | */ |
rpatelpj | 3:1dce1ba5b8bd | 39 | void followTrajectory(float* trajectory); |
rpatelpj | 3:1dce1ba5b8bd | 40 | |
rpatelpj | 3:1dce1ba5b8bd | 41 | /** |
rpatelpj | 3:1dce1ba5b8bd | 42 | * Return to position before following trajectory. |
rpatelpj | 3:1dce1ba5b8bd | 43 | * @param trajectory angle-distance vectors |
rpatelpj | 3:1dce1ba5b8bd | 44 | */ |
rpatelpj | 3:1dce1ba5b8bd | 45 | void toOrigin(float* trajectory); |
rpatelpj | 3:1dce1ba5b8bd | 46 | // TODO delete trajectory |
rpatelpj | 5:77c6821ae418 | 47 | |
rpatelpj | 5:77c6821ae418 | 48 | private: |
rpatelpj | 5:77c6821ae418 | 49 | Motor leftWheel; |
rpatelpj | 5:77c6821ae418 | 50 | Motor rightWheel; |
rpatelpj | 5:77c6821ae418 | 51 | HALLFX_ENCODER leftEncoder; |
rpatelpj | 5:77c6821ae418 | 52 | HALLFX_ENCODER rightEncoder; |
rpatelpj | 3:1dce1ba5b8bd | 53 | }; |
rpatelpj | 3:1dce1ba5b8bd | 54 | |
rpatelpj | 3:1dce1ba5b8bd | 55 | #endif /* ROBOT_CONTROLLER_H */ |