This instructable was created to be entered in the Robot Challenge. If I win, the parts will of course, go into robots like this one. Notes on how to include some of the very components in the prize packages are given in the last step. I am 28, so of course, I'm not going for the student prizes.

I created this as a simple project for those just starting out in robotics. It is relatively inexpensive, requires minimal tools and is easy to build. Once finished you have an expandable robotic platform that fits in the palm of your hand and can be easily programmed in the Arduino environment.

Here is is driving in a triangle, without any special add ons

In the instructions I'll walk you through how to:
  1. Modify the servos for continuous rotation
  2. Fit the track hubs on to the servos
  3. Make a custom battery pack
  4. Wire it with a few connections
  5. Assemble it
  6. Program it
  7. Customize
These and other additions can be mixed to make your own custom micro robot

For the basic platform the following supplies are needed:
an Arduino nano
a small rechargeable battery
a pair of 9 g servos, modified for continuous rotation
part of a Tamiya track set
a 40 pin dip socket
a rubber eraser
some zip ties

Step 1: Construction: Modify the Servos

Micro servos modified for continuous rotation are the heart of this design. They give you so much of the hardware; the motors, the gearbox, the driver and control circuitry, all in a tiny cheap package, and in this implementation they also act as the frame of the robot (seen in the next step). There are many instructables on modifying servos for continuous rotation. But here is how I did it for the micro 9g servos I am using.

  1. Remove the tiny screws and open the case
  2. Cut the potentiometer wires, these are where you will attach the resistors
  3. If you have surface mount resistors, place a 5k (1k to 10k should work) on the pad from each of the side pads to the middle pad, if you don't twist a pair of through hole resistors like this
  4. Break out the stop on the potentiometer with some small pliers, you need the pot for its use as a rotational bearing
  5. solder on the resistors, if you used the pair of through hole ones, I recommend bundling them in electrical tape like so. For the servo that will go on the front, cut a notch for the wire to exit through the side so it doesn't come from under the robot.
  6. (not shown) Before you close up, put a hole in the back part of the case opposite the spline to mount the idler (wheel with no teeth).
  7. Use some angle cutters or pliers to remove any mounting flanges from the cases and file or sand down the ridges they leave, these can get in the way later.

<br> Really, really neat!<br> It's hard to make a narrow robot when you're using continuous rotation servos because of the gearbox height, but you've overcome this with the tracks and the asymmetric mounting method.<br> Just to clarify, you've drilled a hole for the idler pinion in the servo bottom cover in line with the spindle?&nbsp; Must have been pretty tight in there - the boards in those 9g servos don't leave a lot of room.
To mount the idler I did it just as you said, its screwed into a hole drilled on the back cover opposite the spindle. I had to be sure not to put the screw in too deep so it wouldn't hit the board, but in the ones I was using the board was slanted so it wasn't too near the back wall at that point. I've noticed with these cheap ones it isn't always the same slant, but on the ones where they installed it so that the near side is on the end I want to mount the wheel to I just tilt it the other way before I put it back in when I do the modification.
<p>but why won't the servos receive signal</p>
<p>I guess I should have mentioned, you can move the servo connection and then change the pin that is being used for PWM in your code. Check the schematic for your given Arduino to find out which pins support PWM.</p><p><a href="https://www.arduino.cc/en/Main/arduinoBoardNano" rel="nofollow">https://www.arduino.cc/en/Main/arduinoBoardNano</a></p><p>According to this, the Nano Board can PWM 6 pins, they are 3,5,6,9,10,11. There are also libraries like this one that let you run a servo on any output pin:</p><p>http://arduiniana.org/libraries/pwmservo/</p>
What if I attach the signal wire to the wrong digital pin???<br>
If you attach the servo signal wire to the wrong pin then the robot will not move. Servos just sit still when they get no signal. The highest voltage on this robot is 5V, so it isn't enough to toast anything no matter how you connect it.
<p>what is the hypothesis of this robot</p>
<p>I don't understand the question. I suppose if the robot is viewed as an experiment the hypothesis is &quot;I bet I could use these micro servos to make a very simple little tank&quot; and the conclusion was that I could.</p>
<p>how would i screw in the other wheel on the back side like the one thats not the driver.</p>
<p>There's no special trick to that. I just found a screw that was the right size for the idler to spin on and the right length to go through and into the plastic on the other side, but not too far to avoid going into the gears. Then I drilled a small hole in the case and attached the wheel with it.</p>
From where you buy this robot chassi?
In RobotShop.com and if you want continuous rotation servos you can get one for $4.99!!!
What types of batteries can I use and what must they have?
<p>What Arduno and servos are you using? The batteries need a voltage that is sufficient for either the regulated or unregulated input on your arduino, and for your servos. And they need to have enough current to power both the servos. </p><p><br>There could be quite a range of current on the servo, a 9g servo could draw 200-300 mA free running, and up to 700 mA when stalled, maybe a bit more. Without the motor torque constant (Kt) or velocity constant (Kv), or any info about your build I can only guess. Mine draws about 420 mA when driving full speed in a straight line on my desk. If you have the servos you want to use the best way to be sure of current need is to test it.</p><p>Once you have that info, pick a battery with a maximum continuous discharge current that is high enough. This may also be listed as a C rating. 1C means the discharge rate is the capacity of the battery in unit/hours divided by hours times the rate, which is 1 in this case. That makes it sound complicated but for example, if you have a 240 mAh battery drop the h and multiply it by the C number.</p><p>240 mAh with 2C means you can draw 480 mA</p><p>1.8 Ah with 3C means 5.4 A</p><p>2400 mAh 30C means 72,000 mA or 72 A</p><p>You get the idea.</p>
<p>Hello,</p><p>Really nice project. I'm planning to do it. The problem is: I have two 3.7, 680 mah li-po batteries which I think I will have to connect in series. Is there any problem for the arduino if it receives an input of 7.4 volts?</p><p>Waiting your answers,</p><p>thanks for sharing the project</p>
<p>According to the page for the Arduino Nano</p><p><a href="https://www.arduino.cc/en/Main/arduinoBoardNano" rel="nofollow">https://www.arduino.cc/en/Main/arduinoBoardNano</a></p><p>Its input voltage is 7-12 V, but it also says &quot;operating voltage 5 V&quot; I can see how this would seem a bit confusing. The 5V is what it gets after the regulator, the 7-12 V is what it can take if it goes through the regulator. At the USB connection, you don't want to exceed 5V. But the pin Vin goes into the 5 V regulator, which will cut down voltages 7-12 V to 5 V so they can power the microcontroller and other components.</p><p>See this schematic:</p><p><a href="http://download.arduino.org/products/NANO/Arduino%20Nano-Rev3.2-SCH.pdf" rel="nofollow">http://download.arduino.org/products/NANO/Arduino%...</a></p><p>In short, connect 7.4V to Vin and the negative battery lead to a ground pin and you'll be fine. Just don't connect it to the 5V pin, that pin is connected to the 5 V rails after the regulator and anything much over 5 V will probably fry something. </p><p>As a side note, this device is not tolerant at all of reverse voltage, make sure you connect battery + to Vin and battery - to Gnd, do it backwards for even a moment and the Arduino will be busted.</p>
<p>What is the total cost of this project, I dont have any of the pieces that I need.</p>
<p>two servos are max 10$</p><p>arduino nano is about 5$</p><p>battery is tricky, i would guess about 10$ max</p><p>if you already have soldering iron, some cables, hot glue.</p><p>i dont know about the tank tracks, i searched and found nothing, so youll have to make them or use LEGO ones idk.</p>
<p>Hi, great project. This may sound silly, but could you scale up this. So have the nano controlling a bigger motor? Sorry I am new to all of this kind of stuff. Thanks!</p>
<p>Gater clips??</p><p>Shouldnt this have been at the front of the project for tools and parts needed. </p>
<p>I don't think gator clips are required for any of these steps, also, I didn't make a tool list. This only requires basic electronics tools like wire cutters, pliers, a soldering iron, and a small screwdriver.</p>
<p>My servos are already continuous. So i skip this step right?</p>
Would a 500mah battery work?
That capacity will be enough, but many small LiPo batteries are 3.7V, and some arduino boards are 5V. If you have one that runs on 3.3 then a 3.7V cell should be fine. If it has a 5V regulator it might not power on.
It's a great robot I commented on it over 3 years ago and have been waiting to finally make it I just don't know which batteries to use
It's a great robot I commented on it over 3 years ago and have been waiting to finally make it I just don't know which batteries to use
<p>what will happen if I use more than 10k resistor? Will the servo work?</p>
It will work with a wide range of values, it's just working as a voltage divider to give the servo control IC a reference voltage that is right in the middle. In this case since the positive voltage is 5V and the other end is ground (0V) and the two resistors are equal, you get 2.5V.<br><br>The servo usually works by comparing the potentiometer voltage to the target voltage and setting the speed proportional to the difference, so that the further it is from the target position the faster it will move, and it will stop when it gets there. By setting the feedback voltage fixed in the middle of the range it moves at a speed which is proportional to the target voltage minus the middle voltage, so that it stops when it gets a neutral signal and runs faster in one direction or the other depending on the command.<br><br>But more to your question, any values that match eachother will work so long as they aren't so low that they effectively short out the controller (if you used say 7 ohms the power would all go through your resistors and the system would shut down) or so high that the reference voltage is undetectable. So anything from 2k to 1M should work, maybe even outside that range.
<p>what will happen if I use more than 10k resistor? Will the servo work?</p>
<p>what will happen if I use more than 10k resistor? Will the servo work?</p>
<p>Beautiful robot (y)</p>
<p>how do you wire the battery to the circuit?</p>
<p>It's just wired to Vin and Gnd on the nano, which are split to go to the power wires on the servos. But if I were to do it now I'd probably use a simple lithium polymer charge circuit that provides a charge regulator, and a little Lithium polymer cell.</p><p>For example this charger on ebay</p><p><a href="http://www.ebay.com/itm/5V-Mini-USB-1A-Lithium-Battery-Charging-Lipo-Charger-Module-for-Arduino-A866-MA-/131304520047?hash=item1e925bf96f:g:G5UAAMXQlgtSy7s0">http://www.ebay.com/itm/5V-Mini-USB-1A-Lithium-Bat...</a></p><p>and maybe a cell like this</p><p><a href="http://www.ebay.com/itm/3-7v-1000-mah-Polymer-Li-ion-Lithium-cells-for-GPS-ipod-MP3-MP4-Tablet-PC-102445-/171905017739?hash=item280656678b:g:EHYAAOSw1h5XQQVL">http://www.ebay.com/itm/3-7v-1000-mah-Polymer-Li-i...</a></p><p>Then you would just connect the battery lines from batt+ and batt- on the board to your battery. And the in+ and in- to Gnd and Vin on your arduino. Since you don't want to feed power from the arduino when plugged in straight into the battery I might suggest putting a diode on the connection between the battery and the arduino so that power can only flow from the battery to the board and not vice-versa. I'm actually not sure if this is strictly necesary as this board may be set up so the battery inputs on the board can be used as outputs when it is not powered. I'll try it and get back to you on that.</p>
<p>can we use gear box instead of servos</p>
<p>I don't see why not. But you would need a motor driver, such as the L293 to run the motors. The advantage of the micro servos is that you get your driver, speed controller and gearbox all together for about $2 each.</p>
<p>I don't see why not. But you would need a motor driver, such as the L293 to run the motors. The advantage of the micro servos is that you get your driver, speed controller and gearbox all together for about $2 each.</p>
<p>Thanks a ton, this Instructable gave me a great idea for our Cub Scout group.</p><p>I just posted my Instructable &quot;Arduino Robot for Under $5&quot; based what I learned here.</p>
<p>Awesome job! here is another type of microbot, do check it out: https://www.instructables.com/id/Arduino-Nano-Segway/</p>
<p>how did you attach two wheels to one servo in step:2</p>
<p>Nice cool lil robot... im gonna build one.. need to order the wheels </p>
This is awesome mini tank. What I would do when making this is add a claw and a lazer
it's awesome. but can I use a keyboard to provide the input to this minute Robo?
<p>I'm thinking of things I could add on to this. So I'd like some feedback from anyone interested. What kind of wireless would you most like to see? WiFi, Bluetooth, simple radio such as a OOK transmitter?</p><p>Any other uodates? Maybe a different miniature electro-mechanical part like a claw/grabber.</p><p>Also, changes to make it more usable. Let me know, no matter how simple or complex.</p><p>Thanks</p>
<p>I'm looking at some potential li-ion batteries and was wondering what you would recommend? I found a 250mAh 3.7V battery on eBay, do you think that would cause any issues with a 5V arduino nano?</p>
<p>I considered this too. I've found that in my case at least the Nano will not turn on at 3.7V. However, the chip onboard is an ATmega328, rated for 1.8 to 5.5V. The reason it won't run at 3.7V is the 5V regulator on the board. Bypass that and it will run down to 1.8V, though depending on your servos you will need more than that, 3.7V seems to be enough for the 9g servos I've been using.</p>
How much does this cost in total
<p>If you get cheapo parts on ebay*. about $30</p><p> *I haven't used these particular parts, they may be crappy</p><p>$5.50 for the micro servos [<a href="http://www.ebay.com/itm/2x-SG90-Micro-9g-Servo-For-RC-Helicopter-Hitec-JR-Futaba-Align-Trex-US-Sel-/191402239783?pt=Radio_Control_Parts_Accessories&hash=item2c90766727" rel="nofollow">for example</a> ]</p><p>$5 for the nano [<a href="http://www.ebay.com/itm/Arduino-compatible-Nano-V3-0-ATmega328-Mini-USB-Microcontroller-Board-Cable-HIYP-/221608533427?pt=LH_DefaultDomain_0&hash=item3398e5ddb3" rel="nofollow">ebay</a>]</p><p>$10 for the tracks [<a href="http://www.ebay.com/itm/NEW-Tamiya-Track-Wheel-Set-70100-NIB-/390914477064?pt=Educational_Toys_US&hash=item5b04518c08" rel="nofollow">ebay</a>] though I would reccomend making your own, since you don't need the whole kit, and I just had the small wheels left over. For example you could use plastic bottle caps and silicon bracelets.</p><p>I salvaged the battery, but if you can't find an old cell phone battery something like this would do: $2 [<a rel="nofollow">USB li-po charger</a>] $6 [<a rel="nofollow">tiny single cell li-po battery</a>] convieniently, this is already the right voltage to run the arduino nano. One could easily add jumpers to make it charge while hooked up to program.</p>

About This Instructable




Bio: I am a robotic engineer, and I like to make things and teach others.
More by PaulMakesThings:Add Radio to a Syma S107 IR Helicopter (or any other IR device) A 3D Print Ready Jack O' Lantern in Solidworks 3D Printed Hanging Internal Gear Clock 
Add instructable to: