This project involves controlling a robot using a mobile phone. In the course of a call, if any button is pressed, a tone corresponding to the button pressed is received at the other end of the call. This tone is called DTMF (Dual Tone Multiple-Frequency).
The robot perceives this DTMF tone with the help of a phone stacked on it. The received tone is processed by the micro-controller with the help of a DTMF decoder.
The micro-controller then transmits the signal to a motor driver IC which in turn operates the motors and the robot moves accordingly. The working range is as large as the coverage area of the service provider.
The objectives of this project are:
1. To implement DTMF as a method of communication.
2. To build an intelligent robotic system which offers ease of access and control to the user.
3. To establish a robust communication channel by the use of GSM network through a mobile phone.
For more information on DTMF, click here.
ATmega16 is a 40 pin micro-controller. There are 32 I/O (input/output) pins which are divided into four 8-pin ports designated as PORTA, PORTB, PORTC and PORTD.
Each port is controlled by three 8-bit registers: DDRx, PORTx and PINx, where x is the port identifier (A or B or C or D).
DDRx : Data Direction Register, configures the pins as either inputs or outputs.
PORTx : Output port register. Sets the output value on pins configured as outputs. Enables or disables the pull up resistor on pins configured as inputs.
PINx : Input register used to read an input signal. On some devices (but not all, check the datasheet), this register can be used for pin toggling: writing a logic one to a PINx bit toggles the corresponding bit in PORTx, irrespective of the setting of the DDRx bit.
Use of ATMEGA16 in the project:
Here, in this project the micro controller is mainly used as a decision making device. The output of the DTMF decoder is given as input to the controller. The controller processes the input and produces a corresponding digital output to the motor driver.
The PORTB is taken as the input and PORTD as the output.
The output pins – Q4, Q3, Q2, Q1 of the decoder are connected to PB0, PB1, PB2, PB3 of the input of the micro-controller while the output pins of micro-controllers – PD3, PD4, PD5, PD6 are given to the motor driver.
Here is an instance to explain the working of the micro-controller.
Suppose the key 6 in the remote cellular phone is pressed. The DTMF decoder processes this information and gives binary value of 6 ‘0110’ to the controller. The controller is programmed such that “0110” means right turn. Hence it drives the left motor in forward direction and right motor in reverse direction i.e. a right turn.
L293D Motor driver IC:
L293D is a dual H-bridge motor driver integrated circuit (IC). Motor drivers act as a buffer between the low power consuming micro-controller and the high power consuming motor.
L293D contains two inbuilt H-bridge driver circuits. In its common mode of operation, two DC motors can be driven simultaneously, both in forward and reverse direction.
The motor operations of two motors can be controlled by input logic at pins 2 & 7 and 10 & 15.
Input logic 00 or 11 will stop the corresponding motor. Logic 01 and 10 will rotate it in clockwise and anticlockwise directions respectively.
Use of L293D in the project:
The L293D is mainly used as a buffer between the micro-controller and motors. The output of the controller is given as the input pins – 2, 7, 10& 15 of the driver.
The 2 half’s of the L293D is enabled by making the pins – 1 & 9 high. The 8th pin (Vss) is connected to the higher voltage required to drive the motor.
1. When the signal at the input pin is high, the output of the driver gets internally connected to Vss.
2. When the input pin is low, the output of the driver gets internally connected to the ground (0 V).
3. When one input is high and the other is low, then a polarity difference is produced between the terminals of the motor. Based on the polarity the motor rotates either in the forward or the backward direction.
1. Connect the cell phone to circuit through audio jack.
2. Call the cell phone from a remote phone.
3. Press numbers on the keypad in the course of the call.
4. Now DTMF tones are sent by remote phone to the circuit
5. The Decoder IC decodes the tone and sends equivalent binary number to the micro-controller.
6. Robot will work according to the program set in the micro-controller.
Picture of the final robot: