This is MURtle my drawing robot. Inspired by Oddbots Doodle Bot competition, I decided to build my own drawing bot. MURtle is a combination of MURCS and Turtle. MURCS is my multi use robot construction system using laser cutted acrylic plastic parts.
[pe2-image src=“http://lh5.ggpht.com/-sUJftqZr_Lk/UeGzOMhjZVI/AAAAAAAAIL8/6i3lWS-9pJc/s144-c-o/IMG_6159_60_61_fused.tif.jpg“ href=“https://picasaweb.google.com/100614490999857774768/MURtle#5900194043293558098″ caption=““ type=“image“ alt=“IMG_6159_60_61_fused.tif.jpg“ ]
The Dagu Micro Magician Controller has been used, because it has everything onboard needed and runs from 4 AA cells. A micro servo has been used as pen holder. 2 Pololu ICS01A IR sensors as odometry sensors. Solarbotics wheel with self made 48 segments wheel encodcers are mounted on the Solarbotics GM3 143:1 geared DC motors.
Wheel encoders:
The IRS01A IR Sensors are connected to 2 analog input pins of the controller board. No additional hardware like Schmitt-Triggers has been used.
The 48 segment encoder wheels gives a resolution of 4.5mm for each tick. Not very good. Next time I will try a 96 segment encoder wheels. I got an idea about getting better resolution using more intermidiate steps from the analog readings opf the sensors. Not sure if that will work.
Pen holder:
As pen holder a micro servo has been used. The pen is attached to the servo horn with a paper clip. The pen is exactly beetween the wheels. So there is no need to lift up the pen and make corrections when the robot makes a turn. But it is a challenge to get the pen on the right position. Sometimes during the drawing the pen moves to the side. Better fixation is needed.
Programming:
Drawing is done by a preset of hard coded functions. A Sony IR remote can be used to recall the presets. Later on a Bluetooth and a skripting language like Logo will be used to load drawing sequences from a PC. All drawing sequnces are based on 3 basic functions: Pen(uop,down), Go(distance) and Turn(angle).
Some examples. 1. Draw a square:
void Square(int width)
{ Pen(down); for(int i=0; i<4; i++) { Go(width); Turn(90); } Pen(up); }
- Draw a spiral:
void Spiral(int limit, int steps, int angle)
{ Pen(down); for(int i=steps; i<=limit; i+=steps) { Go(i); Turn(angle); Go(i); Turn(angle); } Pen(up); }
Video:
httpv://www.youtube.com/watch?v=wVCDLklqoYM
More Links:
- http://letsmakerobots.com/node/37126
- http://www.instructables.com/id/Arduino-Audio-Input/#step1
- http://www.instructables.com/id/Arduino-Timer-Interrupts/#step1
- http://en.wikipedia.org/wiki/Turtle_(robot)
- http://el.media.mit.edu/logo-foundation/logo/turtle.html
- Sourcecode SVN repository