This article discusses the manufacture of proportional board-based radio control equipment Arduino. An interesting feature of the project is that the equipment was conceived as an alternative to the "adult" equipment, but which you can make yourself. There are trim keys on the transmitter, which is important for control, for example models aircraft, the transmitter is also equipped with a small display with organic LEDs, which displays basic information on the operation of the transmitter. The equipment is designed for 6 channels, 4 proportional and 2 discrete. The author also laid the foundation for the future addition of two more proportional channels, 2 potentiometers were added to the case, but at the moment they are not involved. Nevertheless, this is enough to control the model of an airplane, ship or car, and discrete channels will allow you to control the additional load, for example, the inclusion of headlights, deck lights, navigation lights or even the launch of small missiles. The equipment has two control modes - linear and exponential.
For the transmitter you will need:
1 x Arduino NANO / UNO / ProMini
1 x BMS protection board for three Li-ion cans
1 x 5.5 x 2.1 mm connector
1 x Step Up DC / DC Converter XL6009
1 x LM2596 small step-down converter (I will talk about it separately)
3 x 18650:
2 x joysticks JH-D202X (sold on Ali)
2 x toggle switch
1 x i2c OLED Screen 0.96 inch 128X64
1 x NRF24l01 radio module with amplifier and antenna
9 x tact button 6 * 6 * 5 mm
Output resistors (see diagram)
For the receiver you will need:
1 x Arduino NANO / UNO / Pro Mini
1 x Radio Module NRF24l01
1 x AMS1117 3.3V voltage regulator
30 x pls combs
1 x breadboard
1 x 10 uF capacitor
Below you can see a graphic image of all components and a diagram of their connection. Before assembly, buck converters must be configured, XL6009 to 12.6 V (this module is responsible for charging), LM2596 to 3.3 V (power to the radio module). Instead of LM2596, it is theoretically possible to use ASM117, according to the datasheet, the maximum input voltage of this stabilizer is 15 V, but it is advised not to apply it higher than 12 V. Apparently, based on these considerations, the author used another DC / DC converter. Instead, you can also use an adjustable stabilizer, for example LM317.
Housing
The case consists of two main parts: the upper and lower. In addition, 9 buttons (8 for trimming and one mode button), 5 backups for buttons, a bezel of the display and a power slider are printed.The author printed a PLA with an eraser with 20% coverage, a 0.4 mm nozzle and a layer height of 0.3 mm. By the way, no one forbids the use of another case, you can just take a suitable box, glue it yourself or take a fairly large case from a Chinese toy, they are almost sold in bags on classified sites.
Transmitter Mounting
Batteries are connected in series. The author did this with soldering, I want to note that soldering cans of 18650 requires some skill, so if you have no such experience, buy batteries with already welded petals and solder to them. Also, the batteries according to the above scheme are soldered to the BMS module, the input of which is supplied with voltage from the XL6009 converter (MT3608 can be used instead). The BMS is responsible for evenly charging / discharging all the cans and turning off the power when the batteries are exhausted. Voltage can also be monitored using the display. The batteries are charged by a 9 V power supply with a current of not more than 3 A (maximum for XL6009). In fact, the charge current must be calculated depending on the capacity of the batteries and take the power supply with a slightly lower current or limit it. It is convenient to mount the modules in the housing with the help of "automobile" double-sided tape.
The clock buttons are installed on special platforms, after which they are attached with small screws to the corresponding supports inside the case. Here, in fact, everything is at the level of the designer and is well understood from the photo.
The buttons are interconnected by resistors, thus essentially leaving a small resistive keyboard, which allows you to use only one pin of the Arduino board. The wires are soldered to the joystick potentiometers, the extreme leads go to ground and 5 V, the average leads to the corresponding Arduino pin. I have plans to repeat this scheme, I have already experimented a bit and I can say that the code has the function of automatically inverting channels as needed, but I have not yet understood how the scheme determines this very need. This is to say that the channel inversion is essentially carried out by soldering the extreme conclusions in places. Such joysticks, at the time of writing, are sold in Ali at a price of about $ 7 apiece, whether this is up to you or not. Instead, you can use the joystick modules for arduino or joysticks from game controllers.
In fact, the joystick works as a divider, deflecting the handle, we change the voltage at the middle output of the potentiometer, and depending on this voltage, the arduino determines the deviation.
[center] [/ center]
Tumblers are also connected. Toggle switches are needed on-off, since the channel is discrete and has only two values - 0 or 1, depending on whether the output of the arduino is attracted to the ground or to a 5V power supply. Moreover, the on-off switch is necessary, if you leave the output "hanging in the air", what would happen when using three positional, the controller does not understand what is happening and the value randomly jumps either 0 or 1 (in my experience). You can not set additional potentiometers, at the moment they are not involved. Or you can put and monitor the source page, perhaps the author will eventually post the updated firmware.
In fact, the joystick works as a divider, deflecting the handle, we change the voltage at the middle output of the potentiometer, and depending on this voltage, the arduino determines the deviation.
[center] [/ center]
Tumblers are also connected. Toggle switches are needed on-off, since the channel is discrete and has only two values - 0 or 1, depending on whether the output of the arduino is attracted to the ground or to a 5V power supply. Moreover, the on-off switch is necessary, if you leave the output "hanging in the air", what would happen when using three positional, the controller does not understand what is happening and the value randomly jumps either 0 or 1 (in my experience). You can not set additional potentiometers, at the moment they are not involved. Or you can put and monitor the source page, perhaps the author will eventually post the updated firmware.
Next, an arduino, a radio module and a radio module power board are installed. As described above, it is necessary to set a voltage of 3.3 volts on it. It is almost impossible to do this using a standard variable resistor, so the author unsoldered it and soldered a multi-turn trimmer instead. Next, the display is mounted, and all components are connected to the arduino terminals according to the diagram.
Firmware
Arduino firmware has already been talked about 1000 times, at this point in time, the ability to do this while holding on to an arduino project is just as important by default as the ability to hold a soldering iron in your hands while holding something to solder.The code for the transmitter, receiver, necessary libraries and a file for 3D printing of the case can be downloaded in one archive at the end of the article.
Receiver
For the receiver, you will need another Arduino board, a radio module (without an antenna, telemetry is still not implemented here) and a 3.3 volt stabilizer. The receiver is soldered to the breadboard. The power of the receiver is carried out in the same way as the power of any other factory receiver, from a special output of the speed controller.
On my own, I want to add that instead of the standard antenna of this module, it is desirable to solder the same antenna that is installed in the module with an amplifier (only without a housing). This will not particularly affect the reception range, but will significantly affect the reception quality depending on the position of the controlled model in different planes. For modern receivers and transmitters, for this purpose, even two antennas are installed, which are located perpendicular to each other.
In addition, the author has implemented a very important function - output from the PPM receiver signal. Schematically, nothing changes, you just need to fill in another firmware, the PPM signal is output in the same way as in most factory receivers - from the first channel (gas).
That's all. Personally, I really liked the project, and as I already said, plans to repeat it in the case from the remote control of a children's toy. In the menu you can select the mode from linear to exponential and fine-tune the value of each stick. Keep in mind that the average value of each channel should be 127.
You can download everything you need here.
All success in the work!