Mini Robot Platform

by jonah marrs in Circuits > Robots

6898 Views, 102 Favorites, 0 Comments

Mini Robot Platform

INSTRUCTABLES PHOTO COVER.jpg
PRESENTATION SHOT BEHIND less bright.jpg
presentation shot of robot v2.jpg
IMG_9984.JPG
IMG_9990.JPG
IMG_9993.JPG
IMG_9987.JPG

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.

IMG_9972.JPG
IMG_9957.JPG

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

chassis in Fusion.jpg

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

IMG_0004.JPG
IMG_0007.JPG
IMG_0010.JPG
IMG_0012.JPG
IMG_0013.JPG
IMG_0015.JPG

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

IMG_9944.JPG
IMG_9948.JPG
IMG_9949.JPG

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

IMG_0024.JPG
IMG_0025.JPG
IMG_0026.JPG
IMG_0030.JPG
IMG_0036.JPG
IMG_0041.JPG
IMG_0042.JPG
IMG_0044.JPG

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

IMG_0253.JPG
IMG_0255.JPG
IMG_0258.JPG
IMG_0264.JPG

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

ProMiniPinout.png
0J4058.600.png
pin connections-01.jpg

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

IMG_0052.JPG
IMG_0054.JPG
IMG_0058.JPG
IMG_0063.JPG
IMG_0067.JPG
IMG_0068.JPG


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

IMG_0077.JPG
IMG_0078.JPG
IMG_0084.JPG
IMG_0087.JPG
IMG_0088.JPG

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

IMG_0070.JPG
IMG_0075.JPG
IMG_0090.JPG
IMG_0093.JPG
IMG_0094.JPG
IMG_0100.JPG
IMG_0102.JPG
IMG_0103.JPG
IMG_0107.JPG

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

IMG_0116.JPG
IMG_0117.JPG
IMG_0118.JPG
IMG_0119.JPG

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

IMG_0121.JPG

Yeehaww!

Add Sweeping Stepper Motor and IR Sensor

IMG_0154.JPG
IMG_0155.JPG
IMG_0157.JPG
IMG_0153.JPG
IMG_0144.JPG

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

IMG_0161.JPG
IMG_0163.JPG
IMG_0165.JPG
IMG_0166.JPG
IMG_0167.JPG
IMG_0171.JPG
IMG_0172.JPG

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

IMG_0266.JPG
IMG_0271.JPG
IMG_0275.JPG
IMG_0276.JPG
IMG_0277.JPG
IMG_0280.JPG
IMG_0282.JPG
IMG_0284.JPG
IMG_0288.JPG
IMG_0290.JPG
IMG_0291.JPG
IMG_0293.JPG
IMG_0294.JPG

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!