|
July 2006:
This page is dedicated to the further enhancements that I have done to DominoBotNXT. For more info on the original NXT version, go here.
One of the drawbacks of the original was that due to the 3 motor limit, it had to backup to properly place dominos. This was because the domino-placing component was tied
directly to the drive wheels. So, as it drove forward, a domino would make its way to being placed in the holder mechanism. Doing this caused the robot to move forward approx. 4
inches. Since this is too far for domino's to actually cause any chain reaction, the robot had to move each newly placed domino back to be within 1" of the last placed one.
Since I'm never really satisfied, I called upon the folks at Mindsensors to try out their newly developed NXT Motor Multiplexer (MotorMux).
They gladly provided me with a test unit to try out. The purpose of the NXT MotorMux is to expand the number of available motors by 4, and it uses 1 sensor port to do this. Since the
standard NXT software does not have built-in support for I2C messaging (interface to talk to the motors on the sensor port), along came
RobotC. RobotC is currently in Beta testing (July 06) but has proven quite useful for this task. With some help
from Dick Swan, I was able create the necessary code and logic to talk to the sensor port to control a 4th motor. Its' purpose - to seperately drive the domino-placement mechanism so that
DominoBotNXT does not need to back up. Now, it can place domino's on the fly while always moving forward. I'll save the descriptive works and let you watch the
video to see it in action.
The following is an excerpt of the code showing a function used to call on the MotorMux:
//backup domino placer a bit
mmControl(kMotorOnMux, mmReverse, nSpeed);
//float the motor off
mmControl(kMotorOnMux, mmFloat, nSpeed);
// Send the message
sendI2CMsg(kSensorMuxPort, motorMuxMsg [0], 0);
return;

|
The following shows the configuration / wiring of the MotorMux unit to the NXT. The MotorMux must be powered by an external source (9-12V DC). One NXT
sensor port is used to send commands to the MotorMux. From the MotorMux, up to 4 standards electrical wires can be connected to the holes to power 4 motors. In this case,
it goes from the MotorMux >> Std. Lego Wire >> Mindsensors Wire Converter >> NXT Wire >> NXT Motor.
|