Today I am going to show you how to build a 2.4 GHz transmitter and receiver with an Arduino based system. By following the instructions below, you’ll be able to make and test your own controller without any radio-controlled gear at all. So, if you’ve had some experience with Arduino before, this is the perfect DIY project for you!
Everyone knows the traditional and easier way of getting an RC system: simply buy an already existing transmitter and - again - an already existing receiver that is compatible with the transmitter. This might cost you more than you are willing to invest but I’m glad to tell you that there is a cheaper option!
In a few words, you will be assembling two sets of systems that have some similarities but are distinguished by the components that will essentially attribute their specific functions.
One of the sets is the controller. This is the one that will have the Arduino Joystick and will work as a transmitter, meaning that you will use it in your hands to input the desired controls.
The other set is the control system. It will work as a receiver and is the one that goes inside your plane/drone/robot and actually runs the motors and everything else you might want your controller to command.
Materials
First things first, to make a 2.4 GHz transmitter and receiver, you will need:
For the control system (receiver function):
|
|
For the controller (transmitter function):
|
Component
|
Qty.
|
|
Component
|
Qty.
|
Arduino Pro Mini 5V *
|
1
|
|
Arduino Pro Mini 5V *
|
1
|
nRF24L01 Module **
|
1
|
|
nRF24L01 Module **
|
1
|
3.3V Regulator Module
|
1
|
|
3.3V Regulator Module
|
1
|
Dual H-Bridge module ***
|
1
|
|
Arduino Joystick
|
1
|
|
|
|
|
|
To run everything and test:
|
|
Basic Tools:
|
Component
|
Qty.
|
|
Soldering iron
|
2s LiPo battery ****
|
1
|
|
Wires or Jumpers
|
Micro Gear Motors ****
|
2
|
|
Battery connector
|
* The Arduino Pro Mini is a microcontroller board that comes in two flavors: the 328 and 162. These are just the model numbers of the two types of chips that an Arduino Pro Mini board can have, each with a distinct memory size. For this project, either one of these options will work perfectly fine but you have to pay attention to which one you have in hands when we get to the coding step since different models will require different programming settings.
** This chip will be the communication center for the two sets (both the control system and the controller will have an Arduino, an nRF chip, and a 3.3V Regulator Module). No matter what model, every nRF module contains a cristal that is quite exposed and, if broken, will stop the whole thing from working. So, I strongly recommend choosing the chip according to what kind of environment you will be submitting your plane/drone/robot model.
*** The H-bridges are what output the power to your motors or servos and these modules are the first to die if the motors/servos get overly stressed. To properly choose one for your model, you need to know beforehand what you are putting into your plane/drone/robot model - what actually works in it.
**** The 2S Lithium Polymer Battery and the Micro Gear Motors are required only for powering and testing this whole project, respectively. They are not part of the two systems we will build.
Wiring
To make a 2.4 GHz transmitter and receiver Do the following connections twice: once for the Controller and once for the Control System
Arduino Pro Mini
|
Raw
|
↔
|
VCC
|
LiPo*
|
GND
|
↔
|
GND
|
D12
|
↔
|
7 (MISO)
|
nRF24L01 Module
|
D11
|
↔
|
6 (MOSI)
|
D13
|
↔
|
5 (SCK)
|
D10
|
↔
|
4 (CSN)
|
D9
|
↔
|
3 (CE)
|
LiPo
|
GND
|
↔
|
1 (GND)
|
3.3V Regulator
|
Out
|
↔
|
2 (VCC)
|
GND
|
↔
|
GND
|
LiPo
|
Vin
|
↔
|
VCC
|
* It’s recommended that an isolation point (switch or removable link) be added between the battery and the circuit. The positive of the battery must be connected to a switch, then the switch to Vcc.
Now, do the following connections to differentiate between the Controller and the Control System.
|
For the Controller
|
|
Arduino Joystick
|
5V
|
↔
|
5V
|
Arduino Pro Mini
|
VRX
|
↔
|
A2
|
VRY
|
↔
|
A3
|
GND
|
↔
|
GND
|
|
|
|
|
|
|
For the Receiver
|
|
H-Bridge Module
|
Vcc
|
↔
|
Vcc
|
Arduino Pro Mini
|
B-IB
|
↔
|
Pin 2
|
B-IA
|
↔
|
Pin 3
|
A-IB
|
↔
|
Pin 4
|
A-IA
|
↔
|
Pin 5
|
GND
|
↔
|
GND
|
All the wiring can be done in 3 different ways, which is why the design step is so critical. It’s important to note that, regardless of your choice of wiring, the actual connections are the same.
Your 3 choices of wiring are:
- Loose wires (lightweight but more fragile)
- Perfboard (heavier than the 1st option, more robust but with a larger footprint)
- Custom circuit board (which is also heavier than the first but more robust and still leaves a smaller footprint than the 2nd option). This one is the ideal choice if you’ve already got both your plane/drone/robot model and wiring designs figured out.