This is a project that me and my group are making for this scholastic year.
More precisely, this year we are going to graduate in electronics and telecommunications.
The basic idea started when we saw a youtube video about an american military vehicle which was basicly a little crawler able to "swim" into the snow.
After this, the project started. We firstly made the lego structure using the lego CAD and, after we got the pieces, we assembled it.
For the hardware part, way more complex, we've first made a board with three H-bridges able to control up to eight motors (and, by the way, we do have eight motors), in order to do not have TOO MANY CABLES around (even if there still are many hanging there, as you can see).
After making the board, I've made a little library able to control the main motors and to make arduino able to undestand on which pins the motors were connected.
Using an arduino UNO, we actually are using every pin with the exception of the pin 0,1 and 13, even though we've ordered an arduino MEGA in order to be able to put up to 6 proximity sensors (we actually have two sensors, inactive, since we have no reasons to keep only two of them active)(Also, we found out that it's possible to read multiple sensor values using a multiplexer and the millis() function, but we still need to put many leds on it, so we would better have more pins).
For the mechanics, we're using eight NXT lego servo motors. Each of them requires about 45mA and 9v. To solve this problem, we're using two external batteries: the first one is a 9V@1300mAH battery (used for the eight motors and the arduino) and a 5V@1000mAH dock battery, since we also have a raspberry pi on our robot.
About the raspberry pi, the whole job is done by a micro-raspian edition, where hostapd and dnsmasq, with a quite handful dlink N150 wireless adapter creates a web server and communicates with arduino through the USB.
Once the user connects to the wireless network, arduino automatically detects that the Serial line is avaible so the IA immediatly stops and the user is able to control the robot through a web interface or the keyboard (using fletches for basic moving and 1,2,q,w,a,s,z,x to move the whole track block).
We still need to find out a way to use the .on(keydown) method for mobile devices, such as android phones and iphones.
The latency between the raspberry and my PC, at over 100 meters, ranges about 20-25ms; from small distances, instead, the latency usually never goes over 5ms, so the responce time is just incredibly fast.
Picture taken from the cad: https://docs.google.com/file/d/0ByIGmvZ-sTgwN0ZCSTFYbzk2LWM/edit?usp=sharing
(full HD, if you care!)
Tips are really welcome, if any!
Hope you enjoyed!