Building a smartphone controlled RC car system is a fun and rewarding project that can be completed with minimal electronics knowledge.
The first step is to choose a suitable RC car platform, such as the ones discussed in the "Selecting the Right RC Car" section, which should be compatible with your smartphone's operating system.
A smartphone controlled RC car system requires a reliable communication protocol, like the Bluetooth technology mentioned in the "Bluetooth Connectivity" section, to ensure a smooth and uninterrupted connection between the car and your phone.
To power your RC car, you'll need a suitable battery, such as the LiPo batteries described in the "Powering Your RC Car" section, which offer a good balance of power and weight.
See what others are reading: Cars Power Plants
Hardware and Electronics
The RC car's electronics can be a bit tricky to navigate, but once you understand how they work, you're good to go. The original electronics can be removed, leaving only the motors and battery cables, which may require some extension to the original cables.
The Arduino Uno is a great replacement for the original electronics module, handling logic processing, motor triggering, and LED control. It's powered by a 9V battery connected to its Vin, and the HC-06 module is powered by the Arduino's 5V output.
It's essential to test the motors individually, using a battery to see which way they rotate and taking note of the wire colors. This will help you understand how to connect the motors to the Arduino Uno later on.
A fresh viewpoint: Hvac Control Module
RC Car Basics
RC cars are a fun and exciting hobby, but understanding the basics is essential to getting started. The RC car in question has its electronic components located at the bottom of the chassis.
The two motors, one for the front and one for the rear, are situated at the bottom of the chassis. The battery, which is rechargeable and operates at 5V, is also located here.
The electronic module is another key component at the bottom of the chassis. The antenna, made of a copper plate connected to a black cable, is located at the top of the housing.
The 4 LEDs, which serve as the front and rear headlights, are connected separately by wire pairs and are also located at the top of the housing.
Suggestion: Rc Willey Assemble Furniture
Step 4: Electronics Hacking
To start hacking the electronics of your RC car, you'll need to remove the original electronics, leaving only the motors and battery cables. You may need to add some extension to the original cables.
The original electronics module will be replaced by an Arduino Uno, which will handle logic processing, trigger motors, LEDs, and a buzzer. A 27MHz RF receiver system will be replaced by the HC-06 module, which will communicate with your Android device.
The original car battery will be kept exclusively for the original DC motors via the H-Bridge L293D. This will help isolate the power system and reduce noise generated by the motors.
For the Arduino, you'll use a 9V battery connected to its Vin, while the HC-06 module will be powered by the 5V Arduino's output.
Before proceeding, test the motors individually using a battery to see which way they rotate. Invert the battery and repeat the test, taking notes of the colors of the wires.
Here's a summary of the new block diagram for circuit implementation:
- Arduino Uno: handles logic processing, triggers motors, LEDs, and buzzer
- HC-06 module: communicates with Android device
- H-Bridge L293D: isolates power system and reduces noise generated by motors
- 9V battery: powers Arduino
- 5V Arduino's output: powers HC-06 module
FPV Gear
FPV Gear is a crucial component for any FPV system.
You'll need a video receiver to capture the signal from your camera, and Rctimer's 2.4GHz 4CH Video Receiver is a great option, available at http://rctimer.com/product-1257.html.
If you want an even longer video range, consider upgrading to the Rctimer 2.4GHz 8CH Video Receiver, which can be found at http://rctimer.com/product-1212.html.
A good camera is also essential for clear video feed, and Rctimer's FPV Camera is a popular choice, available at http://rctimer.com/product-1466.html.
For another approach, see: Phone Camera Remote Control
Software and Setup
To control your RC car with your phone, you'll need to set up the Raspberry Pi software. The Pi uses node.js to run a web server, which allows your phone to connect to it wirelessly. You'll also need a wi-fi dongle to enable wifi communications.
To get started, you'll need to download some software packages, including node.js and the Pi-Blaster program. The Pi-Blaster program allows pins 17 and 18 of the PI to act as PWM outputs and control steering and throttle.
See what others are reading: Program Led Mini Spider Light
Here's a step-by-step guide to setting up your Pi:
- Download the node.js package using the command `sudo wget http://nodejs.org/dist/v0.10.21/node-v0.10.21-linux-arm-pi.tar.gz`
- Unzip the package using the command `sudo tar -xvzf node-v0.10.21-linux-arm-pi.tar.gz`
- Create symbolic links to the node executables using the command `sudo ln -s /home/pi/picar/node-v0.10.21-linux-arm-pi/bin/node /bin/node`
Once you've set up your Pi, you'll need to configure it to run the node app by default. You can do this by editing the `/etc/network/interfaces` file and setting the network setup to static.
Setup Pi Software
To set up the Pi software, you'll need to download the necessary packages and configure your Pi to run the node.js program on boot. The Pi uses node.js to run a web server, which will allow you to control your car from your phone.
First, you'll need to download the Pi-Blaster program, which will allow pins 17 and 18 of the Pi to act as PWM outputs and control steering and throttle. This program is a crucial part of the setup process.
To download the Pi-Blaster program, you'll need to use the following commands:
- [sudo git clone https://github.com/lawsonkeith/picar]
- [cd picar]
You'll also need to download the node.js package, which you can do with the following command:
- [sudo wget http://nodejs.org/dist/v0.10.21/node-v0.10.21-linux-arm-pi.tar.gz]
- [sudo tar -xvzf node-v0.10.21-linux-arm-pi.tar.gz]
Once you've downloaded the necessary packages, you'll need to create symbolic links to the node executables. This can be done with the following commands:
- [sudo ln -s /home/pi/picar/node-v0.10.21-linux-arm-pi/bin/node /bin/node]
- [sudo ln -s /home/pi/picar/node-v0.10.21-linux-arm-pi/bin/npm /bin/npm]
Next, you'll need to download additional node packages using the node package manager (npm). This can be done with the following command:
- [sudo npm install socket.io node-static sleep optimist pi-blaster.js]
After you've downloaded all the necessary packages, you'll need to configure your Pi to connect to your phone's hotspot. This involves disabling the existing WiFi option and connecting to your phone's hotspot, and then setting your Pi's IP address to static.
Needed Steps
To get started with building your own RC car controlling board, you'll need to follow these essential steps.
First, you'll need to get the RC car model. This is the foundation of your project, and you can choose from a variety of models available in the market.
Next, you'll need to make the RC cars controlling board. This involves checking out the solution from GitHub, which provides the necessary code and design files. You can find the GitHub URL in the reference section.
To manufacture the PCB, you'll need to use a service like Fritzing or Oshpark, which can help you create a professional-looking board. You can also use Fritzing's service to design and order the PCB.
After manufacturing the PCB, you'll need to build the Bluetooth control board firmware and flash it onto the board. This will enable wireless control of your RC car.
Once the firmware is flashed, you can assemble the board, making sure all the components are securely connected.
Additional reading: Can I Use My Phone as a Tv Remote Control
Finally, you'll need to install the board into the RC car and load the app into your smartphone or iPhone, depending on your preference.
Here's a summary of the steps:
- Get the RC car model
- Make the RC cars controlling board
- Install the board into the RC car
- Load app into the Smartphone
- Drive
Mobile App Development
You can use an app to control your RC car, and there are two options available: Android and iOS applications.
The Android app, "MJRoBot BT Remote Control", can be downloaded for free from the Google store. It has a simple interface that allows you to send commands to the BT module in both TEXT mode or directly via pre-programmed buttons.
The app is developed using the MIT AppInventor 2 and can be used to control the car by sending commands to the BT module.
Here are the steps to follow for mobile app development:
- Load app into the Smartphone (Android or iPhone)
To control the car with the Android app, you can press the "s" button to make the car move backward.
The iOS application provides a control window where the steering is controlled by accelerometer and throttle is adjusted by virtual joystick on the screen.
The application is available at the app store, or its source can be checked out from github and compiled with xcode tool.
Project Implementation
To implement a control system for your RC car with your phone, you'll need to choose a suitable programming language, such as Python or Java, which can be used to write the code that will control the car.
The code will need to be uploaded to a microcontroller, such as an Arduino, which will act as the brain of the system and receive commands from your phone via Bluetooth or Wi-Fi.
You'll also need to install a library or framework, such as PyBluez or Android Things, to handle the communication between your phone and the microcontroller.
The microcontroller will then send the received commands to the RC car's motor controller, which will control the speed and direction of the car.
The motor controller will send the control signals to the RC car's motors, which will then move the car accordingly.
To ensure a smooth and stable control experience, you'll need to calibrate the system, which involves adjusting the sensitivity of the motors and the speed of the car.
Discover more: Ps4 Controller
The calibration process can be done using a simple app or software that comes with the control system, and it's usually a one-time process.
With the system calibrated, you can start controlling your RC car with your phone, using a joystick or a touch screen to send commands to the microcontroller.
Take a look at this: Control My Phone Using Pc Trough Bluetooth
Code and Firmware
The code and firmware for controlling an RC car with a phone is a crucial part of the project. The main block of the Arduino code is surprisingly simple, with a focus on checking for new Bluetooth commands and executing them accordingly.
The code checks for new BT commands using the function checkBTcmd (), which triggers the receiveCmd () function to execute the received command. The variable "turnOn" is used to control the car's power, switching between on and off based on the "p" command received from the Android app.
The manualCmd () function executes a command depending on the received character, such as moving the car forward with the "w" command. If the "POWER" key is pressed, the variable "PowerOn" is set to LOW and the stopRobot () function is executed, stopping the rear motor and turning off the LEDs.
Intriguing read: Variable Appears
The firmware is developed using the IAR tool and TI BLE-stack, with the main part being the Bluetooth Smart GATT table that defines device services and characteristics. The firmware has one service for controlling a car with several characteristics, including:
- Steering attribute (0xacc2) - controls the steering angle from 0 to 700, with 350 being center, 0 being a left turn, and 700 being a right turn.
- Throttle attribute (0xacc1) - controls the motor speed from 0 to 700, with 350 keeping the motor off, 0 letting it run backward at full speed, and 700 letting it run forward at full speed.
- Lights attribute (0xa101) - turns on/off individual lights based on a 16-bit number.
- Battery voltage attribute - monitors the car's battery voltage and determines if the battery is running low.
Improvements and Design
Upgrading your equipment can greatly improve the range of your video transmission. A 2000mw video transmitter and receiver can provide a range of up to 1km, but obstacles like houses and trees can decrease the range to just 100m.
For maximum range, it's essential to place the transmitter antenna outside the house. This is because radio signals have a harder time penetrating solid objects, so placing the antenna in an open area can help maintain a strong signal.
A long-range equipment upgrade can also be beneficial, such as the Dragonlink-2 system, which can be found at http://www.getfpv.com/dragonlink-2-long-range-433mhz-uhf-tx-and-rx-system.html.
Improvements
Improvements can make a big difference in the performance of your video equipment. Upgrading to a 2000mw video transmitter and receiver can give you a great range for your video, potentially up to 1km.
Depending on your environment and obstacles, the signal might be good for up to 1km, but it could also decrease to just 100m with houses and trees blocking the signal. It's also important to place the transmitter antenna outside the house for maximum range.
You can upgrade to long-range equipment, such as the Dragonlink 2, for even better performance. This equipment is designed for long-range applications and can help you achieve the range you need.
Designing Solution
Designing a solution to make a car controllable by a smartphone involves removing the car's control board and building a new one with Bluetooth capability. This new control board will be installed in the car and controlled using an app on the smartphone.
To achieve this, several components will be needed. The car's control board will consist of a Bluetooth module, which will allow communication and control between the car and the smartphone. The cc2541 module is a good option, as it contains both the Bluetooth module and a microcontroller unit (MCU) in one single chip package.
The control board will also require an H-bridge to drive the motors, as well as transistors and resistors to control the LEDs and steering magnets. A voltage regulator and capacitors will be necessary to provide a stable power supply to the Bluetooth module.
All of these components will be assembled onto a printed circuit board (PCB) to create the control board. Some firmware will also be needed for the Bluetooth module to ensure it works properly.
Here is a list of the components needed for the control board:
- Bluetooth module (cc2541)
- H-bridge
- Transistors and resistors
- Voltage regulator and capacitors
- PCB
- Firmware for Bluetooth module
Sources
- https://www.instructables.com/Raspberry-Pi-Smartphone-Controlled-Rc-Car/
- https://www.hackster.io/mjrobot/hacking-a-rc-car-to-control-it-using-an-android-device-7d5b9a
- http://www.nerdkits.com/videos/rc_car/
- https://www.instructables.com/RC-Car-Go-Anywhere-With-Live-Video-Feed/
- https://github.com/drme/ble-rc
Featured Images: pexels.com