Friday, December 9, 2011

DTMF-controlled robot design

Today, I thought of a very simple robot control circuit using DTMF tones.


Dual-tone multi-frequency (DTMF) tones are the sounds you hear when you press keys on a telephone keypad. You can buy a very simple IC (usually used in answsering machines and the like) that takes care of all the filtering and decoding necessary to determine which key was pressed. And because it's just an analog audio signal that is being exchanged, I can use a number of ordinary, low-cost audio transmitter/reciever pairs for sending that audio signal.


The design of the circuit for decoding DTMF tones is pretty straightforward. The CM8870 IC interprets the tones as a 4-bit digital signal. The HCF4514 IC then decodes and stores this onto 16-lanes of output which will switch transistors, which will switch automotive relays, which will operate motors that move the robot.


When all put together, I will send the DTMF tones over an old 900MHz cordless phone, providing a range of several hundred feet. Because DTMF tones operate within the audible range, in the future I could swap out the cordless phone for a newer one, or a pair of FRS radios, or some other audio transmitter/reciever pair. It doesn't really matter.


So then based on which key is pressed, the robot will be able to interpret the tone and activate relays and such to turn on motors and move about.

The 16-lane output will drive a set of trabsustirs, which will in turn drive a set of much larger automotive relays, to switch a pair of drill motors, as well as motors that will rotate the camera-equipped head left and right.

Speed will be controlled in steps using a few high-load resistors taken from the drills. Three speed settings should be plenty.

There will also be a couple buttons left over for arms and stuff that I might add later....maybe to toggle an series of IR diodes for night-vision...or to discharge a linear magnetic accelerator....who knows?
The robot itself will basically be a box (made of either wood or sheet metal, depending on how the funds work out.) It should measure roughly 1 foot by 1.5 feet.

At the center of mass will sit a 12-volt SLA (sealed lead acid) battery (the kind used in uninterruptable power sources and electric wheelchairs). Two 12-volt drill motors will be connected with bicycle chains and sprockets to four wheels, providing 4WD mobility for the unit. I have no experience in making chained drivetrains, so I'll learn as I go.

Power for the robot will all come from the 12-volt SLA battery. One regulated DC-to-DC converter will provide 9-volt power to the telephone reciever and to the wireless camera. Another regulated DC-to-DC converter will provide 6-volt power to the logic circuits. This power will then go through an L78M05CV 5-volt regulator to get the proper voltage to the sensitive ICs

As I mentioned eariler, atop the robot will be mounted a wireless camera that will be rotatable left-to-right with the use of a motor. This will provide a remote view of the robot's surroundings, and should transmit a good 100-200 feet. And I may add a bank of IR LEDs to give it some nightvision. That would be sweet.
That's All , now Let's Start ..

Thursday, January 20, 2011

How to make Line follower robot


Line Follower ROBOT 



I designed my Robot, which use two motors control  rear wheels and the single front wheel is free. It has 4-infrared sensors on the bottom for detect black tracking tape, when the sensors detected black color, output of  comparator, LM324 is low logic and the other the output is high.
Microcontrollor AT89C2051 and H-Bridge driver L293D were used  to control direction and speed of motor. 

Fig 1. Circuit diagram of my Robot.



 
Fig 2. Circuit diagram of Infrared sensors and comparators. 
 
 
 
  
 

Fig 4.  Position of sensors,  left hand side is
side view and right hand side is top view.



 
Program In C-language
 
#include d:\mc51\8051io.h
#include d:\mc51\8051reg.h
extern register unsigned char speedleft,speedright;
register unsigned char high,low,flag,time;

main()
{
  P1=0x40;
  P3=0xff;
  high = 80;
  low  = 30;
  flag = 0;
  time = 50;
  Start();
    while(1) {
              P3|= 0x0f;
              Run();
              }
}

Start()
{
  char exit,key;
  exit =1;
     while(exit)
      {
        key = P1;
        if((key & 0x40)==0) exit=0;
      }
}          

Run()
{
   char sensors;
   sensors = (P3 &=0x0f);

       if((sensors & 0x01)==0) {
        TurnRight();
        flag = 1;              }

 else  if((sensors & 0x08)==0) {
         TurnLeft();
         flag = 2;             }
 else  if(sensors == 0x09)    {
        Forward(high);
        flag = 0;              }

 else  if(((sensors==0x0b)||(sensors==0x0d))&&(flag==0))
          Forward(low);

}

Forward(char speed)
{
  P1=0x64;
  speedright = speed+10;
  speedleft  = speed;
  delay(time);
}

TurnRight()
{
  P1=0x68;
  speedright = low+5;
  speedleft  = low;
  delay(time);
}

TurnLeft()
{
  P1=0x54;
  speedright = low+5;
  speedleft  = low;
  delay(time);
}

Reverse(char speed)
{
  P1=0x58;
  speedright = speed;
  speedleft  = speed+5;
  delay(time);
}

How to make Line Follower Robot