Report On Instrumentation Landing System
description
Transcript of Report On Instrumentation Landing System
VIVEKANAND EDUCATION SOCIETY’S INSTITUTE OF TECHNOLOGY
LBS REPORT
INSTRUMENTATION LANDING SYSTEM
Bhavesh Chetwani
Rahul Goswami
Prajakta Nalawde
Chandni Nanwani
Prachiti Waghambare
D14-A
Guided By:
Mrs Swati Zope
(ETRX Dept.)
Department of Electronics & Telecommunication
2014-2015
1
CERTIFICATE
This is to certify that Mr.Bhavesh Chetwani, Mr.Rahul Goswami, Ms.Prajakta Nalawde, Ms.Chandni Nanwani, Ms.Prachiti Waghambare has satisfactorily completed the partial fulfilment of LBS (Looking Beyond Syllabus) project in Instrumentation Landing System under my supervision in VESIT during the academic year 2014– 15.
Signature of the Project Mentor Signature of the LBS Co-ordinator
Mrs Swati Zope Dr.Saylee Gharge
2
Index
PICTURE INDEX
Sr. No Picture Page No.
1. Block diagram of system. 082. Working model 093. ATmega 16 development board 104. ATmega 16 pin diagram 115. HC-SR04 146. Timing diagram of HC-SR04 147. ADXL-335 15
3
Sr No. Topic Page no.
1. Introduction 4
2. Motivation 5
3. Problem definition 6
4. Issues & challenges 7
5. Design of Project 8
6. Specifications 11
7. Advantages 16
8. Applications 17
9. Conclusion 18
10. References 19
11. Appendix 20
Introduction
The Instrument Landing System (ILS) is an internationally normalised system for navigation of aircrafts upon the final approach for landing. It provides the horizontal as well as the vertical guidance necessary for an accurate landing approach.
An ILS (Instrument Landing System) is a type of instrument approach consisting of a localizer, a glide slope and specific approach and runway lighting. It is one of many kinds of instrument approaches which enable an airplane to safely get from the enroute environment down to a position where it can see the runway and make a landing.
4
Motivation
Also very costly earthworks may be required and at some airports ILS cannot be made to work. It is quite sensitive to reflections from terrain and buildings which disturb the course. Hence we decided to make an instrumentation landing system which will use sensors instead of the costly arrays involved in the actual system. Thus the system becomes cost-effective & compact since the use of arrays is eliminated.
5
Problem Definition
First the distance of the aeroplane will be measured from the ground. Then the tilt of the aeroplane is sensed in X axis & Y axis & the information is conveyed to the pilot.
6
Issues & Challenges
• Vertical guidance:
We decided to use Z axis of accelerometer to guide the aeroplane vertically. The output of z axis was not according to the lateral displacement, it was according to tilt. Hence we used ultrasonic sensor for vertical guidance.
• Programming of Atmega:
We faced the initialization problem in ultrasonic sensor. Also since both the sensors were programmed differently combining them together in a single program was a problem.
7
DESIGN OF PROJECT
• Block diagram and explanation:
There are 4 main blocks in the system-
• Atmega 16 Development board
• Ultrasonic sensor
• Accelerometer
• Liquid crystal display
The Atmega 16 microcontroller acts as the heart of the system & is programmed in order to get the required output.
The ultrasonic sensor is interfaced to port C of Atmega 16. The 2 main pics of ultrasonic sensor which are the “Trigger” & “Echo” are connected to C0 & C1 pins respectively of microcontroller. For the operation of sensor a 100 kHz signal is provided by the microcontroller on its trigger pin & the output of the sensor is obtained on its Echo pin. This output is in the form of pulses which is given to microcontroller. The microcontroller displays the output of distance in cm on the LCD which is interfaced to port B of Atmega 16.
The Accelerometer is interfaced to port A of Atmega 16 which also has an inbuilt ADC. Accelerometer has 3 axis- X, Y & Z. We have connected only X axis & Y axis
8
output to pins A0 & A1 of the microcontroller. Accelerometer measures acceleration on these axis & provides a proportional analog output voltage which is given to microcontroller. The internal ADC converts this analog voltage into digital & provides the corresponding output on LCD.
• Working:
The two eyes of the system are the ultrasound sensor (HC-SR04) and accelerometer (ADXL-335). To determine the correct position of the plane and to correct it, in the first step, the ultrasonic detects the height of the prototype from the ground. We have kept the optimum height between 15-20 cm. But, the sensor can very well work with height up to 4 metres. If the height of the plane is not in the defined range, the atmega displays message through LCD to go up or down accordingly.
Once the condition of height is set, the accelerometer tests the condition of tilt in right or left. For a proper landing, the plane must be straight. It tests the condition of right or left in Y-axis. If the plane is tilted in either of the directions, the atmega processes it and displays accordingly.
Being in the optimum landing height and being straight, the accelerometer determines the tilt in forward direction (X-axis) and thus displays message accordingly. When all three conditions of height, right or left tilt and forward tilt are satisfied, the plane is ready and safe to land.
9
SPECIFICATIONS
Atmega 16 development board:
The main blocks of the development board – 1. Power supply and voltage regulation 2. Microcontroller (ATmega 16/32) 3. Motor drivers 4. LCD display ports 5. ASK RF Tx and Rx ports 6. FT232
Power supply and voltage regulation • All digital ICs work at a voltage around 5v and may get damaged at higher voltages but motors require a high voltage of about 12 volts to function. To solve this discrepancy, a voltage regulator circuit is added on to the board. The voltage regulator takes an input of 12V and gives a 5V output and hence only one power supply is needed to power the entire robot. • The voltage regulator on the board is LM7805. The board has provisions for taking 12 V input from a battery (through wire connections) as well as from a power supply (through a power jack).
The Microcontroller (The brain)
10
A microcontroller (MCU) is a small computer on a single integrated circuit containing a processor core, memory, and programmable input/output peripherals. The MCU provided on our board is an ATMEL ATmega 16. The pin configuration is as given below –
11
MOTOR DRIVERS:Motor drivers are essentially little current amplifiers; their function is to take a low-current control signal, and turn it into a proportionally higher-current signal that can drive a motor. The motor driver provided on board is IC L293D.
LCD DISPLAY:The board has provisions for connecting a standard 16 pin LCD Display. However, it must be noted that the port provided for LCD interfacing using the ATmega is for 4- bit interfacing and not 8-bit wherein the pins B0, B1, B2 of the MCU are used for RS, R/W and E and the pins B4, B5, B6, B7 are used for data bus lines.
RF communication:The board includes provision for connecting 433 MHz ASK Transmitter and Receiver Modules to transmit and receive serial data with a 100 m range in open space.
USBasp:USBasp is a USB programmer used for burning the codes into the MCU on your development board.
Some pins to know when using the programmer:
• When programming your development for the first time, put a jumper on the pins with SLOW SCK and firmware written near them. (You don’t need to this, we’ve already programmed it once for you) Putting the SLOW SCK jumper reduces your programming speed, which is desirable at times, when it fails to program at a faster speed.
• Of the extreme pins, whose wires are connected to the development board, the one having an initial ‘G’ near it printed on the board, is the ground pin. The pin adjacent to it is the VCC pin. The remaining 4 are the programming pins which go 15 to pins 6-9 of the ATMEGA. So, the 6-wire ribbon from the programmer board goes to the 6-11 pins of the ATMEGA.
• The power target (pwr target) jumper when put on, allows the MCU to be powered by the PC, when connected to the PC.
• The glowing of red LED signifies that the process of programming is on. The green
LED should ideally glow when the programmer is connected to the PC (with the power target jumper on the board) and is idle.
12
FEATURES OF ATMEGA 16:
• 16KB of Flash memory
• Available in 40-Pin DIP
• 8-Channel 10-bit ADC
• Two 8-bit Timers/Counters
• One 16-bit Timer/Counter
• 4 PWM Channels
• In System Programmer (ISP)
• Serial USART
• SPI Interface
• Digital to Analog Comparator
HC-SR04 Ultra Sonic Sensor:
Product features:
Ultrasonic ranging module HC - SR04 provides 2cm - 400cm non-contact measurement function, the ranging accuracy can reach to 3mm. The modules includes ultrasonic transmitters, receiver and control circuit. The basic principle of work:
(1) Using IO trigger for at least 10us high level signal,(2) The Module automatically sends eight 40 kHz and detect whether there is apulse signal back.(3) IF the signal back, through high level , time of high output IO duration is the time from sending ultrasonic to returning.Test distance = (high level time×velocity of sound (340M/S) / 2,
Wire connecting direct as following:
5V Supply Trigger Pulse Input Echo Pulse Output 0V Ground
13
Electric Parameter:
Working Voltage DC 5 V Working Current 15mA Working Frequency 40Hz Max Range 4m Min Range 2cm Measuring Angle 15 degree Trigger Input Signal 10uS TTL pulse Echo Output Signal Input TTL lever signal and the range in proportion Dimension 45*20*15mm
Timing Diagram:
14
Timing diagram The Timing diagram is shown below. You only need to supply a short 10uS pulse to the trigger input to start the ranging, and then the module will send out an 8 cycle burst of ultrasound at 40 kHz and raise its echo. The Echo is a distance object that is pulse width and the range in proportion .You can calculate the range through the time interval between sending trigger signal and receiving echo signal. Formula: uS / 58 = centimeters or uS / 148 =inch; or: the range = high level time * velocity (340M/S) / 2; we suggest to use over 60ms measurement cycle, in order to prevent trigger signal to the echo signal.
Accelerometer:
The ADXL335 is a small, thin, low power, complete 3-axis accelerometer with signal conditioned voltage outputs. The product measures acceleration with a minimum full-scale range of ±3 g. It can measure the static acceleration of gravity in tilt-sensing applications, as well as dynamic acceleration resulting from motion, shock, or vibration.
The user selects the bandwidth of the accelerometer using the CX, CY, and CZ capacitors at the XOUT, YOUT, and ZOUT pins. Bandwidths can be selected to suit the application, with a range of 0.5 Hz to 1600 Hz for the X and Y axes, and a range of 0.5 Hz to 550 Hz for the Z axis.
The ADXL335 is available in a small, low profile, 4 mm × 4 mm × 1.45 mm, 16-lead, plastic lead frame chip scale package (LFCSP_LQ).
15
ADVANTAGES
• ILS supports all types of aircrafts:
This system can be used for landing aeroplanes, helicopters etc without much change in the guiding circuitry.
• Precision Approach :
This system gives the direct readout digitally instead of complex analog meters as used in actual system.
16
APPLICATIONS
• Visually Impaired :
The ILS can be used for guiding the visually impaired, for eg if we install the vertical guidance part of our system in the shoes ,then it will be helpful for guiding the way whenever that person is walking on the stairs.
• Used in cranes :
If we mount this system on the cranes then it will help to put cranes at proper position from a particular distance.
17
CONCLUSION
In this project we have focused on building a prototype of landing system which is less complex, less expensive and more users friendly. The only constraint being its accuracy, the system can be used in many other applications as explained earlier.
The prototype can be worked upon and developed into a working model in future.
18
REFERENCES
• Cisropedia.net
• ibatnam.net
• Wikipedia.org
19
Appendix
Code:
#include <avr/io.h>
#include <util/delay.h>
#include "lcd.h"
#include "lcd.C"
#define US_PORT PORTC
#define US_PIN PINC
#define US_DDR DDRC
#define US_TRIG_POS PC0
#define US_ECHO_POS PC1
#define US_ERROR -1
#define US_NO_OBSTACLE-2
void InitADC()
{
ADMUX=(1<<REFS0); // For Aref=AVcc;
ADCSRA=(1<<ADEN)|(1<<ADPS2)|(1<<ADPS1)|(1<<ADPS0); //Rrescalar div factor =128
}
/*
Function to read required analog channel and returns the value
Argument:
Channel number from 0-7
Return Vale:
Result of conversion on selected channel
ranges from 0-1023
20
*/
uint16_t ReadADC(uint8_t ch)
{
//Select ADC Channel ch must be 0-7
ch=ch&0b00000111;
ADMUX&=0b11100000;
ADMUX|=ch;
//Start Single conversion
ADCSRA|=(1<<ADSC);
//Wait for conversion to complete
while(!(ADCSRA & (1<<ADIF)));
//Clear ADIF by writing one to it
//Note you may be wondering why we have write one to clear it
//This is standard way of clearing bits in io as said in datasheets.
//The code writes '1' but it result in setting bit to '0' !!!
ADCSRA|=(1<<ADIF);
_delay_ms(200);
return(ADC);
}
void HCSR04Init();
void HCSR04Trigger();
void HCSR04Init()
{
US_DDR|=(1<<US_TRIG_POS);
}
void HCSR04Trigger()
21
{
//Send a 10uS pulse on trigger line
US_PORT|=(1<<US_TRIG_POS); //high
_delay_us(15); //wait 15uS
US_PORT&=~(1<<US_TRIG_POS); //low
}
uint16_t GetPulseWidth()
{
uint32_t i,result;
//Wait for the rising edge
for(i=0;i<=600000;i++)
{
if(!(US_PIN & (1<<US_ECHO_POS)))
continue; //Line is still low, so wait
else
break; //High edge detected, so break.
}
if(i==600000)
return US_ERROR; //Indicates time out
//High Edge Found
//Setup Timer1
TCCR1A=0X00;
TCCR1B=(1<<CS11); //Prescaler = Fcpu/8
TCNT1=0x00; //Init counter
//Now wait for the falling edge
for(i=0;i<600000;i++)
22
{
if(US_PIN & (1<<US_ECHO_POS))
{
if(TCNT1 > 60000) break; else continue;
}
else
break;
}
if(i==600000)
return US_NO_OBSTACLE; //Indicates time out
//Falling edge found
result=TCNT1;
//Stop Timer
TCCR1B=0x00;
if(result > 60000)
return US_NO_OBSTACLE; //No obstacle
else
return (result>>1);
}
/*
Simple Delay function
*/
void Wait(uint8_t t)
{
uint8_t i;
23
for(i=0;i<t;i++)
_delay_loop_2(0);
}
void main()
{ LCDInit(LS_NONE);
//Initialize ADC
InitADC();
_delay_ms(1000);
//Put some intro text into LCD
//LCDWriteString(" Accelerometer ");
//LCDWriteStringXY(0,1," Test ");
//_delay_ms(1500);
Wait(150);
LCDClear();
uint16_t r;
_delay_ms(100); //Let the LCD Module start
//Initialize the LCD Module
//Set io port direction of sensor
HCSR04Init();
//LCDClear();
LCDWriteString("ultra sonic");
LCDWriteStringXY(0,1,"Sensor Test");
24
_delay_ms(2500);
LCDClear();
int16_t x,y,z; //X,Y,Z axis values from accelerometer.
//Wait for LCD to Startup
_delay_loop_2(0);
//Initialize LCD, cusror style = NONE(No Cursor)
while(1)
{
//Send a trigger pulse
HCSR04Trigger();
//Measure the width of pulse
r=GetPulseWidth();
//Handle Errors
if(r==US_ERROR)
{
LCDWriteStringXY(0,0,"Error !");
}
else if(r==US_NO_OBSTACLE)
{
LCDWriteStringXY(0,0,"Clear !");
}
else
{
int d;
d=(r/58.0); //Convert to cm
LCDWriteIntXY(0,0,d,4);
_delay_ms(1500);
25
LCDWriteString(" cm");
_delay_ms(1500);
if(d<15)
{
LCDWriteStringXY(0,1,"Go Up");
_delay_ms(1500);
lcd_clear();
}
else if(d>20)
{
LCDWriteStringXY(0,1,"Go Down");
_delay_ms(1500);
lcd_clear();
}
else
{LCDWriteStringXY(0,1,"Set Accelerometer");
_delay_ms(1500);
lcd_clear();
_delay_ms(1500);
x=ReadADC(0); // Read Analog value from channel-0
y=ReadADC(1); // Read Analog value from channel-1
z=ReadADC(2); // Read Analog value from channel-2
//Make it signed value (zero point is at 338)
x=x-250;
y=y-250;
z=z-360;
//Print it!
26
LCDWriteStringXY(0,0,"X=");
LCDWriteInt(x,3);
LCDWriteString(" Y=");
LCDWriteInt(y,3);
_delay_ms(10000);
Wait(20);
if(x<=75){
LCDWriteStringXY(0,1,"READY");
_delay_ms(2000);
}
else
{LCDWriteStringXY(0,1,"Tilt F");
_delay_ms(2000);}
if(y>110){
LCDWriteStringXY(9,1,"Tilt L");
_delay_ms(2000);
}
else{
if(y<90){
LCDWriteStringXY(9,1,"Tilt R");
_delay_ms(2000);
}
else {
LCDWriteStringXY(9,1,"READY");
_delay_ms(2000);
lcd_clear();
27
28