Mini Robot Platform
The goal of this project is to develop a miniature chassis to experiment with very basic swarm robots. The prime inspiration is James McLurkin's fantastic MIT project from the early 1990's http://www.ai.mit.edu/projects/ants/.
Features:
-Approximately under 2" cubed and designed to be compact.
-All electronics powered by single Lithium Ion Battery (3.7V).
-All electronics relatively inexpensive (sensors all under or around 7$ each),- though the chain drive is a bit costly.
Aspirations:
-To develop a solar recharging group of mini autonomous robots which can be experimented with and perhaps one day perform basic demos (sorting skittles, plotting basic shapes, etc.)
Order Parts From Amazon, McMaster Carr, Polulu, Sparkfun, Etc.
Here is the Bill of Materials to make the base version:
Amazon:
x2 Gear motors:
http://www.amazon.com/30RPM-Shaft-Metal-Gearwheel-...
x1 Lithium Ion Battery:
http://www.amazon.com/Keenstone-Battery-Channel-Qu...
x1 ATMEGA 328 Pro Mini 3.3V:
http://www.amazon.com/Diymall%C2%AE-Atmega328-Atme...
McMaster Carr:
x1 Hardware for mini gear tracks:
http://www.mcmaster.com/#orders/=12860z7
Polulu:
x1 Motor Driver:
https://www.pololu.com/product/2135
x1 IR Obstacle Detection Sensor:
https://www.pololu.com/product/1132
Sparkfun:
FTDI Breakout to program Mini Pro boards:
https://www.sparkfun.com/products/9873
Digikey:
x2 Reflectance sensor
https://www.digikey.com/product-search/en?keywords...
Add-ons:
Adafruit:
Allows for solar charging of Adafruit lithium ion batteries with a 6V solar cell:
https://www.adafruit.com/products/390
RGB Sensor:
https://www.adafruit.com/products/1334
Polulu:
Compass Module:
https://www.pololu.com/product/2127
Solarbotics:
33x37mm Solar Panel which could work with the Adafruit charger:
https://solarbotics.com/product/scc3733/
Nice small gear motor which self centers and can be powered by a ATMega pin to lower a pen, for instance:
https://solarbotics.com/product/gm10/
OTHER:
I recommend getting some very fine wire. I suggest checking out Mika Satomi and Hannah Perner-Wilson's primer on finding fine wire: http://www.kobakant.at/DIY/?p=514
3D Print Chassis
The chassis is designed to provide a compact package for the chosen hardware.
Printing out of translucent resin means the lights from the Arduino Mini Pro can be visible through the chassis and allows all the complexity of the gear motors to be on display. However, ABS plastic is more functional in terms of rigidity.
The prints shown in this Instructable have been made with Pier 9's Objet Printer but could also have been made with a resin printer like Ember.
Chassis Features
The chassis allows for convenient slotting in of the Polulu A8835 motor driver, low profile nuts (for the axles), six pin header (for programming the Arduino Pro Mini) and the gear motors.
Drilling Holes for Set Screws
The mini chain sprockets from McMaster Carr do not come with set screws :(. This makes mounting a sprocket to the motor shaft a challenge.
I used a wooden clamp to hold the sprocket in place and a drill bit that was a little smaller than the set screw size. When screwing in for the first time I made sure to be coming in as straight as possible.
Setting Up Sprockets and Tracks
The mini roller chain is very easy to de- and re-link provided you use your (human) nails and stay away from metal pliers or the like which may cause the links to shatter.
The trick with installing the chain is to secure 2 of the 3 sprockets in position and use the third to pull the chain to its most extended position and only then secure the third sprocket by pushing the bolt threw and securing it with the captive nut.
Repeat for the other side and your robot has tracks.
Applying Liquid Rubber to Tracks
Apply Liquid Rubber to one side of tracks at a time. Make sure to prevent the rubber from covering the track holes entirely. To prevent this from happening I move the tracks several times while they dry and use a metal tool to poke the bubbles that form here. This stuff takes 30 minutes to dry and should be handled in a ventilated area with gloves.
Electronics
I air-wired the electronics to save space. I regret having done this because it can lead to situations that are very difficult to debug. The hook up is straight forward for the base version and many other sensors can be added with ease.
Prepare the ATMega 328 Pro Mini
I first remove the reset switch from the Pro Mini because it is not low-profile enough for this design. I add headers but make sure to leave extra space so that they can pop up over the resin print at the back of the robot body.
Testing the Pro Mini programmer at this point is probably a good idea.
Install Motors and Prepare Wiring
I am using extra fine wire to make this process as tightly packable as possible. Special holes have been made in the chassis to allow for wires to pass through.
Solder Boards and Motors
Preparing the driver board is the most finicky part. Grounds and VCCs should be connected (but not with one another!) first and then leads can be soldered to the motor control pins. Soldering these pins to the Mini requires some practice but this can be done with flexible wire instead to make things (slightly) easier.
Install Battery
Once the soldering connections are done, unscrew the axles as far as possible and then insert the battery. Once the battery is in place the axels can be re-tightened and will act as a clamp to hold the battery in place. By connecting the black wire to GND and the red wire to VCC you can begin to test the motor driver is working.
Test Drive
Yeehaww!
Add Sweeping Stepper Motor and IR Sensor
After soldering the three wires for the IR sensor I made sure to leave plenty of extra slack in the wire. I used extra fine flexible wire because the stepper motor is only strong enough to overcome a certain amount of wire stiffness.
Red goes to 3.3V, black to GND and the signal wire goes to a digital pin which can be read with the digitalRead() command in Arduino.
By adding a small stepper motor like this one from amazon (http://www.amazon.com/1000RPM-Phase-Metal-Stepper-Silver/dp/B00PZYKNLC?ie=UTF8&psc=1&redirect=true&ref_=oh_aui_search_detailpage) a sweeping ability can be added to the IR sensor. I wire the stepper directly to the Pro Mini and don't use a driver in the interest of saving space.
Adding Edge Sensors
Reflectance sensors can be added to your robot to ensure that it does not drive off the edge of a surface. I followed this bildr tutorial to get the resistor values and hook up right (http://bildr.org/2011/03/various-proximity-sensors-arduino/).
Preparing Adafruit Solar Lithium Ion Charger
By adding some additional leads to the capacitor the electrical connections can also act as a structure to hold the solar panel and charging circuit above the robot. I removed the connectors on the charger adapters on the Adafriut board and hard wired the connections to have a slimmer circuit board up top. I also rewired the battery with slimmer wires but kept the connector jack. I used zip ties to hold the wires to the metal leads of the cap. I used a hot glue gun to attach the capacitor in place.
The Code
Please don't laugh...my code is still a work in progress and I shall be reposting a better functioning code in the coming days.
Thank you for checking out this Instructable!