Step 1: Parts & Tools

Only a few parts are required:

Robot: Arduino Controlled Servo Robot - (SERB)
($175 @ oomlout.com ) or (make your own)
  • An open source robot which uses an Arduino micro-controller as it's brain.
(any dual servo robot platform with an arduino can be used (option 1) (please message me if you discover any other options)

Computer: Asus eee PC 4G
($280) (@Best Buy)
  • A small inexpensive laptop that is perfect for this purpose.
(any laptop (or desktop if you want to run with a chord) capable of running Processing sketches can be used)

Laptop Desk: Laser Cut Acrylic
($25 (@ oomlout) ) or (build your own step 3)
  • A few additional acrylic pieces which bolt onto a (SERB) to give it a desk for the laptop to sit on.

Nuts and Bols: (available at home depot)
  • 3mm x 10mm bolt (x4)
  • 3mm x 15mm bolt (x4)
  • 3mm nut (x8)
<p>There is no download link to the laser cut file. It would be great if you could send it or post it.</p><p>ygupta96@gmail.com</p>
can any one help me out <br>while making the connections of my web connected robot i connected the servos with 4 1.5 volt batteries and connected the arduino dumilaenove conector with the 9v battery asinstructed <br>but i dont know what has happened that after that my arduino stops working how ever now i replaced my arduino with a new one and i have run the blinking led programe on it and its working also <br>now i want to know how should i power my arduino that it does not damage
&nbsp;Can someone post the arduino code in an easier form so us NOOBS and use it. I really love this idea and Im already building the chassis now... just need the software.
<div> Here is the code cleaned up. &nbsp;I did not get a chance to test it. &nbsp;It does past check in Arduino though.&nbsp;<br> <br> /*</div> <div> &nbsp;* Arduino Controlled Web Connected Robot (WEBB) - Serial Host&nbsp;</div> <div> &nbsp;* For more details visit: http://www.oomlout.com/serb &nbsp;</div> <div> &nbsp;* &nbsp;</div> <div> &nbsp;* Behaviour: The Arduino listens to its Serial port for a command&nbsp;</div> <div> &nbsp;* &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;in format 254, 88, 88, (COMMAND), (TIME)&nbsp;</div> <div> &nbsp;* &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Supported Commands - 'F' - 70 - Forward&nbsp;</div> <div> &nbsp;* &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'B' - 66 - Backward&nbsp;</div> <div> &nbsp;* &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'L' - 76 - Left&nbsp;</div> <div> &nbsp;* &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'R' - 82 - Right&nbsp;</div> <div> &nbsp;* &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'S' - 83 - Speed&nbsp;</div> <div> &nbsp;* &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'X' - 88 - SetSpeedLeft&nbsp;</div> <div> &nbsp;* &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'Y' - 89 - SetSpeedRight &nbsp;</div> <div> &nbsp;* &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'C' - 67 - Stop &nbsp;</div> <div> &nbsp;* &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Supported Times - 0 - 255 (0 to 25.5 Seconds) value&nbsp;</div> <div> &nbsp;* 100 milliseconds &nbsp;</div> <div> &nbsp;*sp&nbsp;</div> <div> &nbsp;* Wiring: Right Servo Signal - pin 9&nbsp;</div> <div> &nbsp;* &nbsp; &nbsp; &nbsp; &nbsp; Left Servo Signal - pin 10 &nbsp;</div> <div> &nbsp;*&nbsp;</div> <div> &nbsp;* License: This work is licenced under the Creative Commons &nbsp;</div> <div> &nbsp;* &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Attribution-Share Alike 3.0 Unported License. To &nbsp;</div> <div> &nbsp;* &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;view a copy of this licence, visit &nbsp;</div> <div> &nbsp;* &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;http://creativecommons.org/licenses/by-sa/3.0/ &nbsp;</div> <div> &nbsp;* &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;or send a letter to Creative Commons, 171 Second &nbsp;</div> <div> &nbsp;* &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Street, Suite 300, San Francisco, California 94105, &nbsp;</div> <div> &nbsp;* &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;USA.&nbsp;</div> <div> &nbsp;* &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</div> <div> &nbsp;*/ &nbsp;</div> <div> &nbsp;</div> <div> &nbsp;//-------------------------------------------------------------------------</div> <div> &nbsp;//START OF ARDUINO SERIAL SERVER PREAMBLE</div> <div> &nbsp;//Defining constants corresponding to each command (also the ascii code number)&nbsp;</div> <div> &nbsp;#define FORWARD 70 &nbsp; &nbsp; &nbsp; //F</div> <div> &nbsp;#define BACKWARD 66 &nbsp; &nbsp; &nbsp; //B</div> <div> &nbsp;#define LEFT 76 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //L</div> <div> &nbsp;#define RIGHT 82 &nbsp; &nbsp; &nbsp; &nbsp; //R</div> <div> &nbsp;#define SETSPEED 83 &nbsp; &nbsp; &nbsp; &nbsp; //S</div> <div> &nbsp;#define STOP 67 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //C</div> <div> &nbsp;#define SETSPEEDLEFT 88 &nbsp; //X</div> <div> &nbsp;#define SETSPEEDRIGHT 89 //Y</div> <div> &nbsp;</div> <div> &nbsp;/*The three check bytes (used to keep the robot from responding to random serial *data) currently &quot;AAA&quot;&nbsp;</div> <div> &nbsp;*/</div> <div> &nbsp;#define checkByte1 65 &nbsp; // &quot;A&quot;</div> <div> &nbsp;#define checkByte2 65 &nbsp; // &quot;A&quot;</div> <div> &nbsp;#define checkByte3 65 &nbsp; // &quot;A&quot;&nbsp;</div> <div> &nbsp;//--------------------------------------------------------------------------</div> <div> &nbsp;// START OF ARDUINO CONTROLLED SERVO ROBOT (SERB) PREAMBLE</div> <div> &nbsp;#include &lt;Servo.h&gt;</div> <div> &nbsp;#define LEFTSERVOPIN &nbsp;10 &nbsp; &nbsp;//The pin the left servo is connected to</div> <div> &nbsp;#define RIGHTSERVOPIN &nbsp;9 &nbsp; &nbsp;//The pin the right servo is connected to</div> <div> &nbsp;Servo leftServo; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</div> <div> &nbsp;Servo rightServo;&nbsp;</div> <div> &nbsp;int leftSpeed = 50; //holds the speed of the robots leftServo</div> <div> //a percentage between 0 and 100</div> <div> int rightSpeed = 100; //holds the speed of the robots rightServo</div> <div> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //a percentage between 0 and 100</div> <div> // END OF ARDUINO CONTROLLED SERVO ROBOT (SERB) PREAMBLE</div> <div> //--------------------------------------------------------------------------</div> <div> //Gets everything up and running</div> <div> &nbsp;</div> <div> void setup()</div> <div> { &nbsp;</div> <div> &nbsp; Serial.begin(9600); &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;//Starts the serial port &nbsp;</div> <div> &nbsp; serbSetup(); &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;//sets the state of all neccesary</div> <div> //pins and adds servos to your sketch}</div> <div> //The main program loop</div> <div> }</div> <div> &nbsp;</div> <div> void loop() &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</div> <div> { &nbsp;serbPollSerialPort(); &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //continuously looks to the serial port</div> <div> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //if there is data it processes it</div> <div> }</div> <div> //-----------------------------------------------------------------------</div> <div> //START OF ARDUINO SERIAL SERVER ROUTINES</div> <div> /*&nbsp;</div> <div> * Processes commands delivered to the arduino's serial port&nbsp;</div> <div> */</div> <div> &nbsp;</div> <div> void serbPollSerialPort()</div> <div> { &nbsp;</div> <div> int dta; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;//variable to hold the serial &nbsp;byte &nbsp;</div> <div> &nbsp;</div> <div> if ( Serial.available() &gt;= 5) { &nbsp; &nbsp; &nbsp; //if 5 bytes are in the buffer (length pf a full request) &nbsp; &nbsp;</div> <div> dta = Serial.read(); &nbsp; &nbsp;&nbsp;</div> <div> if ( dta = checkByte1){ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;//Checks for first check byte &nbsp; &nbsp; &nbsp; &nbsp;</div> <div> dta = Serial.read(); &nbsp; &nbsp; &nbsp; &nbsp;</div> <div> if ( dta = checkByte2){ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;//Checks for second check byte</div> <div> dta = Serial.read(); &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</div> <div> if ( dta = checkByte3){ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;//Checks for third check byte</div> <div> int command = Serial.read(); &nbsp; &nbsp; &nbsp; &nbsp;//Fourth byte is the command</div> <div> int param1 = Serial.read(); &nbsp; &nbsp; &nbsp; &nbsp; //Fifth byte is param1</div> <div> interpretCommand(command, param1); &nbsp;//sends the parsed request to it's handler</div> <div> }</div> <div> }</div> <div> }</div> <div> }</div> <div> }</div> <div> &nbsp;</div> <div> /*&nbsp;</div> <div> * Takes the command and parameter and passes it to the robot&nbsp;</div> <div> */</div> <div> &nbsp;</div> <div> void interpretCommand(int command, int param1)</div> <div> {</div> <div> if &nbsp; &nbsp; &nbsp; (command == FORWARD)</div> <div> {</div> <div> goForward();&nbsp;</div> <div> delay(param1 * 100);&nbsp;</div> <div> goStop();</div> <div> } &nbsp; //if forward &nbsp;&nbsp;</div> <div> &nbsp;</div> <div> else if(command == BACKWARD)</div> <div> {</div> <div> goBackward();&nbsp;</div> <div> delay(param1 * 100);</div> <div> goStop();</div> <div> } //if backwards &nbsp;</div> <div> else if(command == LEFT)</div> <div> {</div> <div> goLeft();&nbsp;</div> <div> delay(param1 * 100);&nbsp;</div> <div> goStop();</div> <div> } &nbsp; &nbsp; &nbsp; &nbsp; //if left &nbsp;</div> <div> else if(command == RIGHT)</div> <div> {</div> <div> goRight();&nbsp;</div> <div> delay(param1 * 100);&nbsp;</div> <div> goStop();</div> <div> } &nbsp; &nbsp; &nbsp; //if right &nbsp;</div> <div> else if(command == SETSPEED)</div> <div> {</div> <div> setSpeed(param1);</div> <div> } &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //if setting speed &nbsp;</div> <div> else if(command == STOP)</div> <div> {</div> <div> goStop();</div> <div> } &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //if stop &nbsp;</div> <div> else if(command == SETSPEEDLEFT)</div> <div> {</div> <div> setSpeedLeft(param1);</div> <div> } &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //if setting left speed &nbsp;</div> <div> else if(command == SETSPEEDRIGHT)</div> <div> {</div> <div> setSpeedRight(param1);</div> <div> } &nbsp; &nbsp; &nbsp; &nbsp; //if setting right speed &nbsp;</div> <div> else</div> <div> { &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;//if unrecognized command do a little shimmey</div> <div> goLeft();&nbsp;</div> <div> delay(150);&nbsp;</div> <div> goRight();&nbsp;</div> <div> delay(150);&nbsp;</div> <div> goStop();</div> <div> }</div> <div> }</div> <div> &nbsp;</div> <div> //------------------------------------------------------------------------</div> <div> //START OF ARDUINO CONTROLLED S ERVO ROBOT (SERB) ROUTINES</div> <div> &nbsp;</div> <div> /*&nbsp;</div> <div> * sets up your arduino to address your SERB using the included routines</div> <div> */</div> <div> &nbsp;</div> <div> void serbSetup()</div> <div> { &nbsp;</div> <div> setSpeed(leftSpeed); &nbsp;</div> <div> pinMode(LEFTSERVOPIN, OUTPUT); &nbsp; &nbsp; //sets the left servo signal pin</div> <div> //to output &nbsp;</div> <div> pinMode(RIGHTSERVOPIN, OUTPUT); &nbsp; &nbsp;//sets the right servo signal pin</div> <div> //to output &nbsp;</div> <div> leftServo.attach(LEFTSERVOPIN); &nbsp; &nbsp;//attaches left servo &nbsp;</div> <div> rightServo.attach(RIGHTSERVOPIN); &nbsp;//attaches right servo &nbsp;</div> <div> goStop();</div> <div> }</div> <div> &nbsp;</div> <div> /*&nbsp;</div> <div> * sets the speed of the robot between 0-(stopped) and 100-(full speed)&nbsp;</div> <div> * NOTE: speed will not change the current speed you must change speed &nbsp;</div> <div> * then call one of the go methods before changes occur.</div> <div> */&nbsp;</div> <div> &nbsp;</div> <div> void setSpeed(int newSpeed)</div> <div> { &nbsp;</div> <div> setSpeedLeft(newSpeed); &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //sets left speed &nbsp;</div> <div> setSpeedRight(newSpeed); &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;//sets right speed}</div> <div> }</div> <div> /*&nbsp;</div> <div> * Sets the speed of the left wheel&nbsp;</div> <div> */</div> <div> &nbsp;</div> <div> void setSpeedLeft(int newSpeed)</div> <div> { &nbsp;</div> <div> if(newSpeed &gt;= 100)&nbsp;</div> <div> {</div> <div> newSpeed = 100;</div> <div> } &nbsp; &nbsp; //if speed is greater than 100</div> <div> //make it 100 &nbsp;</div> <div> &nbsp;</div> <div> if(newSpeed &lt;= 0)</div> <div> {</div> <div> newSpeed = 0;</div> <div> } &nbsp; &nbsp; &nbsp; //if speed is less than 0 make</div> <div> //it 0 &nbsp;&nbsp;</div> <div> leftSpeed = newSpeed * 0.9; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //between 0 and 90}</div> <div> }</div> <div> /*&nbsp;</div> <div> * Sets the speed of the right wheel&nbsp;</div> <div> */</div> <div> &nbsp;</div> <div> void setSpeedRight(int newSpeed)</div> <div> { &nbsp; &nbsp;</div> <div> if(newSpeed &gt;= 100)&nbsp;</div> <div> {</div> <div> newSpeed = 100;</div> <div> } &nbsp; &nbsp; //if speed is greater than 100</div> <div> //make it 100 &nbsp;</div> <div> if(newSpeed &lt;= 0)&nbsp;</div> <div> {</div> <div> newSpeed = 0;</div> <div> } &nbsp; &nbsp; &nbsp; //if speed is less than 0 make</div> <div> //it 0 &nbsp;&nbsp;</div> <div> rightSpeed = newSpeed * 0.9; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //scales the speed to be&nbsp;</div> <div> &nbsp;</div> <div> }</div> <div> &nbsp;</div> <div> /* * sends the robot forwards&nbsp;</div> <div> */</div> <div> &nbsp;</div> <div> void goForward()</div> <div> {&nbsp;</div> <div> leftServo.write(90 + leftSpeed);</div> <div> rightServo.write(90 - rightSpeed);</div> <div> } &nbsp;</div> <div> &nbsp;</div> <div> /*&nbsp;</div> <div> * sends the robot backwards&nbsp;</div> <div> */</div> <div> &nbsp;</div> <div> void goBackward()</div> <div> {&nbsp;</div> <div> leftServo.write(90 - leftSpeed);&nbsp;</div> <div> rightServo.write(90 + rightSpeed);} &nbsp;</div> <div> /*&nbsp;</div> <div> * sends the robot right&nbsp;</div> <div> */</div> <div> &nbsp;</div> <div> void goRight()</div> <div> {&nbsp;</div> <div> leftServo.write(90 + leftSpeed);&nbsp;</div> <div> rightServo.write(90 + rightSpeed);</div> <div> }</div> <div> &nbsp;</div> <div> /*&nbsp;</div> <div> * sends the robot left&nbsp;</div> <div> */</div> <div> &nbsp;</div> <div> void goLeft()</div> <div> {&nbsp;</div> <div> leftServo.write(90 - leftSpeed);&nbsp;</div> <div> rightServo.write(90 - rightSpeed);</div> <div> }</div> <div> &nbsp;</div> <div> /*&nbsp;</div> <div> * stops the robot&nbsp;</div> <div> */</div> <div> &nbsp;</div> <div> void goStop()</div> <div> {&nbsp;</div> <div> leftServo.write(90);&nbsp;</div> <div> rightServo.write(90);</div> <div> }</div> <div> &nbsp;</div> <div> //END OF ARDUINO CONTROLLED SERVO ROBOT (SERB) ROUTINES</div> <div> &nbsp;</div> <div> //---------------------------------------------------------------------------</div>
Apparently this was just an advertisement for oomlout. <br> <br>They do not respond to any enquiry. Probably gone out of business by now . <br> <br> <br>Apr 4, 2010. 11:45 AMdaveo84 says: <br> Using this code and the wiring diagram supplied, when I connect my arduino board via usb to any machine both servos start spinning... <br> <br>What gives? <br> <br>I had this problem too. <br> <br>I can't work it out either
how do you communicate with the robot with your laptop. as in how do you read values from the robot from your laptop.
if you wanted you should try <a href="http://www.critesintl.com" rel="nofollow">video conference facilities</a>.
The oomlout links for the chassis are not functioning. Are these still available?
Is there a way to bind the keys you use to the keyboard instead of clicking left/right on the screen?
Good Job ! i like robot pc!
Does anyone know how you can run this on linux?
Hy, can someome tell me where can i find the Pattern for the wheels and the lower part of the robot?<br><br>Thanks,
can you give me the code plz i am tring for 2 month still no progress crx.ksa@gmail.com
try using http://www.instructables.com/id/how-to-build-MACKRA-a-serb-variant/step7/the-software-arduino/
can any one sent me The code for the arduino webserver crx.ksa@gmail.com
dude just use vspe , all your problems will be solved, for the video feed use webcam xp
hi i build the robot it took 3days to do it , after i got the code from a member http://www.youtube.com/watch?v=OuyOQKXwtUA ok bye
really good tutorial :)
&nbsp;Using this code and the wiring diagram supplied, when I connect my arduino board via usb to any machine both servos start spinning...<br /> <br /> What gives?<br />
nice job tooo but missing 05-webb arduino.zip
<span class="short_text" id="result_box"><span style="background-color: rgb(235,239,249);"><font size="5">hello missing file 05-WEBB-Arduino Code.zip? good job</font></span></span>
Could you use Lego mindstorms?
I'm pretty sure Oomlout is an internet store only.<br/>Either <a rel="nofollow" href="http://www.oomlout.com">http://www.oomlout.com</a> or <a rel="nofollow" href="http://www.oomlout.co.uk">http://www.oomlout.co.uk</a><br/>
Congratulations! I liked it very much... but wouldn't it be better if made from a Wishield instead of a netbook? (sorry about the English) <a rel="nofollow" href="http://asynclabs.com/home">http://asynclabs.com/home</a><br/>
Very nice and easy to use. Works well on the first try. Thanks
hay dood i love your web car well thats what i wood call it if i made it i wish that you coud tell me of an oomlout shop near brisbane if you can pleas can you email me at reif@tpg.com.au
You can also use a VPN (LogMeIn Hamachi makes them easy) and write some simple TCP/IP client/server programs, to add proportional joystick support, and get better command-throughput than over HTTP.<br/><br/>I have something a little bit like this, that I built: <a rel="nofollow" href="http://www.youtube.com/watch?v=c4M8YzrSBqc">http://www.youtube.com/watch?v=c4M8YzrSBqc</a><br/>
cant it just take commands from some website? maybe it would look at the blog section for text commands and u could password protect the site so it can do everything as u did here?
never mind - i just realized that thats what u did, i was thinking more about something without all the numbers, so u could just go onto www.(whatever).com , login, and take it from there...
Hi Stuart, Am I right that for a bigger laptop parts should be scaled properly? Bests, Richard
Hi Stuart, you mention the cdr and eps files in step 2 but there is no link to them as it was with SERB. Could you add them? (I already got the electronics working and I have a cardboard prototype robot but now I am thinking about waterjet cutting and these files may be helpful.) Bests, Richard
this is really cool !! 2 questions, Can this work with a windows 98 SE computer ? and Can it work using 9 pin Serial port instead of usb? never really got usb devices to work on old computer
Great Instructable! 5 stars!
i have a eee, (check my instructables, would like to know what you think ) and last night i bought a arduino ..... that is creepy i think i may have to build this, but with tracks :D ( as i have them "in stock") very very nice job you have done by the way.
I cant help but think of this: xkcd ROCKS!
If you wanted to you could add a USB webcam so that you can have the laptop lid closed.
Oh, and that's completely awesome, by the way.

About This Instructable


133 favorites


More by oomlout: How to Breadboard Arduino Compatible. RGB LED Tutorial (using an Arduino) (RGBL) Solderless Breadboard Layout Sheets (plug and play electronics)
Add instructable to: