Practical Robotics Modular Robot Library
Diff: motors.h
- Revision:
- 3:8762f6b2ea8d
- Parent:
- 1:a6728adaf7e7
- Child:
- 5:6da8daaeb9f7
--- a/motors.h Sat Nov 26 21:50:10 2016 +0000 +++ b/motors.h Mon Nov 28 22:41:14 2016 +0000 @@ -11,83 +11,117 @@ * Setup the PWM based H-Bridge drivers for the motors */ void init(void); - - + + /** + * Returns the current [adjusted] value for the target left motor speed + * + * @returns The speed value from -1.0 to 1.0 + */ + float get_left_motor_speed(void); + + /** + * Returns the current [adjusted] value for the target right motor speed + * + * @returns The speed value from -1.0 to 1.0 + */ + float get_right_motor_speed(void); + + /** + * Calls set_left_motor_speed and set_right_motor_speed with equal values + * + * @params speed - The forward speed value from -1.0 to 1.0 + */ + void forwards(float speed); + + /** + * Calls set_left_motor_speed and set_right_motor_speed with equal inverse values + * + * @params speed - The forward speed value from -1.0 (max forwards) to 1.0 (max reverse) + */ + void backwards(float speed); + + /** + * Calls set_left_motor_speed and set_right_motor_speed with sign-opposite values + * + * @params speed - The forward speed value from -1.0 (max counterclockwise) to 1.0 (max clockwise) + */ + void turn(float speed); + /** * Put the H-Bridge drivers in sleep (low-power) mode - */ + */ void sleep(void); - + /** * Wake the H-Bridge drivers from sleep mode */ void wake_up(void); - + /** * Set the left H-Bridge driver to high-Z (coast mode) for the motor */ void coast_left(void); - + /** * Set the left H-Bridge driver to active brake */ void brake_left(void); - + /** * Set the speed and direction of the left-motor H-Bridge driver * * @param speed - A value between -1.0 [max reverse], 0 [coast] and 1.0 [max forward] */ void set_left_motor_speed(float speed); - + /** * Set the right H-Bridge driver to high-Z (coast mode) for the motor */ void coast_right(void); - + /** * Set the right H-Bridge driver to active brake */ void brake_right(void); - + /** * Set both H-Bridge drivers to high-Z (coast mode) for the motor */ void coast(void); - - /** - * Set both H-Bridge drivers to active brake - */ + + /** + * Set both H-Bridge drivers to active brake + */ void brake(void); - + /** * Set the speed and direction of the right-motor H-Bridge driver * * @param speed - A value between -1.0 [max reverse], 0 [coast] and 1.0 [max forward] */ void set_right_motor_speed(float speed); - + /** * Get the approximate instantaneous current draw of the left-motor H-Bridge driver * * @returns The current value in A */ float get_current_left(void); - + /** * Get the approximate instantaneous current draw of the right-motor H-Bridge driver * * @returns The current value in A */ float get_current_right(void); - + /** * Calculates an adjusted speed value to avoid stalls at low-speeds if USE_STALL_OFFSET is set to 1 [in robot.h] * @params speed_in - The speed value from 0.0 to 1.0 * @returns The adjusted speed value from 0.0 to 1.0, increased by STALL_OFFSET then scaled to fit */ float get_adjusted_speed(float speed_in); - + };