Let's Make Robots!

TBT (Timing Belt Tank)

Navigate around using Sharp sensors

When putting the ToM (Thing-O-Matic 3D printer) together it struck me that the timing belts looks a lot like tank treads when flipped inside out. I think small robots are fun so I decided to try making a chassis based on some 140XL timing belts.

The chassis came out pretty good and for anyone wanting to print one the files are free for download at http://www.thingiverse.com/thing:8740

I wanted this to be a base with minimum of wiring going down to the motors, and as I had a serial motor controller from yet another unfinished project I mounted that http://www.pololu.com/catalog/product/1110  So to control the motors I would only need one wire down to the controllers and that would make it easy if I decided to change things up later on.

I also had two Sharp distance sensors lying around so I stuck them on in sort of crossfire configuration.

The ice cream cone, with the ping-pong ball on top houses a I2C RGB LED http://thingm.com/products/blinkm-minm.html that my brother gave to me.

The microcontroller is a FEZ Panda and probably way overkill for this little bot. The whole thing could probably be built around a PICAXE with no problems at all as you only need a serial out for motor control, a I2C for the LED and two analogue in for the sensors.

The motors are actually 12V 1000RPM running at 6V so the speed could probably be much higher but then again it seems fast enough.

The tracks

This is the holder for the RGB BlinkM. The 4 wires are inside the cone.

Some Sharp brackets

Again I would like to praise the Makerbot 3D printer http://www.makerbot.com/ and if you have the money, a ToM will give you hours of fun and open up whole new ways of making robot parts.

Comment viewing options

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

That is slick! Double-cool points for having printed it on your ToM!

Someday I will have a try at that plastic extruder ... yes.

One sweet robot. Very jealous of the 3D printer :). About how long did it take to print all the pieces and how much plastic did it take (price wise) ?

Judging by you work Patrick it wouldn’t amaze me if a company or Makerbot them self sponsored you with a bot.

Time wise it takes a couple of hours to print it out as each wheel takes about 10min, the sides about 30min, etc. But that is just printing time and you are free to do other stuff while it’s printing.

When it comes to cost it is pretty cheap. By looking at my red ABS spool that is a 1 lb spool I could probably make 1 or 2 more and the spool cost me about $15,- so the cost would be about $5.
The great thing about 3D printing vs CNC is that there is no waste of material. So 1 lb of plastic will give you 1 lb of parts 

awesome

Thank you so much. I see you have a similar style project yourself. It looks good !, and all the best with that.

Nicely done.  Do you use the sensor data (from the Sharp units) independently, or do you use an average of the two for object/obstruction detection?

I use the sensor values independently.

My first version of the program had separate threads for the two sensors and they just adjusted the speed on their motor with no regard to what the other sensor/motor did. That functioned pretty good until both sensors was waiting for the other sensor to turn the robot.

Anyway I didn’t bother pursuing that route so I made a small run program in the main thread.

           while (true)

            {

 

                if ((LeftValue < 1000) && (RightValue < 1000))

                {

                    Lantern.GoToRGB(0x00,0xFF,0x00); // Full speed ahead

                    Motor.Left_Forward(127);

                    Motor.Right_Forward(127);

                }

 

                if ((LeftValue > 1500) && (RightValue > 1500))

                {

                    Lantern.GoToRGB(0xFF,0x00,0x00); // Back up and turn

                    Motor.Right_Backward(80);

                    Motor.Left_Forward(80);

                    Thread.Sleep(500);

                }

 

                if ((LeftValue > 1000) && (LeftValue < 1500))

                {

                    Lantern.GoToRGB(0xFF, 0xFF, 0x00); // Warning

                    Motor.Left_Forward((byte)map(LeftValue, 0, 3300, 127, 20));

                }

 

                if ((RightValue  > 1000) && (RightValue  < 1500))

                {

                    Lantern.GoToRGB(0xFF, 0xFF, 0x00); // Warning

                    Motor.Right_Forward((byte)map(LeftValue, 0, 3300, 127, 20));

                }

 

                Thread.Sleep(100);

                

 

            }

As you can see from the last part of the program, I map the distance to the speed in reverse so that as the robot gets closer to an obstacle the motor slows down and hopefully avoids it.

Thank you for the explanation.

Now I am jealous you got that 3D printer to print out every unique pieces.

Same clean works. Good job. Mr. Andersen~~