This instructable was created in fulfillment of the project requirement of the Makecourse-art at the University of South Florida (www.makecourse.com)
This project focuses on building an automated vehicle that can project on an object while following the object on a path. In this instructable we will both detail and illustrate our 3D printed parts, control system and coding, and the materials needed to build your own.
The size of the vehicle is up to the individual and motors are geared for torque not speed.
Step 1: Materials
1-2 Arduino Uno*
1 USB cable
1 Ultrasound sensor (Optional)* or
1 Joystick module w/ Receiver
1 Joystick knob
2 FS1000A Antenna/Receiver
1 10k Ohm Resistor
2 H-bridge (12V motor drivers)
2 12V DC motors
2 12V 18Ah (or more) Batteries
1 Projector (Optional – not part of the vehicle)*
4-8 Male to Female cable wires
2 9V Batteries
6 pieces of wood*
The Arduino Uno will be the controller in this project.
Each material listed as optional and/or labeled by ‘*’ are labeled as such because:
1-2 Arduino Uno:
If tracking is done using joystick module, 1 Arduino Uno for joystick module and 1 Arduino Uno for motors
If tracking done by Ultrasonic sensor, 1 Arduino Uno for motors and Ultrasonic sensor
1 Ultrasonic Sensor:
Ultrasonic Sensor not needed if Joystick module used
Projector is not a part of the vehicle: entire vehicle can be made without the projector
5 Pieces of Wood:
The size of the wood can be changed to make the vehicle the size of your choosing. Also, plastic or a light metal may be chosen instead of wood
The .stl files for the projector case will be uploaded as well; however, the projector and case are inconsequential to the vehicle and operation.
Step 2: 3D Printing/Assembly
The .stl files included
are for the projector case, which is completely optional for this vehicle. Each file only needs to be printed once and assembled using an adhesive. The case is large so each file represents part of the case not a whole case.
All the necessary holes and enclosures are included on the files so you just have to wait for them to print. Once the parts are done use an adhesive such as heavy-duty glue to bond them.
For our project we chose to create our own box to hold the electronics. To do this we used 6 pieces of wood; 1 for the base; 1 for the top; 4 for the walls. Nailing each plank to the base, we created the box for all electronics to be placed in. This is where the motors and batteries were housed as well.
Attach a motor to each wheel and use the Fritzing diagram in the circuit section. Make sure your wheels are supported well with bearings depending on the weight you would like to carry on your personal vehicle.
Step 3: Circuit Build and Description
There are 3 major parts to
(1) Breadboard circuit for the controller
(2) Breadboard circuit for motors
(1) Pin 12 of Arduino 1
links to antenna pin ATA0 while the other 2 ports of antenna hook to 5v and ground of Arduino 1. Pin A0 and A1 of the Arduino 1 connect to the joystick. Other 2 pins of joystick link to 5V and ground. A 9V battery is zip-tied to Arduino 1 and is the power source.
(2) Pin 10 of Arduino 2
links to the DATA pin of antenna receiver. The other 2 pins are attached to 5V and ground. Pins 3, 5, 6, 8, 9, 11, are linked to H-bridge 1 and 2. These pins are PWM pins on the Arduino and are important for varying speed of the motors.
(3) H-Bridge 1 is attached to Battery 1 and Motor 1. The in1 and in2 pins are attached to pins 5 and 6 of the Arduino 2. Out1 and Out2 of H-Bridge 1 is attached to both leads of DC Motor 1. The ENA pin is attached to pin 3 on Arduino 2.
H-Bridge 2 is attached to Battery 2 and Motor 2. The in3 and in4 pins are attached to pins 8 and 11 of the Arduino 2. Out3 and Out4 of H-Bridge 2 is attached to both leads of DC Motor 2. The ENA pin is attached to pin 9 on Arduino 2.
The Arduino 2 is the central controller for all the part except for the joystick module. The H Bridges are both hooked to the Arduino 2 for control signals. This allows the DC motors to go back and forth. Have 2 H Bridges allows for the motors to operate separately. The Joystick module is wireless and serves to tell the motors when to go back or forward using different directions.
Step 4: Upload Code
Our code has 2 possible
ways to operate the vehicle.
(1) Wireless Joystick
(2) Tracking code (If statements and loops)
(1) The Joystick code requires that you also get a joystick knob and the Antenna receivers. This means there are 2 sets of coding. The vehicle and the module.
(2) The Tracking code allows for following of an object in ranges.
All codes are available and have been uploaded.
Note: depending on how closely or accurately you need your vehicle to operate to the object, manipulate the code distances. Distance is in cm but can be converted to inches for the tracking code.
Be sure to download Virtualwire.h via google for wireless operation