Introduction: IR Controlled 3D Printed Rover (Arduino)

This instructable was created in fulfillment of the project requirement of the Makecourse at the University of South Florida (

This instructable will cover the necessary steps in how to recreate my Rover project. We will be covering all aspects of the build process including the STL part files, assembly, control system and programming. This project was an AWESOME learning experience and many of the processes were my first time doing such. Please keep in mind that this project requires a lot of soldering and shrink wrapping of wires and connectors. Also, the modification process for the continuous rotation servos is very delicate and you can very easily ruin a servo if you are not absolutely careful.

Step 1: ​Tools and Components

Electrical Components:

  • 1 x Arduino Uno
  • 1 x DROC Voltage Rgulator
  • 1 x Hobbymate 11.1 3s 1300 mAh Lipo Battery
  • 1 x Circuit Board
  • 5 x T-Plug Connectors
  • 1 x 5/16" Wooden Dowel
  • 1 x Inferred Reciever
  • 1 x Inferred Remote
  • 1 x Switch
  • 8 x Servo Lead Extenders
  • 9 x MG90S Servos
  • 1 x HC SR04 Ultra Sonic Sensor
  • 1 x Red LED
  • 1 x Green LED
  • 8 x 22k ohm Resisters
  • 2 x 220 ohm Resisters
  • 2 x Bolts
  • 2 x Nylon Lock Nuts
  • 6 x #2 Screws
  • 4 x Zip Ties
  • 1 x Ream of Wire Loom


  • Soldering Iron
  • Flux Core Solder
  • Wire Cutters
  • Small Phillips Screw Driver

Miscellaneous Items:

  • Glue
  • Model Paint
  • Decals
  • Aluminum Foil
  • Rubberized Black Spray Paint

You will also need to modify four servos to operate in continuous rotation. The tutorial that I used to accomplish this can be found at the following link:

Step 2: 3D Printed Parts and Assembly

The Majority of the parts for this build were printed on a 3D printer. I've include all the STL files necessary to replicate this build. The four modified continuous rotation servos will need to be attached to the drive wheels and drive housings. The center set of wheels spins freely. The black wire loom is used to hide the wires coming from the drive housings and is zip tied to the rear drive housings. The 5/16" wooden dowels are cut to size and connect the main arms to the center differential system. Rubberized paint is applied to the outer surface of the wheels for added traction. Please understand that, due tolerance variances, some additional tooling maybe necessary for all parts to fit exactly right. The assembly procedure is very straight forward and should be easily derived from the 3D exploded view assembly photos that I have included in this indestructible. A few things that I have added to the overall aesthetics of the build were some "NASA" stickers that I purchased off of eBay, some model paint and a little aluminum foil to hide the wires coming from the ultra sonic sensor housing.

Step 3: Control System

The control system begins with a 1300mAh lithium polymer battery. This battery is a bit over-kill for this project, but I purchased it with the intentions of alternative uses. Power is then fed into an adjustable voltage regulator which steps the power down to about 5.08v. Originally the voltage was set to around 6.71v in order to achieve 5v out from the arduino. However, because the continuous servos received the main power supply from the 6.71v source and not the 5v source, it caused them to not function properly. Stepping the voltage down, coming out of the voltage regulator, to 5.08v solved this problem. So, after the voltage regulator, the power is sent to a PCB board and distributed to the arduino and all other components. The IR receiver, both LEDs and ultrasonic sensor are mounted in the housing that sits on top of the rover. You will need to solder a couple rows of post on to the PCB board in order to distribute all the power and ground connectors for the various components of the rover.

Step 4: Electrical Schematics

Here is a basic break down of the wiring and electrical components involved in this build. Everything receives the appropriate voltage from the power distribution board and command signals are sent from the Arduino board to all other components. I decided to implement the use of t-connectors as it allows me to easily disconnect components from the system for replacement or for use in other projects. Please be aware that the pin configuration in this diagram does not correspond with the Arduino sketch. It is merely to illustrate how all the components connect to each other. Please refer to the Arduino sketch for proper pin configuration.

Step 5: Arduino Sketch

The Arduino sketch for this project uses a library for the servos and one for the IR receiver. The servo library is included in the Arduino IDE and I have included a zip file for the IR receiver library. The Arduino sketch is included in a second zip file. Something to note, is the the values for the stop positions of the continuous rotation servos will most definitely need to be changed. Because of the low precision of the typical resisters used to make the voltage dividers in the servos, not every one has the same stop values. For example, my servos ended up having the stop positions of 89,88,66,69. Theoretically, the stop positions should be at 90 degrees but, as previously mentioned, the typical resisters used for this project are not very precise. Also note that ANY IR remote can be used for this project. However, it is important to note that the values for the command buttons for your remote will not be the same as the ones included in this Arduino sketch. This YouTube tutorial demonstrates how to find the values for the buttons on your IR remote control.

Step 6: Final Product and Assembly

Here you can see the rover functioning. The rover is initialized and begins sweeping the ultrasonic sensor. When the forward button is pressed, the rover will continued forward until it is told to stop (pressing the stop button). If a turning button is pressed, the turning servos will engage and the wheels will begin to turn the rover in the desired direction. If the rover approaches too closely to an object, the red LED will light and the piezo buzzer will sound. To deactivate the rover, simply press the deactivation button and the head unit will no longer sweep and sense for objects within its determined proximity.

Robotics Contest

Participated in the
Robotics Contest

Tech Contest

Participated in the
Tech Contest