Let's Make Robots!


Interpretes Logo commands coded by black and white boxes on paper strip. Draws accordingly :D

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:



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.


Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Lol, that is a lot of work, I am impressed!

- And I just have to challenge you; http://letsmakerobots.com/node/2023 ;)

You got it. I'm uploading a video. :) Will be on the page soon! :D




Really great job. I know that is not as easy as its seems to make a robot do that.

What I would like to see is, when you let the robot draw a few of squares over and over the same place. How accurate this would be.

I have played with my encoder, but could not make it work perfectly. It's too low resolution. With each sqare it would offset a few degrees. I was thinking of using stepper motors to be able to control exactly how much wheel turns... maybe in future...

i like that scanner part for reading instructions! it looks very much line punched cards used to input data to computers many years ago :) nice job with that indeed.

Great job once again isotope. Your robots just rock and this one is no exception.


As usual a very nice robot. The barcode scanner is incredible.

I've had a similar idea for a robot which can read QR-Codes. A smartphone could do this job. Read the barcode and send the instructions to the robot. You can hind any instuctions you like:

  • what to do next (bring me a beer),
  • how to find the way out of a labyrinth,
  • a logo script
  • ...

An example:

The hidden text is:

Pen down
Go 100
Turn 90
Go 100
Turn 90
Go 100
Turn 90
Go 100
Turn 90
Pen up


Then add a cellular module to LogoTurtleBot to receive commands remotely and live video feed on LMR ;-)