As the topic title states, I am looking to build a robot for several projects.
I am a beginner into electronics, robotics and programming them but I am very keen to learn. First of, I am a college student so the robot will be used for some various upcoming projects, with the final goal for it to be used for my upcoming diploma project (in about 2yrs).
I did a bit of research and for a robot chassis I ended up choosing the Wild Thumper 4WD because it seems to be a very popular platform and has alot of support. I am abit confused about the other parts required tho. I know that I will need a motor controller, a micro controller (Arduino or RaspberryPi), a LiPo battery pack and a RC Tx/Rx.
The plan is to make some sort of semi-autonomous robot, that can be run in a few modes (not sure if all is possible):
- autonomous mode, the robot drives itself and learns certain paths in a tube/maze system.
- the robot is driven by a user via remote (RC or bluetooth or internet) and if the remote connection gets cut off it enters autonomous mode automatically( maybe to return to starting point or some sort of pre learned gps coordinates?).
My main concern, atleast for now is the motor controller. and the ones that are available for me to buy (in Romania).
For Pololu motor controllers I ca buy only these:
- POLOLU SIMPLE HIGH-POWER MOTOR CONTROLLER 24V12
- POLOLU ROBOCLAW 2X15A (V5D)
- POLOLU DUAL G2 HP MOTOR DRIVER 18V22 (Arduino or Rpi version)
- these look pretty good
- good price
- no I2C interface ??? (that’s a Con i think)
- only con I can see is that they limit the platform I can use them on ???
4.POLOLU DUAL G2 HP MOTOR DRIVER 18V18
- like 3rd variant but cheaper
- only 18A but it should be enough ???
- The Dagu T’rex Motor Controller - http://www.dagurobot.com/goods.php?id=135
- moderate - to high price
- made for the Whild Thumper ???
- lots of features
- not alot of support ???
The products you mentioned should all be capable of driving two of those motors at their rated voltage. Generally, brushed DC motors like those on the Wild Thumper can be quickly damaged by operating them at the full stall current and those products all can handle close to or more than the stall current continuously. You should avoid operating the robot in situations where the motors are stalled (where the wheels do not move when power is applied).
The Simple Motor Controller and RoboClaw have higher level interfaces and features like acceleration limiting built in, which can simplify the code needed to run them with programmable controllers like the Arduino and Raspberry Pi. The G2 motor drivers require more I/O pins from the programmable controllers to operate and your code will be required to do more.
So a little update. A friend of mine has a Pololu TReX Dual Motor Controller DMC01 - https://www.pololu.com/product/777
As far as I researched online, this one could also work. But in case it will break down at some point, what would be a suitable replacement for it?
Ok, so basically I got all the parts except the motor controller.
Thing is, I lack alot of knowledge buy I am willing to study and learn. I know what I want to do with the project but I don’t know how to do it…at this point.
The “brain” of the robot will be a RaspberryPi 3 model B+, as teacher requested. The problem is I get little to none support from the teacher…but it’s ok, not complaining.
The Pololu TReX Dual Motor Controller DMC01 description states a thing that caught my interest:
The serial interface can switch instantly with one of the other two interfaces, allowing mixed autonomous and remote control. For example, a robot could be configured to run autonomously most of the time, but a human operator could override the autonomous function if the robot gets stuck or into a dangerous situation. If the serial mode is selected as the primary interface, high-resolution measurements of all five channel input signals (be they RC pulses or analog voltages) are made available to the autonomous robot controller, allowing for complex and unlimited mixing of operator control and sensor input. For example, the TReX would be a great motor controller for a remotely controlled balancing robot.
The other variant for controlling the motors is the Dual G2 High-Power Motor Driver 18v18 for Raspberry Pi (Assembled). But I am not sure if I can make it work how I want.
Both the G2 High-Power Motor Driver 18v18 for Raspberry Pi and TReX DMC01 should be able to drive those motors as well. Reading the pulse width of hobby RC signals from a receiver requires precise timing and it might not be straightforward to do that with the GPIO on the Raspberry Pi, so that feature of the TReX might be convenient for your application. It should be possible to use the TReX with the TTL pins on the GPIO header of the Raspberry Pi, though you might need to use a logic level shifter between them.
Thank you for your prompt response. Honestly, I see that I have alot to learn because I did not understand much of your answer
But one thing I noticed on the G2 High-Power Motor Drivers. It says 6.5 V to 30 V operating range and the Wild Thumper Motors operate at 6V
Generally, small brushed DC motors like these are tolerant of different voltages and higher supply voltages can be used, especially if you limit the maximum duty cycle of the motor driver (which limits the power to the motor). For example, the Wild Thumper uses 6V motors, but it is fine to power them at 7.2V, which is what we recommend as a nominal voltage on the product page.
It is good you are looking at the operating voltage range for those motor drivers. You might also look at some discharge curves for the battery pack you plan to use to see how the voltage varies as the pack discharges. If the voltage of the pack gets close to the lower operating range of the motor controller before the pack is close to being fully discharged, using a different motor driver with a lower operating voltage range would give you a longer useful life between charges.
By the way, you can find more details about the control interface that hobby RC transmitters use in the Servo control interface in detail post on our blog.