First I tried a small H-Bridge with 2.5 A to supply the DC motors with energy. But this type of motor driver was too small at that point the robot tried to turn on spot the motor driver burned out. Then I bought an upgrade for my Big Rob and now I am able to drive around and to turn on the spot without burning the motor driver. I searched for a motor driver with more than 10 A on each motor out. I found a motor driver with a total of 43 A and it could be controlled by a Raspberry Pi. I decided to buy two BTS7960B motor drivers because they are able to supply a total of 43 A which is more than enough for my four dc gear motors.
The picture below shows the two motor drivers and the Raspberry Pi wired and placed on a cardboard inside my Big Rob.
To make is easy for you to find the motor driver BTS7960B I used for my robot I added an Amazon online shop link.
Connecting the BTS7960B motor driver
You need six female-to-female jumper cables to connect the motor driver with the Raspberry Pi. Two cables are needed to supply the logic of the motor driver with 3.3V (VCC and GND). Two wires are needed to activate each H-Bridge with a high signal generated by the Raspberry Pi to set the spinning direction of the DC motor (R_EN / L_EN). The last two female-to-female jumper cables are needed feed the motor driver with a PWM signal to control the speed of DC motors (RPWM/LPWM).
The picture below shows the wiring of the motor driver.
BTS7960B Python program
I had to re-write my Python program I already developed to control some L298N H-Bridges to control the BTS7960B motor driver. That’s make it very easy for the Python control program to import the new BTS7960B Python program as an module and to control the motor driver without changing anything in the control program.
I uploaded the Python program with some inline documentation which describes which GPIO pins are used. This is important for wiring the motor driver.
E-Book – build a remote controlled robot with a Raspberry Pi
With this e-book you can create step by step, your unique remote controlled car. The interaction of hardware, electronics and software are explained with the help of concrete examples. This makes it easy to understand the more complex parts of the project.
The e-book is available as PDF.
The e-book costs 14.90 USD inkl. 19% VAT. (Germany).
When ordering from other countries the gross price may vary since then other VAT rates apply.
BTS7960B Python program for PCA9685 servo controller
To control the BigRob robot I installed two BTS7960B motor drivers. Those motor drivers need four PWM signals to set the speed of the dc motors. The Raspberry Pi is very bad in generating a precise PWM signal. This is a problem of his architecture and could not be solved easy. The latest program version for my BigRob uses a PCA9685 servo controller to generate a precise PWM signal. Only the PWM pins which where connected to the Raspberry Pi are now hooked up to the servo controller. The pins for enabling the BTS7960B motor driver are still connected to the Raspberry Pi.
The latest version of the program is available on GitHub: Motor-Driver-BTS7960B-and-PCA9685
The wiring of the BTS7960B was strait forward and with all my experience in building robots very easy. The re-use of my already developed Python programs saved me a lot of time and after a few minutes I was able to driver around with the Big Rob and the new motor drivers. It is very cool to have a strong robot with a lot of torque to drive around.
Article list - Big Rob:Big Rob – Raspberry Pi robot
Big Rob – Raspberry Pi robot power train
Big Rob – Raspberry Pi robot motor driver BTS7960B and Python program
Big Rob – Raspberry Pi robot outdoor camera
Big Rob – Raspberry Pi robot with differential GPS
Big Rob – Raspberry Pi robot with nice teeth
Big Rob – Raspberry Pi robot Peak Power Pack power supply
Big Rob – Raspberry Pi robot videos