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@8:bfa4bf23522c, 2019-04-22 (annotated)
- Committer:
- rpatelpj
- Date:
- Mon Apr 22 23:55:45 2019 +0000
- Revision:
- 8:bfa4bf23522c
- Parent:
- 5:77c6821ae418
- Child:
- 11:531208aca075
Implement detectObstacles, followTrajectory, leds, pb, update data structures, remove imu, include lidar
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 | 8:bfa4bf23522c | 4 | #include "globals.h" |
rpatelpj | 3:1dce1ba5b8bd | 5 | #include "Motor.h" |
rpatelpj | 3:1dce1ba5b8bd | 6 | #include "HALLFX_ENCODER.h" |
rpatelpj | 8:bfa4bf23522c | 7 | #include "XNucleo53L0A1.h" |
rpatelpj | 8:bfa4bf23522c | 8 | |
rpatelpj | 8:bfa4bf23522c | 9 | #define COUNTPERIN 75.029 ///< Encoder counts 192 every 65 mm of wheel rotation |
rpatelpj | 8:bfa4bf23522c | 10 | #define COUNTPERDEG 1.21 ///< Encoder counts 2.42 every 1 deg of body rotation |
rpatelpj | 3:1dce1ba5b8bd | 11 | |
rpatelpj | 3:1dce1ba5b8bd | 12 | /** |
rpatelpj | 5:77c6821ae418 | 13 | * Robot Controller class. |
rpatelpj | 3:1dce1ba5b8bd | 14 | */ |
rpatelpj | 3:1dce1ba5b8bd | 15 | class RobotController { |
rpatelpj | 3:1dce1ba5b8bd | 16 | public: |
rpatelpj | 3:1dce1ba5b8bd | 17 | /** |
rpatelpj | 5:77c6821ae418 | 18 | * Robot Controller Constructor. |
rpatelpj | 5:77c6821ae418 | 19 | * @param leftWheelPwm mbed pin transmitting speed to left motor driver |
rpatelpj | 5:77c6821ae418 | 20 | * @param leftWheelFwd mbed pin transmitting forward direction to left motor driver |
rpatelpj | 5:77c6821ae418 | 21 | * @param leftWheelRev mbed pin transmitting reverse direction to left motor driver |
rpatelpj | 5:77c6821ae418 | 22 | * @param rightWheelPwm mbed pin transmitting speed to right motor driver |
rpatelpj | 5:77c6821ae418 | 23 | * @param rightWheelFwd mbed pin transmitting forward direction to right motor driver |
rpatelpj | 5:77c6821ae418 | 24 | * @param rightWheelRev mbed pin transmitting reverse direction to right motor driver |
rpatelpj | 8:bfa4bf23522c | 25 | * @param leftEncoder mbed pin receiving rotation count from left encoder |
rpatelpj | 8:bfa4bf23522c | 26 | * @param rightEncoder mbed pin receiving rotation count from right encoder |
rpatelpj | 5:77c6821ae418 | 27 | */ |
rpatelpj | 5:77c6821ae418 | 28 | RobotController(PinName leftWheelPwm, PinName leftWheelFwd, |
rpatelpj | 5:77c6821ae418 | 29 | PinName leftWheelRev, PinName rightWheelPwm, PinName rightWheelFwd, |
rpatelpj | 8:bfa4bf23522c | 30 | PinName rightWheelRev, PinName leftEncoder, PinName rightEncoder); |
rpatelpj | 5:77c6821ae418 | 31 | |
rpatelpj | 5:77c6821ae418 | 32 | /** |
rpatelpj | 3:1dce1ba5b8bd | 33 | * Detect obstacles in 360-degree field of view around the robot. |
rpatelpj | 3:1dce1ba5b8bd | 34 | */ |
rpatelpj | 8:bfa4bf23522c | 35 | void detectObstacles(); |
rpatelpj | 3:1dce1ba5b8bd | 36 | |
rpatelpj | 3:1dce1ba5b8bd | 37 | /** |
rpatelpj | 3:1dce1ba5b8bd | 38 | * Follow trajectory set by user in C# GUI. |
rpatelpj | 3:1dce1ba5b8bd | 39 | */ |
rpatelpj | 8:bfa4bf23522c | 40 | void followTrajectory(); |
rpatelpj | 5:77c6821ae418 | 41 | |
rpatelpj | 5:77c6821ae418 | 42 | private: |
rpatelpj | 5:77c6821ae418 | 43 | Motor leftWheel; |
rpatelpj | 5:77c6821ae418 | 44 | Motor rightWheel; |
rpatelpj | 5:77c6821ae418 | 45 | HALLFX_ENCODER leftEncoder; |
rpatelpj | 5:77c6821ae418 | 46 | HALLFX_ENCODER rightEncoder; |
rpatelpj | 3:1dce1ba5b8bd | 47 | }; |
rpatelpj | 3:1dce1ba5b8bd | 48 | |
rpatelpj | 3:1dce1ba5b8bd | 49 | #endif /* ROBOT_CONTROLLER_H */ |