Laporan PKL
Laporan PKL
Diajukan Sebagai Salah Satu Syarat Kelulusan pada Jurusan Teknik Elektro
Fakultas Teknik Universitas Brawijaya
Disusun Oleh:
Diajukan Sebagai Salah Satu Syarat Kelulusan Pada Jurusan Teknik Elektro
Fakultas Teknik Universitas Brawijaya
Disusun Oleh:
Mengetahui, Mengesahkan
Ketua Jurusan Teknik Elektro Dosen Pembimbing
Universitas Brawijaya Praktek Kerja Lapangan
M.Aziz Muslim, ST., MT., PhD Dr. Eng. Panca Mudjirahardjo, ST., MT.
NIP 19741203 3000012 1 001 NIP 19700329 200012 1 00
i
Laporan Praktik Kerja Lapangan
Lembaga Penerbangan dan Antariksa Nasional
LEMBAR PENGESAHAN
Pemrograman IMU Dan Pembuatan Graphic User Interface (GUI) Untuk
Akusisi Data Sensor Gyro LPY530AL/LPR530AL Dan Accelerometer
ADXL335B
Disusun Oleh:
Hasan (NIM. 145060300111019)
Rosihan Arby Harahap (NIM. 145060301111037)
Mengesahkan,
Pembimbing
Praktik Kerja Lapangan
Divisi Kendali dan Telemetri
ii
Laporan Praktik Kerja Lapangan
Lembaga Penerbangan dan Antariksa Nasional
DAFTAR ISI
LEMBAR PENGESAHAN ..................................................................................... i
iii
Laporan Praktik Kerja Lapangan
Lembaga Penerbangan dan Antariksa Nasional
iv
Laporan Praktik Kerja Lapangan
Lembaga Penerbangan dan Antariksa Nasional
DAFTAR GAMBAR
Gambar 4.10. Waktu keseluruhan pengolahan data hingga diterima receiver ...... 31
v
Laporan Praktik Kerja Lapangan
Lembaga Penerbangan dan Antariksa Nasional
DAFTAR TABEL
Tabel 4.1. Datasheet Sparkfun 6DOF IMU .......................................................... 15
Tabel 4.2. Perhitungan Perhitungan Deviai Axelorometer sumbu X .................. 27
Tabel 4.3. Perhitungan Perhitungan Deviai Axelorometer sumbu Y .................. 28
Tabel 4.4. Perhitungan Perhitungan Deviai Axelorometer sumbu Z ................... 29
vi
Laporan Praktik Kerja Lapangan
Lembaga Penerbangan dan Antariksa Nasional
KATA PENGANTAR
Segala puji syukur penulis ucapkan atas kehadirat Allah SWT, karena
berkat rahmat, hidayah, dan karunia-Nya Penulis dapat menyelesaikan Laporan
hasil Praktik Kerja Lapangan dengan judul “Pemrograman IMU Dan Pembuatan
Graphic User Interface (GUI) Untuk Akusisi Data Sensor Gyro LPY530AL /
LPR530AL Dan Accelerometer ADXL335B”.
Laporan ini diajukan sebagai persyaratan untuk melengkapi kurikulum
pada Jurusan Teknik Elektro Konsentrasi Teknik Elektronika Universitas
Brawijaya Malang.
Selama menyelesaikan penulisan laporan ini Penulis telah mendapat
banyak bantuan dari berbagai pihak baik secara langsung maupun tidak langsung.
Untuk itu, Penulis menyampaikan ucapan terima kasih kepada:
1. Allah SWT yang telah memberikan penulis nikmat kesehatan dan
kesempatan dalam melakukan KKN-P di LAPAN.
2. Kedua orang tua beserta keluarga besar yang telah memberikan dukungan
baik secara materil maupun moril.
3. Bapak Dr. Effendi Dodi Arisandi, ST., M.Si. selaku pembimbing KKN-P,
serta seluruh karyawan dari LAPAN yang telah membantu penulis selama
pelaksanaan KKN-P.
4. Bapak M. Aziz Muslim, ST., MT., PhD selaku ketua jurusan.
5. Bapak Dr. Eng. Panca Mudjirahardjo, ST., MT. selaku dosen pembimbing.
6. Keluarga besar Divisi Mikrokontroler Universitas Brawijaya.
7. Teman-teman kuliah jurusan Teknik Elektro Universitas Brawijaya
Penulis berharap semoga laporan ini dapat bermanfaat bagi semua pihak
dan dapat dikembangkan lebih lanjut untuk kedepannya. Penulis menyadari masih
banyak kekurangan dalam penyusunan laporan ini, untuk itu kami berharap ada
saran dan kritik yang bersifat membangun demi kesempurnaan laporan ini.
vii
Laporan Praktik Kerja Lapangan
Lembaga Penerbangan dan Antariksa Nasional
BAB I
PENDAHULUAN
1
Laporan Praktik Kerja Lapangan
Lembaga Penerbangan dan Antariksa Nasional
2
Laporan Praktik Kerja Lapangan
Lembaga Penerbangan dan Antariksa Nasional
3
Laporan Praktik Kerja Lapangan
Lembaga Penerbangan dan Antariksa Nasional
4
Laporan Praktik Kerja Lapangan
Lembaga Penerbangan dan Antariksa Nasional
BAB II
PROFIL INSTANSI
5
Laporan Praktik Kerja Lapangan
Lembaga Penerbangan dan Antariksa Nasional
6
Laporan Praktik Kerja Lapangan
Lembaga Penerbangan dan Antariksa Nasional
Logo yang dipakai sekitar tahun 2004-2005, terlihat logo ini merupakan
perpaduan antara logo pertama dengan logo ketiga. Tidak ada peraturan formal
yang mengatur tentang logo ini, namun diaplikasikan pada baju kerja, plakat,
hingga souvenir. Ini merupakan varian logo tidak resmi namun banyak digunakan.
7
Laporan Praktik Kerja Lapangan
Lembaga Penerbangan dan Antariksa Nasional
November 1963. Tulisan “LAPAN” yang terletak dibawah Roket dan Sayap
Burung Garuda mengandung makna bahwa LAPAN sebagai instansi yang
menaungi segala kegiatan penelitian dan pengembangan kedirgantaraan nasional.
8
Laporan Praktik Kerja Lapangan
Lembaga Penerbangan dan Antariksa Nasional
9
Laporan Praktik Kerja Lapangan
Lembaga Penerbangan dan Antariksa Nasional
BAB III
LANDASAN TEORI
10
Laporan Praktik Kerja Lapangan
Lembaga Penerbangan dan Antariksa Nasional
11
Laporan Praktik Kerja Lapangan
Lembaga Penerbangan dan Antariksa Nasional
12
Laporan Praktik Kerja Lapangan
Lembaga Penerbangan dan Antariksa Nasional
dengan menggunakan kabel USB to serial converter yaitu USB TTL yang
dihubungkan dengan komputer. Mikrokontroler terhubunng langsung dengan
USB to TTL melalui pin RXD, TXD dan GND. USB to TTL, menggunakan
PL2303 ditunjukkan pada gambar berikut.
13
Laporan Praktik Kerja Lapangan
Lembaga Penerbangan dan Antariksa Nasional
14
Laporan Praktik Kerja Lapangan
Lembaga Penerbangan dan Antariksa Nasional
BAB IV
PEMBAHASAN
15
Laporan Praktik Kerja Lapangan
Lembaga Penerbangan dan Antariksa Nasional
16
Laporan Praktik Kerja Lapangan
Lembaga Penerbangan dan Antariksa Nasional
Dapat dilihat bahwa tegangan puncak yang dapat dihasilkan oleh sensor
gyroscope sebesar 3,3 V. Tegangan ini sesuai dengan tegangan supply (Vdd)
sebesar 3,3 V.
#include "stm32f4xx.h"
#include "stm32f4xx_hal.h"
#include <stdio.h>
#include <string.h>
17
Laporan Praktik Kerja Lapangan
Lembaga Penerbangan dan Antariksa Nasional
ADC_HandleTypeDef hadc1;
DMA_HandleTypeDef hdma_adc1;
TIM_HandleTypeDef htim3;
UART_HandleTypeDef huart1;
DMA_HandleTypeDef hdma_usart1_tx;
void SystemClock_Config(void);
int i=0;
uint32_t kirim=0;
uint16_t buffer_ADC[6];
char string[50]= "";
char temp[20]= "";
int AmbilData= 0;
int main(void)
{
HAL_Init();
SystemClock_Config();
//Enable Pin GPIO
__HAL_RCC_GPIOH_CLK_ENABLE();
__HAL_RCC_GPIOC_CLK_ENABLE();
__HAL_RCC_GPIOA_CLK_ENABLE();
18
Laporan Praktik Kerja Lapangan
Lembaga Penerbangan dan Antariksa Nasional
//DMA ADC 1
__HAL_RCC_DMA2_CLK_ENABLE();
HAL_NVIC_SetPriority(DMA2_Stream0_IRQn, 0, 0);
HAL_NVIC_EnableIRQ(DMA2_Stream0_IRQn);
HAL_NVIC_SetPriority(DMA2_Stream7_IRQn, 0, 0);
HAL_NVIC_EnableIRQ(DMA2_Stream7_IRQn);
hdma_adc1.Instance = DMA2_Stream0;
hdma_adc1.Init.Channel = DMA_CHANNEL_0;
hdma_adc1.Init.Direction = DMA_PERIPH_TO_MEMORY;
hdma_adc1.Init.PeriphInc = DMA_PINC_DISABLE;
hdma_adc1.Init.MemInc = DMA_MINC_ENABLE;
hdma_adc1.Init.PeriphDataAlignment =
DMA_PDATAALIGN_HALFWORD;
hdma_adc1.Init.MemDataAlignment =
DMA_MDATAALIGN_HALFWORD;
hdma_adc1.Init.Mode = DMA_CIRCULAR;
hdma_adc1.Init.Priority = DMA_PRIORITY_LOW;
hdma_adc1.Init.FIFOMode = DMA_FIFOMODE_DISABLE;
HAL_DMA_Init(&hdma_adc1);
HAL_NVIC_SetPriority(ADC_IRQn, 0, 0);
HAL_NVIC_EnableIRQ(ADC_IRQn);
19
Laporan Praktik Kerja Lapangan
Lembaga Penerbangan dan Antariksa Nasional
HAL_ADC_ConfigChannel(&hadc1, &sConfig);
//Aktifkan Timer 3
__HAL_RCC_TIM3_CLK_ENABLE();
HAL_NVIC_SetPriority(TIM3_IRQn, 0, 0);
HAL_NVIC_EnableIRQ(TIM3_IRQn);
//Konfigurasi Timer 3
TIM_ClockConfigTypeDef sClockSourceConfig;
TIM_MasterConfigTypeDef sMasterConfig;
htim3.Instance = TIM3;
htim3.Init.Prescaler = 0;
htim3.Init.CounterMode = TIM_COUNTERMODE_UP;
htim3.Init.Period = 800;
htim3.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
HAL_TIM_Base_Init(&htim3);
sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
HAL_TIM_ConfigClockSource(&htim3, &sClockSourceConfig);
sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
HAL_TIMEx_MasterConfigSynchronization(&htim3,
&sMasterConfig);
//Modul UART
USART1_UART_Init();
while (1)
{
if (AmbilData==1)
{
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_5, GPIO_PIN_SET);
for (int i=0;i<6;i++)
{
sprintf(temp,"%d",buffer_ADC[i]);
strcat(string,temp);
strcat(string," ");
memset(temp,0,strlen(temp));
}
strcat(string,"\n\r");
HAL_UART_Transmit(&huart1,(uint8_t*)string, strlen(string),
100);
memset(string,0,strlen(string));
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_5, GPIO_PIN_RESET);
AmbilData=0;
}
}
20
Laporan Praktik Kerja Lapangan
Lembaga Penerbangan dan Antariksa Nasional
void SystemClock_Config(void)
{
RCC_OscInitTypeDef RCC_OscInitStruct;
RCC_ClkInitTypeDef RCC_ClkInitStruct;
__HAL_RCC_PWR_CLK_ENABLE();
__HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE
2);
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;
RCC_OscInitStruct.HSEState = RCC_HSE_ON;
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE;
HAL_RCC_OscConfig(&RCC_OscInitStruct);
RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK |
RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_PCLK1 |
RCC_CLOCKTYPE_PCLK2;
RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_HSE;
RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1;
RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV2;
HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_0);
HAL_SYSTICK_Config(HAL_RCC_GetHCLKFreq()/1000);
HAL_SYSTICK_CLKSourceConfig(SYSTICK_CLKSOURCE_HCLK);
HAL_NVIC_SetPriority(SysTick_IRQn, 0, 0);
}
huart1.Instance = USART1;
huart1.Init.BaudRate = 115200;
huart1.Init.WordLength = UART_WORDLENGTH_8B;
huart1.Init.StopBits = UART_STOPBITS_1;
huart1.Init.Parity = UART_PARITY_NONE;
huart1.Init.Mode = UART_MODE_TX_RX;
huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE;
huart1.Init.OverSampling = UART_OVERSAMPLING_16;
HAL_UART_Init(&huart1);
}
void TIM3_IRQHandler(void)
{
HAL_TIM_IRQHandler(&htim3);
kirim++;
21
Laporan Praktik Kerja Lapangan
Lembaga Penerbangan dan Antariksa Nasional
if (kirim>=100)
{
//kirim USART
AmbilData= 1;
kirim=0;
}
}
void setup()
{
Serial.begin(115200);
delay(1000);
myRadio.begin();
myRadio.setChannel(115);
myRadio.setPALevel(RF24_PA_MAX);
myRadio.setDataRate( RF24_2MBPS ) ;
myRadio.openWritingPipe( addresses[0]);
delay(1000);
}
void loop()
{
while (Serial.available() > 0)
{
tulis = Serial.readStringUntil('\r');
tulis.toCharArray(text, 100);
myRadio.write(&text, sizeof(text));
memset(text, 0, strlen(text));
}
}
2. Receiver
#include <SPI.h>
#include "RF24.h"
#include "String.h"
int ledPin = 4;
RF24 myRadio (7, 8);
byte addresses[][6] = {"0"};
char data [1000];
void setup()
{
pinMode(ledPin, OUTPUT);
22
Laporan Praktik Kerja Lapangan
Lembaga Penerbangan dan Antariksa Nasional
Serial.begin(115200);
delay(1000);
myRadio.begin();
myRadio.setChannel(115);
myRadio.setPALevel(RF24_PA_MAX);
myRadio.setDataRate( RF24_2MBPS ) ;
myRadio.openReadingPipe(1, addresses[0]);
myRadio.startListening();
}
void loop()
{
if ( myRadio.available())
{
digitalWrite (ledPin, HIGH);
myRadio.read(&data, sizeof(data));
Serial.print(data);
}
digitalWrite(ledPin, LOW);
}
23
Laporan Praktik Kerja Lapangan
Lembaga Penerbangan dan Antariksa Nasional
24
Laporan Praktik Kerja Lapangan
Lembaga Penerbangan dan Antariksa Nasional
25
Laporan Praktik Kerja Lapangan
Lembaga Penerbangan dan Antariksa Nasional
Untuk nilai ADC pada keadaan zero gravitation memiliki nilai sebesar:
𝑛𝑖𝑙𝑎𝑖 𝑡𝑒𝑔𝑎𝑛𝑔𝑎𝑛 𝑡𝑒𝑟𝑡𝑒𝑟𝑎
𝑁𝑖𝑙𝑎𝑖 𝐴𝐷𝐶 = × (2𝑏𝑖𝑡 𝐴𝐷𝐶 − 1)
𝑛𝑖𝑙𝑎𝑖 𝑡𝑒𝑔𝑎𝑛𝑔𝑎𝑛 𝑟𝑒𝑓𝑒𝑟𝑒𝑛𝑠𝑖
1,65
𝑁𝑖𝑙𝑎𝑖 𝐴𝐷𝐶 = ×4095
3,3
𝑁𝑖𝑙𝑎𝑖 𝐴𝐷𝐶 = 2047
Ketika kondisi sensor membentuk sudut 180º, sensor IMU membelakangi
arah percepatan gravitasi bumi. Oleh karena itu nilai tegangannya merupakan
penjumlahan dari mode zero gravitation dengan perkalian antara kelipatan
gravitasi (g) dengan sensitivitas sensor (330mV/g).
Untuk melihat data ADC yang diproses oleh STM32F401RE, dapat dilihat
dengan memonitor DMA (Direct Memory Access) dengan proses debugging
seperti tampilan berikut ini:
26
Laporan Praktik Kerja Lapangan
Lembaga Penerbangan dan Antariksa Nasional
27
Laporan Praktik Kerja Lapangan
Lembaga Penerbangan dan Antariksa Nasional
28
Laporan Praktik Kerja Lapangan
Lembaga Penerbangan dan Antariksa Nasional
29
Laporan Praktik Kerja Lapangan
Lembaga Penerbangan dan Antariksa Nasional
30
Laporan Praktik Kerja Lapangan
Lembaga Penerbangan dan Antariksa Nasional
Gambar 4.9. Waktu Pemrosesan konversi ADC dan pengiriman Data di STM32F401
Untuk gambar 4.9 terlihat bahwa waktu yang dibutuhkan mikrokontroler
untuk mengambil data ADC, penggabungan nilai hingga siap ditransmisikan
mencapai 4,81 ms (-2,190 ms – 2,620 ms).
31
Laporan Praktik Kerja Lapangan
Lembaga Penerbangan dan Antariksa Nasional
32
Laporan Praktik Kerja Lapangan
Lembaga Penerbangan dan Antariksa Nasional
33
Laporan Praktik Kerja Lapangan
Lembaga Penerbangan dan Antariksa Nasional
memiliki mampu membaca data sudut sebesar 30/ 10 milidetik sehingga dapat
dilakukan integrasi metode diskrit dengan nilai Δt sebesar 10 ms, sehingga dapat
dirumuskan :
𝑡
(𝐴𝐷𝐶 − 𝑁𝑖𝑙𝑎𝑖𝐴𝐷𝐶𝑇𝑒𝑛𝑔𝑎ℎ)
𝜃= ∑ . 300 . ∆𝑡 𝑟𝑎𝑑𝑖𝑎𝑛
(4094 − 𝑁𝑖𝑙𝑎𝑖𝐴𝐷𝐶𝑇𝑒𝑛𝑔𝑎ℎ)
0
Imports System.Windows.Forms
Imports System.IO
Imports System.IO.Ports
Imports System.Threading
Imports ZedGraph
34
Laporan Praktik Kerja Lapangan
Lembaga Penerbangan dan Antariksa Nasional
'grafik Axeloro Y
Dim temp1Y As Integer
Dim temp2Y As Integer
Dim listy As New PointPairList
'grafik Axeloro Z
Dim temp1Z As Integer
Dim temp2Z As Integer
Dim listz As New PointPairList
Dim x1 As Integer
Dim a1 As Double
Dim vermin As Integer
Dim vermax As Integer
Dim xScale As Scale
Dim kontrolx As Integer
'grafik Gyro X
Dim temp11X As Integer
Dim temp22X As Integer
Dim y2X As Double
Dim list2x As New PointPairList
'grafik Gyro Y
Dim temp11Y As Integer
Dim temp22Y As Integer
Dim y2Y As Double
Dim list2y As New PointPairList
'grafik Gyro Z
Dim temp11Z As Integer
Dim temp22z As Integer
Dim y2Z As Double
Dim list2z As New PointPairList
35
Laporan Praktik Kerja Lapangan
Lembaga Penerbangan dan Antariksa Nasional
ZedGraphControl1.GraphPane.CurveList.Clear()
ZedGraphControl1.AxisChange()
ZedGraphControl1.Invalidate()
xScale =
ZedGraphControl2.GraphPane.XAxis.Scale
xScale.Max = 0
xScale.Min = 0
xScale =
ZedGraphControl1.GraphPane.XAxis.Scale
xScale.Max = 0
xScale.Min = 0
36
Laporan Praktik Kerja Lapangan
Lembaga Penerbangan dan Antariksa Nasional
listx.Clear()
listy.Clear()
listz.Clear()
list2x.Clear()
list2y.Clear()
list2z.Clear()
End If
End Sub
Private Sub Button2_Click(sender As Object, e As
EventArgs) Handles Button2.Click
Timer1.Enabled = False
Timer3.Enabled = False
Button1.Visible = True
Button2.Visible = False
ComboBox1.Enabled = True
SerialPort1.Close()
End Sub
ZedGraphControl2.GraphPane.Fill = New
Fill(Color.FromArgb(60, 60, 60))
ZedGraphControl2.GraphPane.Chart.Fill = New
Fill(Color.FromArgb(20, 20, 20))
ZedGraphControl2.GraphPane.Border.GradientFill
= New Fill(Color.FromArgb(255, 255, 255))
ZedGraphControl2.GraphPane.Legend.Fill = New
Fill(Color.FromArgb(255, 255, 255))
Dim ports As String() =
IO.Ports.SerialPort.GetPortNames()
Dim port As String
ComboBox1.Items.Clear()
For Each port In ports
ComboBox1.Items.Add(port)
Next port
xScale = ZedGraphControl1.GraphPane.XAxis.Scale
Dim myPane As GraphPane =
ZedGraphControl1.GraphPane
37
Laporan Praktik Kerja Lapangan
Lembaga Penerbangan dan Antariksa Nasional
38
Laporan Praktik Kerja Lapangan
Lembaga Penerbangan dan Antariksa Nasional
End If
If GZ.Checked = True Then
Grafik3()
End If
If AX.Checked = True Then
Grafik4()
End If
If AY.Checked = True Then
Grafik5()
End If
If AZ.Checked = True Then
Grafik6()
End If
Dim x As Integer
kontrolx = kontrolx + 3
For x = kontrolx To kontrolx + 1
x1 = (x / 2) + a1
Next x
xScale = ZedGraphControl1.GraphPane.XAxis.Scale
xScale = ZedGraphControl2.GraphPane.XAxis.Scale
Dim pane2 As GraphPane =
ZedGraphControl2.GraphPane
If (x1 > xScale.Max - xScale.MajorStep) Then
xScale.Max = x1 + xScale.MajorStep
xScale.Min = xScale.Max - 200.0
End If
If x1 Mod 5 = 0 Then
ZedGraphControl1.GraphPane.CurveList.Clear()
ZedGraphControl2.GraphPane.CurveList.Clear()
End If
'fungsi zedgraph
ZedGraphControl1.IsShowHScrollBar = True
ZedGraphControl1.IsShowVScrollBar = True
ZedGraphControl1.IsAutoScrollRange = True
ZedGraphControl1.IsScrollY2 = True
ZedGraphControl1.IsShowPointValues = True
ZedGraphControl2.IsShowHScrollBar = True
ZedGraphControl2.IsShowVScrollBar = True
ZedGraphControl2.IsAutoScrollRange = True
ZedGraphControl2.IsScrollY2 = True
39
Laporan Praktik Kerja Lapangan
Lembaga Penerbangan dan Antariksa Nasional
ZedGraphControl2.IsShowPointValues = True
'tampilkan grid
pane1.XAxis.MajorGrid.IsVisible = True
pane2.XAxis.MajorGrid.IsVisible = True
'Tampilan pane
pane1.YAxis.Scale.FontSpec.FontColor =
Color.White
pane1.YAxis.Title.FontSpec.FontColor =
Color.White
pane1.XAxis.Scale.FontSpec.FontColor =
Color.White
pane1.XAxis.Title.FontSpec.FontColor =
Color.White
pane1.XAxis.MajorGrid.Color = Color.White
pane1.Title.FontSpec.FontColor = Color.White
pane1.YAxis.MajorTic.IsOpposite = False
pane1.YAxis.MinorTic.IsOpposite = False
pane1.YAxis.MajorGrid.IsZeroLine = False
pane1.YAxis.Scale.Align = AlignP.Inside
pane2.YAxis.Scale.FontSpec.FontColor =
Color.White
pane2.YAxis.Title.FontSpec.FontColor =
Color.White
pane2.XAxis.Scale.FontSpec.FontColor =
Color.White
pane2.XAxis.Title.FontSpec.FontColor =
Color.White
pane2.XAxis.MajorGrid.Color = Color.White
pane2.Title.FontSpec.FontColor = Color.White
pane2.YAxis.MajorTic.IsOpposite = False
pane2.YAxis.MinorTic.IsOpposite = False
pane2.YAxis.MajorGrid.IsZeroLine = False
pane2.YAxis.Scale.Align = AlignP.Inside
End Sub
Sub Grafik1()
Dim pane1 As GraphPane =
ZedGraphControl1.GraphPane
temp1X = temp2X
temp2X = axelX
If vermax < axelX Then
vermax = axelX
End If
If vermin > axelX Then
vermin = axelX
End If
'sumbu x
If (x1 > 2) Then
40
Laporan Praktik Kerja Lapangan
Lembaga Penerbangan dan Antariksa Nasional
listx.Add(x1, temp1X)
listx.Add(x1 + 0.5, temp2X)
End If
Dim myCurveX As LineItem
myCurveX = pane1.AddCurve("", listx, Color.Red,
SymbolType.None)
myCurveX.Symbol.Fill = New Fill(Color.White)
ZedGraphControl1.AxisChange()
ZedGraphControl1.Invalidate()
End Sub
Sub Grafik2()
Dim pane1 As GraphPane =
ZedGraphControl1.GraphPane
temp1Y = temp2Y
temp2Y = axelY
If vermax < axelY Then
vermax = axelY
End If
If vermin > axelY Then
vermin = axelY
End If
'sumbu x
If (x1 > 2) Then
listy.Add(x1, temp1Y)
listy.Add(x1 + 0.5, temp2Y)
End If
Dim myCurveY As LineItem
myCurveY = pane1.AddCurve("", listy,
Color.Yellow, SymbolType.None)
myCurveY.Symbol.Fill = New Fill(Color.White)
ZedGraphControl1.AxisChange()
ZedGraphControl1.Invalidate()
End Sub
Sub Grafik3()
Dim pane1 As GraphPane =
ZedGraphControl1.GraphPane
temp1Z = temp2Z
temp2Z = axelZ
If vermax < axelZ Then
vermax = axelZ
End If
If vermin > axelZ Then
vermin = axelZ
End If
'sumbu x
If (x1 > 2) Then
listz.Add(x1, temp1Z)
listz.Add(x1 + 0.5, temp2Z)
End If
41
Laporan Praktik Kerja Lapangan
Lembaga Penerbangan dan Antariksa Nasional
42
Laporan Praktik Kerja Lapangan
Lembaga Penerbangan dan Antariksa Nasional
Sub parsingdata
Dim TestString As String = Label1.Text
Dim TestArray() As String = Split(TestString)
Label6.Text = TestArray(0)
Label7.Text = TestArray(1)
Label8.Text = TestArray(2)
Label9.Text = TestArray(3)
Label10.Text = TestArray(4)
Label11.Text = TestArray(5)
End Sub
Sub errorgyro()
gyrox = 0
TgyroxA = 10
TgyroxB = 10
TgyroxT = 1569
gyroy = 0
TgyroyA = 10
TgyroyB = 10
TgyroyT = 1569
43
Laporan Praktik Kerja Lapangan
Lembaga Penerbangan dan Antariksa Nasional
gyroz = 0
TgyrozA = 10
TgyrozB = 10
TgyrozT = 1569
TaxelX = 2035
TaxelY = 2035
TaxelZ = 2035
End Sub
Private Sub Timer3_Tick(sender As Object, e As
EventArgs) Handles Timer3.Tick
44
Laporan Praktik Kerja Lapangan
Lembaga Penerbangan dan Antariksa Nasional
45
Laporan Praktik Kerja Lapangan
Lembaga Penerbangan dan Antariksa Nasional
BAB V
PENUTUP
5.1 Kesimpulan
Sensor IMU merupakan sensor yang berfungsi untuk mengetahui posisi
dan sudut kemiringan suatu objek.
Sensor Gyroscope menghasilkan nilai tegangan yang mewakili nilai
kecepatan sudut sedangkan Accelerometer menghasilkan tegangan yang
mewakili percepatan linier.
Nilai ADC dapat berubah ketepatannya sesuai dengan gangguan yang
dialami oleh sensor.
Sensor IMU sangat dipengaruhi oleh tekanan mekanik yang diterima
oleh sensor. Namun tidak terpengaruh secara signifikan oleh suhu dan
kelembaban,
5.2 Saran
Sensor IMU diletakkan pada tempat yang stabil terhadap objek
(dipasang secara board atau shield) untuk mendapatkan hasil yang
lebih baik
Penggunaan mikrokontroler ARM sebaiknya lebih hati hati karena
sangat sensitif terhadap kelebihan tegangan.
Dilakukan penggembangan dari GUI sensor gyro agar sistem dapat
melakukan logging data lebih akurat dan presisi.
46
Laporan Praktik Kerja Lapangan
Lembaga Penerbangan dan Antariksa Nasional
DAFTAR PUSTAKA
Tiktak’s Project. Serial Port Interfacing with VB.NET 2010. Diakses tanggal 1
Agustus 2016. https://tiktakx.wordpress.com/2010/11/21/serial-port-
interfacing-with-vb-net-2010/.
47