Makeblock encoder motor controller


#1

Hello,

I think I am going to buy one of the controllers at http://www.makeblock.cc/me-encoder-motor-driver/

But before I do I need to know about this product.

First off, is this opensource, and are the design schematic available? It seems that it has an atmel on it, and I looked at the source code of makeblock driver, and it seems that it is communicating with the module with some sort of serial protocol, so the actual PID control algorithm is in the device itself.

Second, is it possible to measure current sense per motor?

Third, if anyone owns this board, what are the comments?

Best Regards,
C.A.


#2

Hi CA,

  • At least the firmware is open source. The module is not yet documented on the wiki (most recent products aren’t), but the firmware was sent to me by Makeblock support on my request.
  • I don’t have the schematics, but expect it to be pretty straight forward. An atmega328 + TB6612 are the main components, quite similar to that part of the Orion controller (including the fuses).
  • The controller is an i2c slave device and indeed, the PID algorithm is in the controller.
  • I don’t see any pointers to current measurement, not in the software nor any components on the board. So I don’t think this is available.

And for my comments… I have mixed feelings about this product. It is a neat little board and has the same strong control over the motors as the Orion board (and in contrast with 99% of the arduino boards out there, who just take the wrong approach).
In contrast, you can only control the motors using the PID logic. There is no way in the standard firmware to sent the target PWM value or to turn it fully off. My intention was to add this to the firmware, have the Orion board read the controllers, do the math (both for tracking the position and motor power) and sent the motor power to the controller.
Unfortunately, it turns out i2c (and hence, reading the encoders) does not work reliable while the motors are running. This could explain why they added a checksum to the protocol (uncommon for i2c comms).
I’ve posted a few questions to this forum, hoping to get some advice to get it working. But no reply from MakeBlock support yet.
So… if you want to run motors at specific speed and/or to a specific angle as a servo, this is a great product. I’ve not been succesfull using it as a remote IO controller (pwm out & encoder in) and anticipate communication with other i2c devices might be distrubed when the motors are runnig…

Hope it helps…
Joep


#3