Anda di halaman 1dari 55

LAPORAN KULIAH KERJA NYATA – PRAKTIK

PEMROGRAMAN IMU DAN PEMBUATAN GRAPHIC USER


INTERFACE (GUI) UNTUK AKUSISI DATA SENSOR GYRO
LPY530AL/LPR530AL DAN ACCELEROMETER ADXL335B

Diajukan Sebagai Salah Satu Syarat Kelulusan pada Jurusan Teknik Elektro
Fakultas Teknik Universitas Brawijaya

Disusun Oleh:

Hasan (NIM. 145060300111019)


Rosihan Arby Harahap (NIM. 145060301111037)

KEMENTRIAN RISET DAN TEKNOLOGI, DAN PENDIDIKAN TINGGI


UNIVERSITAS BRAWIJAYA
FAKULTAS TEKNIK
JURUSAN TEKNIK ELEKTRO
MALANG
2017
LEMBAR PENGESAHAN
PEMROGRAMAN IMU DAN PEMBUATAN GRAPHIC USER
INTERFACE (GUI) UNTUK AKUSISI DATA SENSOR GYRO
LPY530AL/LPR530AL DAN ACCELEROMETER ADXL335B

Diajukan Sebagai Salah Satu Syarat Kelulusan Pada Jurusan Teknik Elektro
Fakultas Teknik Universitas Brawijaya
Disusun Oleh:

Hasan (NIM. 145060300111019)


Rosihan Arby Harahap (NIM. 145060301111037)

Laporan ini dibuat sebagai hasil Praktik Kerja Lapangan


yang telah dilaksanankan di
LEMBAGA PENERBANGAN DAN ANTARIKSA NASIONAL (LAPAN)

17 Januari 2017 – 16 Februari 2017

Telah diperiksa dan disetujui oleh Jurusan


Teknik Elektro Universitas Brawijaya Malang

Malang, 17 Februari 2017

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)

Laporan ini dibuat sebagai hasil Praktik Kerja Lapangan


yang telah dilaksanankan di
LEMBAGA PENERBANGAN DAN ANTARIKSA NASIONAL (LAPAN)

17 Januari 2017 – 16 Februari 2016


Telah diperiksa dan disetujui oleh
Pihak Lembaga Penerbangan dan Antariksa Nasional
Bogor, 11 Februari 2017

Mengesahkan,
Pembimbing
Praktik Kerja Lapangan
Divisi Kendali dan Telemetri

Dr. Effendi Dodi Arisandi, ST., M.Si.


NIP 19791002 200604 1015

ii
Laporan Praktik Kerja Lapangan
Lembaga Penerbangan dan Antariksa Nasional

DAFTAR ISI
LEMBAR PENGESAHAN ..................................................................................... i

DAFTAR ISI .......................................................................................................... iii

DAFTAR GAMBAR .............................................................................................. v

DAFTAR TABEL .................................................................................................. vi

KATA PENGANTAR .......................................................................................... vii

BAB I PENDAHULUAN ....................................................................................... 1

1.1 Latar Belakang ......................................................................................... 1

1.2 Rumusan Masalah .................................................................................... 2

1.3 Batasan Masalah ....................................................................................... 2

1.4 Waktu Dan Tempat Praktek Kerja Lapangan ........................................... 2

1.5 Tujuan Umum........................................................................................... 2

1.6 Tujuan Khusus .......................................................................................... 3

1.7 Metodologi Penulisan ............................................................................... 3

1.8 Sistematika Penulisan ............................................................................... 3

BAB II PROFIL INSTANSI ................................................................................... 5

2.1 Kronologi Pembentukan LAPAN............................................................. 5

2.2 Kompetensi Utama ................................................................................... 5

2.3 Sejarah Logo LAPAN .............................................................................. 5

2.4 Visi dan Misi ............................................................................................ 9

BAB III LANDASAN TEORI .............................................................................. 10

3.1 IMU (Inertial Measurement Unit) .......................................................... 10

3.2 ARM Mikrokontroler ............................................................................. 11

3.3 Microsoft Visual Studio 2015 ................................................................ 12

3.4 Komunikasi Data Serial (USB to TTL PL2303) .................................... 12

3.5 Serial Terminal ....................................................................................... 13

iii
Laporan Praktik Kerja Lapangan
Lembaga Penerbangan dan Antariksa Nasional

3.6 Komunikasi Frekuensi Radio ................................................................. 14

BAB IV PEMBAHASAN .................................................................................... 15

4.1 Sensor Gyro dan Accelerometer ............................................................. 15

4.2 Pengujian Tegangan Keluaran IMU ....................................................... 15

4.3 Pemrograman IMU ................................................................................. 17

4.4 Pengujian Nilai ADC yang Dikeluarkan Mikrokontroler ...................... 25

4.5 Pengujian Periode Transmisi .................................................................. 30

4.6 Pembuatan GUI ...................................................................................... 32

BAB V PENUTUP ............................................................................................... 46

5.1 Kesimpulan ............................................................................................. 46

5.2 Saran ....................................................................................................... 46

DAFTAR PUSTAKA ........................................................................................... 47

iv
Laporan Praktik Kerja Lapangan
Lembaga Penerbangan dan Antariksa Nasional

DAFTAR GAMBAR

Gambar 2.1. Logo Lapan periode 1965-1974 ......................................................... 6

Gambar 2.2. Logo Lapan periode 1974-2004 ......................................................... 7

Gambar 2.3. Logo Lapan periode 2004-2005 ......................................................... 7

Gambar 2.4. Logo Lapan periode 2006-2015 ......................................................... 8

Gambar 2.5. Logo Lapan periode 2015-sekarang ................................................... 9

Gambar 3.1. Modul Inertial Measurement Unit .................................................... 10

Gambar 3.2. STM32F401RE Nucleo .................................................................... 11

Gambar 3.3. Logo software Keil uVision ............................................................. 12

Gambar 3.4. Logo software Visual Studio ............................................................ 12

Gambar 3.5. USB PL2303 .................................................................................... 13

Gambar 3.6. Software Terminal Viewer ............................................................... 13

Gambar 3.7. Modul RF (NRF2401) ...................................................................... 14

Gambar 4.1. Pengujian nilai tengah tegangan ADC ............................................. 16

Gambar 4.2. Pengujian nilai respon tegangan ADC ............................................. 17

Gambar 4.3. Proses kalibrasi timer ....................................................................... 25

Gambar 4.5. Nilai tegangan ketika 0 g.................................................................. 26

Gambar 4.7. Proses debuging DMA ADC ............................................................ 26

Gambar 4.8. Pengujian waktu minimum transmisi data ....................................... 30

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.

Bogor, 11 Februari 2017


Penulis

vii
Laporan Praktik Kerja Lapangan
Lembaga Penerbangan dan Antariksa Nasional

BAB I
PENDAHULUAN

1.1 Latar Belakang


Kemajuan teknologi dewasa ini berkembang dengan sangat pesat,
khususnya pada teknologi penerbangan dan antariksa. Banyak negara yang
mengembangkan teknologi roket untuk berbagai keperluan, tidak terkecuali
Indonesia. Di Indonesia terdapat Lembaga Penerbangan dan Antariksa Nasional
(LAPAN) yang salah satunya berfungsi sebagai lembaga riset dan pengembangan
teknologi roket.
Roket LAPAN memiliki aktuator untuk mengubah orientasi roket yang
bekerja berdasarkan output yang berasal dari komponen pengendali. Komponen
pengendali menerima input yang berasal dari sebuah unit yang disebut IMU
(Innertial Measurement Unit). Unit ini berfungsi untuk mengetahui posisi dan
orientasi roket. Sensor ini dapat memerintahkan unit pengendali untuk dapat
bekerja menggerakkan roket menuju sikap (attitude) yang diinginkan.
Seiring dengan berkembangnya teknologi tersebut, diperlukan sumber
daya manusia yang memiliki kemampuan dan keahlian (skill) yang baik serta
memiliki wawasan yang luas. Sangat diperlukan bagi mahasiswa yang akan terjun
dalam dunia kerja untuk melakukan suatu penerapan ilmu yang diperoleh di
bangku kuliah ke dalam suatu pekerjaan dengan memberikan suatu Praktek Kerja
Lapangan (PKL).
Dengan praktek kerja lapangan ini diharapkan mahasiswa tidak hanya
memiliki kemampuan teoritis saja, namun juga memiliki ketrampilan dan
kemampuan untuk menerapkan ilmu pengetahuan yang dimilikinya. Pada
kesempatan ini, penulis memilih Lembaga Penerbangan dan Antariksa Nasional
sebagai tempat Praktek Kerja Lapangan.
Dalam laporan ini akan dibahas mengenai Pemrogramman IMU. Tujuan
dibuatnya laporan ini untuk melengkapi tugas akhir setelah melaksanakan Kuliah
Kerja Nyata-Praktik (KKN-P) di Lembaga Penerbangan dan Antariksa Nasional,
selain itu setelah melaksanakan KKN-P dan laporan ini diharapkan mahasiswa
dapat mengerti tentang wawasan teknologi pada bidang penerbangan dan
antariksa serta memperoleh pengalaman tentang dunia kerja.

1
Laporan Praktik Kerja Lapangan
Lembaga Penerbangan dan Antariksa Nasional

1.2 Rumusan Masalah


Berdasarkan latar belakang yang telah dikemukakan, maka dapat
dirumuskan beberapa permasalahan sebagai berikut:
1. Bagaimana cara pemograman IMU (Inertial Measurement Unit) sensor
Gyro LPY530AL/LPR530AL Dan Accelerometer ADXL335B dengan
STM32F401RE dengan software Keil Arm Tool.
2. Bagaimana cara membuat GUI (Graphic User Interface) untuk menerima
data dan menampilkannya .

1.3 Batasan Masalah


Adapun batasan – batasan masalah yang terdapat pada laporan ini antara
lain sebagai berikut :
1. Pengujian yang dilakukan pada IMU merupakan pengujian langsung pada
hardware namun tidak langsung ke dalam bentuk fisik roket.
2. Data yang diakusisi dari IMU berbentuk data nilai posisi sudut dan
percepatan serta ditampilkan dalam bentuk plot.

1.4 Waktu Dan Tempat Praktek Kerja Lapangan


Praktik Kerja Lapangan dilaksanakan selama satu bulan dari tanggal 17
Januari 2017 s/d 16 Februari 2017, bertempat di:
Nama Institusi : Pusat Teknologi Roket, (PUSTEKROKET) Lembaga
Penerbangan dan Antaraiksa Nasional (LAPAN)
Divisi : Kendali Telemetri
Alamat : Jalan Raya Lapan nomor 2, Mekarsari, Rumpin, Bogor.

1.5 Tujuan Umum


Tujuan umum dilaksanakannya praktek kerja lapangan, antara lain:
1. Sebagai satu syarat mencapai kelulusan pendidikan Strata-1 Jurusan
Elektro (Teknik Elektronika), dengan tujuan untuk menghasilkan tenaga
professional yang terampil dalam melakukan berbagai tugas di bidang
Elektronika
2. Mempersiapkan mahasiswa sebelum terjun ke dunia kerja yang
sesungguhnya.

2
Laporan Praktik Kerja Lapangan
Lembaga Penerbangan dan Antariksa Nasional

3. Menumbuhkan sikap mandiri dan bertanggung jawab, sehingga


diharapakan dapat mengantisipasi segala permasalah yang mungkin timbul
di dunia kerja sesuai dengan bidang yang ditekuni.
4. Mahasiswa mampu menerapkan pengetahuan yang telah didapat selama
kuliah dan mempraktikkannya secara langsung di tempat KKN-P.
5. Menumbuhkan sikap mandiri, disiplin dan profesional kepada mahasiswa
sebagai bekal jika terjun ke masyarakat industri.

1.6 Tujuan Khusus

Adapun tujuan khusus dari pelaksanaan KKN-P ini adalah memrogram


IMU Dan Membuat Graphic User Interface (GUI) Untuk Akusisi Data Sensor
Gyro LPY530AL/LPR530AL Dan Accelerometer ADXL335B

1.7 Metodologi Penulisan


Metodologi yang digunakan dalam penulisan laporan Praktek Kerja
Lapangan ini adalah:
1. Studi literatur
Studi literatur dilaksanakan dengan cara mempelajari dan menganalisis
literatur-literatur yang berkaitan dengan Visual Basic 2015, Sensor gyro μFORS-4
dan komunikasi data.
2. Diskusi
Diskusi dilakukan bersama dengan pembimbing di Lembaga Penerbangan
dan Antariksa Nasional.
3. Pengamatan
Penulis melakukan pengumpulan data dan informasi dengan mengamati
hal-hal yang terjadi disekeliling tempat kerja.

1.8 Sistematika Penulisan


Buku laporan praktek kerja lapangan ini terdiri dari lima bab, dimana
masing-masing bab mempunyai kaitan satu sama lain, yaitu:
BAB I PENDAHULUAN
Menjelaskan latar belakang, rumusan masalah, batasan masalah,
waktu dan tempat praktik kerja lapangan, tujuan, metodologi

3
Laporan Praktik Kerja Lapangan
Lembaga Penerbangan dan Antariksa Nasional

penulisan, dan sistematika penulisan dari penyusunan laporan


praktik kerja lapangan.
BAB II PROFIL INSTANSI
Menjelaskan tentang riwayat singkat dan profil LAPAN, visi dan
misi, makna logo perusahaan.
BAB III TINJAUAN PUSTAKA
Pada bab ini menjelaskan mengenai hardware serta software yang
digunakan selama Praktik Kerja Lapangan (PKL)
BAB IV PEMBAHASAN
Pada bab ini menjelaskan tentang pembahasan dan hasil dari
proyek yang telah dikerjakan selama Praktik Kerja Lapangan
BAB V PENUTUP
Pada bab ini diberikan kesimpulan dari keseluruhan bab beserta
pembahasannya. Pada bab ini juga diberikan saran atas serangkaian
dari seluruh kegiatan serta pembuatan laporan.

4
Laporan Praktik Kerja Lapangan
Lembaga Penerbangan dan Antariksa Nasional

BAB II
PROFIL INSTANSI

2.1 Kronologi Pembentukan LAPAN


Pada tanggal 31 Mei 1962, dibentuk Panitia Astronautika oleh Menteri
Pertama RI, Ir. Juanda (selaku Ketua Dewan Penerbangan RI) dan R.J. Salatun
(selaku Sekretaris Dewan Penerbangan RI).
Tanggal 22 September 1962, terbentuknya Proyek Roket Ilmiah dan
Militer Awal (PRIMA) afiliasi AURI dan ITB. Berhasil membuat dan
meluncurkan dua roket seri Kartika berikut telemetrinya.
Tanggal 27 November 1963, Lembaga Penerbangan dan Antariksa
Nasional (LAPAN) dibentuk dengan Keputusan Presiden Nomor 236 Tahun 1963
tentang LAPAN. Penyempurnaan organisasi LAPAN melalui :
1. Keputusan Presiden (Keppres) Nomor 18 Tahun 1974,
2. Keppres Nomor 33 Tahun 1988,
3. Keppres Nomor 33 Tahun 1988 jo Keppres Nomor 24 Tahun 1994;
4. Keppres Nomor 166 Tahun 2000 sebagaimana diubah beberapa kali yang
terakhir dengan Keppres Nomor 4 Tahun 2013
5. Perpres Nomor 49 Tahun 2015.

2.2 Kompetensi Utama


Kompetensi utama LAPAN antara lain :
1. Sains Antariksa dan Atmosfer;
2. Teknologi penerbangan, roket, dan satelit;
3. Penginderaan jauh;
4. Kajian Kebijakan Penerbangan dan Antariksa.

2.3 Sejarah Logo LAPAN


Berdasarkan arsip yang dimiliki LAPAN, ditemukan dokumen resmi yang
memuat logo LAPAN. Dalam kop surat bertanggal 30 Desember 1965 tersebut,
terlihat logo LAPAN terdiri dari empat unsur yaitu Roket, Sayap, Peta Indonesia
berada dalam lingkaran yang dikonotasikan sebagai bumi. Berdasarkan artikel
pada Majalah Interkom Nomor 71-94/95, RJ Salatun Kepala LAPAN periode
1971-1978, tidak ada keistimewaan tertentu yang mendasari gagasan untuk

5
Laporan Praktik Kerja Lapangan
Lembaga Penerbangan dan Antariksa Nasional

menciptakan logo LAPAN pertama kali. Hanya terpikirkan untuk


menggunakan sayap sebagai lambang penerbangan dan roket sebagai lambang
antariksa dalam logo LAPAN. Melalui tangan seorang seniman terwujudlah
sebuah logo

Gambar 2.1. Logo Lapan periode 1965-1974

(Sumber: LAPAN, 2013)


Logo yang dipakai era 1974-2006 ini tidak mengalami perubahan dari sisi
unsur pembentuknya (roket dan sayap). Namun logo ini menghilangkan unsur
peta dan lingkaran, dengan sayap yang terlihat lebih besar yang melambangkan
perkembangan organisasi LAPAN pada waktu itu. Secara resmi logo kedua
LAPAN ini tercantum dalam Pedoman Administrasi Umum di lingkungan
LAPAN berdasarkan Keputusan Kepala LAPAN Nomor:
LPN/070/SK/119/XII/1983

6
Laporan Praktik Kerja Lapangan
Lembaga Penerbangan dan Antariksa Nasional

Gambar 2.2. Logo Lapan periode 1974-2004


(Sumber: LAPAN, 2013)

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.

Gambar 2.3. Logo Lapan periode 2004-2005


(Sumber: LAPAN, 2013)

Pemaknaan gambar Roket pada logo ini merupakan pencerminan dari


produk andalan LAPAN untuk rancang bangun teknologi antariksa sebagai
aplikasi kegiatan di ruang angkasa (remote sensing, riset atmosfer dan matahari)
serta penelitian pengembangan teknologi kedirgantaraan LAPAN secara
keseluruhan. Gambar Roket tersebut memiliki panjang sekitar 17 satuan ukuran
yang dimaksudkan untuk mengingatkan tanggal kemerdekaan Indonesia
diproklamasikan. Sayap Burung Garuda yang mengapit Roket menandakan
identitas yang mengandung makna kegiatan LAPAN yang dinamis. Jumlah bulu
pada masing-masing sayap pun juga memiliki beberapa makna, antara lain bulu
pada tiga baris pertama berjumlah 27 helai merujuk pada tanggal kelahiran
LAPAN. Sementara bulu pada sisi sayap paling luar berjumlah 11 helai
menunjukkan bulan ke sebelas (November) yaitu bulan kelahiran LAPAN.
Sedangkan keseluruhan bulu pada sayap sebanyak 63 helai diartikan sebagai
tahun kelahiran LAPAN. Dengan demikian Sayap Burung Garuda didalamnya
terkandung makna tanggal, bulan dan tahun berdirinya LAPAN yaitu tanggal 27

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.

Gambar 2.4. Logo Lapan periode 2006-2015


(Sumber: LAPAN, 2013)

Kata “LAPAN” pada saat ini bukan merupakan sebuah akronim,melainkan


nama lain dari Lembaga Penerbangan dan Atariksa Nasional. Logo baru dari
Lembaga Penerbangan dan Antariksa Nasional ini divisualisasikan melalui empat
bidang universal yang diwakili bentuk eliptik, yang mempresentasikan empat
kompetensi utama LAPAN, yaitu Teknologi Penerbangan dan Antariksa,
Penginderaan Jauh, Sains Antariksa dan Atmosfer, serta Kajian Kebijakan
Penerbangan dan Antariksa. Warna biru langit yang dominan pada logo menjadi
ciri tradisional logo LAPAN sebelumnya. Sedangkan warna kuning api
melambangkan gelora dan semangat membara seluruh elemen LAPAN untuk
mewujudkan cita-cita penerbangan dan keantariksaan nasional yang luhur dan
jaya di angkasa.

8
Laporan Praktik Kerja Lapangan
Lembaga Penerbangan dan Antariksa Nasional

Gambar 2.5. Logo Lapan periode 2015-sekarang


(Sumber: LAPAN, 2013)

2.4 Visi dan Misi


Visi 2015-2019 LAPAN :
Pusat Unggulan Penerbangan Dan Antariksa Untuk Mewujudkan
Indonesia Yang Maju dan Mandiri
Misi 2015-2019 LAPAN :
1. Meningkatkan kualitas litbang dan antariksa bertaraf internasional.
2. Meningkatkan kualitas produk teknologi dan informasi di bidang
penerbangan dan antariksa dakam memecahkan permasalahan nasional.
3. Meningkatkan dan mengatur penyelenggaraan keantariksaan untuk
kepentingan nasional.

9
Laporan Praktik Kerja Lapangan
Lembaga Penerbangan dan Antariksa Nasional

BAB III
LANDASAN TEORI

3.1 IMU (Inertial Measurement Unit)


IMU (Inertial Measurement Unit) adalah perangkat elektronik yang
mampu mengukur dan memberikan informasi berupa data kecepatan suatu benda,
misal pesawat atau roket , orientasi objek terhadap kerangka inersia objek atau
terhadap kerangka bumi, dan gaya gravitasi, semua data tersebut diperoleh dengan
mengkombinasikan beberapa peralatan sensor, misalnya akselerometer dan
gyroscope dan terkadang dilengkapi dengan magnetometer untuk merasakan
kekuatan medan magnet disekitar objek.

Gambar 3.1. Modul Inertial Measurement Unit


(Sumber: http://www.sparkfun.com)

Di dalam sebuah IMU terdapat beberapa komponen yaitu Accelerometer


dan Gyrometer (umumnya ada juga magnetometer). Menurut (Toto, 2016) adapun
beberapa fungsi dari IMU secara umum tersebut antara lain :
1. Sebagai sensor navigasi.
2. Mengukur tingkat rotasi sumbu tertentu.
3. Mengukur posisi sudut.
Menurut (Haryanti dkk, 2008) fungsi dari Accelerometer untuk mengukur
percepatan suatu obyek. Accelerometer dapat mengukur percepatan dinamis dan
statis. Pengertian pengukuran percepatan dinamis adalah pengukuran percepatan
pada obyek bergerak, sedangkan percepatan statis adalah pengukuran percepatan
terhadap gravitasi bumi.
Berdasarkan hukum fisika bahwa apabila suatu konduktor digerakkan
melalui suatu medan magnet, maka akan timbul suatu tegangan induksi pada
konduktor tersebut. Accelerometer yang diletakan di permukaan bumi dapat
mendeteksi percepatan 1g (ukuran gravitasi bumi) pada titik vertikalnya, untuk

10
Laporan Praktik Kerja Lapangan
Lembaga Penerbangan dan Antariksa Nasional

percepatan yang dikarenakan oleh pergerakan horizontal maka accelerometer akan


mengukur percepatannya secara langsung ketika bergerak secara horizontal.
Cara kerja gyrometer yaitu gyroscope memiliki keluaran berupa kecepatan
sudut dari arah sumbu x yang akan menjadi sudut phi (roll), sumbu y menjadi
sudut theta (pitch), dan sumbu z menjadi sudut psi (yaw) (Swadexi, 2012).
Gyroscope dapat membaca kecepatan sudut (angular rate) yang dinamis.
Setelah melakukan komputasi menggunakan integral data dari waktu ke waktu,
maka perpindahan sudut atau sudut kemiringan dapat dihitung. Tetapi sudut ini
akan menjadi tidak akurat dalam jangka panjang karena efek bias yang dihasilkan
oleh gyroscope (Widada, 2005).

3.2 ARM Mikrokontroler


Advanced RISC Machine (ARM) mikrokontroler adalah salah satu
kontroler paling terkenal di dunia untuk aplikasi embedded. ARM Mikrokontroler
dapat ditemukan di berbagai aplikasi system seperti sensor pada printer sampai
monitoring jantung. Kesimpelan dari desain ARM adalah alasan penting untuk
kesuksesannya. Sebuah prosesor yang lebih simple sangat mudah digunakan dan
mempunyai performa yang cepat. Sama pentingnya dengan prosesor yang simple
membutuhkan daya yang sedikit dan hanya sedikit memakan baterai. Pada Projek
kali ini menggunakan ARM Mikrokontroler STM32F401RE yang berasal dari ST
Instrument.

Gambar 3.2. STM32F401RE Nucleo


(Sumber: http://www.st.com)

11
Laporan Praktik Kerja Lapangan
Lembaga Penerbangan dan Antariksa Nasional

Terdapat berbagai macam software untuk pemrograman ARM-based


Mikrokontroler dengan menggunakan berbagai bahasa pemrograman. Beberapa
software tersebut antara lain Delphi, Keil, Eclipse, Coocox, Mbed dan lain
sebagainya. Namun disini penulis menggunakan software Keil.

Gambar 3.3. Logo software Keil uVision


(Sumber: https://en.wikipedia.org)

3.3 Microsoft Visual Studio 2015


Microsoft Visual studio merupakan sebuah software yang dapat digunakan
dalam pembuatan Graphic User Interface (GUI). Pada software Microsoft Visual
Studio terdapat berbagai macam bahasa pemrogaraman yang bisa digunakan
antara lain C#,C++,VB.Net dan lain sebagainya. Pada pengujian GUI gyrometer
dan Accelerometer ini penulis menggunakan bahasa VB.Net.

Gambar 3.4. Logo software Visual Studio


(Sumber: https://commons.wikimedia.org)

3.4 Komunikasi Data Serial (USB to TTL PL2303)


USB to TTL sebagai Komunikasi Data Serial Untuk dapat berkomunikasi
antara mikrokontroler dengan PC. Besarnya level tegangan komunikasi serial
untuk mikrokontroler STM32F401 diantara 0 – 3,3 volt. Akan tetapi untuk
tegangan komunikasi serial computer sekitar -15 sampai 15volt. Agar kedua
piranti dapat berkomunikasi satu sama lain maka diperlukan sebuah converter
agar level tegangannya setara. Salah satu converter yang dapat digunakan adalah

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.

Gambar 3.5. USB PL2303


(Sumber: https://www.seeedstudio.com)

3.5 Serial Terminal


Serial terminal merupakan sebuah software yang digunakan untuk
membaca, mengetahui dan melihat aliran data dari sebuah komuikasi serial.
Software ini juga bisa digunakan untuk melakukan pengujian komunikasi data
serial dan melihat respon suatu alat/system secara serial.

Gambar 3.6. Software Terminal Viewer

13
Laporan Praktik Kerja Lapangan
Lembaga Penerbangan dan Antariksa Nasional

3.6 Komunikasi Frekuensi Radio

Gambar 3.7. Modul RF (NRF2401)


(Sumber: http://sfe-electronics.com)

Untuk menghubungkan perangkat sensor IMU dengan komputer (GUI),


system ini menggunakan sebuah devais bernama NRF24L01. NRF24L01
menggunakan frekuensi radio dengan nilai 2.4 GHz. NRF24L01 digunakan untuk
mentransmisikan data secara nirkabel kepada penerima agar dapat ditampilkan
kedalam GUI.

14
Laporan Praktik Kerja Lapangan
Lembaga Penerbangan dan Antariksa Nasional

BAB IV
PEMBAHASAN

4.1 Sensor Gyro dan Accelerometer


Sensor Gyro LPY530AL/LPR530AL dan accelerometer ADXL335B
merupakan sensor yang berintegrasi menjadi sebuah Innertial Measurement Unit
(IMU) yang diproduksi oleh Sparkfun. IMU ini memiliki 6 Degrees of Freedom
(6DOF). 6DOF maksudnya memiliki 3 axis gyroscope dan 3 axis accelerometer.
Output dari sensor ini akan diolah oleh kontroler untuk mengetahui posisi dan
orientasi roket.

4.2 Pengujian Tegangan Keluaran IMU


IMU yang digunakan memiliki keluaran berupa sinyal analog (tegangan)
diperlukan pengujian untuk mengetahui apakah IMU tersebut masih dapat bekerja
dengan baik atau tidak. Pengujian ini juga akan melihat apakah tegangan keluaran
sensor sesuai datasheet atau tidak. Pengujian dilakukan dengan menggunakan
oscilloscope serta IMU yang akan digunakan. IMU dicatu tegangan DC 3,3 V dan
dihubungkan ke ground.
Tabel 4.1. Datasheet Sparkfun 6DOF IMU

Sensor gyroscope memiliki sensitivitas sebesar 3,33 mV/º/s (untuk gain 4)


dengan range sebesar 300º/s. Untuk tegangan keluaran dari ketiga axis gyroscope
sudah mendekati zero-rate level yang dicantumkan dalam datasheet. zero-rate
level ini menunjukkan tegangan keluaran sensor dalam kondisi netral/stabil.

15
Laporan Praktik Kerja Lapangan
Lembaga Penerbangan dan Antariksa Nasional

Gambar 4.1. Pengujian nilai tengah tegangan ADC

Berdasarkan datasheet, tegangan zero-rate level sebesar 1.23 V sedangkan


yang dihasilkan sensor sebesar 1.2 V, maka sensor memiliki error sebesar:
𝑛𝑖𝑙𝑎𝑖 𝑘𝑒𝑙𝑢𝑎𝑟𝑎𝑛 𝑠𝑒𝑛𝑠𝑜𝑟 − 𝑛𝑖𝑙𝑎𝑖 𝑝𝑎𝑑𝑎 𝑑𝑎𝑡𝑎𝑠ℎ𝑒𝑒𝑡
%𝐸 = | | ×100%
𝑛𝑖𝑙𝑎𝑖 𝑝𝑎𝑑𝑎 𝑑𝑎𝑡𝑎𝑠ℎ𝑒𝑒𝑡
1,2 − 1,23
%𝐸 = | | ×100%
1,23
%𝐸 = 2,44%
Pengujian tegangan keluaran maskimum sensor dengan cara memberikan
gerakan angular pada sensor IMU dan melihat tegangan puncak dari sinyal analog
yang dikeluarkan sensor.

16
Laporan Praktik Kerja Lapangan
Lembaga Penerbangan dan Antariksa Nasional

Gambar 4.2. Pengujian nilai respon tegangan ADC

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.

4.3 Pemrograman IMU


Pemrograman IMU bertujuan untuk mengolah data analog dari sensor
menjadi data sudut. Data sudut ini merupakan hasil dari pengolahan matematis
terhadap keluaran sensor. Keluaran gyroscope yang berupa tegangan yang
merepresentasikan kecepatan sudut sedangkan tegangan keluaran dari sensor
accelerometer merupakan representasi dari percepatan.
Dalam pemrograman IMU, dibutuhkan pemrograman beberapa pheriperal
antara lain ADC, DMA, USART. Berikut adalah listing program yang
didownload ke dalam STM32F401RE:

#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);

static void USART1_UART_Init(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();

//GPIOA pin 5 sebagai output


GPIO_InitTypeDef GPIO_InitStruct;
GPIO_InitStruct.Pin = GPIO_PIN_5;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);

//Aktifkan Pin ADC


__HAL_RCC_ADC1_CLK_ENABLE();
ADC_ChannelConfTypeDef sConfig;
hadc1.Instance = ADC1;
hadc1.Init.ClockPrescaler = ADC_CLOCK_SYNC_PCLK_DIV2;
hadc1.Init.Resolution = ADC_RESOLUTION_12B;
hadc1.Init.ScanConvMode = ENABLE;
hadc1.Init.ContinuousConvMode = ENABLE;
hadc1.Init.DiscontinuousConvMode = DISABLE;
hadc1.Init.ExternalTrigConvEdge =
ADC_EXTERNALTRIGCONVEDGE_NONE;
hadc1.Init.ExternalTrigConv = ADC_SOFTWARE_START;
hadc1.Init.DataAlign = ADC_DATAALIGN_RIGHT;
hadc1.Init.NbrOfConversion = 6;
hadc1.Init.DMAContinuousRequests = ENABLE;
hadc1.Init.EOCSelection = ADC_EOC_SINGLE_CONV;
HAL_ADC_Init(&hadc1);

18
Laporan Praktik Kerja Lapangan
Lembaga Penerbangan dan Antariksa Nasional

//Konfigursi Pin GPIO ADC


GPIO_InitStruct.Pin =
GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3;
GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1;
GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);

//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);

//Urutan prioritas/urutan konversi ADC


sConfig.Channel = ADC_CHANNEL_10;
sConfig.Rank = 1;
sConfig.SamplingTime = ADC_SAMPLETIME_144CYCLES;
HAL_ADC_ConfigChannel(&hadc1, &sConfig);
sConfig.Channel = ADC_CHANNEL_11;
sConfig.Rank = 2;
HAL_ADC_ConfigChannel(&hadc1, &sConfig);
sConfig.Channel = ADC_CHANNEL_12;
sConfig.Rank = 3;
HAL_ADC_ConfigChannel(&hadc1, &sConfig);
sConfig.Channel = ADC_CHANNEL_13;
sConfig.Rank = 4;
HAL_ADC_ConfigChannel(&hadc1, &sConfig);
sConfig.Channel = ADC_CHANNEL_0;
sConfig.Rank = 5;
HAL_ADC_ConfigChannel(&hadc1, &sConfig);
sConfig.Channel = ADC_CHANNEL_1;
sConfig.Rank = 6;

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();

//Aktifkan Interupsi Timer 3


HAL_TIM_Base_Start_IT(&htim3);

//Jalankan konversi nilai ADC


HAL_ADC_Start_DMA(&hadc1, (uint32_t*) buffer_ADC, 6);

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);
}

static void USART1_UART_Init(void)


{
__HAL_RCC_USART1_CLK_ENABLE();
GPIO_InitTypeDef GPIO_InitStruct;
GPIO_InitStruct.Pin = GPIO_PIN_9|GPIO_PIN_10;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
GPIO_InitStruct.Pull = GPIO_PULLUP;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
GPIO_InitStruct.Alternate = GPIO_AF7_USART1;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);

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;
}
}

Untuk listing program yang digunakan paada mikrokontroler transmitter


dan receiver adalah sebagai berikut:
1. Transmitter
#include <SPI.h>
#include "RF24.h"
String tulis = "";
byte addresses[][6] = {"0"};
char text[100];
RF24 myRadio (7, 8);

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);
}

Tegangan keluaran dari IMU dikonversi menjadi nilai ADC oleh


STM32F401RE. Kemudian nilai ADC ditransmisikan ke Arduino Pro Mini
melalui USART (Rx-Tx). Arduino Pro Mini bertugas untuk mentransmisikan data
ADC menuju receiver. Transmitter dan receiver yang digunakan untuk
komunikasi antara Arduino Pro Mini dengan receiver adalah NRF24L01. Untuk
komponen ini menggunakan komunikasi SPI dengan masing-masing
mikrokontroler. Selanjutnya data yang diterima receiver akan diolah oleh Graphic
User Interface (GUI) dan akan ditampilkan data posisi sudut.
ADC yang tersedia pada STM32F401RE sejumlah 12 bit sehingga nilai
maksimum yang dapat dikeluarkan oleh ADC pada STM32F401RE sejumlah:
𝑁𝑖𝑙𝑎𝑖 𝐴𝐷𝐶 𝑀𝑎𝑘𝑠𝑖𝑚𝑢𝑚 = 212 − 1
𝑁𝑖𝑙𝑎𝑖 𝐴𝐷𝐶 𝑀𝑎𝑘𝑠𝑖𝑚𝑢𝑚 = 4095
Berdasarkan data di atas dapat diketahui perubahan tegangan yang dapat merubah
1 bit LSB pada ADC jika tegangan referensi (Vref ) yang digunakan sebesar 3.3 V
adalah:
𝑉𝑟𝑒𝑓
∆𝑉 =
2𝑛
3.3
∆𝑉 =
212
∆𝑉 = 0,000805664 𝑉
∆𝑉 = 0,805664 𝑚𝑉

23
Laporan Praktik Kerja Lapangan
Lembaga Penerbangan dan Antariksa Nasional

Berdasarkan besar gain adalah 4x (tertera pada komponen). Karena gain


dan ∆𝑉 diketahui, maka akan didapatkan perubahan keluaran sensor (∆𝑉𝑇 ) yaitu :
0,805664 𝑚𝑉
∆𝑉𝑇 =
4
∆𝑉𝑇 = 0,201416 𝑚𝑉
Setelah ∆𝑉𝑇 dengan senstivitas sebesar 3,33 mV/º/s didapatkan maka resolusi
pembacaan sensor IMU dapat diketahui yaitu :
∆𝑉𝑇
∆𝑓 =
𝑠𝑒𝑛𝑠𝑖𝑡𝑖𝑓𝑖𝑡𝑎𝑠
0,201416 𝑚𝑉
∆𝑓 =
3,33 𝑚𝑉/º/𝑠
∆𝑓 = 0,060485 º/s
4.4 Kalibrasi Timer
Kalibrasi Timer diperlukan untuk menentukan alat tersebut dapat
mengeluarkan nilai waktu yang sangat presisi sehingga error untuk melakukan
proses integral dapat ditekan sekecil mungkin. Pengujian dan kalibrasi ini
dilakukan dengan menggunakan osiloskop dan menggunakan software
pemrograman ARM untuk mengubah nilai konstanta waktu.

24
Laporan Praktik Kerja Lapangan
Lembaga Penerbangan dan Antariksa Nasional

Gambar 4.3. Proses kalibrasi timer

Gambar 4.4. Scope timer yang telah dikalibrasi (T=10 us)


Terlihat bahwa timer pada STM32F401RE sangat presisi dalam menghasilkan
timer. Tidak terjadi error yang signifikan ketika timer diimplementasikan.

4.4 Pengujian Nilai ADC yang Dikeluarkan Mikrokontroler


Pengujian ini berguna untuk melihat pengaruh kecepatan sudut dan
percepatan linier terhadap sensor IMU secara detail. Tentunya akan ada perbedaan
signifikan apabila sensor IMU diposisikan membentuk sudut 0º (searah dengan
gravitasi), 90º (tegak lurus) dan 180º (membelakangi/melawan arah gravitasi).
Ketika kondisi membentuk sudut 0º, sensor IMU sejajar dengan sumbunya
maka nilai yang akan tertera adalah sebesar kelipatan nilai gravitasi bumi (g)
dikali sensitivitas (330mV/g).
Ketika kondisi membentuk sudut 90º, sensor IMU tegak lurus dengan arah
percepatan gravitasi bumi. Maka sensor IMU masuk ke dalam mode zero-
gravitation. Hal ini sejalan dengan perhitungan resultan gaya yang apabila tegak
lurus dengan arah gaya maka resultannya sama dengan 0 (cos 90º = 0). Untuk
besarnya tegangan yang dikeluarkan oleh sensor IMU, dapat dilihat pada
datasheet dari accelerometer (ADXL335).

25
Laporan Praktik Kerja Lapangan
Lembaga Penerbangan dan Antariksa Nasional

Gambar 4.5. Nilai tegangan ketika 0 g

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:

Gambar 4.7. Proses debuging DMA ADC

Setalah mendapatkan dan melihat nilai ADC, maka dilakukan proses


analisis nilai ADC untuk melihat besarnya deviasi. Nilai deviasi ini merupakan
nilai deviasi gravitasi bumi (1g= 10m/s2) dengan nilai gravitasi yang ditunjukkan
oleh ADC. Melihat besarnya deviasi sangat diperlukan untuk memudahkan proses
kalibrasi dan mengetahui seberapa teliti alat tersebut.

26
Laporan Praktik Kerja Lapangan
Lembaga Penerbangan dan Antariksa Nasional

Tabel 4.2. Perhitungan Perhitungan Deviai Axelorometer sumbu X

27
Laporan Praktik Kerja Lapangan
Lembaga Penerbangan dan Antariksa Nasional

Tabel 4.3. Perhitungan Perhitungan Deviai Axelorometer sumbu Y

28
Laporan Praktik Kerja Lapangan
Lembaga Penerbangan dan Antariksa Nasional

Tabel 4.4. Perhitungan Perhitungan Deviai Axelorometer sumbu Z

29
Laporan Praktik Kerja Lapangan
Lembaga Penerbangan dan Antariksa Nasional

4.5 Pengujian Periode Transmisi


Pengujian periode transmisi bertujuan untuk mengetahui berapa rentang
sistem sensor IMU memberikan data, kemudian data tersebut diolah oleh
STM32F401 sedemikian rupa sehingga menjadi data yang siap dikirim oleh
NRF24L01 dan kemudian diterima oleh receiver dan segera ditampilkan di GUI.

Gambar 4.8. Pengujian waktu minimum transmisi data

Pengujian ini dilakukan dengan menggunakan osiloskop dan probe


osiloskop dihubungkan dengan pin yang menandakan kapan data diambil dari
sensor dan diakhiri dengan receiver menerima data. Berikut adalah hasil yang
terlihat pada osiloskop.

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).

Gambar 4.10. Waktu keseluruhan pengolahan data hingga diterima receiver

Sementar pada Gambar 4.10 merupakan waktu yang diperlukan system


tersebut untuk mengambil data, mentransmisikan hingga data selesai diterima oleh
receiver yaitu sebesar 5,620 ms.
Dari data-data tersebut dapat disimpulkan bahwa watu terkecil untuk
pengambilan data sensor adalah 5,62 ms atau dapat dikatakan juga frekuensi

31
Laporan Praktik Kerja Lapangan
Lembaga Penerbangan dan Antariksa Nasional

tertinggi untuk mendapatkan data dari sistem pembacaan IMU 6 DOF


menggunakan devais yang kami gunakan adalah sebesar (1000/5,26)Hz = 177 Hz.

4.6 Pembuatan GUI


Graphic User interface yang dibuat untuk pengiriman data sensor
ADXL335 ini menggunakan software Microsoft Visual Studio dengan bahasa
pemrograman VB.Net. Listing program yang digunakan dalam pembuatan GUI
ini berasal dari berbagai sumber yang kemudian dimodifikasi sedemikian rupa
sehingga dapat terwujud GUI yang diinginkan.
Berikut merupakan contoh tampilan dari GUI yang dibuat menggunakan
Microsoft Visual Studio 2015

Gambar 4.11. Tampilan GUI untuk pembacaan nilai

Dalam pembuatan GUI tersebut digunakan beberapa tools pada Microsoft


Visual Studio 2015 antara lain :
1. Label
Label merupakan sebuah toolbox pada visual studio 2015 untuk membuat dan
menampilkan text.
2. Group Box
Group Box berfungsi untuk mengelompokan kumpulan control (seperti button
dan sebagainya) serta bisa diberi label.
3. Button

32
Laporan Praktik Kerja Lapangan
Lembaga Penerbangan dan Antariksa Nasional

Button digunakan untuk membuat sebuah tombol yang dapat memberikan


perinyah secara langsung.
4. Text Box
Text Box merupakan sebuah toolbox yang menampilkan text dan dapat diedit
oleh pengguna pada saat program dijalankan.
5. Combo Box
Menampilkan item dalam bentuk textbox, kotak daftar atau daftar drop down.
6. Image
Image berfungsi untuk menampilkan gambar pada GUI yang telah didesain
7. Check Box
Berfungsi untuk memberi kondisi tidak atau iya seperi fungsi Bool
8. Timer
Timer adalah satu kontrol pada visual basic yang berfungsi untuk menghitung
waktu. saat program dijalankan, kontrol timer ini tidak akan terlihat dilayar
apabila aplikasi tersebut dijalankan.
9. Serial Port
Berfungsi sebagai penyedia untuk komunikasi data serial melalui port USB
antara komputer dan perangkat eksternal
10. ZedGraph Tool
Tool ini merupakan plugin tambahan dari Developer Pihak ke 3 untuk
pengembangan grafik chart dalam menggunakan plotting data didalam visual
studio.
GUI berfungsi untuk mengolah data ADC dari sensor dan mengolah data
menjadi grafik. Tujuan dibuatnya GUI agar dapat memudahkan pengguna dalam
mengambil data dari modul sensor 6DOF (Six Degree Of Freedom) dan dapat
memudahkan pengguna untuk logging data sehingga membuat pengguna lain
menghemat waktu dalam suatu penelitian yang melibatkan modul sensor 6DOF.
Dalam program GUI ini dilakukan perhitungan untuk mengubah nilai
ADC menjadi nilai sudut dap percepatan. Untuk sensor gyrometer memiliki
keluaran berupa representasi kecepatan sudut maka perlu dilakukan integrasi
untuk mendapatkan nilai sudut. Dikarenakan sensor ini jika maksimal mampu
membaca data sudut sebesar 3000/detik maka dapat dikatakan bahwa sensor ini

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

Dengan NilaiADCTengah = nilai ADC ketika ω=0 rad/s


ADC = nilai pembacaan ADC pada waktu tertentu
Sementara untuk pecepatan linier dapat dirumuskan :
(𝐴𝐷𝐶 − 𝑁𝑖𝑙𝑎𝑖𝑇𝑒𝑛𝑔𝑎ℎ𝐴𝐷𝐶)
𝑎= ∗ 10 𝑚/𝑠 2
(𝐴𝐷𝐶1𝑔)
Dengan NilaiTengahADC = nilai ADC ketika a=0 m/s2
ADC = nilai pembacaan ADC pada waktu tertentu
ADC1g = nilai ADC setiap percepatan g m/s2 yaitu sebesar 405 (ADC 12
bit)
GUI melakukan sampling data sebanyak 100 data / detik dari data yang di
transmisi dari modul sensor 6DOF. Setelah melakukan sampling data, GUI
melakukan proses perhitungan dari data ADC menjadi data sudut dan percepatan
sesuai dengan percobaan dan datasheet masing – masing sensor pada modul
6DOF
GUI ini memiliki fungsi untuk hide and show,yaitu agar pengguna dapat
memilih sumbu grafik atau grafik tertentu yang ingin ditampilkan. Pengguna juga
dapat melakukan pan,zoom pada grafik sehingga pengguna dapat melihat data
yang di dapat dari aktifitas modul sensor 6DOF pada waktu tertentu. Berikut
merupakan listing program GUI menggunakan bahasa VB.Net :

Imports System.Windows.Forms
Imports System.IO
Imports System.IO.Ports
Imports System.Threading
Imports ZedGraph

Public Class Form1


'grafik Axeloro X
Dim temp1X As Integer
Dim temp2X As Integer
Dim listx As New PointPairList

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

Dim myCurveX As LineItem

Dim gyrox As Integer


Dim TgyroxA As Integer
Dim TgyroxB As Integer
Dim TgyroxT As Integer

Dim gyroy As Integer


Dim TgyroyA As Integer
Dim TgyroyB As Integer
Dim TgyroyT As Integer

Dim gyroz As Integer


Dim TgyrozA As Integer
Dim TgyrozB As Integer
Dim TgyrozT As Integer

Dim TaxelX As Integer

35
Laporan Praktik Kerja Lapangan
Lembaga Penerbangan dan Antariksa Nasional

Dim TaxelY As Integer


Dim TaxelZ As Integer

Dim axelX As Double


Dim axelY As Double
Dim axelZ As Double

Private Sub Button1_Click(sender As Object, e As


EventArgs) Handles Button1.Click
If ComboBox1.SelectedItem = Nothing Then
MsgBox("Pilih terlebih dahulu Saluran
komunikasi", MsgBoxStyle.Critical,
"Kesalahan")
Else
errorgyro()
kontrolx = 0
ZedGraphControl1.Refresh()
temp1X = 0
temp2X = 0
temp1Y = 0
temp2Y = 0
temp2Z = 0
temp1Z = 0
vermin = 0
vermax = 0
Button1.Visible = False
Button2.Visible = True
ComboBox1.Enabled = False
Try
SerialPort1.PortName =
ComboBox1.SelectedItem
SerialPort1.Open()
Catch ex As Exception
End Try
Timer1.Enabled = True
Timer3.Enabled = True
ZedGraphControl1.Refresh()

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

Private Sub Form1_Load(sender As Object, e As


EventArgs) Handles MyBase.Load
ZedGraphControl1.GraphPane.Fill = New
Fill(Color.FromArgb(60, 60, 60))
ZedGraphControl1.GraphPane.Chart.Fill = New
Fill(Color.FromArgb(20, 20, 20))
ZedGraphControl1.GraphPane.Border.GradientFill
= New Fill(Color.FromArgb(255, 255, 255))
ZedGraphControl1.GraphPane.Legend.Fill = New
Fill(Color.FromArgb(255, 255, 255))
ZedGraphControl1.GraphPane.XAxis.Color =
Color.White

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

myPane.Title.Text = "Grafik Accelerometer"


myPane.XAxis.Title.Text = "Waktu(10 ms)"
myPane.YAxis.Title.Text = "Percepatan (m/S^2)"
Dim myPane1 As GraphPane =
ZedGraphControl2.GraphPane
myPane1.Title.Text = "Grafik Gyrometer"
myPane1.XAxis.Title.Text = "Waktu(10 ms)"
myPane1.YAxis.Title.Text = "Sudut (teta)"
End Sub
'combo box untuk port
Private Sub ComboBox1_MouseClick(sender As Object, e
As MouseEventArgs) Handles ComboBox1.MouseClick
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
End Sub

Private Sub DataReceivedHandler(ByVal sender As


Object, ByVal e As SerialDataReceivedEventArgs)
Handles SerialPort1.DataReceived
Dim sp As SerialPort = CType(sender,
SerialPort)
Dim s As String = sp.ReadLine().ToString
Invoke(Sub() BacaSerial(s))
End Sub

Sub BacaSerial(dataspedo As String)


Try
Label1.Text = dataspedo
Catch ex As Exception
Label1.Text = Nothing
End Try
End Sub

Private Sub Timer1_Tick(sender As Object, e As


EventArgs) Handles Timer1.Tick
Dim pane1 As GraphPane =
ZedGraphControl1.GraphPane
Label5.Text = Label1.Text
parsingdata()
If GX.Checked = True Then
Grafik1()
End If
If GY.Checked = True Then
Grafik2()

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

If (x1 > xScale.Max - xScale.MajorStep) Then


xScale.Max = x1 + xScale.MajorStep
xScale.Min = xScale.Max - 200.0
End If

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

Dim myCurveZ As LineItem


myCurveZ = pane1.AddCurve("", listz,
Color.Green, SymbolType.None)
myCurveZ.Symbol.Fill = New Fill(Color.White)
ZedGraphControl1.AxisChange()
ZedGraphControl1.Invalidate()
End Sub
Sub Grafik4()
Dim pane1 As GraphPane =
ZedGraphControl2.GraphPane
temp11X = temp22X
temp22X = gyrox
If vermax < gyrox Then
vermax = gyrox
End If
If vermin > gyrox Then
vermin = gyrox
End If
'sumbu x
If (x1 > 2) Then
list2x.Add(x1, temp11X)
list2x.Add(x1 + 0.5, temp22X)
End If
Dim myCurveX As LineItem
myCurveX = pane1.AddCurve("", list2x,
Color.Red, SymbolType.None)
myCurveX.Symbol.Fill = New Fill(Color.White)
ZedGraphControl2.AxisChange()
ZedGraphControl2.Invalidate()
End Sub
Sub Grafik5()
Dim pane1 As GraphPane =
ZedGraphControl2.GraphPane
temp11Y = temp22Y
temp22Y = gyroy
If vermax < gyroy Then
vermax = gyroy
End If
If vermin > gyroy Then
vermin = gyroy
End If
'sumbu x
If (x1 > 2) Then
list2y.Add(x1, temp11Y)
list2y.Add(x1 + 0.5, temp22Y)
End If
Dim myCurveY As LineItem
myCurveY = pane1.AddCurve("", list2y,
Color.Yellow, SymbolType.None)

42
Laporan Praktik Kerja Lapangan
Lembaga Penerbangan dan Antariksa Nasional

myCurveY.Symbol.Fill = New Fill(Color.White)


ZedGraphControl2.AxisChange()
ZedGraphControl2.Invalidate()
End Sub
Sub Grafik6()
Dim pane1 As GraphPane =
ZedGraphControl2.GraphPane
temp11Z = temp22z
temp22z = gyroz
If vermax < gyroz Then
vermax = gyroz
End If
If vermin > gyroz Then
vermin = gyroz
End If
'sumbu x
If (x1 > 2) Then
list2z.Add(x1, temp11Z)
list2z.Add(x1 + 0.5, temp22z)
End If
Dim myCurveZ As LineItem
myCurveZ = pane1.AddCurve("", list2z,
Color.Green, SymbolType.None)
myCurveZ.Symbol.Fill = New Fill(Color.White)
ZedGraphControl2.AxisChange()
ZedGraphControl2.Invalidate()
End Sub

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

If ((Int(Label9.Text) - TgyroxT) > TgyroxA) Or


((TgyroxT - Int(Label9.Text)) > TgyroxB) Then
gyrox = gyrox + (Int(Label9.Text) -
TgyroxT) * 3 / (4095 - TgyroxT)
End If
If ((Int(Label10.Text) - TgyroyT) > TgyroyA) Or
((TgyroyT - Int(Label10.Text)) > TgyroyB) Then
gyroy = gyroy + (Int(Label10.Text) -
TgyroyT) * 3 / (4095 - TgyroyT)
End If
If ((Int(Label11.Text) - TgyrozT) > TgyrozA) Or
((TgyrozT - Int(Label11.Text)) > TgyrozB) Then
gyroz = gyroz + (Int(Label11.Text) -
TgyrozT) * 3 / (4095 - TgyrozT)
End If
axelX = (Int(Label6.Text) - TaxelX) / 40.5
axelY = (Int(Label7.Text) - TaxelY) / 40.5
axelZ = (Int(Label8.Text) - TaxelZ) / 40.5
End Sub

Private Function MyPointValueEvent(ByVal control As


ZedGraphControl, ByVal pane As GraphPane, ByVal
curve As CurveItem, ByVal iPt As Integer) As String
Handles ZedGraphControl1.PointValueEvent
'Tampilkan nilai sumbu x dan y sat mouse saat
diarahkan
Dim pt As PointPair = curve(iPt)
Return "Percepatan sebesar " +
pt.Y.ToString("f2") + "m/s^2 saat waktu ke " +
pt.X.ToString("f1")
End Function

Private Function MyPointValueEvent2(ByVal control


As ZedGraphControl, ByVal pane As GraphPane, ByVal
curve As CurveItem, ByVal iPt As Integer) As String
Handles ZedGraphControl2.PointValueEvent

44
Laporan Praktik Kerja Lapangan
Lembaga Penerbangan dan Antariksa Nasional

' Tampilkan nilai sumbu x dan y sat mouse sat


diarahkan
Dim pt As PointPair = curve(iPt)
Return "Sudut sebesar " + pt.Y.ToString("f2") +
"derajat saat waktu ke " + pt.X.ToString("f1")
End Function
End Class

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

Haryanti, Munnik. Kusumaningrum, Nurwijayanti. 2008. Aplikasi Accelerometer


3 Axis Untuk Mengukur Sudut Kemiringan (Tilt) Engineering Model
Satelit Di Atas Air Bearing. Tesla, 10(2): 1.

Istiqphara, Swadexi. 2012. Rancang Bangun Sistem Manual Pilot Menggunakan


Joystick Logitech dan Sistem Autopilot Pada Wahana Udara Tak
Berawak. Universitas Lampung. Lampung.

Setiawan,Agus. Pengertian GUI dan CLI. Diakses tanggal 13 Oktober 2016.


http://www.transiskom.com/2015/07/pengertian-cli-dan-gui.html.

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/.

Widada, W. 2005. Aplikasi Digital Exponential Filtering untuk Embedded Sensor


Payload Roket. Prosiding Semiloka Teknologi Simulasi dan Komputasi
serta Aplikasi. Lembaga Penerbangan dan Antariksa Nasional. Bogor.

Widiyanto, Toto. Fungsi Accelerometer & Gyroscope pada Smartphone Android.


Diakses tanggal 15 Oktober 2016.
http://www.andromin.com/2015/04/fungsi-accelerometer-gyroscope-pada-
android.html

47

Anda mungkin juga menyukai