Let's Make Robots!

Droid Planning

Firstly Thanks to Oddbot, Pome & the Dagu team for this amazing Robot.

Assembly time was about 16 hours, that included rebuilding the right wrist to get the servo in a position to be able to pour a liquid ;-)

The Instructions were relatively easy to follow (As they evolved) and it was an enjoyable experience. My only suggestion's to fellow droid builders are: 1) Have some way to measure all the screw's and spacers on hand. My Cutting mat was perfect for this. 2) Think about the servo positions for the task's you want the grippers to achieve.


Now on to the Control, A Custom PCB :-) This is still a work in progress so any suggestions would be great.


So far the concept is to have an Atmega1284 as the Brains and a dedicated Atmega328 for driving the motors/encoders/Bump Prox sensors. I also plan on using two power supplies, 1 for motors and servo's and 1 for uC's. I have only designed the Motor drive part of the circuit so far. (Click image for higher Res)

I'm using a L298N wired in parallel for each motor,  allowing them to handle the Rover 5's 2.5A stall current and I'm also monitoring the Current in case a proximity sensor fails. The Encoders are connected via a XOR gate as Oddbot was so kind to suggest in the manual and all connected to Port D of the 328 to reduce time/code required for the port manipulation encoder counting. I've also included 4 plugs for 4 x sharp IR 4- 30cm sensors, I plan to "cross" these sensors on the front and back of the droid allowing it to avoid running into objects. Alternatively the same 4 pin's are broken out near the front of the board to have the option of line following or 2 of each, etc. The only 2 pins left free are Rx/Tx which I'm guessing might come in handy to attach a serial LCD for debugging.


The Main uC will be in charge of Vision and Mapping. For the vision I plan on using a combination of a Pixy Cam and a Rocket Brand Studios WiiCam. And I'll try implement a wavefront for the mapping. I'd also want to include Bluetooth.

I'm still undecided if the Main uC will handle the servo control or if I'll include another 328 that would allow for the servo with feedback modification.


If anybody has any suggestions to add/improve/modify this they would be greatly appreciated :-)



Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
This is an age of machines, I remember I watched terminator part 1. When humans fight the machines. A similar thing might await for us!
  • Wagering at this excellent on line gambling site couldn't be less complicated and you're simply likely to really like http://onlinepokies.me/ slots and table craps tables as well.

I am curious as to why you chose the ATmega1284. The only difference I see is an extra 8K of SRAM but your programming space is limited to 128K. I'm assuming you expect your code to have a lot of variables.

I would not recommend the L298 motor controllers, even wired in parallel. There are many motor control IC's that use FETs which will give you much better power and less heat. Have a look at the IC's used by Pololu.

I would suggest a chip such as the Allegro A3995. This chip can drive 2x 2.4A loads. The only disadvantage is that if you are assembling your PCB by hand then the QFN package is difficult to hand solder.

As I have about 10 that I got given :-) And the wavefront mapping will be quite variable intensive, especially with my lack of programming skill's.

The same reason is for for L298, My local hacker space has a few in the bit's basket, But I'm more than willing to listen to experience and the A3995 looks much better suited, I'll have to test my solder stencil etching skills before commiting tho as it will definitely push my smd solder skill's ;-) It would also free up a load of space as those L298's are HUGE!

What do you think about adding another 328 to control/sense the arm servo's? It means I would also be able to add pressure sensors to the grippers.

Cheers for your thoughts Oddbot.



The main problem with the L298's is the big voltage drop and high internal resistance. Another member was using them for the Rover 5 and was complaining that the Rover 5 was not a good platform because it was slow and weak. Once he got a decent motor driver he found there was nothing wrong with the Rover 5.

As the QFN packages are difficult to solder you might consider using 2x A3950's. They come in QFN and 16pin TSSOP packages which are easier to solder. Each A3950 can drive one motor up to 2.8A. There are many other single chip, FET H bridges to choose from. You just need to find ones that are readily available, reasonably cheap and easy to solder.

Since you wan to make your own PCB, although it depends a bit on what is available to you and the price, I would suggest using an ATmega8 as an I2C motor controller and another as an I2C servo controller. They should be cheaper than the 328. Then add a second 1284 for additional brain power and I/O pins.

Alternatively, if you give up on the custom PCB then my configuration is:

1 Mini Driver for your motor controller
1 Spider controller for servos and lots of I/O pins
1 Chinese DUE clone for the brain