
Project 07 of 09
Bluetooth RC Car
A quick, maneuverable, rapid-prototyped RC car.
- Context
- UC Berkeley · Design Innovations
- Role
- Design, build & Arduino code
- Tags
- Rapid prototyping, Arduino, Laser cutting
Project Background
This project began as an assignment for the inaugural Design Innovations course at UC Berkeley, a highly anticipated course on rapid prototyping and design. The assignment was to create some sort of moving vehicle which could move forwards, backwards, stop and maneuver around obstacles. The final product was graded primarily on construction quality and ingenuity, aesthetic design and performance. This course pushed me to imagine more for my projects; to pay heed to the form of my designs rather than just their function. This was an extremely important lesson to learn, and has served me very well thus far. In this project, however, I focused far more on the performance of my creation than on the aesthetic design.
(image 1 of 2, view larger)
(image 2 of 2, view larger)
The Build
The car is constructed from laser-cut continuous-cast acrylic, 3D printed wheels and fasteners, and carbon fiber supports. It is powered by 6 and 9V battery packs, using an L298 motor controller to supply the two rear DC motors. The turning is handled by a microservo in the front of the car, which spins two gears to control a single axle. This microservo, along with the motor controller and Bluetooth module, were soldered to a removable Arduino shield on the Arduino itself.
For quite some time I was limited to using a broken motor controller, with only two of the four enable pins functioning. Part availability was a slight hindrance in this project, but I provided a temporary workaround by wiring the two motors in series to the same enable pins. The video to the right is an early version of the car with this workaround applied. The decreased voltage to each motor is the reason the car travels at the speed it does.
To control the car, I wrote and sourced Arduino code using a shielded Bluetooth remote employing microservo-assisted turning and adjustable speed/directional control using an Adafruit Bluetooth LE companion application. The code to pair the BLE application and the module on my car was sourced, while the transmission reception and manipulation of the car’s components was done by me. The control was established by reading a stock string of characters sent from this module per each directional RF transmission by the application, and manipulated in the source code with a series of case statements. I also added the option for a removable 6ft tactile wired controller soldered to Arduino shield with potentiometers to control the servo in front.
The Takeaway
This project was an excellent lesson in time management and resourcefulness. I quickly found out how well a design on paper can be complimented and iterated upon through the process of rapid prototyping. I am now quite certain that no design comes to form nor function optimally on the first try, and I have a better understanding of managing these design iterations within a rigid timeframe. I like to feel, build, learn, fail, and start over again. This project was no exception.