You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Stephen Downward c85ad478e7 Removed one last file 4 years ago
Client Program Removed one last file 4 years ago
.gitignore initial commit 4 years ago Updated README 4 years ago
Robot.ino Added netmask, DNS, and gateway to Arduino 4 years ago


This is the code I wrote to run on a rather overengineered robot I built. The intention of the robot is for remote viewing of my house. I have had a few friends try driving it from their houses, showing it works.

An Arduino Mega is the brain of the platform. It has an Ethernet shield which is connected to an old Linksys WRT54G router(Running DD-WRT of course!) Robot.ino runs on the robot and accepts remote connections. Port 97 is forwarded from it to the outside world.

The client connects to it through this port, allowing for control. In addition, the robot has an IP camera, which is port forwarded to port 98. A java applet runs on the client for this.

The robot also has basic safety mechanisms. If the client disconnects, it cuts the motors. Previous versions of the robot did not have this feature, which resulted in the robot driving down stairs. It can also detect when a client has uncleanly disconnected, and terminate them, allowing for them to reconnect. Previously, it would hang, requiring a reset to fix. It also only allows for a single connection at a time.

There are 2 versions of the client. One uses WASD or clicking on-screen buttons to drive the robot. The other uses a USB controller, in a military drive configuration(One joystick controls the left wheel, the other controls the right wheel)

Important: The current version most likely does not compile as I wrote it on a plane and will not be able to debug it until after I get back from vacation. Please use one of the releases instead. (I am on a Linux machine, so I can still read issues. If anybody decides to debug it themselves I'll be able to commit fixes and approve of pull requests.)