‘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 which 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 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; 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.
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 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 address and four address/data lines respectively. As soon the TE pin; transmit-enable pin is low, the data set on these twelve lines (eight address 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 than that of pulse width for ‘1’.In accordance with the resistor value between OSC1 and OSC2 pins, the corresponding frequency of these pulses fall in the range of 1.5 to 7 kHz.
In the Holteks’ pair, the decoder; HT12D has 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 valid transmission pin (VT) goes 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).
The connection of switches and encoder pins is established on basis of this table:
|Switches||Pins of encoder HT12E||Purpose|
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 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 is closed, the corresponding data pin of the decoder falls low. Then the data outputs obtained from pins D8 through D11 of decoder are fed to pins 2 through 5 of Arduino UNO board. Doing so, logic outputs are obtained from pins 8 through 11 of Arduino UNO board.
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 permanent enabled output at the end, enable pins EN1 (pin 1) and EN2 (pin 9) are 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 PCB layout of the receiver along with component layout in fig. 6. The circuit for 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, separate connector arrangement has been made on the RF receiver PCB.
Figure 5: Solder Side Receiver Unit PCB
Figure 6: Component Side Receiver Unit PCB
At the end of this project, you can see the link to get 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 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 microcontroller through the ICSP (in-circuit serial programing) header. To complete the project in time and make it easy, it is considered wise to use bootloader.
PARTS LIST OF ARDUINO AND RF CONTROLLED ROBOT
|Resistors (all ¼-watt, ± 5% Carbon)|
|R1 = 750 KΩ
R2 = 33 KΩ
R3 = 330 Ω
|C1 = 0.1 µF (Ceramic Disc)|
|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
|SW1 – SW4 = Push—to-on tactile Switch
M1, M2 = 12V, 100-RPM Geared Motor
BATT1 = 9V Battery
BATT2 = 12V Battery