upm  0.4.1
Sensor/Actuator repository for libmraa (v0.8.0)
Classes | Public Member Functions | List of all members

API for the Grove I2C Motor Driver. More...

Detailed Description

This class implements support for the Grove I2C Motor Driver. This device can support a single 4-wire stepper motor, or two 2-wire DC motors. The device contains an Atmel* ATmega8L microcontroller that manages an L298N H-bridge driver chip.

This device supports an I2C bus speed of 100Khz only.

The module does not provide any telemetry or status - it only accepts I2C commands for its various operations.

This module was tested with version 1.3 of the Grove I2C Motor Driver.

For stepper operation, this driver can run in one of two modes - Mode 1, where this driver handles the stepping operation, and Mode 2, where this driver simply sends commands to the Grove Motor Driver, and it handles the stepping operation. Mode2 requires updated (and working) firmware to be loaded onto the device.

The default stepper operation mode is Mode1, which is generally more flexible and is supported on all firmware revisions.

grovemd.jpg

An example showing the use of a DC motor

An example showing the use of a 4-wire stepper

Classes

class  DC_DIRECTION_T
 
class  REG_T
 
class  STEP_DIRECTION_T
 
class  STEP_MODE_T
 

Public Member Functions

synchronized void delete ()
 
 GroveMD (int bus, short address)
 
 GroveMD (int bus)
 
boolean writePacket (GroveMD.REG_T reg, short data1, short data2)
 
boolean setMotorSpeeds (short speedA, short speedB)
 
boolean setPWMFrequencyPrescale (short freq)
 
boolean setPWMFrequencyPrescale ()
 
boolean setMotorDirections (GroveMD.DC_DIRECTION_T dirA, GroveMD.DC_DIRECTION_T dirB)
 
boolean enableStepper (GroveMD.STEP_DIRECTION_T dir, short speed)
 
boolean disableStepper ()
 
boolean setStepperSteps (long steps)
 
void configStepper (long stepsPerRev, GroveMD.STEP_MODE_T mode)
 
void configStepper (long stepsPerRev)
 

Constructor & Destructor Documentation

GroveMD ( int  bus,
short  address 
)

GroveMD constructor

Parameters
busI2C bus to use
addressI2C address to use

Member Function Documentation

void configStepper ( long  stepsPerRev,
GroveMD.STEP_MODE_T  mode 
)

Configure the initial Stepper parameters. This should be called before any other stepper method.

Parameters
stepsPerRevThe number of steps required to complete one full revolution.
modeThe stepper operating mode, default STEP_MODE1
Returns
Elapsed milliseconds
boolean disableStepper ( )

To control a stepper motor, stops the stepper motor.

Returns
True if successful
boolean enableStepper ( GroveMD.STEP_DIRECTION_T  dir,
short  speed 
)

To control a stepper motor, sets its direction and speed, and then starts operation. For Mode2, this method will return immediately. For Mode1 (the default) this method returns when the number of steps specified by setStepperSteps() has completed.

Parameters
dirDirection, STEP_DIR_CW or STEP_DIR_CCW
speedMotor speed. Valid range is 1-255. For Mode 1 (default), this specifies the speed in RPM's. For Mode 2, speed is multiplied by 4ms by the board, so higher numbers will mean a slower speed.
Returns
True if successful
boolean setMotorDirections ( GroveMD.DC_DIRECTION_T  dirA,
GroveMD.DC_DIRECTION_T  dirB 
)

To control DC motors, sets the directions of motors A & B

Parameters
dirADirection for motor A, DIR_CW or DIR_CCW
dirBDirection for motor B, DIR_CW or DIR_CCW
Returns
True if successful
boolean setMotorSpeeds ( short  speedA,
short  speedB 
)

To control DC motors, sets the speed of motors A & B. Valid values are 0-255.

Parameters
speedASpeed of motor A
speedBSpeed of motor B
Returns
True if successful
boolean setPWMFrequencyPrescale ( short  freq)

To control DC motors, sets the PWM frequency prescale factor. Note: this register is not ducumented other than to say the default value is 0x03. Presumably, this is the timer prescale factor used on the ATMega MCU timer driving the PWM.

Parameters
freqPWM prescale frequency; default is 0x03
Returns
True if successful
boolean setStepperSteps ( long  steps)

To control a stepper motor, specifies the number of steps to execute. For Mode2, valid values are between 1-255, 255 means continuous rotation.

For Mode1 (the default) steps can be any positive integer.

Parameters
stepsNumber of steps to execute. 255 (only in Mode2) means continuous rotation.
Returns
True if successful
boolean writePacket ( GroveMD.REG_T  reg,
short  data1,
short  data2 
)

Composes and writes a 3-byte packet to the controller

Parameters
regRegister location
data1First byte of data
data2Second byte of data
Returns
True if successful

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