LogoTurtleBot
Hi, everybody! I'm back with my new robot - LogoTurtleBot.
I had been thinking about drawing robot for a while, but I had to come up with something special... Particularily I was planning to build a Logo Turtle capable of drawing with a pen, and the special thing about it had to be an input system, as computer programmed Logo Turtle is so boring :D So, I decided to go retro, punch cards seemed to be interesting. Eventually I came up with paper strip printed in black and white boxes to represent binary coded Logo instructions like FORWARD, LEFT, PENUP, etc... At the time I had all the parts on hand and started designing and building!
The chassis is built around 3 CDs arranged as 3 decks. So, here they go! Motor deck:
Geared motors from Solarbotics and nice yellow wheels. Tamiya ball caster, Battery pack and power switch. Quadrature encoder with shaft adaptor made from ball pen tube. Here is closeup:
Here it is standing. By the way, CD worked quite good as a suspension.
Next comes intermediate deck with pen operating mechanism which is just a 8gr servo, and Freeduino with protoshield.
There you can see a L293D motor driver IC and Piezo speaker. I really liked that protoshield from Solarbotics. The quality and design are really good, so, I personally would recomment it.
Intermediate deck mounted:
And the top deck which took the most of time to design, build, and make it work. First is the feeding trail:
Ok, here on left is the tape which is used to say to LogoTurtleBot what to do. That is my "punch card" from the past :D Phisically it is a paper tape 2.5 mm wide, separated in 3 columns. I have to play with column widths and row height to make everything work, as reflectance sensors turned out to be very sensitive (Firstly I planned to use 4 sensors, but had to reduce count down to 3 to eliminate interference) to nearby boxes. I basically had to enlarge boxes till I had constant readings. So, the first column is just a guide for robot to know if he is feeding the tape properly. It is black then white, then black, and so on. Two other columns are actually containing data white being 0 and black being 1. Each "byte" consists of 4 bits and takes 2 rows on the tape.
At the moment I manipulate the bits manually by setting background color of cells in spreadsheet application. I have automated the process, so I can write commands like "LEFT" and spreadsheet automatically translates it into black and white sequence.
So far following instructions are supported:
p { margin-bottom: 0.08in; }
- 00[0000] - END - End of program
- 01[0001] - PENUP - Pull pen up
- 02[0010] - PENDOWN - Lower pen down
- 03[0011] - FORWARD * - Go forward number of blocks (~5 cm each)
- 04[0100] - BACKWARD * - Go backward
- 05[0101] - LEFT * - Turn left number of steps. Each step is 30 degrees (example LEFT 3 - turn left 3x30=90 degrees)
- 06[0110] - RIGHT * - Turn right.
- 07[0111] – PAGE – End of page. Wait for next card.
Parts List:
- 1 x Freeduino SB - Arduino clone by Solarbotics
- 1 x Freeduino SB Protoshield
- 2 x GM Geared motors with wheels
- 2 x Micro servos like these. One modified for continious rotation.
- 1 x SPDT Switch for power. Like these.
- 1 x Rotary Encoder.
- 1 x Ball Caster from Tamiya - Really good one!
- 1 x 4AA battery holder
- 4 x AA batteries
- 1 x L293D motor driver IC.
- 1 x Piezo speaker.
- 3 x QRD1114 reflectance sensors.
- Few resistors
- CDs and other junk material for construction
Update 9-Sep-2010
LogoTurtleBot now has an option to read all cards at once and then start execution of the program. I had to upgrade his power supply to 6xAA batteries, as he started experiencing brownouts and resets with almost fresh batteries. Piezo speaker is now up and working and LTB sings the happy song when finished drawing. For now it is just Arduino's example melody. As well he's now able to make 10 count beeps before he starts executing the program (if read at once) and scream badly when error occurs :D
And the most important news is that I have started working on his program to write "LMR"! I hope to finish making it, filming LTB writing and uploading new video before my days-off are all gone :D
Keep tuned!
Update 23-Sep-2010
LogoTurtleBot now stores last successfully read program in Arduino EEPROM and is able to play it back if I ask it to :D And the main news: Taraaam! Watch the video of LTB writing "LMR"! Hurray! Downloadable version of the video is here. Now I tag this robot as complete, but the idea with live feed stands, so I will be coming back with some interesting (I hope) stuff.
Interpretes Logo commands coded by black and white boxes on paper strip. Draws accordingly :D
- Actuators / output devices: Servos, LED, geared motors, Piezo, Pen
- Control method: Paper strip programmable :D
- CPU: atmega328
- Power source: 6 x AA batteries
- Programming language: C
- Sensors / input devices: Quadrature encoder, 3 x QRD1114 reflectance sensors
- Target environment: Paper on smooth surface