Introduction: SOCBOT - the Next Generation Vibrobot

Picture of SOCBOT - the Next Generation Vibrobot


In the beginning there were pagers. The fact that activated pagers danced their way off of desks and dressers was little more than an aggravation to most people. That changed when it happened in the presence of a maker. Soon after that eureka moment the vibrobot was born. As those early technological vibrating critters started to multiply they began taking on nearly every mechanical form imaginable. Their off balance, weighted motors hummed and shook sending these scooters off in random directions.

Then it happened. One morning a maker preparing to take on a new day glanced down at the toothbrush in his hand, and the bristlebot was conceived. Who could have known the technological stir something as simple as a sawed off toothbrush would make. No one could have predicted the great personal pleasure makers around the world would find in hacking, of all things, a toothbrush. The simple yet elegant design of the bristlebot instantly made it a favorite project for makers of all ages. It quickly became an icon so deeply rooted in maker culture that it could never be replaced or forgotten.

On the next branch of the vibrobot's evolutionary family tree we find the dipbot. Made with discarded integrated circuits, nearly all dipbots are born of, most appropriately, motherboards. These are the low riders of vibrobot culture. What they lack in height they make up for in leg count as most have at least 40. Most dipbots look like some sort of multi-legged bug that may byte.

With such wide ranging variation in its gene pool, the vibrobot family tree has naturally lent itself to continued innovative evolutionary adaptation. Influenced to a great degree by environment, vibrobots continue to spring forth from whatever salvaged stuff seems to be at hand. They can evolve from boxes of spare parts, the guts of electronic dark age gadgets (read the word pagers here), personal care items, old video game controllers, and discarded computers. All of these environmental factors lend themselves quite well to the task of expanding the vibrobot genotype.

That brings us to the focus of this Instructable - the Socbot. Born in the mind of this author when he first saw a dipbot, this is the next step in the evolution of vibratory micro robot design. This new kid on the block is a highly advanced vibrobot. Controlled by a salvaged television infrared remote control, this PICAXE brained next generation vibrobot stands ready to respond to your every directional command. No more random roaming. With the simple press of a button the socbot's unique wire wrap socket locomotion system kicks into gear sending this critter off in whatever direction you choose. Powered by alkaline watch batteries, the socbot features twin outboard vibrating pager motors. Although current limited by design, this microbot is powerful enough to scoot around on any smooth surface. While big on brains, it is still small enough to sit on a quarter. With so much technological heritage and power packed into such a small space, one has to wonder where the next step in the evolution of vibratory technology will take us.

Here is an excellent Vibrobots article written by Gareth Branwyn




Picture of THE PARTS


1 - PICAXE -08M
1 - 16 Pin Wire Wrap Socket
1 - 16 Pin DIP Socket
1 - 8 pin Dip Socket
2 - Vibrating Pager Motors
1 - TSOP4838 or similar 38KHz IR Receiver Module
2 - General Purpose 100V Signal Diodes
3 - L1154 Watch Batteries
1 - 4.7mfd Capacitor
2 - 82ohm 1/4 Watt Resistors
1 - 33K ohm 1/4 Watt Resistor

wire, thin metal shielding, super glue


Picture of HOW IT WORKS


This Socbot takes advantage of one of the most useful characteristics of the PICAXE -08M - its ability to send and receive all 127 Sony 38KHz infrared television control codes. This feature allows the 08M to communicate with a remote control, a television, or even another 08M. Here the 08M watches for a valid code from the universal remote control and responds to button presses on the remote by sending a current pulse to one or both pager motors.

The 08M outputs can handle around 20mA each so I hooked the outputs up in pairs in order to feed 40mA to each motor. An 82 ohm resistor in series with each motor limits the current to the 40mA maximum. A fast acting signal diode in parallel with each motor helps sink the induced voltages created by the motors. Capacitors would greatly improve the protection, but would also add to the size of the bot so I just left them off with no apparent short term ill effects.





This is the picaxe code I wrote to use with the socbot. As the socbot has no download circuit you will need to program the picaxe on a proto board and then move the programmed chip to the socbot.

The code uses the infrain2 command to wait for one of 3 valid codes from the universal remote. Depending on which code is received, the picaxe will send a 100mS current pulse to one motor or both motors. If the button is held down the current pulse repeats until the button is released.

A copy of the picaxe bas file is included below for download.

MAIN: let dirs= %00010111

BEGIN: let pins= %00000000
let b0 = infra
if b0= 16 then AHEAD ' CH+
if b0= 19 then LEFT ' VOL-
if b0= 18 then RIGHT ' VOL+
goto BEGIN

AHEAD: let pins= %00010111 ' Outputs 0,1,2,4 HIGH
pause 100
goto MAIN

LEFT: let pins= %0000011 ' Outputs 0,1 HIGH 2,4 LOW
pause 100
goto BEGIN

RIGHT: let pins= %00010100 ' Outputs 2,4 HIGH 0,2 LOW
pause 100
goto MAIN





Any universal IR remote control will work with the PICAXE. All you need to do is program it for use with a Sony television. I used a cheap RCA universal remote I picked up at Wal Mart for less that $10.00. The Sony code I used was 218. Most remotes I checked only had two sets of codes for Sony televisions so if one does not work try the other one. I used the center Channel Up and Volume down and up buttons to control my socbot but you can use whatever buttons you want. Just look up the code for the buttons on the PICAXE web site or use the debug code command and our computer to check the code sent by each button on your remote.

My Remote:

Volume Down - turn left (only left side motor on)

Channel Up - go forward (both motors on)

Volume Up - turn right (only right side motor on)





Bending the leads on the wire wrap socket can be tricky. I ordered 4 and messed up 3 of them before finally getting the 4th one to bend without breaking. This is the method I finally got to work the best.

I one row of leads into a break board and slowly bent all 8 pins on that side to the shape I wanted. I then repeated this for the other row of leads. I did the final shape adjustments with a pair of pliers bending the pins one at a time. Any bends need to gentle curves instead of hard angles.





The battery terminals are nothing more that two pieces of thin metal shielding I salvaged from an old cassette tape deck. I just cut two pieces, soldered a small wire to each piece, and attached them to the 2 DIP sockets using super glue. I also glued the 2 pager motors to the 16 pin DIP socket.





I stacked the 2 DIP sockets in order to get all 3 batteries and the PICAXE on the bot without either hanging over. Four pins (2 on each side) on the 8 pin socket go into 4 holes (2 on each side) of the 16 pin socket. This means that the 8 pin socket is half on and half off the 16 pin socket. I glued the two sockets together with super glue.





This part can get pretty tricky. It is no easy task to make all of the connections and install all the components without shorting wires together, but it is not impossible. I used 25 gauge un-insulated buss wire. I started with the power leads from the batteries, then to the pager motors and current limiting resistors, and on through the circuit one section at a time. Parts placement is not critical. Just take your time and check your work as you go.

IMPORTANT NOTE: It is important that the motors turn in opposite directions. One needs to turn clockwise and the other counter-clockwise. This is achieved by reversing the way you hook up the leads on one of the motors.





I cut the leads on the current limiting resistors and circuit protection diodes and just plugged them into the socket. I would not do that again because the vibration of the motors tends to break the connection between the round leads and socket. DIP sockets are designed for flat component leads - not round ones.

I installed the IR module on the top of the Socbot but you can put it on the front, rear, side, or even underneath. It is pretty sensitive so the universal remote control works from any angle.


Step 10: FINISH UP

Picture of FINISH UP


I decided to paint my Socbot but there is no way I would do that again. It seemed like a good idea to begin with but after doing it I realized that it looked better unpainted. You may feel differently.


Step 11: ENJOY

Picture of ENJOY


Due to the current limiting resistors I added to keep the current to around 40mA this Socbot doesn't move very fast. That is fine with me, but you may want something with a little more get up and go. If you do, I would suggest that you use transistors to drive the motors. This would allow you to apply full current to the motors and get a significant speed increase. At full power this thing would really scoot. However, an increase in current would also mean a decrease in battery life and they don’t last too long as it is.

Note that the socbot will travel towards the end where the batteries are. I wanted it to travel in the opposite direction but was not able to get it to do so. I think it has something to do with the weight distribution. I even bent the wire wrap socket leads in the opposite dirrection but it had no effect on the socbot's direction of travel.





Here are some ideas for future versions:

- use transistors to apply full current to the motors (they are now running at 40% capacity)

- make a light seeking or light avoiding socbot.

- Make a whole bunch of light seeking (or avoiding) sockots, each with an LED and study how they interact with each other.

- make a sound seeking socbot

- make a line following socbot

- make an even smaller socbot using an 8 pin wire wrap socket.

- make a larger socbot using a 40 pin wire wrap socket

- write code for the picaxe to make the socbot trainable or programmable. Maybe use the remote to move it through a series of moves and then let it repeat the moves.

- make two or more sockbots that can communicate with and influence each other using infared codes

The possibilities are nearly limitless.


Step 13: THANKS


Thank you for taking the time to view my project.

I hope it will inspire you with new ideas of your own.

As Thomas Edison said,

"To invent you need a good imagination and a pile of junk".

Thanks Again,




MrGentlemen (author)2012-09-08


Can I usw this PIC?;ACTION=7;LA=3;OPEN=0;INDEX=0;FILENAME=A300%252FPIC12F510_16F506.pdf;SID=13UESpX38AAAIAADudKt09e25ea6cf68cd14cc34723fd698cb9cc

MrGentlemen (author)MrGentlemen2012-09-13

oh, and another question:

can i programm a pic with an ISP from AVRs?

robot1398 (author)2011-11-21

can i use a picaxe 08m2

biochemtronics (author)robot13982011-11-22

Yes you can use the 08m2. It is backwards compatible with this 08m project and program.

robot1398 (author)2011-11-19

i just didnt understand this step how can u program a remote

biochemtronics (author)robot13982011-11-20

You will need to get a universal remote control and program it to workthe with a Sony television since tbeyou picaxe uses sony codes. Instructions on how to do this will come with whatever remote you decide to use.

robot1398 (author)biochemtronics2011-11-20

instead of a universal remote if i get a sony tv remote then will it work?

biochemtronics (author)robot13982011-11-20

It should work if you van find one.

robot1398 (author)biochemtronics2011-11-21

i have one i have a sony Tv SO I CAN USE IT

ilpug (author)2011-05-31

very nice. i have only one question: VIDEO?

vruiz3 (author)ilpug2011-08-25

theres a video at the bottom above the comments skip to 1:30

vincent7520 (author)2011-04-26

Nice !

I like how you painted it ! … 

darthmaul.8 (author)2010-09-25

must use 1n4148 diodes, right??

Janiedella (author)2010-08-06

Still intimidated by the technology, but I LOVE your writing! Thanks!

Boppo3 (author)2010-07-31

how do you actually program a pic axe?? i know this instuctable said use a protoboard, but i just dont understand how.... can anyone make an instuctable on programming?

Rimwulf (author)2010-07-30

now if someone wrote a code for for a PC with infrared hookup to put out pre-written commands and options

hunter1125 (author)2010-06-08

very cool.

godofal (author)2010-04-19

wow, this is awesome :D

im thinking of making one with an attiny45 (since i dont have picaxe's or a programmer for them)
just got to figure out a way to make a piece of code that does the same as yours in C++ for an attiny45 :D

Fuzzer3legs (author)2010-03-19

 What Do I Do

MAIN: let dirs= %00010111

Error: Unknown symbol - dirs

Fuzzer3legs (author)Fuzzer3legs2010-03-19

 Never mind I was picaxe 08 instaid of picaxe 08m

Earths_hope (author)2010-02-17

5 stars! well done!

lucek (author)2009-12-21

can you imagine a water skimmer?

astrozombies138 (author)2008-08-12

is there anyway to make the picture bigger? the schematic file is a .tmp and I can't open it.

Just under the schematic is a little block that has a file icon and Soc Bot Schematic.emf inside it. That is a meta file. If you click on that box a much larger, scalable, and easy to read schematic will appear.

crbyte (author)biochemtronics2009-10-13

I have linux and it looks like does not know how to open the file... any chance that you put a jpg or png or bmp or gif or ascii schematic?


gah, I'm on a mac, maybe thats why I'm struggling with this. My computer does not know how to open the file, do I have to convert it to .EMF?

I know nothing about a mac. Just private message me your email address and I will send you the file. I think it is jpg or bmp. Will a mac open either of those.

both, thank you very much.

szechuan53 (author)2009-09-24

This is so cool... one of the first steps (other than those lame snap circuits) towards making electronics as easy as legos. :D

mattyh (author)2009-09-13

Whoa, awesome man! I thought those red things were led's and was expecting 1 motor and a on/off switch. I was impressed even then at first glance but holy crap: Picaxe brain & infrared controller!!!

mettaurlover (author)2009-08-25

i would have programmed for the directional buttons on the remote. would have been easie to navigate...unless you're using a remote where the arrow buttons are the volume/channel buttons?

fireman115 (author)2009-08-05

Did you enter the pocket sized contest? if you did im sad you didnt win.... If you didnt you should have, you would have won for sure

laki elektronac (author)2009-07-29

where did you get that song in the video?it's awesome!!!

b-rad101 (author)2009-07-27

just a thought, but do you think you could put the motors themselves on two separate bristles so you have a more advanced bristle bot? that way you can control each bristle separatly, giving it the direction left or right all the while prepelling it forward.

Rapid_Hack (author)2009-07-09

very ingenious friends

Riojelon (author)2009-04-28

how can I program the picaxe? Can the bas file be read by a non-picaxe microcontroller?

Jupitane (author)2009-04-11

WOW that looks so cool! Mabye in a couple years after i learn about electronics ill build it! Great instructable! P.S. i like cotton candy!

raykholo (author)2009-03-21

would it be possible to program it for use with other remotes? for example, i would like to use a very small expresscard remote from my hp laptop instead of a big bulky one... would this be possible? thanks rak

biochemtronics (author)raykholo2009-03-21

No - that would not be possible. The PICAXE on reads Sony codes and I doubt seriously that your HP remote would use any of those codes. However, you can use another PICAXE as the transmitter. PICAXEs can send and receive SONY codes. You could make it really small too. All you would need is a battery pack, an IR LED, a couple of push buttons and a small case to hold it all. With watch batteries you could make the whole thing a lot less that one inch square.

raykholo (author)biochemtronics2009-03-22

interesting... i will probably do that... and maybe i can fit the whole thing into a cf card case with some of those tiny smd tact push switches

klee27x (author)2009-01-23

Hey, geeklord. I followed you here, lols. A PICAXE is to a PIC what an Arduino is to an AVR. A PICAXE is a PIC microcontroller with a proprietary interpreter and function library already burned onto it. What this means: You load your BASIC-style code into it's data memory, and the boot-strap program that's already been burned onto the chip takes these instructions and activates prewritten routines in the PIC's native language. This makes a PICAXE capable of doing highly complex functions with simple commands.

geeklord (author)2009-01-23

are PICs and PICAXEs the same?

chuck norris (author)2008-12-04

Could someone (such as myself) who has no real digital tech experience build one of these without running into too many failures? Oh, and by the way here is a funny picture for all of the other easily entertained people out there looking for some comic relief.

iknowirule3 (author)chuck norris2008-12-28

Yeah,......I know nothing about technology except maybe a few starters from my science teacher. Who can help out?????

Thelonelysandwitch (author)2008-12-16

now make it float and you got a float-o-bot

pbecker83 (author)2008-10-16

Cool vibrobot biochemtronics! Liked it so much I decided to built one. Its all bread boarded right now. Just trying to get a hold of the 16pin wire wrap socket. For anyone attempting to build this I just want to let you know that I had some problems getting my universal remote to work. I have a OneForAll URC-6690. Started to question my receiver at first but thought I would try another universal. I got one at Wally World for less then $10. Its a RCA RCR312W. Used the first Sony code listed. Walla , started buzzing away. I found most all the parts at Radio Shack as well. Here are the Catalog #'s for anyone. May find the rest of the resistors at the store but they were not listed on the website and I had all the resistors already. I will post some pictures when I am all done. Thanks for this cool build Biochemtronics. Patrick Catalog #: 276-640 38kHz Infrared (IR) Receiver Module Catalog #: 272-1024 4.7 uF Electrolytic Capacitor Catalog #: 276-1995 8-Pin Retention Contact Catalog #: 273-107 3VDC Micro-Vibration Motor Catalog #: 271-1311 100 ohm 1/4W 5% Carbon Film Resistor pk/5

pbecker83 (author)pbecker832008-10-19

My SOCBOt has a strong right motor that affected my forward motion. To compensate I changed the forward program to pulse the left motor about 200ms then the right motor 200ms alternating between the two. This gave my SOCBOT a walking/scooting affect.

Heres the altered FORWARD routine>
AHEAD: let pins= %0000011 ' Outputs 0,1 HIGH 2,4 LOW
pause 200
let pins= %00010100 ' Outputs 2,4 HIGH 0,2 LOW
pause 200
goto BEGIN

biochemtronics (author)pbecker832008-10-19

Great job! I am impressed with your forward motion compensation method. Thanks for sharing your work.

ppsailor (author)2008-10-09

HI Biochemtronics ! In the parts you mention 2 diodes. where they go placed the diodes? in the diagram they do not appear. ppsailor

About This Instructable




Bio: After a career in industrial electronics I went back to college and now do DNA research.
More by biochemtronics:DIY Children's Carnival Style Swing RideSeeing Green Energy - The Wind Turbine Myth Electric Trike
Add instructable to: