Joystick Controlled RC Car With Arduino
by fiona_lin in Circuits > Arduino
689 Views, 0 Favorites, 0 Comments
Joystick Controlled RC Car With Arduino
Hello! This instructable is a write-up for my final project in 2.351 Introduction to Making Class. Here, I will show you the process of me making my RC car. This car was originally named "The Annoy-inator" as I wanted to implement a speaker and bright lights to "annoy" my friends living down the hall. However, I ran into some unexpected complications and was not able to implement those features in time. So for now, this is just a regular RC car. It has all the functionalities of an RC car, it can move backward and forwards, turn, do some sick donuts, it's rechargeable, and obviously be remote-controlled. Hopefully, I can implement the audio and visual features at a later time :)
Supplies
- Smart car-kit: Comes with 4 motors, 4 wheels, and body of car
- Arduino Uno
- Arduino Uno expansion board
- 12V to 5V Buck converter
- RF receiver X2 (I used HTOX 422MHz Radio Telemetry sets that friend found in the dumpster, arbitrary choice and probably overkill)
- Rover 5 Motor Driver Board (also dumpster find, also overkill)
- 12V Battery pack and connecting wires
For the controller:
- X Y axis joystick
- Breadboard
- Arduino Nano
AA battery X4 and battery holder
- Solder and soldering iron
- Jumper wires
- Screwdriver
- Computer (for programming)
- Zip ties
- Screws and nuts
For future features:
- 4 Ohm speakers
- Audio amplifiers
- LEDs
Step 1: Assemble the Car and Connect Motors to Motor Board
Assemble the smart car chassis according to instructions.
Connect the motors to the correct channels on the motor board. On my particular board, the capacitors were too old and exploded when we try to apply power, so we had to replace the capacitors.
Step 2: Let's Talk Power Supply
One of the first problems on this project was the power supply. I wanted to give the motors 12V so they can run to the maximum speed allowed, but using AA batteries was not enough. I also wanted it to be rechargeable. So I got this rechargeable 12V battery, which took several days of careful soldering.
After getting the 12V battery supply, another issue comes in the current. If I attach the Arduino (along with other features like the speaker) to the same current as the motor, when the motor runs my other components might get a drop in current, which could damage the parts or give a subpar performance. So I used a 12V to 5V buck converter, and used an expansion board to create a "general 5V supply" for everything else, and branched off 12V for the motor board.
Step 3: Set Up the Arduino Uno for the Car
Here I connected all the direction and PWM channels on the motor board to the Arduino, which is powered with the buck converter. See the code for the relevant pins. This Arduino is also connected to an RF unit for communication with remote control.
Downloads
Step 4: Making the Remote
The remote is basically an Arduino Nano connected to a joystick and the RF unit on a breadboard. The remote control unit is powered by 4 AA batteries, and you can also see the code for more details on how it works.
Downloads
Step 5: Putting Everything Together
When everything is put together, we get a working RC car! I expect to make some adjustments later, so the components are just zip-tied together. We also had to make some adjustments to the speed and direction, but everything was in the code.
Takeaways and What I've Learned
I've learned more than I expected from this project. It took longer than I expected too but is those unexpected obstacles that I learned so much from. I learned some more tricks on C++, how to quickly react to electric malfunction (there were several), how to configure radio units and that frequency matters, how to solder on weird places, and how to troubleshoot everything from a hot battery to a smoking wire. I also had the help of my wonderful friends Michael and Praj who lent me their experience and expertise in making janky projects. I look forward to using the skills and mindsets I learned from this project in future projects.