DIY RC Car: From Wires to Wheels!
by Därkstalker in Circuits > Microcontrollers
171 Views, 1 Favorites, 0 Comments
DIY RC Car: From Wires to Wheels!
Cars have been and always will be an integral part of Robotics and Mechanics. The Science behind their working the precise arrangement of all the components and the vast code behind it is truly Fascinating. Just as they are essential to this field ,they have been essential to me forming a crucial part of my development in this field and provided a chance to view its intricacies.
But don't worry as it's not that hard and through this instructable I will break down this process into 8 easy to follow and replicable steps. So if you are looking for a RC Vehicle to use for competitions or just a Hobby Project this instructable is just for you.
Now one must also understand that the journey to making this car and achieving this state was not that easy as I had to spend grueling weeks just to troubleshoot errors as in any project and all the tutorials I found lacked many important notes that were essential to making this car. Also in this instructables I have included some issues I faced and how I tackled them.
Supplies
Here are all the components I used to build this RC CAR: (I sourced these components from websites such as Adafruit and Sparkfun and Alibaba)
- FSi6 Radio Controller and receiver
- Power Bank
- Arduino Uno
- Johnson Side Shaft Gear Motors 12v DC 500 RPM(The RPM value is subject to change as a higher rpm will lead to less torque and a low rpm will lead to a low speed and I found 500 RPM to work best for Me)
- Aluminum sheet metal 0.75 mm
- 2 x BTS7960 Motor Driver(Two separate Boards)
- A Mini Breadboard
- 4 x RC Car Wheel with Hex Couplings (Any Generic RC Car wheel works which has A D shaft Compatible Hole)
- 4 x HEX shaft Coupling 6mm Inner Diameter(I would recommend for you to get extra as I lost 1 of mine about which you will read ahead)
- 3 x 3.7v Li-ion Batteries (You can also buy a 12v Battery)
- Battery Holder configured for 3 Li-ion Batteries in series
- XL4015 Step Down Power Supply module with built in Voltmeter (You can also use any one without a Voltmeter but I found that this helped troubleshooting)
- LOTS OF WIRES, ZIP TIES & DOUBLE SIDED TAPE
Tools Required
- Screw Driver with a Flat Head and all the common bits
- Allen Key for sizes M3 and M4
- M3 and M4 Screws, Nuts and Washers
- Soldering Iron (The whole set with flux and wire)
- Multi Meter
- Wire Stripper
- Small Drill
- Hot Glue Gun
Making the Chassis
These are the steps to making a Chassis out Of Sheet Metal:-
- Cut the metal to a size of 250 x 250 millimeters
- Fold 60mm at 90 degrees on both sides
- Construct a shape as given in the image on both sides as given In Image 2 on both sides.
- Your construction should be 130 mm wide and 250 mm long with 60mm folds at both sides
- Now drill holes of 14mm twice on both sides as given in Image 3
If all this seems too complicated or you don't have the tools to cut metal You can prototype by printing the 3d Model provided.
One Final step:-
- Attach your johnson motors to the chassis you just made. You will notice that you will have to drill a few extra holes 3.75 mm at the places where the johnson motors have holes. Mark them with a pencil. For prototyping you can use motors other than johnson motors which have a big screw on Nut in front of them.
Check if your motors are fitting in the chassis without touching each other. If that isn't the case I found that bending the chassis by a minute amount outwards will help you to fit the motors precisely.
...Congrats! That was truly one of the hardest steps in this entire build. If you got here you can handle everything else.
Downloads
Understanding How It Works
The Arduino Uno functions as The Brains of this project. A more complex processor could have easily been utilized to offer more functionality and to integrate more function but in our effort to build the Fastest and most powerful RC car this processor works the Best
Here's how the whole system works in a continuous loop:
- Receiving the Signal The FSi6 receiver picks up signals from your transmitter and sends them to the Arduino as PWM signals through CH1 and CH2.
- Processing the Signal The Arduino reads the incoming PWM values and applies a deadzone threshold to filter out any noise or stick drift. If the signal crosses the threshold it decides to move — if not, the motors stay still.
- Driving the Motors The Arduino sends the processed signal to the BTS7960 motor driver. Because the BTS7960 uses MOSFETs instead of traditional transistors it is highly efficient, generates less heat and can handle the high currents the Johnson motors demand. Based on the signal it controls each motor's speed and direction — giving us forward, backward, left and right movement with variable speed.
- Repeat This entire process loops every 20 milliseconds making it extremely responsive
Configuring the Circuit
Connect all the components together as indicated by the Circuit Diagram and if you face any issue feel free to ask any question below.
A few things to keep in mind that will drastically improve the Quality of life when building this circuit diagram:-
- Very Important! - Configure the output voltage of your XL4015 to exactly 5 volts otherwise many components may get destroyed. The Motors wll run off directly from the 11.1v battery.
- Attach a switch between your power supply and the XL4015, this will help to preserve the battery life
- The power supply shown in the diagram is just a placeholder as you can attach your battery pack directly in place of it
- Ensure that all components have a common ground before supplying the circuit with voltage
- Do not assemble the circuit in the Chassis yet and first complete and test the circuit
- The L_EN and R_En of both the BTS7960 must be connected to 5v either you can solder them together or for prototyping connect them with wires
- LABEL YOUR WIRES. If you do not have a full spectrum of wires available you can always label them. This will not only prevent shorts but also make it easier to use.
Writing the Code
Upload this code to your Arduino Uno after selecting the correct Com port. If you don't have it install it using their official website.
Also while using the car you will have to power the arduino with a power bank as the fsi6 receiver requires regulated voltage which only a power bank can provide.
Tips and troubleshooting:
- Before connecting all the components first test your transmitter and receiver by watching the serial monitor for any data at the 115200 baud rate. If it isn't working most likely your receiver hasn't binded to the transmitter yet. To achieve this power your receiver via two different pins and connect the bind pin to ground either using the given cable or any female to female cable. Then hold the bind button in your transmitter while turning it on. Viola! It will have binded successfully.
- If the motors are spinning in the wrong direction just switch the RPWM and LPWM in the code.
- If your car is moving on its own despite you not controlling just increase the deadzone to your desired value to reduce noise
- Before testing the car ensure that it is on a raised surface to prevent random movements.
- If you want smoother acceleration add a ramp function to the code or modify it in the transmitter settings.
Assembly
You are almost there just a few more steps and you will have completed your very own RC car.
- Start with the attaching the motors first. Remove them from the circuit and attach them using your screwdriver and M3 screws. Keep in mind to not thread the screws completely by leaving a bit of tolerance. This mistake cost me a lot of my time and thus keep testing your code at various stages of assembly
- Attach your circuitry using double sided tape to the chassis and connect the motors. Ensure that the connections are insulated and the contact points of the components are insulated from the bottom as they will be in contact with the metal frame
- Test the car at this moment without attaching the wheels. If it works you can move ahead ,else troubleshoot the car with the tips I have provided.
- Now attach the wheels. If you are using the hex coupler and the wheels I recommended then there is a specific procedure.
- First attach the coupler to the motors using the given set screws provided. If the connection feels loose wrap the axle with a layer of electrical tape first
- Position your wheel and the coupler in such a way that the hex coupler aligns with the indent in the wheel
- Crucial! Use 2-3 washers and only then thread your M4 screws into the wheel. This will strengthen the connection between the axle and the wheel and will make the car more responsive.(The number of washers entirely depends on you and your configuration)
- Cable Management- This will drastically improve the aesthetics of your car and make it more reliable. I would also recommend for you to hot glue all the electrical joints but please do this only after testing the Car.
Congratulations! You are almost there with 1 more step remaining. Please Test the Car to ensure that it is working and the torque is enough. Also if you can make a mock obstacle course for your Car this truly increases the fun and also lets you test the limits of your car!
Testing & Trouble Shooting (From Experience)
At this stage your car should probably be working and making cool drifts at full speed. If that is the case you don't need to read this section! But if that isn't the case, as it wasn't for me, read on about the problems I faced and exactly how I solved them
The problems I faced:
- I Actually Lost one of my couplers mid-build and still cant find it. To rectify this problem I whipped up a quick fix I replaced two of the blue wheels with two big black wheels. Although these didn't have that much grip they served as a quick replacement to this issue. I replaced both couplers to maintain and symmetry in the structure.
- I also burnt out two of my high torque johnson motors while testing. Luckily I had a spare set of motors which were a bit weaker. I placed the weaker set of motors at the front so as to not reduce torque and speed.
- One of my jumper wires' header became brittle after continuous use and broke inside my arduino uno's header. To tackle this (This problem happened at a big event) I soldered a wire to the bottom of my arduino to create a direct connection to my arduino.
- It wasn't always the Hardware to blame as during the process I actually lost my code as I forgot to save it. This was a big pushback and I had to rewrite it again.(That's why one should always have a backup in the cloud)
Adding Some Flair
In my opinion this is the most important step of the entire build. Collect whatever you have, design it any way you like and let your creativity flow. Add some paint, some flair, a lightning bolt or two. This is your car and it should show your personality.
I personally went with an all black finish which not only improved the aesthetics but had a practical bonus too — painting the chassis insulates the metal and protects the car from accidental shorts.
Some Ideas you can try:
- Add LED strips on the underpanel for some glow
- Add a fpv camera for a first person view
- 3d Print a custom shell to express yourself
Congrats!
You now have your very own High Speed, High torque RC Car!
This project was one of the most rewarding things I have ever made. I hope that my experiences and problems faced might have helped you in your journey ahead. If you built this or made your own modifications, I'd love to see it in the comments below.