Wednesday, December 3, 2014

Animatronic Arm / Hand Gesture control RF Robot

Abstract: In this project we are going to design an Animatronic Arm/Hand Gesture RF robot, It has two functions
1. RF based Animatronic Arm/Hand Gesture 
2. RF controlled mobile Robot

The system block diagram is shown in the below figure. It contains
a). Flex Sensors 
b). Opamps
c). ATmega16-A board
d). 433MHz RF transceiver s
e). 8052 controller
f). DC Motors and servo motors
g). HT12D and HT12E 
h). Motor driver L293D

Working of Mobile Robot: 
At the transmission section we have HT12E with 4 push buttons and a 433MHz transmitter as shown in fig.1, 4 buttons are used for forward,backward, left and right controls.

At the receiver section RF receiver will receive the transmitted data and HT12D decodes the received data and sends 4-data bits to the motor driver L293D as shown in fig.2.

Block Diagram
Fig.1 Transmitter Circuit for Robot Movement
Fig.2 Receiver Circuit for DC motor Controlling
Working of Animatronic Arm:
Flex sensors are a kind of variable resistors, who's resistance varies with flexing. This application is used in animatronic arm. The basic circuit of flex sensor is shown in the below circuit, it is connected as a potential divider circuit and the output is connected to a buffer. The voltage variation can be calculated by 'Vout' equation.


Here we used two flex sensors for two fingers. Output of the buffers are given to the analog pins of ATmega16-A board. Inside the controller analog data is converted to digital form and based on the two output values 4-bit data is sent to the I/O ports. 4-bit output is then given to the HT12E encoder and it transmits the data as shown in fig.3 and 4

Fig.3 Flex Sensor circuit

Fig.4 ATmega16-A circuit for data processing
At the receiver side the received is then decoded and given to the 8052 controller. The code is written such that the animatronic arm imitates your fingers based on the flex sensor voltage values.  The pulse width of the servo motors is changed according to the received data. The total pulse width is 20ms. for a 1 ms ON time it will be at 0 degrees and for 1.5 ms ON time shaft position will be at 90 degrees and for 2 ms ON time at 180 degrees as shown in the below fig.5 and 6

Fig.5  Receiver Circuit interfaced with 8051
Fig.6 servo motor interface with 8051
Working Video:

Resources:

1. ATmega16-A Transmitter CODE Download the code here
2. 8052 Receiver CODE Download the code here

NOTE: 
1. Since we used two pairs of RF transceivers we used different address at HT12D/E
2. We have designed it for only two fingers and a basic movement.
    For 5 fingers and much more degree of freedom use 5 flex sensors and Zigbee module 

Sunday, November 23, 2014

GSM Interfacing with Arduino Uno board/ Temperature monitoring using LM35

Abstract: In this project we are going to develop a system, which will monitor temperature in the surroundings and sends a message to the corresponding person. We used GSM SIM300 Modem, Arduino Uno board and LM35 sensor. This system can be installed in Forests, Industries and even in homes to monitor the fire accidents and intimates the person to take immediate action.

Figure below shows the circuit connections.

LM35 is a temperature sensor,who's output varies according to the temperature variations. Every 1 degree C temperature variation changes its output voltage by 10mv. If the current room temperature is 25 degree C then the output voltage will be 0.30 volts. Vcc of LM35 is connected to 5v supply of Arduino Uno , Analog output and GND pin to A0 pin ,GND of Arduino pin respectively.

GSM interfacing to Arduino Uno board:

Connect Receiver pin of GSM modem to the Transmitter pin of Arduino Uno, Transmitter pin of GSM modem to Receiver pin of Arduino Uno and connect both the grounds. Insert SIM and plug the modem. Wait for the GSM modem to get network, indicated by LED blinking. 

Flow chart: 



Resources:

1.  to download the Arduino Uno Code
2.  to see LM35 datasheet

Friday, November 7, 2014

DHT11 Interfacing with MATLAB and Arduino

Abstract: In this project we are going to interface digital Humidity and temperature sensor (DHT11) with Arduino Uno board and with MATLAB. we are going to display the temperature and Humidity data, received from DHT11, in LCD screen and also plotting them in MATLAB simultaneously.

From the datasheet it mentioned that DHT11 outputs 40bits of data. It contains 8-bits integral RH data+ 8-bits Decimal RH data+8-bits Integral Temperature data+8-bits decimal Temperature data+8-bits check sum. Read datasheet[3] for more details. The library for DHT11 sensor is available in the resources. Add the library[4] in this path "C:\Program Files (x86)\Arduino\libraries\DHT11" (In my case). 

Connect DHT11 sensor to the Arduino Uno board as shown in the below figure and also plug your Arduino board to PC/Laptop.
Now open Arduino IDE tool and run DHT11_Arduino_code[1] and upload it on to the board.
Open MATLAB and run the DHT11_MATLAB_code[2].  
                                      
                                                         Working Video
Resources: