Arduino and RF Controlled Robot

Arduino and RF Controlled Robot

‘ROBOT’, as you know were introduced much earlier in the fifties. People could not afford those massive devices because of the cost they were tagged with. But now, to make it available to common people as well, our team developed a robot that is based on a simple platform like Arduino. Due to the fact that it uses RF remote control, using this robot is much easier. The omnidirectional robot works smoothly within a range of up to 100 meters. Adding more to its benefit, it doesn’t take much time to construct this device.

Circuit Description of Arduino and RF Controlled Robot

Since the project incorporates RF remote control, there are two sections of this project: (a) transmitter (b) receiver, and motor driver.  The details of these two sections are portrayed in fig 1 and fig 2 respectively. The first portion; the transmitter circuit comprises encoder IC HT12E (IC1), 433MHz RF transmitter module (TX1), and some discrete components. Other elements like Arduino UNO board (BOARD1), decoder IC HT12D (IC2), 433MHz RF receiver module (RX1), motor driver IC L293D (IC3), regulator IC 7805 (IC4), and discrete components build up the receiver circuit.

transmitter circuit of arduino and rf controlled robot

Arduino UNO board

The project is centered around Arduino uno. The fact that Arduino is an open-source device, it is flexible and much easier to use. This platform fits best for anyone who shows a keen interest in creative projects of interactive innovations.

Remote control

This is the best part of the entire project. For controlling the robot remotely, Holteks’ encoder-decoder pair (HT12E and HT12D) together with a 433MHz transmitter-receiver pair is used.

The Holteks pair are in fact CMOS ICs consisting of working voltage ranging from 2.4V to 12V. The two ICs come with eight addresses and four address/data lines respectively. As soon the TE pin; the transmit-enable pin is low, the data set on these twelve lines (eight addresses and four address/data lines) are serially transmitted and received at the DOUT pin.

After four successive attempts, all data are transmitted. The lengths of positive pulses of ‘1’ and ‘0’ vary in width to help with the identification issues. The pulse width of ‘0’ is two times that of the pulse width for ‘1’.In accordance with the resistor value between OSC1 and OSC2 pins, the corresponding frequency of these pulses falls in the range of 1.5 to 7 kHz.

In the Holteks’ pair, the decoder; HT12D has an internal oscillation frequency  50 times the oscillation frequency of encoder HT12E. Din pin in decoder collects input serially from the encoder. Matching of received data with the levels on A0 through A7 pins for four successive attempts verify the input and only then does valid transmission pin (VT) go high. Similarly, pin D8-D11 on HT12D reflects the data present on pins AD8 through AD11 of the HT12E. It can be concluded that the device performs as a  receiver of 4-bit data (16 possible codes) along with 8-bit addressing (256 possible channels).

Transmitter circuit

The connection of switches and encoder pins is established on basis of this table:

Switches Pins of encoder HT12E Purpose
S1 AD8 Forward motion
S2 AD9 Reverse motion
S3 AD10 Left motion
S4 AD11 Right motion

Resistor R1 controls the transmitter frequency as it is adjusted in between the oscillator pins 15 and 16.

The TE pin of encoder HT12E is grounded to make it permanently enabled for transmission. For instance, let’s say switch S1 is on, then that particular data transmits serially from DOUT pin through the RF ASK transmitter module. A 9V battery is used as the power source to supply power to the circuit.

Receiver and Motor Driver Circuit

In the project, we assume that address pins on the encoder and the decoder are identical. When any switches(S1-S4) on the transmitter circuit are closed, the corresponding data pin of the decoder falls low. Then the data outputs obtained from pins D8 through D11 of the decoder are fed to pins 2 through 5 of the Arduino UNO board. Doing so, logic outputs are obtained from pins 8 through 11 of the Arduino UNO board.

receiver circuit of arduino and rf controlled robot

Now, so as to drive both the motors M1 and M2 these Arduino outputs are passed as inputs to IN1 through IN4 of L293D (IC3) to as shown in Fig. 3. OUT1 and OUT2, OUT3 and OUT4 drive motors M1 and M2 respectively. To get permanently enabled output at the end, enable pins EN1 (pin 1) and EN2 (pin 9) to be connected to Vcc. Regulator 7805 (IC4) is a must in this project to supply constantly regulated 5V power to the receiver.

Construction OF Arduino and RF Controlled Robot

Fig 3. depicts the one-side PCB layout of the RF transmitter. The component layout is given in Fig. 4. Fig. 5 constitutes the PCB layout of the receiver along with the component layout in fig. 6. The circuit for the RF transmitter and receiver is shown in Fig. 1 and Fig. 2 respectively. To simplify and extend connections to the motors and battery glued on the chassis of the robot, a separate connector arrangement has been made on the RF receiver PCB.

solder side transmitter pcbFigure 3: Transmitter unit Solder Side

component side transmitter unit pcbFigure 4: Component Side Transmitter Unit PCB

solder side receiver unit PCB

Figure 5: Solder Side Receiver Unit PCB

component side receiver unit pcb

Figure 6: Component Side Receiver Unit PCB

CLICK HERE TO DOWNLOAD PCB DIAGRAM

Software

At the end of this project, you can see the link to get the source code file of the project (RFROBOT.INO). It is well known that the Arduino Uno device is programmed with Arduino IDE software. IT is much easy to upload new code to the Arduino without the help of an external hardware programmer since the microcontroller ATmega328 on the Arduino Uno is pre-burned with a bootloader initially. For communication, it employs STK500 protocol. However, one can ignore the bootloader and feed the program into the microcontroller through the ICSP (in-circuit serial programming) header. To complete the project in time and make it easy, it is considered wise to use a bootloader.

CLICK HERE TO DOWNLOAD SOFTWARE CODE

PARTS LIST OF ARDUINO AND RF CONTROLLED ROBOT

Resistors (all ¼-watt, ± 5% Carbon)
R1 = 750 KΩ

R2 = 33 KΩ

R3 = 330 Ω

Capacitors
C1 = 0.1 µF (Ceramic Disc)
Semiconductors
IC1 = HT12E (Encoder IC)

IC2 = HT12D (Decoder IC)

IC3 = L293D (Motor Driver IC)

IC4 = LM7805 (5V Regulator IC)

LED1 = 5mm Any Color LED

TX1 = 433MHz RF ASK Transmitter

RX1 = 433MHz RF ASK Receiver

ARD1 = Arduino Uno Board

Miscellaneous
SW1 – SW4 = Push—to-on tactile Switch

M1, M2 = 12V, 100-RPM Geared Motor

BATT1 = 9V Battery

BATT2 = 12V Battery

 

Leave a Comment