Hey everyone,
Been playing around with BrickPi on my Raspberry Pi + Camera module to make a red ball following robot, using the easy OpenCV2 python wrappers and BrickPi Python API. Video showing it here: http://youtu.be/TggP78LQnak
I am using a 3-cell 1.3 Amp-hour LiPo pack. When fully charged its probably a bit too high Voltage, i’d be more comfortable with a 2-cell LiPo pack with higher capacity.
During my testing, twice now the motor driver IC has blown - first was because I put two motors on the one driver (port A and B) and a little bit of backwards - forwards motion caused a fizzle and pop of that driver. I replaced the IC with a L293D. The duty cycle maximum in my code, due to the voltage of the battery pack, always been less than 70% ( 180 / 255 as max PWM value)
More recently I was testing again, and had a mishap in my code which caused momentary high PWM duty cycle for a few seconds of oscillating motion while tracking the red ball in front of the robot, which caused a very exciting fireball on the remaining SN754410 driver IC, which i’ll now have to replace with another L293D.
I suggest for the next hardware revision that a far better motor driver IC is used, one that uses MOSFET output stages rather than these 30 year old technology Darlington PNP drivers. The ABSOLUTE MAX RATINGS page of the SN754410 datasheet show power dissipation is 2 Watts, which when powering Lego NXT motors leaves zero margin for error, especially if two motors are being driven by a single package.
An example of a more suitable Motor Driver IC is the Toshiba TB6612FNG dual channel full H bridge driver, which has a lower input voltage but has better efficiency with less dissipation for the current requirements of the NXT motors. Datasheet can be seen here: https://www.sparkfun.com/datasheets/Robotics/TB6612FNG.pdf
There are plenty of other, newer ICs with MOSFET driver output stages which do NOT dissipate P ~= 1.4V * Current, rather they are a function of On resistance times square of the current.
In this video http://youtu.be/zOFlJJj8pPA?t=5m11s You can see that using just a single one of these Toshiba drivers mounted on the Baby Orangutan Robot Controller, I was able to power (using LiPo batteries too! Although a lab bench supply is shown for some tests while the lipos recharged) two Pololu 25D Gearmotors (47:1 ratio) to operate my Segway balancing robot. This design inherently has repeated reverse currents and stalling currents, yet the single surface mount driver IC running at 11.1V was operating without failure. At numbers of 1000+ these ICs are AUD$1.5 each.
As a side note to admins who read this topic, I’ll be in Vancouver from Sept/Oct with a 2 year working permit and visa, I am interested in assisting with a far better design overall for the next BrickPi hardware. There are numerous issues and downfalls with the existing product, mostly with power stages (where is reverse polarity protection!?) and motor drivers as mentioned, but also in the inefficiency of having dual ATMEGA328P. I am a qualified Robotics/Mechatronics engineer with circuit design specialty and 2 years experience in professional circuit design and product design, having designed and built numerous successful projects.