Let's Make Robots!
tc  

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.
DpH's picture

This is just awesome! I absolutely love the strip reader, very creative! I wish I could come up with great ideas like that. Thanks for sharing.

lumi's picture

I like this little guy and the idea with the coding...well...have to collect this one to check later if I can use this for anything else ;-) Well done \o/

-Gary's picture

what a neat creation you have made! I enjoyed watching the paper strip feed mechanism. I hate to say it but I can remember when this was the only way to run a cnc machine.

Great job!

TinHead's picture

Awesome idea, great implementation!

goofybob's picture

I had a blast of nostalgia for the '70's, MIT, Project MAC, LOGO & Turtles!

Your project cheered me up! The strip reader still has me giggling.

You, sir, are my kind of cwazy!

isotope's picture

Specially for OddBot, download link for test video:

http://www.mediafire.com/?inaea82bhavpztz

Kawal's picture

hey nice one :)

OddBot's picture

Just a suggestion, try reducing the power to the sensor IR LEDs. If the paper is close enough to the sensors then you should be able to dial down the power and still detect the 1's and 0's. This may allow you to add a fourth sensor.

isotope's picture

Thanks for advise, OddBot! Unfortunately I have already tried that. I could detect with lower power on LEDs but the readings were too unreliable. Like 50% error ratio. The problem were the sensors in the middle, they've got affected by outer sensors. Anyway I have it working now :) the only hasle is that I need more "cards" per program, but the detection is really good, so I'm not planning to  modify this part of robot. I could probably try individual LED control, but as people say: If it works - do not touch it :))) Thanks again for your effort!  :D

RobotFreak's picture

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