32 #define MMX_CONTROL_SPEED 0x01 33 #define MMX_CONTROL_RAMP 0x02 34 #define MMX_CONTROL_RELATIVE 0x04 35 #define MMX_CONTROL_TACHO 0x08 36 #define MMX_CONTROL_BRK 0x10 37 #define MMX_CONTROL_ON 0x20 38 #define MMX_CONTROL_TIME 0x40 39 #define MMX_CONTROL_GO 0x80 41 #define MMX_COMMAND 0x41 42 #define MMX_VOLTAGE 0x41 44 #define MMX_SETPT_M1 0x42 45 #define MMX_SPEED_M1 0x46 46 #define MMX_TIME_M1 0x47 47 #define MMX_CMD_B_M1 0x48 48 #define MMX_CMD_A_M1 0x49 50 #define MMX_SETPT_M2 0x4A 51 #define MMX_SPEED_M2 0x4E 52 #define MMX_TIME_M2 0x4F 53 #define MMX_CMD_B_M2 0x50 54 #define MMX_CMD_A_M2 0x51 59 #define MMX_POSITION_M1 0x62 60 #define MMX_POSITION_M2 0x66 61 #define MMX_STATUS_M1 0x72 62 #define MMX_STATUS_M2 0x73 63 #define MMX_TASKS_M1 0x76 64 #define MMX_TASKS_M2 0x77 66 #define MMX_ENCODER_PID 0x7A 67 #define MMX_SPEED_PID 0x80 68 #define MMX_PASS_COUNT 0x86 69 #define MMX_TOLERANCE 0x87 75 #define MMX_Motor_1 0x01 76 #define MMX_Motor_2 0x02 77 #define MMX_Motor_Both 0x03 83 #define MMX_Next_Action_Float 0x00 85 #define MMX_Next_Action_Brake 0x01 87 #define MMX_Next_Action_BrakeHold 0x02 92 #define MMX_Direction_Forward 0x01 93 #define MMX_Direction_Reverse 0x00 98 #define MMX_Move_Relative 0x01 99 #define MMX_Move_Absolute 0x00 101 #define MMX_Completion_Wait_For 0x01 102 #define MMX_Completion_Dont_Wait 0x00 108 #define MMX_Speed_Full 90 109 #define MMX_Speed_Medium 60 110 #define MMX_Speed_Slow 25 113 #include "EVShieldI2C.h" 138 bool setSpeed(uint8_t which_motor,
int speed);
141 int8_t
getSpeed(uint8_t which_motor);
149 bool setCommandRegB(uint8_t which_motor, uint8_t value);
150 uint8_t getCommandRegB(uint8_t which_motor);
151 bool setCommandRegA(uint8_t which_motor, uint8_t value);
152 uint8_t getCommandRegA(uint8_t which_motor);
167 bool setSpeedPID(uint16_t Kp, uint16_t Ki, uint16_t Kd);
203 void runUnlimited(uint8_t which_motors, uint8_t direction,
int speed);
206 void runSeconds(uint8_t which_motors, uint8_t direction,
int speed, uint8_t duration, uint8_t wait_for_completion, uint8_t next_action);
209 void runTachometer(uint8_t which_motors, uint8_t direction,
int speed,
long tachometer, uint8_t relative, uint8_t wait_for_completion, uint8_t next_action);
212 void runDegrees(uint8_t which_motors, uint8_t direction,
int speed,
long degrees, uint8_t wait_for_completion, uint8_t next_action);
215 void runRotations( uint8_t which_motors, uint8_t direction,
int speed,
long rotations, uint8_t wait_for_completion, uint8_t next_action);
218 bool stop(uint8_t which_motors, uint8_t next_action);
void stop(void)
Definition: SoftI2cMaster.cpp:119
void runTachometer(uint8_t which_motors, uint8_t direction, int speed, long tachometer, uint8_t relative, uint8_t wait_for_completion, uint8_t next_action)
Definition: EVs_NXTMMX.cpp:339
bool startMotorsInSync()
Definition: EVs_NXTMMX.cpp:172
uint8_t getMotorTasksRunningByte(uint8_t which_motor)
Definition: EVs_NXTMMX.cpp:124
bool setSpeed(uint8_t which_motor, int speed)
Definition: EVs_NXTMMX.cpp:61
void waitUntilTimeDone(uint8_t which_motors)
Definition: EVs_NXTMMX.cpp:264
int8_t getSpeed(uint8_t which_motor)
Definition: EVs_NXTMMX.cpp:66
uint8_t getBatteryVoltage()
Definition: EVs_NXTMMX.cpp:36
This class interfaces with NXTMMX attached to EVShield.
Definition: EVs_NXTMMX.h:118
void runSeconds(uint8_t which_motors, uint8_t direction, int speed, uint8_t duration, uint8_t wait_for_completion, uint8_t next_action)
Definition: EVs_NXTMMX.cpp:319
bool setSpeedTimeAndControl(uint8_t which_motors, int speed, uint8_t duration, uint8_t control)
Definition: EVs_NXTMMX.cpp:187
void runUnlimited(uint8_t which_motors, uint8_t direction, int speed)
Definition: EVs_NXTMMX.cpp:308
bool reset()
Definition: EVs_NXTMMX.cpp:166
uint8_t getMotorStatusByte(uint8_t which_motor)
Definition: EVs_NXTMMX.cpp:117
EVs_NXTMMX(uint8_t i2c_address=0x06)
Definition: EVs_NXTMMX.cpp:29
This class implements I2C interfaces used by EVShield.
Definition: EVShieldI2C.h:32
void waitUntilTachoDone(uint8_t which_motors)
Definition: EVs_NXTMMX.cpp:282
bool setTolerance(uint8_t tolerance)
Definition: EVs_NXTMMX.cpp:157
bool setPassCount(uint8_t pass_count)
Definition: EVs_NXTMMX.cpp:150
uint8_t issueCommand(char command)
Definition: EVs_NXTMMX.cpp:41
bool setEncoderPID(uint16_t Kp, uint16_t Ki, uint16_t Kd)
Definition: EVs_NXTMMX.cpp:132
bool setEncoderSpeedTimeAndControl(uint8_t which_motors, long encoder, int speed, uint8_t duration, uint8_t control)
Definition: EVs_NXTMMX.cpp:228
void runDegrees(uint8_t which_motors, uint8_t direction, int speed, long degrees, uint8_t wait_for_completion, uint8_t next_action)
Definition: EVs_NXTMMX.cpp:378
bool setEncoderTarget(uint8_t which_motor, long target)
Definition: EVs_NXTMMX.cpp:48
bool getTimeToRun(uint8_t which_motor, int seconds)
Definition: EVs_NXTMMX.cpp:73
bool isTimeDone(uint8_t which_motors)
Definition: EVs_NXTMMX.cpp:253
void runRotations(uint8_t which_motors, uint8_t direction, int speed, long rotations, uint8_t wait_for_completion, uint8_t next_action)
Definition: EVs_NXTMMX.cpp:391
bool isTachoDone(uint8_t which_motors)
Definition: EVs_NXTMMX.cpp:271
int32_t getEncoderPosition(uint8_t which_motor)
Definition: EVs_NXTMMX.cpp:110
bool resetEncoder(uint8_t which_motor)
Definition: EVs_NXTMMX.cpp:178
long getEncoderTarget(uint8_t which_motor)
Definition: EVs_NXTMMX.cpp:53
bool setSpeedPID(uint16_t Kp, uint16_t Ki, uint16_t Kd)
Definition: EVs_NXTMMX.cpp:141