lampiran a gambar sistem - repository.maranatha.edu file// func7=in func6=in func5=in func4=in...
TRANSCRIPT
LAMPIRAN A
GAMBAR SISTEM
SISTEM OBJEK TAMPAK DALAM
SISTEM OBJEK TAMPAK LUAR
SISTEM PENERIMA
LAMPIRAN B
PROGRAM AVR ATMEGA 128
/*****************************************************
Chip type : ATmega128L
Program type : Application
Clock frequency : 11.059200 MHz
Memory model : Small
External SRAM size : 0
Data Stack size : 1024
*****************************************************/
#include <mega128.h>
#include <delay.h>
#include <math.h>
#include <stdlib.h>
unsigned char g[16]; //tampungan data
// Alphanumeric LCD Module functions
// I2C Bus functions
#asm
.equ __lcd_port=0x1B ;PORTA
.equ __i2c_port=0x15 ;PORTC
.equ __sda_bit=0
.equ __scl_bit=1
#endasm
#include <lcd.h>
#include <i2c.h>
#define RXB8 1
#define TXB8 0
#define UPE 2
#define OVR 3
#define FE 4
#define UDRE 5
#define RXC 7
#define FRAMING_ERROR (1<<FE)
#define PARITY_ERROR (1<<UPE)
#define DATA_OVERRUN (1<<OVR)
#define DATA_REGISTER_EMPTY (1<<UDRE)
#define RX_COMPLETE (1<<RXC)
// Get a character from the USART1 Receiver
#pragma used+
char getchar1(void)
{
char status,data;
while (1)
{
while (((status=UCSR1A) & RX_COMPLETE)==0);
data=UDR1;
if ((status & (FRAMING_ERROR | PARITY_ERROR |
DATA_OVERRUN))==0)
return data;
};
}
#pragma used-
// Write a character to the USART1 Transmitter
#pragma used+
void putchar1(char c)
{
while ((UCSR1A & DATA_REGISTER_EMPTY)==0);
UDR1=c;
}
#pragma used-
// Standard Input/Output functions
#include <stdio.h>
// Declare your global variables here
void main(void)
{
unsigned char string[10];
unsigned char buf,x;
float h_bar;
unsigned int temp,pressure; // bilangan bulat 0-6355
unsigned char temp1,temp2;
// Input/Output Ports initialization
// Port A initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In
Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTA=0x00;
DDRA=0x00;
// Port B initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In
Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTB=0x00;
DDRB=0x00;
// Port C initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In
Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTC=0x00;
DDRC=0x00;
// Port D initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In
Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTD=0x00;
DDRD=0x00;
// Port E initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In
Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTE=0x00;
DDRE=0x00;
// Port F initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In
Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTF=0x00;
DDRF=0x00;
// Port G initialization
// Func4=In Func3=In Func2=In Func1=In Func0=In
// State4=T State3=T State2=T State1=T State0=T
PORTG=0x00;
DDRG=0x00;
// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
// Mode: Normal top=FFh
// OC0 output: Disconnected
ASSR=0x00;
TCCR0=0x00;
TCNT0=0x00;
OCR0=0x00;
// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer 1 Stopped
// Mode: Normal top=FFFFh
// OC1A output: Discon.
// OC1B output: Discon.
// OC1C output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer 1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
// Compare C Match Interrupt: Off
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;
OCR1CH=0x00;
OCR1CL=0x00;
// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer 2 Stopped
// Mode: Normal top=FFh
// OC2 output: Disconnected
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;
// Timer/Counter 3 initialization
// Clock source: System Clock
// Clock value: Timer 3 Stopped
// Mode: Normal top=FFFFh
// Noise Canceler: Off
// Input Capture on Falling Edge
// OC3A output: Discon.
// OC3B output: Discon.
// OC3C output: Discon.
// Timer 3 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
// Compare C Match Interrupt: Off
TCCR3A=0x00;
TCCR3B=0x00;
TCNT3H=0x00;
TCNT3L=0x00;
ICR3H=0x00;
ICR3L=0x00;
OCR3AH=0x00;
OCR3AL=0x00;
OCR3BH=0x00;
OCR3BL=0x00;
OCR3CH=0x00;
OCR3CL=0x00;
// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
// INT2: Off
// INT3: Off
// INT4: Off
// INT5: Off
// INT6: Off
// INT7: Off
EICRA=0x00;
EICRB=0x00;
EIMSK=0x00;
// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x00;
ETIMSK=0x00;
// USART0 initialization
// Communication Parameters: 8 Data, 1 Stop, No Parity
// USART0 Receiver: On
// USART0 Transmitter: On
// USART0 Mode: Asynchronous
// USART0 Baud Rate: 9600
UCSR0A=0x00;
UCSR0B=0x18;
UCSR0C=0x06;
UBRR0H=0x00;
UBRR0L=0x47;
// USART1 initialization
// Communication Parameters: 8 Data, 1 Stop, No Parity
// USART1 Receiver: On
// USART1 Transmitter: On
// USART1 Mode: Asynchronous
// USART1 Baud Rate: 4800
UCSR1A=0x00;
UCSR1B=0x18;
UCSR1C=0x06;
UBRR1H=0x00;
UBRR1L=0x8F;
// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;
// LCD module initialization
lcd_init(16);
// I2C Bus initialization
i2c_init();
while (1) // looping
{
buf=0;
while (buf!='$') buf=getchar1();
getchar1();
getchar1();
getchar1();
buf=getchar1();
if (buf=='G')
{
for (x=0;x<9;x++)
{
buf=0;
while (buf!=',') buf=getchar1();
}
buf=0;
x=0;
while (buf!=',')
{
buf=getchar1();
string[x]=buf;
x++;
}
x--;
string[x]=0;
buf=0;
while (buf!=0x0A) buf=getchar1();
printf("GPS:");
printf("%6s",string);
printf(" m ");
sprintf(g,"GPS= %s M ",string); //data gps
lcd_gotoxy(0,0);
lcd_puts(g);
i2c_start(); // Start Condition
i2c_write(0xE0); // Tulis ke modul DT-SENSE
i2c_write(0x00); // Perintah baca data tekanan
i2c_stop(); // Stop Condition
delay_ms(15); // delay 15 ms
i2c_start(); // Start Condition
i2c_write(0xE1); // Baca ke modul DT-SENSE
temp1 = i2c_read(1);
temp2 = i2c_read(0);
i2c_stop(); // Stop Condition
pressure = (unsigned int)temp1*256 + temp2;
h_bar=(float)pressure/10;
h_bar=h_bar/1013.25;
h_bar=log10(h_bar);
h_bar=h_bar/5.2558797;
h_bar=pow(10,h_bar)-1;
h_bar=h_bar*1000000/-6.87559;
h_bar=h_bar*0.3048;
ftoa(h_bar,2,string);
printf("Pressure: ");
temp=pressure/10;
printf("%u",temp);
putchar('.');
temp=pressure%10;
printf("%u",temp);
printf(" hpa ");
printf("H_Bar:");
printf("%7s",string);
printf(" m\n\r ");
sprintf(g,"H_Bar=%s M ",string); //data ketinggian dari tekanan
lcd_gotoxy(0,1);
lcd_puts(g);
}
};
}
LAMPIRAN C
CODE VISUAL BASIC
Public Dat_payload As Integer
Public sercount As Integer
Public buff_ser As Byte
Private Sub Command10_Click()
RichTextBox1.SaveFile Text13.Text
MsgBox ("DATA TERSIMPAN")
End Sub
Private Sub Command5_Click()
If MSComm1.PortOpen = False Then MSComm1.PortOpen = True
End Sub
Private Sub Command6_Click()
If MSComm1.PortOpen = True Then MSComm1.PortOpen = False
End Sub
Private Sub Command8_Click()
End
End Sub
Private Sub Command9_Click()
MSComm1.CommPort = Text9.Text
MSComm1.Settings = Text12.Text & ",n,8,1"
MSComm1.Handshaking = comNone
End Sub
Private Sub MSComm1_OnComm()
buff_ser = MSComm1.Input
Text7.Text = buff_ser
End Sub
Private Sub Text10_Change()
Dim a As String
Dim b As String
Dim c As String
a = Mid(Text10.Text, 5, 6) ' indikasi GPS
Text1(1).Text = a
b = Mid(Text10.Text, 23, 6) ' indikasi PREASURE
Text1(2).Text = b
c = Mid(Text10.Text, 40, 6) ' indikasi H_BAR
Text1(3).Text = c
End Sub
Private Sub Timer2_Timer()
If MSComm1.PortOpen = True Then
Text10.Text = MSComm1.Input
RichTextBox1.Text = Time & " ; " & Text10.Text & " ; " & Chr$(13) &
RichTextBox1.Text
End If
End Sub
LAMPIRAN D
DATA SHEET
Data Sheet GPS
ADS-GM1 GPS Receiver
The ADS-GM1 is a high-sensitivity GPS receiver based on the SiRFstar III
chipset. It has a 2-meter long cable terminated in a female DB9 connector that
allows direct connection to an OpenTracker+, Tracker2, or any other device that
provides regulated 5-volt power on pin 4.
SiRFstar III high-sensitivity chipset
Waterproof housing (IPX7 rating)
Built-in low noise, high gain antenna
Magnetic base
LED clearly indicates positioning status
No configuration required
20 channel all-in-view tracking
Sensitivity: -159 dBm typical
Accuracy: < 10 meters 2D RMS, < 7 meters WAAS corrected, time to 1
microsecond
Datum: WGS84
Acquisition Rate: 1 sec hot start, 42 sec cold start
Dynamic Limits: < 18,000 meters, < 1000 knots, < 4G acceleration
Power Supply: 5 VDC +/- 5%, 80 mA max, 55 mA typical
Interface: NMEA-0183 at 4800 baud, optional SiRF binary
NMEA Messages: GGA, GSA, GSV, RMC, and optionally VTG, GLL, and ZDA
Weight: 85 grams
LED flashes red to indicate valid GPS fix. Made in Taiwan.
Pin Wire Function
2 Red RS-232 data out (+/- 6v)
3 Brown RS-232 data in
4 Green Power in
5 Blue Ground
- Yellow TTL data out (0-3v)
- Black TTL data in
Data Sheet Sensor Tekanan
Data Sheet ATMega 128
Konversi Ketinggian Terhadap Tekanan
Altitude Units to Pressure Units Conversion Table
Convert from an altitude in feet or metres above sea
level to a pressure reading in millibar (mbar, mb or
mbr), hectopascals (hPa), pounds per square inch (psi), millimetres of mercury at zero degrees celsius
(mmHg @ 0 deg C) or inches of mercury at zero
degrees celsius ( inHg @ 0 deg C).
The height relative to sea level conversions are derived
using the US Standard Atmosphere 1976 barometric
formula for geopotential altitude with the following physical constants and multi-valued (*) constants for sea level up
to a height of 36,089 ft (11,000m)
1. *Standard atmospheric pressure of 1013.25 mb
absolute at sea level
2. *Standard temperature of 288.15 K (15°C) 3. *Standard thermal gradient or lapse rate of -0.0065
K/m increase in altitude
4. Standard acceleration due to gravity of 9.80665 m/s2
5. Gas constant for air of 8.31432 J/Kmol K
6. Molar mass of air of 0.0289644 kg/mole
Please note that the calculated altitude values are not
absolutely precise conversions and should not be treated as such.
Altitude to Pressure Conversion Table
-5000 ft -1524.0 m is 1210.23 mb/hPa 17.553 psi 907.75 mmHg 35.738 inHg
-4000 ft -1219.2 m is 1168.55 mb/hPa 16.948 psi 876.48 mmHg 34.507 inHg
-3000 ft -914.40 m is 1128.03 mb/hPa 16.361 psi 846.09 mmHg 33.311 inHg
-2000 ft -609.60 m is 1088.66 mb/hPa 15.790 psi 816.56 mmHg 32.148 inHg
-1000 ft -304.80 m is 1050.41 mb/hPa 15.235 psi 787.87 mmHg 31.018 inHg
-900 ft -274.32 m is 1046.64 mb/hPa 15.180 psi 785.05 mmHg 30.907 inHg
-800 ft -243.84 m is 1042.89 mb/hPa 15.126 psi 782.23 mmHg 30.796 inHg
-700 ft -213.36 m is 1039.15 mb/hPa 15.072 psi 779.42 mmHg 30.686 inHg
-600 ft -182.88 m is 1035.41 mb/hPa 15.017 psi 776.62 mmHg 30.576 inHg
-500 ft -152.40 m is 1031.69 mb/hPa 14.963 psi 773.83 mmHg 30.466 inHg
-400 ft -121.92 m is 1027.98 mb/hPa 14.910 psi 771.05 mmHg 30.356 inHg
-300 ft -91.440 m is 1024.28 mb/hPa 14.856 psi 768.28 mmHg 30.247 inHg
-200 ft -60.960 m is 1020.59 mb/hPa 14.802 psi 765.51 mmHg 30.138 inHg
-100 ft -30.480 m is 1016.92 mb/hPa 14.749 psi 762.75 mmHg 30.030 inHg
-50 ft 15.240 m is 1015.08 mb/hPa 14.723 psi 761.37 mmHg 29.975 inHg
0 ft 0 m is 1013.25 mb/hPa 14.696 psi 760.00 mmHg 29.921 inHg
50 ft 15.240 m is 1011.42 mb/hPa 14.669 psi 758.63 mmHg 29.867 inHg
100 ft 30.480 m is 1009.59 mb/hPa 14.643 psi 757.26 mmHg 29.813 inHg
200 ft 60.960 m is 1005.95 mb/hPa 14.590 psi 754.52 mmHg 29.706 inHg
300 ft 91.440 m is 1002.31 mb/hPa 14.537 psi 751.80 mmHg 29.598 inHg
400 ft 121.92 m is 998.689 mb/hPa 14.485 psi 749.08 mmHg 29.491 inHg
500 ft 152.40 m is 995.075 mb/hPa 14.432 psi 746.37 mmHg 29.385 inHg
600 ft 182.88 m is 991.472 mb/hPa 14.380 psi 743.67 mmHg 29.278 inHg
700 ft 213.36 m is 987.880 mb/hPa 14.328 psi 740.97 mmHg 29.172 inHg
800 ft 243.84 m is 984.298 mb/hPa 14.276 psi 738.28 mmHg 29.066 inHg
900 ft 274.32 m is 980.727 mb/hPa 14.224 psi 735.61 mmHg 28.961 inHg
1000 ft 304.80 m is 977.166 mb/hPa 14.173 psi 732.93 mmHg 28.856 inHg
2000 ft 609.60 m is 942.129 mb/hPa 13.664 psi 706.65 mmHg 27.821 inHg
3000 ft 914.40 m is 908.117 mb/hPa 13.171 psi 681.14 mmHg 26.817 inHg
4000 ft 1219.2 m is 875.105 mb/hPa 12.692 psi 656.38 mmHg 25.842 inHg
5000 ft 1524.0 m is 843.073 mb/hPa 12.228 psi 632.36 mmHg 24.896 inHg
6000 ft 1828.8 m is 811.996 mb/hPa 11.777 psi 609.05 mmHg 23.978 inHg
7000 ft 2133.6 m is 781.854 mb/hPa 11.340 psi 586.44 mmHg 23.088 inHg
8000 ft 2438.4 m is 752.624 mb/hPa 10.916 psi 564.51 mmHg 22.225 inHg
9000 ft 2743.2 m is 724.285 mb/hPa 10.505 psi 543.26 mmHg 21.388 inHg
10000 ft 3048.0 m is 696.817 mb/hPa 10.106 psi 522.66 mmHg 20.577 inHg
15000 ft 4572.0 m is 571.820 mb/hPa 8.2935 psi 428.90 mmHg 16.886 inHg
20000 ft 6096.0 m is 465.633 mb/hPa 6.7534 psi 349.25 mmHg 13.750 inHg
25000 ft 7620.0 m is 376.009 mb/hPa 5.4536 psi 282.03 mmHg 11.104 inHg
30000 ft 9144.0 m is 300.896 mb/hPa 4.3641 psi 225.69 mmHg 8.8855 inHg
35000 ft 10668 m is 238.423 mb/hPa 3.4580 psi 178.83 mmHg 7.0406 inHg
Rumus Ketinggian Terhadap Tekanan
Z meters = ( 1 - ( P/ 1013.25 )^ 0.19 ) ) / 22.558 E-6
Altitude = (10^(log(P/P_0)/5.2558797)-1)/-6.8755856*10^-6.
Where P is the pressure at an unknown altitude, and P_0 is the pressure at sea
level (zero feet). P and P_0 can be expressed in any unit because they are
computed as a ratio.