The goal of this project was to improve my previous RC car, which fell short of my expectations due to it lacking a functional turning system. With my 3D printer now up and running and a willingness to experiment with more complex CAD software, I saw a chance to dive back into electronics. My aims for this project were to get better with AutoCAD tools, and get more comfortable with 3D printing by using them consistently throughout the project.
Circuit diagramThe circuit serves the purpose of controlling the DC motors using digital signals, since the motors themselves lacked a built-in digital signal pin.
Creating an external digital signal pin to control the DC motor was a straightforward process, as evident from the small number of components on the diagram. Due to its simplicity, it currently lacks the capability to regulate the speed of the DC motors, a feature I wish to implement in a future variation.
How does the DC Motor Control Circuit work?
On the diagram are 4 separate DC motor controllers, each being identical. Within the group there are four essential components, the transistor, resistor, motor and a diode.
The central component in this setup is the transistor, which functions as the external digital signal pin for the DC motor. Its role is to allow the circuit to complete only when the digital signal is set to HIGH. This is achieved by connecting the digital OUTPUT signals from the Arduino (D2, D3, D4, D5) to the base pin of the transistors.
The purpose of the 270 Ohm resistor in this circuit is to act as a voltage limiter, safeguarding the transistor from any excessive voltage that could potentially damage it from overheating. Additionally, the diode in this circuit serves the purpose of ensuring that any noise from the motor, such as harmonics, are unable to interfere with the actual input signal.
The motor used:
Since there isn't a lot of detailed info about TT DC Motors, I can only really talk about the DC Gear motor configuration it uses.
DC Gear motors are basically a combination of a DC motor and a gearbox. They boost torque through gear ratios in exchange for speed. I chose this type of motor for my RC Car project because I needed enough torque to prevent it from sliding on the floor. The key parameters for gear motors are speed (rpm), torque (Kg-in), and efficiency (%). To pick the best motor for a project, you need to figure out the load, speed, and torque requirements first.
Wiring up a DC motor is pretty straightforward since the polarity doesn't matter much. If you switch the polarity of the pins, the motor will just rotate in the opposite direction, following the right-hand rule. This makes it simple to adjust the motor's direction by swapping the connections.
How does the Bluetooth Receiver function?
To control the RC car, I decided to use Bluetooth technology, which allowed me to use my smartphone as the controller without needing to buy a separate one. For this, I used the HC-05, a class 2 Bluetooth module designed for simple wireless serial communication. It comes pre-configured as a slave device and pairs easily with a master device like a PC, making it user-friendly.
The HC-05 operates within a voltage range of 3.6VDC to 6VDC. However, the RXD pin works at 3.3V and can’t handle 5V directly. To protect the sensor when connecting it to a 5V device like an Arduino Uno or Mega, it’s recommended to use a Logic Level Converter. You can also disable the power supply to the HC-05 by pulling the "EN" pin to logic 0.
For wiring, the RX (Receive) pin of the HC-05 module connects to the TXD (Transmit Data) pin of the master device, like an Arduino. Similarly, the TX (Transmit) pin of the HC-05 connects to the RXD (Receive Data) pin of the master device. This setup is necessary because the RX pin receives data and needs to connect to a transmitting pin, while the TX pin transmits data and needs to connect to a receiving pin. This reciprocal connection ensures effective communication between the HC-05 module and the master device.
I used a generic app from the Google Play Store to send signals to the Arduino. To make this app work with the Arduino, I needed to figure out what signals each button was sending. I did this by using the code below and checking the Serial Port to see what signals were being received.
void setup() {
Bluetooth.begin(9600);
Serial.begin(9600);
}
Unfortunately the application I had used no longer exists, so I can't suggest it.
How does the Servo Motor function?
A servo motor is an electromechanical device that generates torque and speed based on the input current and voltage. It operates in a closed-loop system, using a servo controller to deliver the desired torque and speed. The closed-loop system includes a feedback device that helps maintain precise control over the motor's performance, ensuring accurate positioning and movement.
The pinout for the component is very straight forward and the Digital Pin is just connected to the Control Unit to act as a control signal. The Digital pin is quite unique in that it operates on a frequency of 50Hz and has a pulse width varying 1-2ms.
These pulses instruct the servo motor where to position its output shaft. The motor uses this information to adjust its internal position feedback mechanism, ensuring accurate positioning.
Why use CAD?I chose AutoCAD for V2 of this project because it's a versatile tool that meets all my needs. AutoCAD's ability to export custom-designed parts, slice them, and prepare them for 3D printing fits perfectly with what I'm aiming to achieve. This approach allows for precision and efficiency, ensuring a professional outcome by tailoring the design process to my specific needs instead of needing to adopt to a design.
Additionally, I want each project to be a unique learning opportunity that pushes me out of my comfort zone and helps me acquire new skills and knowledge. This dedication to continuous growth and innovation ensures that every project is not just a task but a valuable educational experience.
Design of the CarTurning Mechanism:
The turning mechanism employed in this project was not exceptionally sophisticated, but it proved effective. While the mechanism's design was relatively straightforward, it did require some effort to fine-tune and make operational.
The turning mechanism relies on the servo motor. When the servo motor rotates between 30 and 60 degrees, one end turns clockwise while the other turns counterclockwise. This creates a pulling force on both tires, which are connected in a “mirror” arrangement, enabling the steering movement.
A great feature of servo motors is their ability to hold their position and return to a set position when external forces act on them. This prevents the wheels from unintentionally turning left or right when you want the car to go straight and keeps the car from going straight when you want to turn. With a torque rating of around 60-120g, the servo motors have enough strength to overcome the friction between the tires and the ground, allowing them to push the tires into the desired positions effectively.
Unfortunately, the first and second versions of the wheel holders (shown in the first and second images) didn’t work out as planned. The 3D printer couldn’t print them with the precision needed, especially for the turning piece of the wheel. So, I went with a simpler holder that just securely mounted the two motors.
How were the DC Motors held in place?
The DC motors used in this project are housed in plastic cases with two screw holes. These holes let you attach the motors securely to the vehicle's chassis. I used this design for all four motors to make sure they’re all attached reliably and consistently. Plus, it’s a practical choice because it makes it easy to remove the motors if they need repairs.
Why is the car designed the way it is?
Designing the car has been quite the journey, involving multiple iterations and a lot of learning. My goal was to create a design that balanced sleek looks with good performance.
One of the key aspects was designing the chassis. I wanted it to be both stylish and strong, providing extra protection in case of collisions during sharp turns or regular driving. The curved design helps minimize damage, and I also included openings for the electronics. This design choice helps reduce stress on soldered connections and the circuit board, preventing potential issues like wires coming loose.
Bringing this design to life wasn’t easy. I was new to AutoCAD, and it took me three to four days of work, filled with both successes and challenges. But the effort paid off. Not only did I complete the car design, but I also gained valuable skills in AutoCAD. This experience has changed how I approach construction and design, and opening my eyes the importance of precision in creating successful projects.
3D Printing:Step 1: I glued the "washers" and motor holders onto the top part of the car and let the glue set for about 30 minutes to make sure everything was securely attached.
Step 2: The motor controller/driver was screwed on to the top and the motors were attached to the motor holders.
Step 3: The Arduino was screwed onto the base, and the top was prepared for attachment.
Step 4: Both pieces were attached together using screws that passed through the "washers" and the motor holders. Additionally a breadboard was sticked to the back to accommodate the HC-05.
Step 5: The Servo motor was screwed on and the battery pack strapped to the back of the car. All the components were also connected, and the code now uploaded to the Arduino.
Step 6: The front turning pieces were attached, and the two front motors connected and wired up.
The car was successful in operating, but there were a few issues..
Problems and Solutions1. The Electrical components could not be placed properly
As shown in the earlier images, the motor driver ended up not being positioned as planned on the car due to a design oversight. The issue was with the placement of screws and nuts for securing the motors to the chassis, which limited the available space and prevented the PCB from fitting where it was intended to go under the car. This resulted in a rather haphazard arrangement of the circuit on top of the RC car, affecting both its appearance and reliability. With the circuit exposed, it was vulnerable to damage from crashes.
The solution to this problem was a somewhat improvised arrangement of the motor driver. The improvisation seen below was made possible because the circuit had the same mounting holes as an Arduino, allowing it to fit on top where the Arduino could have been placed if I had needed more space underneath.
2. There wasn’t sufficient spacing between the cover and base
During the RC car's design process, I didn't account for the jumper wires standing upright to high to fit inside the car's frame. This oversight meant I had to come up with a workaround to connect the wires to the Arduino while keeping everything within the car's confines.
To fix this, I used two different types of connectors—male and female connectors typically used for PCB-to-breadboard connections. By soldering them together, I created a flatter surface for the wires to connect to. This solution not only solved the height issue but also had the unforeseen benefit of keeping the wires in place, making it easier to disconnect and reconnect them to the Arduino without messing up their positions.
3. The turning mechanism was too fragile
I initially underestimated how strong the turning mechanism needed to be. It wasn’t until I put the car together that I realized how fragile the design was. Fixing this would have meant redesigning the entire car, which I plan to tackle in Version 3. But, eager to dive into my Robot Arm project, I decided to test the car with the delicate turning system in place.
This led to about four rounds of breaking and reprinting parts to get it to work. Even when it seemed okay, the turning system was still pretty fragile and broke easily from minor impacts, like bumping into my cleaning robot at low speeds. In fact, while trying to film the RC car (using a second phone because my own phone was the controller), the turning system broke just from a little extra pressure.
The photo above shows the initial print of the turning mechanism. I’ve since reinforced it with stronger materials like PETG to make it more durable and also added balls to each joint to further increase the durability. I also changed my approach by using screws instead of glue to attach the turning connectors to the servo. This allowed for some movement and flexibility, reducing stress on the connectors and making them more durable.
4. The base of the car was thicker than it should have been
Since it was my first time using AutoCAD, I had trouble visualizing real-world sizes from my digital models. As a result, the RC car’s base ended up thicker than I expected, making the car heavier than I wanted. I didn’t have an easy fix for this mistake at the time, but it taught me an important lesson: always double-check measurements with physical rulers before printing. This experience really highlighted how crucial it is not to overlook this basic step in the design process.
- Looking back, I’d consider this project a partial success. On one hand, the RC car worked as planned and could be controlled via my smartphone, which was pretty cool. The turning system also functioned for a while, though its fragility meant it broke quickly on impact, which frustrated my attempts to capture it on video.
- The the real success of this project goes beyond just how the RC car performed. The true value lies in the skills and knowledge I've gained. For example, my experience with 3D printing has grown a lot; I now understand more about material choices and design details. I've also improved my circuit design skills, learning from both the car's functionality and the troubleshooting process. Integrating Bluetooth for smartphone control expanded my grasp of electronics and wireless tech.
- Diving into AutoCAD was a big milestone for me. Despite the challenges in translating digital designs into physical ones, I’ve learned how crucial precision and double-checking measurements are.
- While the RC car project had its flaws (Which I will definitely later improve on), it was a major win in terms of skill development. The problem-solving skills I’ve developed and the lessons learned from overcoming obstacles are invaluable. This project has set the stage for future achievements and showed to me that success requires facing and overcoming challenges.
Comments
Please log in or sign up to comment.