Many difficulties controlling of mobile robots involve having a motion controller that is small enough to be on the mobile robot, powerful enough to control the device and simple enough to be programmed with ease. In this case, the BX-24p comes to the rescue.
Robotic motion control can be realized using a Motor Mind C carrier board (MMC_BS2) that is designed for use with the BS2, but since the BX-24p is backward compatible with the BS2, integration from one to another can be easily done. Some of this carrier board features include a place to insert a microcontroller chip (BX-24p), places to solder wires for I/O and a place to insert a motor controller. Typically, the motor controller used with the MMC_BS2 is the Motor Mind C (MMC) which is capable of driving two 12V DC motors. The 12V DC power supply and DC motors are wired directly to the MMC_BS2. The user control, almost all, is done through programming in the BasicX language which reduces greatly other types of integration. The BasicX program can drive each motor at different speeds in either direction allowing any combination of forward, reverse and turning motions at any speed desired to move a robotic vehicle.
One must understand how the MMC motor controller works to drive a motor using the BX-24p and the MMC. The controller uses a number of hexadecimal to set the speed of a motor. For instance “0000” means no motion, “03FF” stands for 100% forward and “FC01” stands for 100% reverse. This means that any full motion percentage in either direction can be achieved by taking that percentage of the maximum hexadecimal value. For instance, to find 28% of full speed first take 28% * 1023 (Decimal 1023 = Hexadecimal 03ff). Next take that product (286) and convert it back to the hexadecimal value (011E). 011E represents the hexadecimal value of 28% of full speed. The setup speed for the controller is placed in a queue in the program and sent from the BX-24p to the MMC as a command packet via a serial communication.
No comments:
Post a Comment