You are on page 1of 27

SPY BOT

CHAPTER 1 INTRODUCTION
This chapter gives a brief introduction about the methodology and scope of the project. It also outlines the organization of the report.

1.1 PREAMBLE: There are several situations where a person requires wireless control of robot, such as in mining, military applications, spying and for space researching. When required in large units, this can be fulfilled using a satellite based station. But for smaller cases a localized controlling system becomes very much essential. Our project aims to creating such a localized controlling system, which controls the robot within the specified range.

1.2 STATEMENT OF PROBLEM: In this project we are developing a small working model which controls the motion of a robot wirelessly. The robot should work according to the signals received from the Personal Computer and it should also send video signal if any obstacle found in the path of the robot motion within the predefined area.

Dept. of ECE, JNNCE, Shimoga

Page 1

SPY BOT

1.3 OVERVIEW OF THE PROJECT


TRANSMITTING ANTENNA

PERSONAL COMPUTER

PARALLEL PORT INTERFACE

ENCODER

Signal Transmitter circuit

RECEIVING ANTENNA

AUDIO AND VIDEO RECIEVER

Fig 1.1: Personal Computer side

MOTOR CONTROLLED DRIVER

STEPPER MOTOR

RECEIVING ANTENNA

MOTOR 1

DECODER

MICRO CONTROLLER

MOTOR CONTROLLED DRIVER MOTOR 2

LASER DRIVER

Fig 1.2: Robot side


Dept. of ECE, JNNCE, Shimoga Page 2

SPY BOT

The system basically has two blocks. 1. RF transmitter interfaced to Personal Computer Parallel port , as shown in fig 1.1. 2. Robot block with RF receiver and motor driver circuit as shown in fig 1.2.

The robot motion is controlled within a pre defined area by using a Personal computer keyboard. Any change in the position of the robot will viewed in Personal computer using the wireless webcam, according to that video Personal computer keyboard and RF transmitter & receiver modules present in the robot provides the robot new position.

The robots brain i.e., the microcontroller, controls the gear motors and the stepper motor which controls the robot motion and webcam & laser gun motion respectively. Wireless webcam will detect enemies if any, laser gun is triggered by microcontroller via pc keyboard to shoot the enemy. The chain wheel mechanism helps to tackle small obstacles easily as well as to move in the rough terrain.

1.4 METHODOLOGY We started of with developing a robot which resembles a vehicle in its working. Our project is being developed under two modules: one module builds the hardware requirement and another takes care of software part.

1.5 SCOPE OF THE STUDY Main aim of this project is to creating localized controlling system,which controls the bot for desired range. The bot should work according to the signals received from the Personal Computer means a bot which is controlled by the computer. There is a camera mounted on the bot and constantly sending the videos. Video will be displayed on the computer screen. Accordingly we will take decision.

Dept. of ECE, JNNCE, Shimoga

Page 3

SPY BOT
CHAPTER 2 THEORETICAL BACKGROUND
This chapter gives an overview of various concepts, technologies, mechanisms and tools used in this project.

2.1 EMBEDDED SYSTEMS Embedded systems are the electronic devices that incorporate microcontroller within their implementation. The main purpose of the micro controller is to simplify system design and provide flexibility. Unlike Personal Computers, however, embedded systems may not have the disc drives and so the software is often stored in read only memory; this means that modifying the software requires either replacing or reprogramming the ROM.

Many embedded systems have to run 24 hours a day, 7 days a week, and 365 days an year. It can't just reboot when something goes wrong. For this reason good coding practice and through testing on new level of importance is essential in the realm of embedded processor.

The embedded system found in most consumer products employs a single chip controller that includes the microcontroller, a limited amount of memory and a few input output devices. The power for the microcontroller is usually similar to those found in earlier personal computers.

When a desktop application program is executed, its executable images are loaded from the disk into the memory by a part of the operating system known as the loader. The operating

system itself is already in memory; put there doing the boot process. Unlike general purpose desktop systems; embedded systems are designed to solve a single purpose. Once the embedded software is in the memory, there is usually no reason to change it. This allows less expensive ROM to be used for permanent storage of the programs. Since there is no need to store the program on the disk, a significant amount of software can be eliminated that can be necessary to support the file system.
Dept. of ECE, JNNCE, Shimoga Page 4

SPY BOT

2.2 INTRODUCTION TO AVR STUDIO AVR Studio is an Integrated Development Environment for writing and debugging AVR applications in Windows 98/XP/ME/2000 and Windows NT environments. AVR Studio provides a project management tool, source file editor and chip simulator. It also interfaces with In-Circuit. Emulators and development boards available for the AVR 8-bit RISC family of microcontrollers. Simplifying the development tasks, AVR Studio allows customers to significantly reduce time-to-market.

2.2.1 Features of AVR Studio

1. Integrated Development Environment for Writing, Compiling and Debugging


Software. 2. Fully Symbolic Source-level Debugger. 3. Configurable Memory Views, Including SRAM, EEPROM, Flash, Registers, and I/Os. 4. Configurable Memory Views, Including SRAM, EEPROM, Flash, Registers, and I/Os. 5. Unlimited Number of Break Points. 6. Online HTML Help. 7. Variable Watch/Edit Window with Drag-and-drop Function. 8. Extensive Program Flow Control Options. 9. Simulator Port Activity Logging and Pin Input Stimuli. 10.Support for C, Pascal, BASIC and Assembly Language. 11.File Parser Support for COFF, UBROF6, UBROF8, and Hex Files.

2.3 Introduction to AVR GCC (WinAVR) The AVR GCC plug-in is a GUI front-end to GNU make and avr-gcc. The plug-in requires GNU make and avr-gcc for basic operations and avr-objdump from the AVR GNU binutils for generating list files. The plug-in component will automatically detect an installed WinAVR distribution and set up the required tools accordingly. An AVR GCC plug-in project is a collection of source files and configurations. A configuration is a set of options that specify how to build and link the files in a project. On creating a new project, the "default" configuration is created. A user can choose to continue using this configuration, adding/removing options as the project evolves or create one or more new configurations to use in the project.

Dept. of ECE, JNNCE, Shimoga

Page 5

SPY BOT
2.3.1 WinAVR Features Integration of avr-gcc and Make in AVR Studio Start the compiler, clean the project, set project options and debug the project from AVR Studio. Tools from the WinAVR distribution are detected by the plug-in. GUI Controls to Manipulate Project Settings Custom compile options can be set for specific files or all files in the project. Linker options can also be set. There are controls for optimization level, include directories, libraries, memory segments and more. A Project Tree for Managing Project Files A project tree provides easy access to and manipulation of every file in the project. Work with Several Configurations It is possible to define several sets of build options, called configurations. Build Output A build output view shows raw output from GNU make and avr-gcc. Error and warning messages that contain reference to a file and line can be double-clicked to open this file and put a marker on the line. External Makefile The plug-in allows the user to define a makefile to use for the build process. Map and List Files Map and list files can be generated on each build. External Dependencies The plug-in keeps track of dependencies on libraries and header files that are not part of a project.

2.4 ISP PROGRAMMER In System Programming, ISP is a way to serially program your microcontroller, while it resides in its place, in other words, without removing the chip from your board. Whether you're just starting in the ATMEL microcontrollers, or you're familiar with it, ISP (In System Programming) will provide you a simple and affordable home made solution to program and debug your microcontroller based project. Sometimes, ISP can become very useful, when adjusting some delays, frequencies or any other values that you would intend to find by trial and error. A process that would otherwise take too much time.

Dept. of ECE, JNNCE, Shimoga

Page 6

SPY BOT
CHAPTER 3 DESIGN AND IMPLEMENTATION
3.1 INTRODUCTION This chapter presents our design as well as reasons to why we made the engineering choices that we encountered. Each section details the architecture of our designs. Components used in the design are presented along with reasons to why these are selected.

3.2 MICROCONTROLLER The ATmega16 microcontroller used is a 40-pin wide DIP (Dual In Line) package chip. This chip was selected because it is robust and DIP package interfaces with prototyping supplies like solderless breadboards and solder-type perf boards. Fig3.1 below shows the pinout diagram of the ATmega16.This diagram is very useful, because it tells you where power and ground should be connected, which pins tie to which functional hardware, etc. The ATmega16 is a low-power, high-performance 8-bit microcontroller with 16K bytes In-system programmable Flash. The Atmel ATmega16 is a powerful microcomputer which provides a highly flexible and cost effective solution to many embedded control applications.

The ATmega16 provides the following standard features. High-performance, Low-power AVR 8-bit Microcontroller. Advanced RISC Architecture 131 Powerful Instructions Most Single-clock Cycle Execution. 32 x 8 General Purpose Working Registers. Fully Static Operation. Up to 16 MIPS Throughput at 16 MHz. On-chip 2-cycle Multiplier. High Endurance Non-volatile Memory segments 16K Bytes of In-System Self-programmable Flash program memory. 512 Bytes EEPROM. 1K Byte Internal SRAM. Write/Erase Cycles: 10,000 Flash/100,000 EEPROM.
Dept. of ECE, JNNCE, Shimoga Page 7

SPY BOT
Optional Boot Code Section with Independent Lock Bits In-System Programming by On-chip Boot Program. Programming Lock for Software Security. JTAG (IEEE std. 1149.1 Compliant) Interface Boundary-scan Capabilities According to the JTAG Standard. Extensive On-chip Debug Support. Programming of Flash, EEPROM, Fuses, and Lock Bits through the JTAG Interface. Peripheral Features Two 8-bit Timer/Counters with Separate Prescalers and Compare Modes One 16-bit Timer/Counter with Separate Prescaler, Compare Mode, and Capture Mode. Real Time Counter with Separate Oscillator. Four PWM Channels. 8-channel, 10-bit ADC. 8 Single-ended Channels 7 Differential Channels in TQFP Package Only 2 Differential Channels with Programmable Gain at 1x, 10x, or 200x Byte-oriented Two-wire Serial Interface. Programmable Serial USART. Master/Slave SPI Serial Interface. Programmable Watchdog Timer with Separate On-chip Oscillator. On-chip Analog Comparator. Special Microcontroller Features Power-on Reset and Programmable Brown-out Detection. Internal Calibrated RC Oscillator. External and Internal Interrupt Sources. Six Sleep Modes: Idle, ADC Noise Reduction, Power-save, Power-down, Standby and Extended Standby. I/O and Packages 32 Programmable I/O Lines 40-pin PDIP, 44-lead TQFP, and 44-pad QFN/MLF Operating Voltages 4.5 - 5.5V for ATmega16L Speed Grades 0 - 8 MHz for ATmega16L

Dept. of ECE, JNNCE, Shimoga

Page 8

SPY BOT
Power Consumption 1 MHz, 3V, and 25C for ATmega16L Active: 1.1 mA Idle Mode: 0.35 mA Power-down Mode: < 1 A

Fig 3.1

Dept. of ECE, JNNCE, Shimoga

Page 9

SPY BOT
Pin descriptions
VCC : Digital supply voltage. GND : Ground. Port A (PA7..PA0) : Port A serves as the analog inputs to the A/D Converter. Port A also serves as an 8-bit bi-directional I/O port, if the A/D Converter is not used. Port pins can provide internal pull-up resistors (selected for each bit). The Port A output buffers have symmetrical drive characteristics with both high sink and source capability. When pins PA0 to PA7 are used as inputs and are externally pulled low, they will source current if the internal pull-up resistors are activated. The Port A pins are tri-stated when a reset condition becomes active, even if the clock is not running.

Port B (PB7..PB0) : Port B is an 8-bit bi-directional I/O port with internal pull-up resistors (selected for each bit). The Port B output buffers have symmetrical drive characteristics with both high sink and source capability. As inputs, Port B pins that are externally pulled low will source current if the pull-up resistors are activated. The Port B pins are tri-stated when a reset condition becomes active, even if the clock is not running. Port B also serves the functions of various special features of the ATmega16. Port C (PC7..PC0) : Port C is an 8-bit bi-directional I/O port with internal pull-up resistors (selected for each bit). The Port C output buffers have symmetrical drive characteristics with both high sink and source capability. As inputs, Port C pins that are externally pulled low will source current if the pull-up resistors are activated. The Port C pins are tri-stated when a reset condition becomes active, even if the clock is not running. If the JTAG interface is enabled, the pull-up resistors on pins PC5(TDI), PC3(TMS) and PC2(TCK) will be activated even if a reset occurs. Port D (PD7..PD0) : Port D is an 8-bit bi-directional I/O port with internal pull-up resistors (selected for each bit). The Port D output buffers have symmetrical drive characteristics with both high sink and source capability. As inputs, Port D pins that are externally pulled low will source current if the pull-up resistors are activated. The Port D pins are tri-stated when a reset condition becomes active, even if the clock is not running. RESET : Reset Input. A low level on this pin for longer than the minimum pulse length will generate a reset, even if the clock is not running. The Shorter pulses are not guaranteed to generate a reset. XTAL1 : Input to the inverting Oscillator amplifier and input to the internal clock operating circuit. XTAL2 : Output from the inverting Oscillator amplifier. AVCC : AVCC is the supply voltage pin for Port A and the A/D Converter. It should be externally connected to VCC, even if the ADC is not used. If the ADC is used, it should be connected to VCC through a low-pass filter.
Dept. of ECE, JNNCE, Shimoga Page 10

SPY BOT
AREF : AREF is the analog reference pin for the A/D Converter.

Fig3.1.1 Internal diagram

Dept. of ECE, JNNCE, Shimoga

Page 11

SPY BOT

3.3 CONTROL TRANSMITTER AND ENCODER

Data

Fig 3.2: Transmission module

The serial data coming out of the encoder is given as data input to RF transmitter TLP433, which converts the electrical signals into radio frequency signals and transmits them wirelessly. This module has an approximate RF link range of 75ft.

The block diagram of HT12E encoder is as shown in fig 3.2. This is a CMOS LSI used for remote control system applications. They are capable of encoding information which consists of N address bits and 12-N data bits. Each address/data input can be set to one of the two logic states. The programmed addresses/data are transmitted together with the header bits via an RF or an infrared transmission medium upon receipt of a trigger signal. The capability to select a TE trigger further enhances the application flexibility of this encoder.

Dept. of ECE, JNNCE, Shimoga

Page 12

SPY BOT

Fig 3.3: Block diagram of Encoder HT12E As a whole this phase generates and transmits the control signals, which control the operation of robot.

3.4 CONTROL RECEIVER AND DECODER

Fig 3.4: Receiver module The signal radiated by the control transmitter (TLP433) is received by the control receiver (RLP433). From this section data is given as input to the decoder HT12D, which
Dept. of ECE, JNNCE, Shimoga Page 13

SPY BOT
converts the incoming serial data into 4 bit parallel data.

The HT12D is a CMOS LSI used for remote control system applications. This is paired with HT12E encoder .For proper operation, a pair of Encoder/decoder with the same number of addresses and data format should be chosen. The decoder receives serial addresses and data from HT12E encoder that is transmitted by a carrier using an RF medium. They compare the serial input data three times continuously with their local addresses. If no error or unmatched codes are found, the input data codes are decoded and then transferred to the output pins. The VT pin also goes high to indicate a valid transmission. The HT12D is arranged to provide 8 address bits and 4 data bits. The block diagram of decoder HT12D is as shown in Fig 3.5.

Fig 3.5: Block diagram of Decoder HT12D

Dept. of ECE, JNNCE, Shimoga

Page 14

SPY BOT

3.5 THE DC MOTOR DRIVER

Fig 3.6: Circuit diagram of Motor Driver L293D The motor control signals coming from the microcontroller are given to the motor driver. We have chosen L293D motor driver chip because it is simple to interface to and can control up to two amps of current at variety of voltages to motors, relays, or other magnetic equipments.

For straight line motion, the motor driver drives both the motors in same direction. Whereas in case of rotation the motors are excited in different direction according to the requirement.

Dept. of ECE, JNNCE, Shimoga

Page 15

SPY BOT
The detailed block diagram of L293D motor driver is as shown in fig 3.7.

Fig 3.7: Block diagram of L293D Motor driver

The L293D can be used to control motors in an "H" bridge configuration (Fig 3.7) by wiring two power leads to each half of the chip. The L293D has a few features that make it very desirable for motor control.

The first and probably the most important feature is that each of the four drivers have clamping diodes to suppress back EMF when the motors are turned off. This is important because all magnetic devices produce a large voltage spike when the drivers are turned off. This spike is caused by the collapsing magnetic field when the current is turned off. A diode should be placed across the coil to prevent this back EMF from disturbing or damaging any local electronic components. Another feature of the L293D is the enable line for each of the drivers. This line can be used to implement a pulse width modulation (PWM) speed control for the motors without having to change the driver controls.

Dept. of ECE, JNNCE, Shimoga

Page 16

SPY BOT
The last feature is the wide range of voltages that the chip can pass along through the drivers. For high current applications, the board that is mounted on should be designed with a large, heat sinking flood area around the L293D's ground pins. This flood area will give the chip some additional copper to allow current induced heat to be radiated away.

Fig 3.8: H-Bridge 3.5.1 THE DC MOTOR

Fig 3.9: DC Motor


Dept. of ECE, JNNCE, Shimoga Page 17

SPY BOT
The most common actuator which we are using (and the most common in mobile robotics in general) is the direct current (DC) motor. It is simple, cheap, and easy to use. Also, it comes in a great variety of sizes, to accommodate different robots and tasks.

DC motors convert electrical energy into mechanical energy. They consist of permanent magnets and loops of wire inside. When current is applied, the wire loops generate a magnetic field, which reacts against the outside field of the static magnets. The interactions of the fields produce the movement of the shaft/armature. Thus, electromagnetic energy becomes motion. As with any physical system, DC motors are not perfectly efficient, meaning that the energy is not converted perfectly, without any waste. Some energy is wasted as heat generated by mechanical parts. A motor requires a power source within its operating voltage, i.e., the recommended voltage range for best efficiency of the motor. Lower voltages will usually turn on the motor but provide less power. Higher voltages in some cases can increase the power output but almost always at the expense of the operating life of the motor. When constant voltage is applied, a DC motor draws a current in the amount proportional to the work it is doing. For example, if a robot is pushing against a wall, it is drawing more current (and draining more of its batteries) than when it is moving freely in open space.

The reason for the above fact is the resistance to the motor introduced by the wall. If the resistance is very high (i.e. the wall just wont move no matter how much the robot pushes against it), the motor draws a maximum amount of power and stalls. This is defined as the stall current of the motor: the most current it can draw at its specified voltage. Within a motor's operating current range, the more current is used, the more torque or the more rotational force is produced at the shaft. Besides stall current, a motor also has its stall torque, the amount of rotational force produced when the motor' is stalled at its operating voltage. Finally, the amount of power a motor generates is the product of its shaft's rotational velocity and its torque. If there is no load on the shaft, i.e. the motor is spinning freely, then the rotational velocity is the highest, but the torque is zero, since no mechanism is driven by the motor. The output power then is zero also. In contrast, when the motor is stalled, it is producing maximum torque, but the rotational velocity is zero. So the output power is zero again.

Dept. of ECE, JNNCE, Shimoga

Page 18

SPY BOT
3.6 STEPPER MOTOR DRIVER

Fig 3.10

The L293D contains two H-bridges for driving small DC motors. It can also be used to drive stepper motors because stepper motors are, in fact, two(or more) coils being driven in a sequence, backwards and forwards. One L293D can, in theory, drive one bi-polar 2 phase stepper motor, if you supply the correct sequence. We are going to show how to drive a bipolar and a unipolar stepper motor with the L293D. 3.6 degrees/step motors. 3.6.1 Bipolar Stepper Motor The L293D chip has 16 pins. Here is how each of the pins should be connected: Pin 1, 9 Enable pins. Hook them together and you can either keep them high and run the motor all the time, or you can control them with you own controller(e.g. 68HC11). Pin 3, 6, 11, 14 Here is where you plug in the two coils. To tell which wires correspond to each coil, you can use a mulitmeter to measure the resistance between the wires. The wires correspond to the same coil has a much lower resistance than wires correspond to different

Dept. of ECE, JNNCE, Shimoga

Page 19

SPY BOT
coils. (This method only applies to bipolar stepper motors. For unipolar stepper motors, you have to refer to the spec. sheet to tell which wires correspond to each coil.) You can then get one coil hooked up to pin 3,6 and another one hooked up to pin 11, 14. Pin 4, 5, 12, 13 Gets hooked to ground. Pin 8 Motor voltage, for the motors we are using, it is 12V. Pin 16 +5V. It is the power supply of the chip and it's a good idea to keep this power supply separate from your motor power. Pin 2, 7, 10, 15 Control signals. Here is where you supply the pulse sequence. The following is how you pulse them for a single-cycle (to move the motor in the opposite direction, just reverse the steps. i.e. from step 4 to step1): Coil 1a Step 1 Step 2 Step 3 Step 4 High Low Low High Coil 2a High High Low Low Coil 1b Low High High Low Coil 2b Low Low High High

In our example, we use the digital outputs of the Handy Board to generate the above pulse. The SPI pins on the connector on the middle right edge of the Handy Board can be configured as digital outputs. Do a poke(0x1009, 0x3c) to make them outputs; then they are mapped o the middle 4 bits of address 0x1008 (SS= bit 5, SCK=bit 4, MOSI=bit 3, MISO=bit 2). Poke to that address (0x1008) to set them.

In the above code fragment, the variable x controls how much time the controller should wait between each steps and this consequently determines the speed of the motor. The variable t determines how many cycles controller should drive the motor and so this control the angular position of the shaft.

Dept. of ECE, JNNCE, Shimoga

Page 20

SPY BOT

3.6.2 Unipolar Stepper Motor Driving a unipolar stepper motor with the L293D is very similar to driving a bipolar stepper motor. The pulse sequence is the same and you can use the code fragment above to generate the pulse sequence. The only difference between driving a unipolar stepper motor and driving a bipolar stepper motor is that there is an extra wire in a unipolar stepper motor you have to hook up. You can hook it up to the +5V supply and the wires are hooked up in the same way as those in the bipolar stepper motor.

3.7 WHEEL SELECTION There are four wheels attached to the DC motors and a pair of chain belts to facilitate easy movement of Robot. The chain belts can overcome tough terrain, or build a conveyor belt for scooping up objects.

Climb over obstacles. Traverse tough terrain. Drive through sandy or soft spongy surfaces. Can be used for a robot conveyor belt.

Tank treads will enable your robot to explore much more demanding terrain than ordinary wheels. Tank treads distribute a vehicles weight more evenly than wheels, allowing your robot to move more easily in sand or on soft, spongy surfaces into which wheels would sink and bog down. This increased surface area also gives your robot more traction for hauling heavy loads up an incline. And because each link can grip the surface over which its travelling, a robot with tank treads can more easily climb obstacles or traverse crevasses in which wheels would get stuck.

Dept. of ECE, JNNCE, Shimoga

Page 21

SPY BOT

3.8 POWER SUPPLY

Fig 3.11: Power supply These regulators can provide local on-card regulation, eliminating the distribution problems associated with single point regulation. Each type employs internal current limiting, thermal shut-down and safe area protection, making it essentially indestructible. If adequate heat sinking is provided, they can deliver over 1A output current. Although designed
Dept. of ECE, JNNCE, Shimoga Page 22

SPY BOT
primarily as fixed voltage regulators, these devices can be used with external components to obtain adjustable voltage and currents. The main supply is suitably converted into 5V DC supply using regulators and then given to microcontroller, which is as shown in Fig 3.11.

3.9 THE PARALLEL PORT The Personal Computer supports up to three parallel ports that are assigned the labels LPTI, LPT2, and LPT3. You can use any of these standard ports as long as they use the usual base addresses, which are (in hex) 378, 278, and 3BC, respectively. The port labels and addresses are typically configured through the Personal Computers BIOS .Additional ports, or standard ports not assigned the usual base addresses, are not accessible by the toolbox 3.9.1 Parallel Port Characteristics: The parallel port consists of eight data lines, four control lines, five status lines, and eight ground lines. In normal usage, the lines are controlled by the host computer software and the peripheral device following a protocol such as IEEE Standard 1284-1994. The protocol defines procedures for transferring data such as handshaking, returning status information, and so on. However, the toolbox uses the parallel port as a basic digital I/O device, and no protocol is needed. Therefore, you can use the port to input and output digital values just as you would with a typical DIO subsystem. To access the physical parallel port lines, most PCs come equipped with one 25-pin female connector, which is shown below.

Fig 3.12: DB 25 female connector


Page 23

Dept. of ECE, JNNCE, Shimoga

SPY BOT
The lines use TTL logic levels. A line is high (true or asserted) when it is a TTL high level, while a line is low (false or unasserted) when it is a TTL low level. The exceptions are lines 1, 11, 14, and 17, which are hardware inverted. The toolbox groups the 17 nonground lines into three separate ports. The port IDs and the associated pin numbers are given below Port ID 0 2-9 Pins Description Eight I/O lines, with pin 9 being the most significant bit (MSB). 1 2 10-13, and 15 1, 14, 16, and 17 Five input lines used for status Four I/O lines used for control

3.10 PERSONAL COMPUTER PARALLEL PORT CONNECTIONS

CONTROL DATA

TE

Fig 3.13: Connection to Personal Computer parallel port

Dept. of ECE, JNNCE, Shimoga

Page 24

SPY BOT

The connection to Personal Computer parallel port is as shown in fig 3.13. The control data is the data inputs to the transmitter section. The data inputs are encoded using HT12E and then transmitted through TLP433 MHz.

3.11 PERSONAL COMPUTER CONTROLLING SYSTEM

This section describes the process of transmission and reception of control signals from Personal computer to Microcontroller and vice-versa. The related circuit diagram is as shown in Fig 3.14.

The control data coming from Personal Computer is transmitted as radio signal using the radio transmitter TLP433. Before that the 8-bit parallel data is converted into serial data using the encoder HT12E. The obstacle detected signal from robot is received by receiver RLP433 and

is decoded by the decoder HT12D. The interrupt VT INTR generated by decoder is given as input to one of the pin of parallel port.

Fig 3.14: Personal Computer side circuitry

Dept. of ECE, JNNCE, Shimoga

Page 25

SPY BOT
3.14 SYSTEM SOFTWARE Every embedded system is incomplete without its software, so is ours. This chapter includes flow charts which describes the working of both hardware and software modules. We have used Avr studio assembly language for programming purpose. 16K flash memory of Atmega16 is used to store the program and Tutbo C is used for controlling the robot.

Start

Initialize Turbo C and execute code

Is button pressed?

Y Transmit the corresponding data

Is obstacle found ?

Y Control Spy Bot

Flow Chart 1: Personal Computer Side

Dept. of ECE, JNNCE, Shimoga

Page 26

SPY BOT

Dept. of ECE, JNNCE, Shimoga

Page 27