Anti-Terrorist Vehicle

 

CHAPTER - 1

INTRODUCTION

            A robot is defined as “re-programmable multi-functional manipulator”. In simple words, it is a mechanical which consists of sensing and executing organs, controlled by an electronic “brain”  that can perform  a number of operations  independently  within a confined space. The robot movements are controlled  by a computer and future  movements can be stored in micro controller,  and thus  its job assignments can be changed  by reprogramming micro controller.

 

            A computer  controls the robot movements, and thus reprogramming can change its job assignments. The robot  described  here has a Pick-n-Place job and its movements are controlled by computer.  The main future of  this robotic  system is that, this system adopts  a wireless  radio-link  between  the controller  i.e., computer and the micro controller resided  inside  the Robot.  Here all the command signals from the computer are conveyed  to the remotely located robot with  the aid of IR communication.  The commands  received from the computer  are verified  by micro controller and finds suitable  then only executes them.

                                                                                                   

            Robots today are being employed to release  man from heavy, tedious, monotonous work like pick and placing objects or to work under conditions where human beings cannot function effectively.  This project demonstrates the operation of a pick-n-place arm, which is capable  of picking object and place in intended  place without any human intervention.  This Robotic arm is very  useful in factory or large industries where mass production is taking place and pick-n-placing  the product is a major headache.

 

            In brief : The ‘Remote Controlled Robotic Model Robotic Gripper’  project has two parts: Transmitter  and Receiver. The  transmitter  part consists of computer and software module,  interface module and RC5 transmitter. The  commands  are sent by the user through  computer  and the intended software. These commands  are in RC5 (recommended code) from, and are transmitted  to the robotic  arm through Infra-Red packets.

 

            The receiver part receives  the RC5  coded signals and fed to PIC micro controller chip.  This micro-controller  decodes  RC5 codes  back to original  commands  and executes  them as  needed.  Here the decoded  signals  are properly  routed  using switching  circuit.  The output of the switching  circuit controls  the movement of the Robotic Arm.  If the command says to run Right/Left  or move Up/Down it does so by activating  the respective motor and thus fulfilling  the need.  The receiver part thus has three  motors up and down  movement, Left/Right turn, and last one for Gripper.

 

            The project works in two modes, Auto and Manual. In auto mode, one can program the schedule of Robotics arms movement and move it accordingly. In  manual mode user can interact with the robotic arm in real time and move it according  to his need.

CHAPTER - 2

RECENT DEVELOPMENT

            Robotic systems have developed  much beyond the first deaf, blind and dumb  generation  of robots  used in the industrial floor in the early days. Robots  developed today are used in areas which would  previously  have been  unimaginable : in surgery, in the after care of patients  in hospitals, in guarding prisons,  in space  exploration, underwater  expeditions, in restaurants and bars, in industries  and even at homes.

 

            Viewers of the recently screened movies, viz.,  Independence Day, Mars Attack, Artificial  Intelligence, Star Wars, The Black Hole, The Empire Strikes  Back  and For your eyes only, were thrilled  by the performance  and capacity  of the robots. One  of the fastest  developing   technologies  today is robotics, and companies  well known  in other fields, such as car manufacturing, are now contributing to the growth of industrial robots.  Robots  have assumed a great  significance  in the industrial  world today, what follows   is a brief  introduction  of this electronically  controlled  marvel.

 

            The Czech writer Karel Capek coined  the word ‘Robot’ in 1920  to denote  a machine in the form of a man. His play ‘Rossum’s Universal Robots’ had a human  named  Rossum  who created a race to serve the mankind. Later these robots discovered  that they too  had emotions  like human  beings,  a sense of feeling (they cared  for each other), and deciding that  they could not longer serve the mankind,  proceeded  to take over the world.

 

            Robots today are being employed to release man from heavy, tedious, monotonous work line arc welding or to work under  conditions  where human  beings  cannot function  effectively, such as underwater  explanation, space exploration, noxious  gaseous environments, high operating temperatures  shifting  humidity, inaccessible  locations like nuclear  reactors etc.

 

            Robots have been on the industrial   scene  since the early sixties. However, their  high cost precluded wider  acceptability. Today, by incorporating microprocessors, the cost is falling  while their  accuracy  is increasing.

 

            Countries  like Japan, the USA, the USSR, West Germany and France have over 1500 robots each installed  in their various  factories, with the United  States and Japan  accounting for nearly 75 percent of their use. The factors  responsible for this high percentage are shortage  of labor in Japan and high labor cost in the USA.  In India, HMT in Bangalore and Telco in Pune have begun manufacture of industrial robots.

 

 

 

 

CHAPTER - 3

Anti-Terrorist Vehicle

Consider a hostage situation where many lives are at risk and add to it the lives of our brave soldiers who are sent in the line of fire to face the music. To facilitate their movement and to take a preview of the situation and also to take some minor risks and get proper information about the scene we propose an Anti-Terrorist Vehicle, which will be quite agile and can cause some damages to the enemy.

           

            The benefits of the same vehicle can be extended up to the remote surveillance of potentially harmful and hazardous places like the power plants and also the leaky gas plants by just changing the gun to the appropriate extinguisher. It can also be used by defense for its remote surveillance purposes.

 

            Our ATV (Anti-Terrorist Vehicle) will employ a series of motors and a remote control logic, which will be having a set of encoders, transmitters, decoders and receivers. It will also facilitate the movement of the neck, waist, arm and the forward  / reverse and the turning movements. Figure 1 depicts a rough shape of the proposed ATV and will employ all the above-mentioned features.


 

 

 

 

 

 


Fig 3.1:   Depicts the rough shape of an Anti-terrorist vehicle

BLOCK DIAGRAM:

 

Text Box: Relay Drivers and Relay Control Mechanism

 

 

 

 

 

 

 

 

 

 


Fig 3.2: Depicts the block diagram of Anti-Terrorist System

 

            This project will facilitate the understanding of the following topics:

Ø  Coding in Assembly for 89c51 series Micro controller for time constraint acquisition and transfer of data.

Ø  Relay mechanism through ULN2003.

Ø  DC Motor control mechanism.

Ø  Stepper Motor control mechanism.

Ø  Remote control mechanism through micro controller.

 

            The AT89C51 micro controller is the robot's brain and controls the robot's movements. It's usually acts like a device, which is used to store information about the robot and the work environment and to store and execute programs, which operates the robot. The control system contains programs, relay control mechanism and various other processing activities, which enable the robot to perform.

 

            A remote control sends instructions from a human operator through remote. The body of a robot is related to the job it must perform. The Tri-Wheeler base allows for the movement of the robot in all the directions facilitating the Forward /Reverse and Left/Right movements. At the arm we are placing a gun, which will be able to fire in the required direction indicated by controller. We will also be fixing a Camera on Board and a light on the rotate table head as to remotely observe and control. 


CHAPTER - 4

COMPONENT AND PARTS

4.1 Micro-controller 89c51

            The AT89C51 is a low-power, high-performance CMOS 8-bit microcomputer with 4K bytes of Flash programmable and erasable read only memory (PEROM). The device is manufactured using Atmel’s high-density nonvolatile memory technology and is compatible with the industry-standard MCS-51 instruction set and pinout. The on-chip Flash allows the program memory to be reprogrammed in-system or by a conventional nonvolatile memory programmer. By combining a versatile 8-bit CPU with Flash on a monolithic chip, the Atmel AT89C51 is a powerful microcomputer which provides a highly-flexible and cost-effective solution to many embedded control applications.

 

  • Internal ROM and RAM
  • I/O ports with programmable pins
  • Timers and counters
  • Serial Data Communication

 

            The figure also shows the usual CPU  components : program counter, ALU, working registers, and clock circuits.

 

           

The 89c51 architecture  consists of these specific features:

Ø  Eight bit CPU with registers A (the accumulator) and B

Ø  Sixteen bit program counter (PC) and data pointer (DPTR)

Ø  Eight bit program status word (PSW)

Ø  Eight bit stack pointer (SP)

Ø  Internal ROM or EPROM  (8751) of 0 (8031)  to 4K (89c51)

Ø  Internal RAM  of 128 bytes :

·                     Four registers banks, each containing eight registers

·                     Sixteen bytes, which may be addressed  at the bit level

·                     Eighty bytes of general purpose data memory

Ø  Thirty two input/output pins arranged as four 8 bit ports : P0 – P3

Ø  Two 16 bit timer/counters : T0 and T1

Ø  Full duplex serial data receiver / transmitter : SBUF

Ø  Control registers : TCON, TMOD, SCON, PCON, IP and IE

Ø  Two external and three internal interrupt sources

Ø  Oscillator and clock circuits

            The programming model of the 89c51 in Fig.  shows the 89c51 as a collection  of 8 and 16 bit registers and 8 bit  memory locations.  These registers  and memory locations  can be made to operate using the software instructions that are incorporated  as part of the design.  The program instructions have to do with the control  of the registers   and digital  data paths  that are physically  contained  inside the 89c51, as well as memory  locations that are physically located  outside the 89c51.

Circuit  Diagram

 

 

Fig. 4.1

            The AT89C51 provides the following standard features: 4K bytes of Flash, 128 bytes of RAM, 32 I/O lines, two 16-bit timer/counters, a five vector two-level interrupt architecture, a full duplex serial port, on-chip oscillator and clock circuitry.

 

            In addition, the AT89C51 is designed with static logic for operation down to zero frequency and supports two software selectable power saving modes. The Idle Mode stops the CPU while allowing the RAM, timer/counters, serial port and interrupt system to continue functioning. The Power-down Mode saves the RAM contents but freezes the oscillator disabling all other chip functions until the next hardware reset.

Pin Configurations

 

 

 

 

 

 

 

 


Fig. 4.2

Pin Description

VCC Supply voltage.

GND Ground.

Port 0

Port 0 is an 8-bit open-drain bi-directional I/O port. As an output port, each pin can sink eight TTL inputs. When 1s are written to port 0 pins, the pins can be used as highimpedance inputs.

Port 0 may also be configured to be the multiplexed loworder address/data bus during accesses to external program and data memory. In this mode P0 has internal pullups.

Port 0 also receives the code bytes during Flash programming,  and outputs the code bytes during program verification. External pullups are required during program verification.

Port 1

Port 1 is an 8-bit bi-directional I/O port with internal pullups. The Port 1 output buffers can sink/source four TTL inputs. When 1s are written to Port 1 pins they are pulled high by the internal pullups and can be used as inputs. As inputs, Port 1 pins that are externally being pulled low will source current (IIL) because of the internal pullups.

Port 1 also receives the low-order address bytes during Flash programming and verification.

Port 2

Port 2 is an 8-bit bi-directional I/O port with internal pullups.

The Port 2 output buffers can sink/source four TTL inputs.

When 1s are written to Port 2 pins they are pulled high by the internal pullups and can be used as inputs. As inputs, Port 3 is an 8-bit bi-directional I/O port with internal pullups.

The Port 3 output buffers can sink/source four TTL inputs.

When 1s are written to Port 3 pins they are pulled high by the internal pullups and can be used as inputs. As inputs, Port 3 pins that are externally being pulled low will source current (IIL) because of the pullups.

Port 3 also serves the functions of various special features

of the AT89C51 as listed below:

Port 3 also receives some control signals for Flash programming and verification.

 

 

 

 

 

Table 4.1

RST

Reset input. A high on this pin for two machine cycles while the oscillator is running resets the device.

ALE/PROG

            Address Latch Enable output pulse for latching the low byte of the address during accesses to external memory. This pin is also the program pulse input (PROG) during Flash programming.

 

            In normal operation ALE is emitted at a constant rate of 1/6 the oscillator frequency, and may be used for external timing or clocking purposes. Note, however, that one ALE pulse is skipped during each access to external Data Memory.

 

            If desired, ALE operation can be disabled by setting bit 0 of SFR location 8EH. With the bit set, ALE is active only during a MOVX or MOVC instruction. Otherwise, the pin is weakly pulled high. Setting the ALE-disable bit has no effect if the microcontroller is in external execution mode.

PSEN

            Program Store Enable is the read strobe to external program memory. When the AT89C51 is executing code from external program memory, PSEN is activated twice each machine cycle, except that two PSEN activations are skipped during each access to external data memory.

 

EA/VPP

            External Access Enable. EA must be strapped to GND in order to enable the device to fetch code from external program memory locations starting at 0000H up to FFFFH. Note, however, that if lock bit 1 is programmed, EA will be internally latched on reset. EA should be strapped to VCC for internal program executions. This pin also receives the 12-volt programming enable voltage (VPP) during Flash programming, for parts that require 12-volt VPP.

 

XTAL1

            Input to the inverting oscillator amplifier and input to the internal clock operating circuit.

 

XTAL2

            Output from the inverting oscillator amplifier.

 

            The model   is complicated  by the number of special purpose registers that must  be present   to make a microcontroller. A cursory inspection of the model is recommended  for the first time viewer, return  to the model  as needed while progressing  through the remainder  of the text.

 

            Most of the registers have a specific functions,  those that do occupy  an individual  block with a symbolic  name, such as A or THO or PC. Others,  which are generally indistinguishable from each  other, are grouped  in a larger block, such as internal ROM  or RAM memory.

 

             Each register,  with the exception of the program counter,  has an internal 1 byte address assigned to it. Some registers (marked with an asterisk  in Figure) are both byte and bit  addressable.  That is,  the entire byte of data at such register  addresses may be read or altered, or individual  bits may be read or altered.  Software  instructions  are generally able to specify a register by its address,  its symbolic name, or both.

 

            A pinout of the 89c51  packaged in a 40 pin DIP is shown in Figure with the full and abbreviated names of the signals for each pin.  It is important to note that many of the pins are used for more than one function (the alternate functions are shown in parentheses in Figure). Not all of the possible 89c51 features may be used  at the same time.

 

            Programming instructions or physical  pin connections determine the use of any multifunction  pins. For example, port 3 bit 0 (abbreviated P3.0) may be used as a general purpose I/O pin, or as an input (RXD) to SBUF,  the serial data receiver register. The system designer  decides  which of these  two functions  is to be used  and designs  the hardware  and software  affecting  that pin accordingly.

 

4.2 Relay Switch

            Basically, an electrical relay is employed  to have a simple ON/OFF  switching  action in response to a signal  issued by a control system. The electrical  relay also known as a magnetic  relay.  This relay  uses an iron  armature  and an energized coil to operate  a pair  of electric  contacts as shown in Figure. Figure shows  the cross section of a relay  in the de-energized  positioned.  When the current flow through  the coil,  the armature  is pulled down against the iron core.  This closes  the set of contacts which can complete  another  electric circuit.  When current stops flowing  in the coil,  the spring pulls  the armature up and opens  the contacts.

Fig. 4.3

Relay to Transmitter

            Relays are manufactured  in a wide variety  of ratings  for both the coil and the contacts.  Coils are rated for both the current  required  to energize  the relay and the voltage  required  to produce that current.  The contacts  are also rated for both current  and voltage,  just as any switch  is rated. Relays  have often more than  one set of contacts.  The contacts may  be either  normally  open or normally  closed  or a mixture  of both.  The relay  may be energized  by either  alternating  current or direct current.  However,  ac and dc relays  are not interchangeable.

 

            One of the chief advantages  of relay  over a simple switch  is that,  it allows  remote  operation.  A low voltage, low current  supply  can control the relay coil. The switch  that operates the coil can be located in a remote place. Only a small two conductor cable has to run between the switch  and the relay.

 

4.3 Sensor

            A sensor is an element in a mechatronic system that acquires  the change in state of a physical  parameter and changes it into a signal  that can be processed  by the system.

 

            Often  the active element of a sensor is also referred  to as a transducer  to measure  physical  quantities  such as pressure, force, temperature, strain, position, distance, acceleration etc. Infra Red Sensors are used in the ATV.

 

            The design  of sensors and transducers always involves the application of some law or principles of physics  of chemistry that relates the quantity   of interest  to some from of measurable  event.

 

4.4 Motor

            An electric motor utilizes electric energy and magnetic energy to produce mechanical energy. The operation of a motor depends on the interaction  of two  magnetic fields.  Simply stated, an  electric motor operates  on the principle  that two magnetic fields  can be made to interact to product motion. The purpose  of a motor is to produce a rotating  force (torque).

 

 

 

Fig. 4.4

Fig. 4.5

 

 

 

 

 

 

Fig. 4.6

 

Fig. 4.7

 

            Electric motors  are used extensively as the final control element in many mechatronic  systems. Motors can be classified  into two major classes:

  1. D.C. Motors
  2. A.C. Motors

 

            The majority of motors used in mechatronics systems are belong to the d.c. motors.

            In the conventional D.C. motor, coils of wire are mounted  in slots on a cylinder  of magnetic  material known as armature. The shaft  carrying  armature is mounted on bearings so as to rotate freely.  The armature is mounted   in the magnetic field produced by fields coils. The end of each  armature  coil are  connected to adjacent segments of a segmented  ring called  the commutator with electrical contacts  made to the segments  through carbon contacts called brushes. As the  armature rotates,  the commutator reverses the current in each coil  as it moves between the filed  coils.  This is required, if the  forces acting on the coil are to remain acting in the same direction  and so the rotation continue. The direction of rotation of D.C. motor can be reversed by reversing either  the armature current  or the field current.

 

4.4.1 D.C. Motor

            The speed of a dc motor can be represented as,

                                    k (Va – IaRa)

                        N =

                                                f

            Neglecting armature voltage drop, the above equation can be written as

                                    k1Va

                        N =

                                        f     

Where

            N         =          Speed (RPM)

            Ia          =          armature current

            Va        =          armature voltage

            f          =          field flux

            k          =          Proportionality constant

            From the above equation  it is possible to draw the following  points in connection  with the speed control of D.C. motors.

  1. Permanent magnet DC motor : The speed depends  on the current  through the armature coil.
  2.  Field coil motors : Speed  can be changed by either varying the armature  current or the field current, but generally armature current is varied.
  3. Speed control can be obtained by varying armature voltage.

 

            With an a.c. supply, systems, the thyristor circuits can be used to control the average voltage applied  to the armature.

 

            The recent trend in control of d.c.  motors  is the use of  microprocessors  with such systems, a techniques  known as  PWM (Pulse Width Modulation) is generally  used.

 

            In the PWM  technique the average dc voltage is proportional  to the pulse width. To achieve this, PWM  amplifiers (also called  transistor choppers),  the power  switching  device, a transistor instead of SCR used. Transistors dc drives are ideal for controlling  dc motors.  The transistors are commonly  used in the switching mode at frequencies between 1 kHz and 10 kHz (pulse width modulated).

 

            Fig. shows the four quadrant operations  of a dc drive.  Four quadrant operation of an amplifier  means  the drive  is cable of :

  1. Forward running  - quadrant I
  2. Reverse running – quadrant III
  3. Forward braking – quadrant II
  4. Reverse braking – quadrant IV

 

4.4.2 Stepper Motor

            A stepper motor is an electromechanical device. It is the actuator  element of incremental  motion  in control systems.  Stepper motor, as the name indicates, it produces rotation through  equal angles called steps. When the stepper  device circuitry receives  a step pulse, it drives  the motor through a precise angle (step) and then  stops  until  the next digital pulse received  as input.  The total angular  displacement of the shaft is equal  to the step angle multiplied  by the number of step pulses received. This relation  can further be simplified  as the shaft  position is directly proportional to the number of step pulses  supplied,  since the step angle for any particular  motor is fixed.

 

            The step angle for the stepper  motor ranges from 0.450 to 900, the  most  commonly  angle being 1.80 i.e.,  200 steps per revolution.  The positional error at each step is typically  ± 5%. It is important  to note at this point  of discussion is that,  this error is not cumulative, irrespective  of the number  of pulses  supplied, the final positioned accuracy remains always with in ± 5% of one step.

 

            Another major advantages of stepper motors  over alternative drives system is that, stepper motor type positioning  control loop can be open.  This means that, there is no need for displacement transducer or complicated  closed loop feed back control systems.  This may be done by an independent  counter or by the microprocessor.  The rate of pulses to the motor can also be controlled without any feed back.

 

Description

            C51/C251 microcontroller output pins cannot directly drive stepper motors. These have to be powered before being applied to the stepper motor. This document explains uses the Programmable Counter Array (PCA) of the microcontroller to generate the control signals to the Power Interface. The Power Interface allows the microcontroller to drive enough current into coils of a stepper motor. There are two advantages to using PCA. First of all, PCA provides greater accuracy than toggling pins in software because the toggle occurs before the interrupt request is serviced. Thus, interrupt response time does not affect the accuracy of the output. Secondly the microcontroller CPU is left free for application task execution while the PCA drives stepper motors. There are two major types of stepper motors: Permanent magnet stepper motors (unipolar stepper motors and bipolar stepper motors) and variable reluctance stepper motors (hybrid stepper motors).

 

Classification of stepper motor

            The stepper motors are classified broadly into:

  1. Variable reluctance stepper motor
  2. Permanent magnet stepper motor
  3. Hybrid stepper motor

 

Variable reluctance stepper motor :

            The basic variable reluctance motor is shown in figure is of an 8 pole stator and 6 pole rotor.  The cylindrical rotor is made of soft steel has 6 poles, i.e., fewer poles than on the stator.  Each stator pole has winding  and these windings  are grouped  into 4 sets of 2 poles each . Out of 4 sets  of poles,  one set of poles  is energized  at a  time. When in opposite  pair of windings  has current   switched to them,  a magnetic  field  is produced  with lines  of force which  pass from  the stator  poles  through  the nearest set of poles  on the rotor, resulting   in rotary displacement of the rotor  i.e., 150 CW or CCW  rotation  of shaft  or rotor  takes place because  the rotor seeks to close the shortest   flux path.  This type  of stepper  motor can achieve  high stepping  rates and higher torques.  This form of stepper motor generally gives step angles of 50 or 100.

 


Permanent Magnet Motor :

            The figure shows the basic form of the permanent magnet (PM) stepper motor.  The rotor is made of ferrite  or rare earth materials  which is permanently  magnetized. The motor shown  has a stator  with four  poles.  Each pole  is wound  with a field  winding. The  coils  on opposite  pairs of poles are connected  in series.   The power  is supplied from a dc source  to the windings through  switches.  Since the rotor  is a permanent  magnet, it will move to align with those stator poles pair has a current  switched  to it. Thus,  for the current  situation, the rotor move by 450. If the current  is then switched  such that,  the polarities  are reversed, the rotor  will move  a further  450 in  order to line up again. Thus by switching  the current  through  the coils the rotor  can be rotated in steps of 450.

 

            This type of stepper motor is commonly available  in the following step angles : 1.80, 7.50, 150, 300 and 900.

 

Hybrid Stepper Motor

            The hybrid stepper motor  combines  the feature  of both PM and variable  reluctance stepper  motors.  The stator has only one set of winding  excited   poles  which  interact with the two  rotor stacks.  The permanent  magnet  is placed  axially  along the rotor in the form  of an annular cylinder over the motor shaft.  The stacks  at each end of the motor are toothed. So all the teeth  on the stack at one end of the rotor acquire the same polarity while all the teeth  are displaced from each other by one half of the tooth  pitch (also called pole pitch). 

 

 

 

 

 

Fig. 4.8

 

            The constructional details are shown in Figure for the case   of three  teeth on each stack so that tooth  pitch = 3600/3 = 1200. This  motor has a 2 phase  and 4 pole  stator.  Half  stepping  can be achieved  in a hybrid  stepper motor by exciting  phase ‘A’  and then exciting phase ‘B’  before switching  off the excitation  of phase ‘A’ and so on. If fact,  any fractional  step can be obtained  by suitably  proportionating the excitation of the two phases  such stepping  is known as  microstepping.

 

            Typical step  angles  for this type  of stepper  motors  are 150, 7.50, 20 and 0.720. The  choice of the angle  depends   upon the angular  resolution  required  for application.

 

 

 

 

 


Table 4.2  One Phase On Sequence

 

 

 

 

 

 

 

 

 

 

 

 

 

 


Figure 4.9  One Phase Steps

            In one phase mode, each successive coil is energized in turn. One phase mode produces smooth rotations and the lowest power comsumption of the three modes. Steps are applied in order from one to four. After step four, the sequence is repeated from step one. Applying steps from one to four makes the motor run clockwise, reversing the order of step from four to one will make the motor run counter-clockwise.


Two Phases On Mode

(Alternate Full step Mode)

 

 

 

 

 


Table 4.3. Two Phases On Sequence

 

 

 

 

 

 

 

 

 

 

 


Figure 4.10. Two Phases On Steps

 

            In two phase mode, successive pairs of adjacent coils are energised in turn, motion is not as smooth as in one phase mode, power comsumption is more important but it produces greater torque. As in one phase mode, applying the steps in order makes the stepper motor run clockwise and reversing order makes it turn counter-clockwise.

 

            4214B–89c51–12/02 Figure 10. Half Step Sequence Hardware The following schematics shows the power interface between the Atmel C51/C251 and a stepper motor.

           

            The four PCA pins must have the following hardware connected. Coils are connected with both center-tapped windings connected to 12V power supply.\

 

 

 

 

 

 

 

 

 


Figure 4.11. Power Interface

 

            In this configuration, the stepper motor is opto-isolated from the microcontroller with a high protection level. The 2N2222A transistor helps to drive enough current in 4N37 led (via 1kresistor). Stepper motor power is given by 12V power supply via TIP121 transistor.

            Diode on stepper motor coil is used to prevent inductive kicks produced when coil is turned off.

            Software The software of this application note (Given in appendix A), written in C language allows to make a motor turn NB_LOOP loops clockwise (or counter-clockwise) direction in half step mode.

            NB_LOOP and clockwise (or counter-clockwise) are defined in constant variable at the beginning of code, and must be defined before compilation. The user also needs to define (via constant variable) the number of steps of the motor.

            The speed of the stepper motor may be calculated with the formula:

SPEED = Speed in rotations per minute

NBSTEP = Number of step of the motor, in general written on the stepper motor itself (48, 96, 200..)

Fosc = Frequency of the oscillator in Hertz.

            For example, when using stepper motor with 200 steps and a 12 Mhz oscillator and loading THO with 0xFC, the speed is 12.2 rotations per minute. With the same formula THO is found by:

CHAPTER – 5

DESIGN OF ATV

Design

            The design of the ATV basically have been taken on the following factors:

  1. Speed of Motion
  2. Spatial Resolution
  3. Load carrying capacity

 

Speed of Motion

            The speed  capabilities  of current  industrial robots  range up to a maximum  of about 1.7 m/s (about 5 ft/sec).  This speed would be measured  at the wrist.  Accordingly, the  speeds  can be obtained  by large robots  with the arm  extended  to its maximum  distance from  the vertical  axis of the robot. As  mentioned  previously,  hydraulic  robots  tends  to be faster  than  electric  drive  robots.

 

            The speed  of course,  determines  how quickly   the robot can accomplish   a given work   cycle. It is generally  desirable  in production  to minimize  the cycle  time of a given task.  Nearly all  robots have  some means by which adjustments in the speed  can be made.  Determination of the most desirable speed,  in addition  to merely  attempting  to minimize the production  cycle time,  would also depend  on other factors, such as:

  • The accuracy  with which  the wrist (end effector)  must be  positioned
  • The weight  of the object  being manipulated
  •  The distance to be moved.

 

Spatial Resolution

            The spatial  resolution of a robot is the smallest  increment  of movement  into which  the robot can divide  its work volume.  Spatial   resolution  depends   on two factors: the system’s   control  resolution and the robot’s  mechanical inaccuracies. It  is easiest to conceptualize these  factors  in terms of a  robot with 1 degree of freedom.

 

            The control resolution  is determined by the robot’s  position control system  and its feedback  measurement systems. It is the controller’s  ability  to divide  the total  range of movement  for the particular  joint into individual   increments that   can be addressed in the controller.  The increments are sometimes  referred  to as “addressable points”. The  ability to divide  the joint range  into increments  depends  on the bit storage capacity  in the control  memory.  The number of separate,  identifiable increments (addressable points)  for a particular  axis is given by:

Number of increments = 2”

Where n = the number of bits  in the control memory.

            For example, a  robot with 8 bits of storage  can divide the range  into 256 discrete positions. The control  resolution   would be defined  as the total motion range  divided by the number of increments. We assume  that the system  designer  will make  all of the increments equal.

 

Example: Using our robot with 1 degree of freedom as a illustration, we will  assume  it has one sliding joint  with a full range  of 1.0 m (39.37 in.).  The robots control memory has a 12 bit storage capacity.  The problem  is to determine the control resolution  for this axis of motion.

Number of increments = 212 = 4096

            The total  range of 1 m is divided into 4096 increments. Each  position  will be separated by

1 m/4096 = 0.000244 m or  0.244 mm

            The control resolution is 0.244 mm (0.0096 in.).

 

Load Carrying Capacity

            The size,  configuration, construction and  drive system  determine  the load carrying  capacity of the robot.  This load  capacity  should be specified  under the condition  that the robot’s  arm is in its weakest  position.  In the case of a  polar,  cylindrical,  or jointed  arm configuration, this  would mean  that the robot arm is maximum  extension. Just as in the case of a human, it is more  difficult  to lift a heavy  with arms  fully extended  than when the arms  are held in close to the body.

 

 

Fig. 5.1


CHAPTER – 6

 

WORKING OF ATV

 

            Working of ATV  begins with the display of preview of the situation  on the screen through  a wireless  camera.  Camera captures the situation surrounding  it and inturn  it will  sends video to PC screen. 

 

            Having a proper idea of the situation  through the PC screen,  the operator can see where  actually the intruder  is moving.  With the help  of remote control unit operator  will command to Anti-Terrorist Vehicle   to set the target on intruder or terrorist with the help of Laser light  provided. When  operator  will command  to shoot the intruder  then Anti Terrorist Vehicle  will shoots him with the guns provided. Simultaneously  we can store the captured video  in the PC. 


CHAPTER – 7

CODING OF MICROCONTROLLER

DC MOTOR AND STEPPER MOTOR

/*

Code for robotic arm and P1 acts as the input and the  P0 falicilitates the movement and the control of the  DC servo motors and the P2 acts as the source to facilitate the movement of the stepper motors

*/

                        stack               equ     64h     ; decimal 100

                        temp_motor_1                      equ 31h

                        temp_motor_2                      equ 32h

                        motor_1                                  equ 33h

                        motor_2                                  equ 34h

                        updating_value                    equ 35h

 

                        ;----------- values defined in decimals -----------------

                        delay_motor_1_value         equ 45; LEAST VALUE 35; ALWAYS KEEP THE VALUE ABOVE 35

                        delay_motor_2_value         equ 45 ; LEAST VALUE 35; ALWAYS KEEP THE VALUE ABOVE 35                

                       

                        motor_steps              equ 20 ; each count equals 1.8 degrees 

                        org 0000h

                        ljmp main

                        org 0100h

main:              mov sp, #stack

                        lcall at_reset

                       

remain_here:

                        acall joystick

                        jmp remain_here

 

at_reset:         mov p0,#0ffh

                        mov p1,#0ffh

                        mov p2,#0ffh

                        mov p3,#0ffh

 

                        mov p2, #11h

                        mov motor_1, #11h

                        mov motor_2, #11h

                        acall Stop_all_motors

                        ret

joystick:          nop

read_key_agn:         mov p1,#0ffh ; enable port 1 for input

                        ;mov p3, #0ffh; enable port 3 for input

                        nop

                        nop

                        nop

                        acall delay_1ms

                        acall delay_1ms

                        acall delay_1ms

                        nop

           

                        mov a, p1

                        anl a, #0fh

                        cjne a, #0Fh, chk_Motor_1_clk

                        acall Stop_all_motors

                        sjmp out_joystick

                       

chk_Motor_1_clk:     cjne a, #04h, chk_Motor_1_anticlk

                                    sjmp Motor_1_clk    

 

chk_Motor_1_anticlk:          cjne a, #02h, chk_Motor_2_clk

                                    sjmp Motor_1_anticlk         

 

chk_Motor_2_clk:     cjne a, #01h, chk_Motor_2_anticlk

                                    sjmp Motor_2_clk    

 

chk_Motor_2_anticlk:          cjne a, #0ch, chk_Motor_3_clk     

                                    sjmp Motor_2_anticlk

 

chk_Motor_3_clk:     cjne a, #06h, chk_Motor_3_anticlk

                                    sjmp Motor_3_clk

 

chk_Motor_3_anticlk:          cjne a, #03h, chk_Motor_4_clk

                                    sjmp Motor_3_anticlk

 

chk_Motor_4_clk:     cjne a, #0eh, chk_Motor_4_anticlk;0d

                                    sjmp Motor_4_clk

 

chk_Motor_4_anticlk:          cjne a, #0bh, stop_and_exit;07

                                    sjmp Motor_4_anticlk

/*

chk_Motor_5_clk:     cjne a, #0Dh, chk_Motor_5_anticlk

                                    sjmp stepper_motor_1_clk

 

chk_Motor_5_anticlk:          cjne a, #0Eh, stop_and_exit

                                    sjmp stepper_motor_1_anticlk

*/

 

stop_and_exit:                      acall Stop_all_motors

out_joystick:              nop

                                    ret

Motor_1_clk:

                        setb p2.1 ; dir ctrl

                        clr p2.0 ; Enable movement

                        sjmp out_joystick

 

Motor_1_anticlk:

                        clr p2.1 ; dir ctrl

                        clr p2.0 ; Enable movement

                        sjmp out_joystick

 

Motor_2_clk:

                        setb p2.3 ; dir ctrl

                        clr p2.2 ; Enable movement

                        sjmp out_joystick

 

Motor_2_anticlk:

                        clr p2.3 ; dir ctrl

                        clr p2.2 ; Enable movement

                        sjmp out_joystick

Motor_3_clk:

                        setb p2.5; dir ctrl     

                        clr p2.4 ; Enable movement

                        sjmp out_joystick

 

Motor_3_anticlk:

                        clr p2.5; dir ctrl     

                        clr p2.4 ; Enable movement

                        sjmp out_joystick

 

Motor_4_clk:

                        setb p2.7; dir ctrl     

                        clr p2.6 ; Enable movement

                        sjmp out_joystick

 

Motor_4_anticlk:

                        clr p2.7; dir ctrl     

                        clr p2.6 ; Enable movement

                        sjmp out_joystick

/*

stepper_motor_1_clk: ; codes for driving the stepper motor

 

                        acall anticlockwise_motor_1

                        sjmp out_joystick

 

stepper_motor_1_anticlk: ; codes for driving the stepper motor

 

                        acall clockwise_motor_1

                        sjmp out_joystick

 

stepper_motor_2_clk: ; codes for driving the stepper motor

 

                        acall anticlockwise_motor_2

                        sjmp out_joystick

 

stepper_motor_2_anticlk: ; codes for driving the stepper motor

 

                        acall clockwise_motor_2

                        sjmp out_joystick

*/         

Stop_all_motors:setb p2.0 ; Disable base motor

                        setb p2.2 ; Disable waist motor

                        setb p2.4 ; Disable arm motor

                        setb p2.6 ; Disable grip motor

                        ret

 

/*

; ---------- codes for configurable delays ------------

delay_motor_1: 

                        push 04

                        mov r4, #delay_motor_1_value

again_delay_motor_1:

                        call delay_1ms

                        djnz r4, again_delay_motor_1

                        pop 04

                        ret

 

delay_motor_2: 

                        push 04

                        mov r4, #delay_motor_2_value

again_delay_motor_2:

                        call delay_1ms

                        djnz r4, again_delay_motor_2

                        pop 04

                        ret

 

clockwise_motor_1:;           

                        mov a, motor_1

                        rl a

                        mov motor_1, a

 

                        acall update

                        acall delay_motor_1

                        ret       

anticlockwise_motor_1:;    

                        mov a, motor_1

                        rr a

                        mov motor_1, a

 

                        acall update

                        acall delay_motor_1

                        ret       

 

update:                       push acc

                        mov a, motor_1

                        rlc a

                        mov p2.0, c

                        rlc a

                        mov p2.1, c

                        rlc a

                        mov p2.2, c

                        rlc a

                        mov p2.3, c              

                        pop acc

                        ret

 

 

clockwise_motor_2:;           

                        mov a, motor_2

                        rl a

                        mov motor_2, a

 

                        acall update_2

                        acall delay_motor_2

                        ret       

anticlockwise_motor_2:;    

                        mov a, motor_2

                        rr a

                        mov motor_2, a

 

                        acall update_2

                        acall delay_motor_2

                        ret       

 

update_2:      push acc

                        mov a, motor_1

                        rlc a

                        mov p2.4, c

                        rlc a

                        mov p2.5, c

                        rlc a

                        mov p2.6, c

                        rlc a

                        mov p2.7, c              

                        pop acc

                        ret

*/

delay_half_second:            

                        push 00

                        push 01

                        push 02

                mov r2,#16h

two_dely:       mov r1,#64h

one_dely:      mov r0,#0ffh

back:           djnz r0,back

                       djnz r1, one_dely

                    djnz r2,two_dely

                        pop 02

                        pop 01

                        pop 00

                        ret

 

;*** delay 1ms

delay_1ms:    push 06

                        push 05

                        mov r6,#04h

delay_1ms_2:           mov r5,#0e4h

delay_1ms_1:           djnz r5,delay_1ms_1

                        djnz r6,delay_1ms_2

                        pop 05

                        pop 06

                        ret

 

CODING OF TRANSMITTER

/*

The value of the 1 millisecond is just an approximation and is not exactly 1 millisecond but

slightly more than that.

*/

           

                        value_switch_1                    equ     11h     ; 0EEh

                        value_switch_2                    equ     22h     ; 0DDh

                        value_switch_3                    equ     44h     ; 0BBh

                        value_switch_4                    equ     88h     ; 77h

                        value_switch_5                    equ     33h     ; 0CCh

                        value_switch_6                    equ     66h     ; 99h

                        value_switch_7                    equ     0CCh ; 33h

                        value_switch_8                    equ     77h     ; 88h

                        value_switch_9                    equ     0EEh  ; 11h

                        value_switch_10                  equ     0DDh ; 22h

                        value_switch_11                  equ     99h     ; 66h

                       

                        org 0000h ; Starting address 

                        ljmp start_here

                       

                        org 0100h

;----------- Routine to generate 1 ms delay

delay_1ms:    push 01                                  ; gives 1 ms delay uses r1 and r1 to compute

                        push 02                                  ; push r1 and r2 to retain their pswitch_2ious values

                        mov r1, #02h           

loop2:             mov r2, #0ffh

loop1:             djnz r2, loop1                        ; loop1 and loop2 together gives a delay of approx 1 ms

                        djnz r1, loop2

                        pop 02                                    ; pop r1 and r2 so that they get their old values

                        pop 01           

                        ret

           

make_input_ready:

                        mov p1, #0FFh

                        setb p3.0

                        setb p3.1

                        setb p3.7

                        ret

 

disable_outputs:

                        clr p3.2;setb p3.2

                        clr p3.3;setb p3.3

                        clr p3.4;setb p3.4

                        clr p3.5;setb p3.5

                        ret

 

; ------------- main code -----------

start_here:     mov sp, #64h

                        call make_input_ready

                        call disable_outputs

                        clr ie.7 ; disable interrswitch_1ts

           

continue:       nop

                        nop

                        acall joystick

                        jmp continue            

 

joystick:          nop

read_key_agn:         acall make_input_ready     ; enable ports for input

                        nop

                        nop

                        nop

                        acall delay_1ms

                        acall delay_1ms

                        acall delay_1ms

                        nop

           

                        mov c, p1.0 

                        jnc switch_1

                        mov c, p1.1

                        jnc switch_2

                        mov c, p1.2

                        jnc switch_3

                        mov c, p1.3 

                        jnc switch_4

                        mov c, p1.4 

                        jnc switch_5

                        mov c, p1.5 

                        jnc switch_6

                        mov c, p1.6 

                        jnc switch_7

                        mov c, p1.7 

                        jnc switch_8

                        mov c, p3.0 

                        jnc switch_9

                        mov c, p3.1 

                        jnc switch_10

                        mov c, p3.7 

                        jnc switch_11

                       

                        call disable_outputs

return_joy:     nop

                        ret

 

switch_1:       mov a, #value_switch_1

                        acall update_on_p3

                        sjmp return_joy

 


switch_2:       mov a, #value_switch_2

                        acall update_on_p3

                        sjmp return_joy

switch_3:       mov a, #value_switch_3

                        acall update_on_p3

                        sjmp return_joy

 

switch_4:       mov a, #value_switch_4

                        acall update_on_p3

                        sjmp return_joy

 

switch_5:       mov a, #value_switch_5

                        acall update_on_p3

                        sjmp return_joy

 

switch_6:       mov a, #value_switch_6

                        acall update_on_p3

                        sjmp return_joy

 

switch_7:       mov a, #value_switch_7

                        acall update_on_p3

                        sjmp return_joy

                       

switch_8:       mov a, #value_switch_8

                        acall update_on_p3

                        sjmp return_joy

 

switch_9:       mov a, #value_switch_9

                        acall update_on_p3

                        sjmp return_joy

 

switch_10:     mov a, #value_switch_10

                        acall update_on_p3

                        sjmp return_joy

switch_11:     mov a, #value_switch_11

                        acall update_on_p3

                        sjmp return_joy

 

update_on_p3:

            ;           rl a

            ;           rl a

                        rlc a

                        mov p3.2, c

                        rlc a

                        mov p3.3, c

                        rlc a

                        mov p3.4, c

                        rlc a

                        mov p3.5, c

 

                        ret

 

                        end

 

 

 

 

 


CHAPTER – 8

ADVANTAGES

 

  1. Design  and construction is simple
  2. Working and operation is suitable with regard to the environmental .
  3. Economical profit is considerable good as it save life of the solders.
  4. Robust in construction
  5. Movement of the vehicle is easily generated
  6. ATV can be easily operated with a skill operator.
  7. Further  these vehicle is used in wide range of application.
  8. It can be truly automated.

 

 

 

 

 

 

 

 

 

 

 

 

CHAPTER – 9

DISADVANTAGES

 

  1. Complex mechanism is involved.
  2. Cost of maintenance may increase
  3. High sensitive
  4. Accuracy of the vehicle

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

CHAPTER – 10

CONCLUSION

 

            ATV has tremendous future in the defence and to control  the terrorisms in the hostage situation. Overall  scope  of the project  is to save the soldier   life and to control  the terrorism.  ATV is also applicable  to security purpose, like banks etc.

 

            By seeing all the detail study of ATV, it  is well suitable for hostage situation and war.

 

 

 

 

 

 

 

 

 

 

 

 

 

CHAPTER – 10

BIBLIOGRAPHY

 

  1. Electronic circuit guide book

            By: Joseph & J. Carr

  1. Programming and Customizing the 89c51 Micro-controller

By : Myke Predko

  1. The concepts and Features of Micro-controller

By: Raj Kamal

  1. The 89c51 Micro-controller Architecture, programming & Applications

By : Kenneth J. Ayala

  1. CMOS / TTL IC Data  Manuals
  2. Electronics for you – Monthly Magazine
  3. Practical Electronics - Monthly Magazine
  4. Elector India - Monthly Magazine

 

 

 

Comments

Popular posts from this blog

Chemical test for Tragacanth

Chemical test for Benzoin

Chemical test for Agar/Agar-Agar / Japaneese Isinglass