I came across an article on instructables by Angelo (aka ASCAS) where he discusses building a mini sumobot powered by an Arduino. The one in the article also features bluetooth connectivity so it can be controlled via smartphone, but the autonomous portion of the robot is relevant to our club's uses. I decided to try building something similar, expecting it to be significantly cheaper than using the Mindstorms sets, and it should also be more powerful as we can use bigger motors.
Parts List:
- Arduino Uno R3
- 500 RPM gearbox 12V motor (or on Amazon)
- Motor mounts
- Arduino motor shield
- 2x Wheels (with hubs)
- 12V rechargeable battery (or you could use 8 AA batteries)
- Ultrasonic sensor (you may want more than 1)
- Reflective light sensor (I recommend at least 2)
- Some solid-core wire or jumper wires
- Some sort of material to use for the robot's body (steel, wood, acrylic, etc.)
Optional:
- Screw shield expansion board (the motor shield will block access to the GPIO pins on the Arduino, so this will make it easier to connect the sensors.)
- Some sort of display device for the Arduino (useful for selecting your program, but more advanced)
Once I had the motors, wheels, and mounts, I began building a body that would hold them, yet fit within our size limitations (20cm x 20cm x 20cm.) I went with a wood body as it is easy to work with, especially for a prototype. I used 1/2" plywood for the base, as it would allow the wheels to make sufficient contact with the surface (I was afraid 3/4" would be too think, causing the wheels to bottom out.) I used 3/4" pine for the body, and basically just made it a simple box. Having a wedge-shaped front would be nice, as it allows you to lift your opponent, but for the purpose of our competition, a flat front is also sufficient. Make sure the body is assembled well, as you don't want your own robot to fall apart during competition!
After building the body and mounting the motors and wheels, the next step was to mount the sensors. I drilled holes in the base for the reflective light sensors. By using two sensors, mounted at each front corner, I should be able to detect the boundary line before any corner of the robot has gone too far. I also drilled holes in the front to mount the ultrasonic sensor.
Next, I moved on to mounting the Arduino and battery pack. These can be placed anywhere, depending on your robot's design, but I did want to allow for adding weight at the front of the robot. With a design like this, you will definitely want the front of the robot to stay down so you don't get flipped over like a turtle. Our competition rules allow for weight up to 3 kg (about 6.613 lbs) so we'll want to max that out as much as possible.