Introduction: Super Simple Arduino Rover
This is a tiny Arduino rover that would make a great first project for beginners. It's super simple and very versatile, making it easy for people that are just starting out to program on their own.
I was able to build this thing and program it in under an hour and a half, and I'm sure some of you will be able to build it faster than that. The idea is to build a simple rover based on what you have lying around, instead of having to buy materials online.
Step 1: Parts
There's no real requisite for parts for this project. As you can see, I made mine out of Popsicle sticks and hot glue. The point of this project is to build a cheap jumping off point into the world of Arduino robotics.
The electronics you will need are:
- An Arduino, any flavor.
- Solderless Breadboard
- Jumper wires
- Battery pack for the Arduino
- 2 Continuous rotation servos, either bought or homemade. Mini Servos
Continuous rotation servos are really cheap, and are basically tiny motors with a built in driver. This makes them easy to control for beginners, as we can just use the Servo.h library built into Arduino.
Step 2: Chassis & Body
The next step is the Chassis. I made mine by laying out Popsicle sticks on their sides. Then you want to glue the servos onto the bottom of the chassis. The arduino is attached to the top of the board however you would like, be it hot glue, tape or screws. The breadboard is best glued or taped on. The wheels are something that I had lying around, but you can use whatever you would like. Lids off of coffee cans, glued Popsicle sticks in a circular shape, or whatever else you can find. Just make sure you glue a rubber band around the outside for traction.
Step 3: Electronics
The servo are wired as follows:
If the robot is looked at from above, the left servo's signal pin goes to D6, while the right servo's goes to D9. The red wires go to +5v, and the brown or black wires go to ground (GND).The battery pack goes into the Arduino's power port, or the USB port depending on what you used. I used a power pack without the adapter, so my Battery's positive pin was wired into VIN and the negative was wired into GND.
Here is the time you would wire in any other electronics you would want to use. For my project, I used a mini wireless transmitter and receiver to drive my robot like an RC car. You could also wire in an Ultrasonic distance sensor, a line following sensor or any other sensor that you might want to use to control the car. You should look up the documentation for your particular control device.
You can also see a button in my circuit. This is just an external reset button. I wired this in during testing because it made it easier to reset the arduino when the car escaped.
Step 4: Code
The point behind this project is really for beginners to write their own code, because the satisfaction behind that is really satisfying. However, if you really need a code reference, I am including my arduino code for this below. It should work with this. I really recommend that you try to code it yourself, as servos are not very difficult to program.
My arduino code implements a stop and go movement in order to not cancel out the input from the remote. If you are not using a remote, simply remove all lines that are inputs and use the movement functions. If you have any advice on how I can get rid of this stop and go movement style, please post in the comments.
Step 5: All Done!
You made it to the end of this project. If you had any troubles along the way, or if there is anything you'd like me to add, please leave a comment below and I will try to help you to the best of my abilities.
If this is your first arduino project, welcome to the world of DIY robotics! I hope this helped anyone looking for a super cheap beginner arduino project.
This is my first instructable, so if you liked it, I would really appreciate the feedback. Thanks!
6 years ago
very nice instructable! I hadn't seen continuous rotation servos before this - very cool. I love the idea of being able to direct connect a motor without needing an external control board. Thanks for including the video of your rover in operation.
With regard to your question about getting rid of the stop and start movement style - have you considered putting the movement functions into interrupt service routines (ISR). This could eliminate the use of the delay() function. From your pictures, I see that you are using an Arduino Uno, which unfortunately only has two interrupts available - so this would be not a complete solution. You could make the forward and backward functions continuous though. Here is a link to the Arduino documentation on interrupts: https://www.arduino.cc/en/Reference/attachInterrupt. I made a few modifications to your sketch, but since I don't have the continuous rotation servos or your remote, i could not test (just compile). I am hesitant to post a revised sketch since i could not actually test it, but here it is.
6 years ago
Cool Arduino car.
Reply 6 years ago
Thanks! Your comment made me smile... Have been watching your videos for a while.