Raj Patel / Mbed 2 deprecated RoboticMappingControl

Dependencies:   mbed mbed-rtos Motor LSM9DS1_Library_cal X_NUCLEO_53L0A1

Committer:
rpatelpj
Date:
Tue Apr 23 19:56:39 2019 +0000
Revision:
11:531208aca075
Parent:
8:bfa4bf23522c
Child:
14:0e6b26c1a7c5
Remove HALLFX_ENCODER lib, create and implement Encoder class, include Imu lib, implement RobotController angular position tracking and destructor

Who changed what in which revision?

UserRevisionLine numberNew 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 11:531208aca075 6 #include "Encoder.h"
rpatelpj 11:531208aca075 7 #include "LSM9DS1.h"
rpatelpj 8:bfa4bf23522c 8 #include "XNucleo53L0A1.h"
rpatelpj 8:bfa4bf23522c 9
rpatelpj 8:bfa4bf23522c 10 #define COUNTPERIN 75.029 ///< Encoder counts 192 every 65 mm of wheel rotation
rpatelpj 8:bfa4bf23522c 11 #define COUNTPERDEG 1.21 ///< Encoder counts 2.42 every 1 deg of body rotation
rpatelpj 3:1dce1ba5b8bd 12
rpatelpj 3:1dce1ba5b8bd 13 /**
rpatelpj 5:77c6821ae418 14 * Robot Controller class.
rpatelpj 3:1dce1ba5b8bd 15 */
rpatelpj 3:1dce1ba5b8bd 16 class RobotController {
rpatelpj 3:1dce1ba5b8bd 17 public:
rpatelpj 3:1dce1ba5b8bd 18 /**
rpatelpj 11:531208aca075 19 * Robot Controller constructor.
rpatelpj 5:77c6821ae418 20 * @param leftWheelPwm mbed pin transmitting speed to left motor driver
rpatelpj 5:77c6821ae418 21 * @param leftWheelFwd mbed pin transmitting forward direction to left motor driver
rpatelpj 5:77c6821ae418 22 * @param leftWheelRev mbed pin transmitting reverse direction to left motor driver
rpatelpj 5:77c6821ae418 23 * @param rightWheelPwm mbed pin transmitting speed to right motor driver
rpatelpj 5:77c6821ae418 24 * @param rightWheelFwd mbed pin transmitting forward direction to right motor driver
rpatelpj 5:77c6821ae418 25 * @param rightWheelRev mbed pin transmitting reverse direction to right motor driver
rpatelpj 8:bfa4bf23522c 26 * @param leftEncoder mbed pin receiving rotation count from left encoder
rpatelpj 8:bfa4bf23522c 27 * @param rightEncoder mbed pin receiving rotation count from right encoder
rpatelpj 11:531208aca075 28 * @param imuSda mbed pin for imu I2C data line
rpatelpj 11:531208aca075 29 * @param imuScl mbed pin for imu I2C clock line
rpatelpj 5:77c6821ae418 30 */
rpatelpj 5:77c6821ae418 31 RobotController(PinName leftWheelPwm, PinName leftWheelFwd,
rpatelpj 5:77c6821ae418 32 PinName leftWheelRev, PinName rightWheelPwm, PinName rightWheelFwd,
rpatelpj 11:531208aca075 33 PinName rightWheelRev, PinName leftEncoder, PinName rightEncoder,
rpatelpj 11:531208aca075 34 PinName imuSda, PinName imuScl);
rpatelpj 11:531208aca075 35
rpatelpj 11:531208aca075 36 /**
rpatelpj 11:531208aca075 37 * Robot Controller destructor.
rpatelpj 11:531208aca075 38 */
rpatelpj 11:531208aca075 39 ~RobotController();
rpatelpj 11:531208aca075 40
rpatelpj 5:77c6821ae418 41 /**
rpatelpj 3:1dce1ba5b8bd 42 * Detect obstacles in 360-degree field of view around the robot.
rpatelpj 3:1dce1ba5b8bd 43 */
rpatelpj 8:bfa4bf23522c 44 void detectObstacles();
rpatelpj 3:1dce1ba5b8bd 45
rpatelpj 3:1dce1ba5b8bd 46 /**
rpatelpj 3:1dce1ba5b8bd 47 * Follow trajectory set by user in C# GUI.
rpatelpj 3:1dce1ba5b8bd 48 */
rpatelpj 8:bfa4bf23522c 49 void followTrajectory();
rpatelpj 5:77c6821ae418 50
rpatelpj 5:77c6821ae418 51 private:
rpatelpj 5:77c6821ae418 52 Motor leftWheel;
rpatelpj 5:77c6821ae418 53 Motor rightWheel;
rpatelpj 11:531208aca075 54 Encoder leftEncoder;
rpatelpj 11:531208aca075 55 Encoder rightEncoder;
rpatelpj 11:531208aca075 56 LSM9DS1 imu;
rpatelpj 11:531208aca075 57 Timer t;
rpatelpj 11:531208aca075 58 float w1;
rpatelpj 11:531208aca075 59 float w2;
rpatelpj 11:531208aca075 60 float t1;
rpatelpj 11:531208aca075 61 float t2;
rpatelpj 3:1dce1ba5b8bd 62 };
rpatelpj 3:1dce1ba5b8bd 63
rpatelpj 3:1dce1ba5b8bd 64 #endif /* ROBOT_CONTROLLER_H */