MotorPair Class Reference

Pair-of-motors control interface. More...

#include <c++/MotorPair.H>

Collaboration diagram for MotorPair:

Public Types

enum  Limits { min = Motor::min, max = Motor::max }
 the minimum and maximum speeds a motor can go, its limits. More...
 

Public Member Functions

 MotorPair (const Motor::Port lport, const Motor::Port rport)
 define a pair of motors specifying the connection of each to the RCX More...
 
 ~MotorPair ()
 destroy this MotorPair instance More...
 
void speed (const int s) const
 set the speed of our two motors More...
 
void direction (const MotorDirection dir) const
 set the direction of our two motors More...
 
void forward () const
 move forward More...
 
void reverse () const
 move reverse More...
 
void brake () const
 stop without coasting More...
 
void off () const
 stop but allow coasting More...
 
void left () const
 turn left about the center of the robot More...
 
void pivotLeft () const
 turn left about the left wheel of the robot More...
 
void right () const
 turn right about the center of the robot More...
 
void pivotRight () const
 turn right about the right wheel of the robot More...
 
void forward (const int s) const
 move forward at speed {s} More...
 
void reverse (const int s) const
 move reverse (go backwards) at speed {s} More...
 
void left (const int s) const
 turn left at speed {s} More...
 
void pivotLeft (const int s) const
 turn left at speed {s} but pivot around left wheel More...
 
void right (const int s) const
 turn right at speed {s} More...
 
void pivotRight (const int s) const
 turn right at speed {s} but pivot around right wheel More...
 
void brake (const int ms) const
 apply the brakes to both motors then delay for {ms} mSec More...
 

Private Attributes

const Motor mLeft
 the left Motor instance More...
 
const Motor mRight
 the right Motor instance More...
 

Detailed Description

Pair-of-motors control interface.

Often our robots use two motors, one on either side, which should be controlled together as one. This class makes this simple by allowing the coder to treat the pair as a single motor.

The two motors can be connected to any of the output ports. When creating an instance of this class, simply specify which two output ports are involved.

The normal Motor methods speed(), direction(), forward(), reverse(), brake(), and off() still apply.

This class adds two new types of control:

  • turning about the center (between the two wheels) [left(), right()]
Note
both motors will be turned off when this class is destroyed.
See also
The other control classes: Motor, Sound, Lamp

Definition at line 57 of file MotorPair.H.

Member Enumeration Documentation

the minimum and maximum speeds a motor can go, its limits.

Enumerator
min 

minimum motor speed setting

max 

maximum motor speed setting

Definition at line 167 of file MotorPair.H.

Constructor & Destructor Documentation

MotorPair::MotorPair ( const Motor::Port  lport,
const Motor::Port  rport 
)
inline

define a pair of motors specifying the connection of each to the RCX

Definition at line 62 of file MotorPair.H.

MotorPair::~MotorPair ( )
inline

destroy this MotorPair instance

Note
both motors will be turned off when this class is destroyed

Definition at line 67 of file MotorPair.H.

Member Function Documentation

void MotorPair::brake ( ) const
inline

stop without coasting

Definition at line 94 of file MotorPair.H.

References Motor::direction(), mLeft, and mRight.

void MotorPair::brake ( const int  ms) const
inline

apply the brakes to both motors then delay for {ms} mSec

Parameters
msthe time in mSec to wait before returning to caller

Definition at line 164 of file MotorPair.H.

References brake(), and delay().

Referenced by brake().

void MotorPair::direction ( const MotorDirection  dir) const
inline

set the direction of our two motors

Parameters
dirone of the MotorDirection values

Definition at line 74 of file MotorPair.H.

References Motor::direction(), fwd, mLeft, mRight, and rev.

Referenced by forward(), and reverse().

void MotorPair::forward ( ) const
inline

move forward

Definition at line 88 of file MotorPair.H.

References direction(), and fwd.

void MotorPair::forward ( const int  s) const
inline

move forward at speed {s}

Parameters
sthe desired speed (power level)

Definition at line 136 of file MotorPair.H.

References forward(), and speed().

Referenced by forward().

void MotorPair::left ( ) const
inline

turn left about the center of the robot

Note
both motors in the pair are turning

Definition at line 107 of file MotorPair.H.

References Motor::direction(), fwd, mLeft, and mRight.

void MotorPair::left ( const int  s) const
inline

turn left at speed {s}

Parameters
sthe desired speed (power level)
Note
spins about the center of the motor pair

Definition at line 145 of file MotorPair.H.

References left(), and speed().

Referenced by left().

void MotorPair::off ( ) const
inline

stop but allow coasting

Definition at line 100 of file MotorPair.H.

References Motor::direction(), mLeft, and mRight.

void MotorPair::pivotLeft ( ) const
inline

turn left about the left wheel of the robot

Note
the left motor is brake'd while the right motor is turning

Definition at line 114 of file MotorPair.H.

References Motor::brake(), Motor::direction(), mLeft, mRight, and rev.

void MotorPair::pivotLeft ( const int  s) const
inline

turn left at speed {s} but pivot around left wheel

Parameters
sthe desired speed (power level)
Note
spins about the left wheel

Definition at line 150 of file MotorPair.H.

References pivotLeft(), and speed().

Referenced by pivotLeft().

void MotorPair::pivotRight ( ) const
inline

turn right about the right wheel of the robot

Note
the right motor is brake'd while the left motor is turning

Definition at line 128 of file MotorPair.H.

References Motor::brake(), Motor::direction(), fwd, mLeft, and mRight.

void MotorPair::pivotRight ( const int  s) const
inline

turn right at speed {s} but pivot around right wheel

Parameters
sthe desired speed (power level)
Note
spins about the right wheel

Definition at line 160 of file MotorPair.H.

References pivotRight(), and speed().

Referenced by pivotRight().

void MotorPair::reverse ( ) const
inline

move reverse

Definition at line 91 of file MotorPair.H.

References direction(), and rev.

void MotorPair::reverse ( const int  s) const
inline

move reverse (go backwards) at speed {s}

Parameters
sthe desired speed (power level)

Definition at line 140 of file MotorPair.H.

References reverse(), and speed().

Referenced by reverse().

void MotorPair::right ( ) const
inline

turn right about the center of the robot

Note
both motors in the pair are turning

Definition at line 121 of file MotorPair.H.

References Motor::direction(), mLeft, mRight, and rev.

void MotorPair::right ( const int  s) const
inline

turn right at speed {s}

Parameters
sthe desired speed (power level)
Note
spins about the center of the motor pair

Definition at line 155 of file MotorPair.H.

References right(), and speed().

Referenced by right().

void MotorPair::speed ( const int  s) const
inline

set the speed of our two motors

Definition at line 70 of file MotorPair.H.

References mLeft, mRight, and Motor::speed().

Referenced by forward(), left(), pivotLeft(), pivotRight(), reverse(), and right().

Member Data Documentation

const Motor MotorPair::mLeft
private

the left Motor instance

Definition at line 173 of file MotorPair.H.

Referenced by brake(), direction(), left(), off(), pivotLeft(), pivotRight(), right(), and speed().

const Motor MotorPair::mRight
private

the right Motor instance

Definition at line 174 of file MotorPair.H.

Referenced by brake(), direction(), left(), off(), pivotLeft(), pivotRight(), right(), and speed().


The documentation for this class was generated from the following file:

brickOS is released under the Mozilla Public License.
Original code copyright 1998-2005 by the authors.

Generated on Sun Jun 29 2014 23:27:00 for brickOS Kernel Developer by doxygen 1.8.7