Overview
Up ] [ Overview ] Prologue ] Objectives ] Non-Tech Syn ] Tech Syn ] Module 1 ] Module 2 ] Module 3 ] Module 4 ] Module 5 ] Module 6 ] Module 7 ] Applications ] Components ] Dealers ]

An Overview

The primary objective of the Project is the development of an autonomous micro-controlled land vehicle with the inherent ability for absolute collision avoidance. It will have the forte to navigate from a pre-determined static point to a desired location, expertly evading obstacles in its path.

Our design incorporates 5 static obstacles, placed on a level surface.

  blockdiagram.jpg (17215 bytes)

The esprit of the Handy Board is the micro-controller MC68HC11A1FN, mounted on a PCB, with interfacing circuits for 8 analogue, 9 digital I/Ps and motor O/Ps. MC68HC11A1FN has been conscript on account of its outstanding features such as, low power consumption and high performance operation at bus frequencies up to 4 MHz, sophisticated on-chip peripheral capabilities, a fully featured interrupt system, powerful bit-manipulation instructions, easily available compiler and flexibility.

4 Dig , 7 K sensors, 2 at the front and 2 at the rear sides, have been incorporated. The micro-controller is interrupted when an obstacle is encountered, and depending on the sensor I/Ps, control is transferred to the motors, which facilitate turning of the rover in a pre-defined direction. The motors are bi-directional DC motors,9 V, 300 mA, 5.5 kg-cm, pre-geared at 5 rpm. 2 infra red sensors, used at the sides have 6" sensitivity and the 2 behind have 8" sensitivity. Shaft encoders, having holes , enable us to number of pulses, thereby controlling the distance travelled.

Power requirements: being 21.6 V, we use 18 X 1.2V nickel-cadminium batteries, distributed as 8 X 1.2V (9.6V) for motors and 10 X 1.2V (12V) for the sensors. 20 Ni-Cd rechargeable batteries have been used to supply uninterrupted power to the motors and controlling circuits.

We have used Interactive C in lieu of assembly language. We have used the RS232 interface to load the object code from the PC to the micro-controller's RAM, since we have not used the EEPROM to store the program. Usage of assembly language would make programming cumbersome, and it would require in-depth knowledge of the assembly of 8085. Moreover, debugging would be tedious and dynamic management of the I/P and O/P positions would be rendered difficult. IC, being a high level language, provides us with more flexibility to program the MC68HC11A1FN to handle various situations efficiently. IC is basically a compiler that translates a program written in Interactive C into a pseudo-code, which is further interpreted into the machine code of the specified microprocessor. Thus, IC has the advantages of runtime error checking, ease of design and multitasking.

main()

{

check if already present at destination ; call check_IR();

while not at destination

{

call spin(turn_angle); call move(move_power);

}

we have reached destination;

}

 

int check_IR()

{

if not moving in preferred direction (away from destination)

{

if right is preferred direction

check IR sensor in that direction

if no obstacle, adjust turn_angle else check IR sensors front of rover

if an obstacle is detected, adjust turn_angle else move ahead;

else (left is preferred direction)

repeat above procedure for right is preferred direction

}

else (moving in preferred direction)

{

if no obstacles detected ahead move ahead else

if there is obstacle in front of one of the sensors situated in the front

check the sensor not adjacent to that sensor

if obstacle is not detected adjust turn_angle in that direction;

check if that direction is preferred or not

else adjust turn_angle in other direction and check if it is preferred;

/*note :left is a preferred direction in this case and if obstacles are

detected by both sensors,rover will move left*/

}

}

void spin (float turn_angle )

{

switch motors in reverse direction causing it to rotate about its central axis

}

void move ( int move_power )

{

start both motors at 90% power in forward direction

while (both motors are on)

{

Find which is preferred direction

keep checking whether distance has been covered by at least one motor

if so stop that motor, adjust motor speed so that slipping is minimised;

check whether rover is moving north,south,east,west and adjust *x_rovptr or *y_rovptr;

/*note:if direction is north south y has to be changed else x*/

check whether x or y distance has been covered : if so stop and rotate towards destination;

turn=check_IR() ; if (turn) get out of while loop

}

stop all motors

}

Power, Power Monitor, CPU, and Serial Line Circuitry

The components used in designing the power supply, voltage monitor, oscillator and serial line circuitry are listed below .

Resistors

All resistors are 1/8 watt unless noted otherwise.

R1 (2.2M--red, red, green)
R2 (1K--brown, black, red)
R8 and R15 (47 K--yellow, purple, orange)
R13 (47 ohm--yellow, purple, black)
R14 (47 ohm--yellow, purple, black, 1/2 watt)
RP4 (1 K x 4 resistor pack, 8 pins, labelled ``102'')

Capacitors

C1 and C2 (22 pF, labelled ``220'') Note: these are only provided if X1 is a crystal. If X1 is a ceramic resonator, these are not used.
C3 (470 µF, axial electrolytic)
C7 and C9 (0.1 µF, labelled ``104'')
C8 (4.7 µF, tantalum, labelled ``4µ7'')

Diodes and LED's

D1 (1N914 signal diode, glass casing)
D3 (1N4001 power diode, black casing)
LED10G (HLMP-1790, green)
LED11R (HLMP-1700, red)
LED15Y (HLMP-1719, yellow)

Integrated Circuits

U1 (MC68HC11A1FN or MC68HC11E1FN microprocessor)
U12 (DS1233-10 voltage monitor)
U13 (LM7805CTB 5 volt regulator)

Connectors and Sockets

J5 (RJ11 telephone jack, top entry)
J12 (coax DC power jack)
PLCC (52-pin plastic leaded chip carrier socket)

Switches

SW1 (silver/red SPDT slide switch)
SW3 (pushbutton switch)

Other

X1 (8 MHz crystal or ceramic resonator)

The power supply circuit is the main circuit used to supply continuous power to the Handy Board.

The circuit can be used to retain the Interactive C program in the RAM even when the battery supply is withdrawn. The circuit is also used to drive the motors, through a 8 - cell AA Ni-Cd battery pack, supplying a voltage of 9.6V.

When an I/P voltage (12 - 20V) is applied, power is supplied to the Board from the adapter jack and the board is switched on using SW1. For a brief instant, the charge LED15Y flashes, indicating power flow through the Board, which is used to charge the main system capacitor C3 (470 ?F).The LED is supplemented by a voltage divider network of resistances R13,R14 (47 K) and the current flows through the power diode D3 (IN4001). Depending on the applied signal at UNSWPWR (which is the O/P from pin 3 of jack J5), the power supplied can be used to turn on the motors, retain the IC program in the RAM or assert a RESET signal to the microprocessor.

When the supply I/P signal is less than 4.5V (invalid voltage), the switch SW1 is kept closed. Thus, an invalid signal is registered by the DS1233-10 voltage monitor chip, which measures the system voltage. This, in turn, asserts a RESET signal to the microprocessor, ensuring that the microprocessor is idle during power-on, when system voltage is ramping up from zero volts to its normal operating level, and during power-off, when system voltage falls from normal operating level to zero volts.

The output of the voltage monitor chip is connected to an LED (LED11R, marked BATT). When the chip asserts the ``invalid'' signal, the BATT LED will light. This happens for a brief interval when power is switched off, and for 1/3 of a second when it is switched on. The BATT LED also serves as a low-battery indicator, since if the battery is not charged enough to raise the system voltage to its normal operating level, the DS1233 chip will continuously assert the signal that lights the BATT LED.

The capacitors C3,C7,C8,C9 are used to filter the spikes and valid O/P voltage of 4.9 - 5.1V is applied between pins 48/26 and 23/01 for 48 pin DIP/ 52 pin PLCC package.

When the switch SW1 is open, the applied signal, after being filtered by the capacitors C4,C5, is applied to the MEM-PWR pin of the MC68HC11A1FN.This ensures that the Interactive C program is retained in the RAM of the 6811. The MEM-PWR pin in turn is the pin 10 of the expansion bus J3. Thus, the program need not be reloaded from the PC each time it is accessed.

The 8 - cell Ni - Cd battery pack supplies a voltage of 9.6 V (= 8 X 1.2V), through the motor power header J13. The voltage is applied at the pin MOTORPWR, which is used to drive the motors.

 

©1999 IEEE VESIT Student Branch   Hits : Hit Counter

ieevesitanim.gif (6435 bytes)

Webmaster : Saumitra Mohan Das