Penjejakan Set Point Dengan Mengendalikan Radio Control Helikopter (RC Heli) Menggunakan Vision Sensor CMUCam2+.

(1)

i Universitas Kristen Maranatha PENJEJAKAN SET POINT DENGAN MENGENDALIKAN RADIO

CONTROL HELIKOPTER (RC HELI) MENGGUNAKAN VISION SENSOR CMUCam2+

Disusun Oleh: Nama : Ivan Winarta NRP : 0522009

Jurusan Teknik Elektro, Fakultas Teknik, Universitas Kristen Maranatha, Jl. Prof.Drg.Suria Sumantri, MPH no.65, Bandung, Indonesia,

email : ivanwinarta@hotmail.com ABSTRAK

Dengan perkembangan teknologi saat ini, hampir segala sesuatu mulai bekerja secara otomatis, demikian juga dengan sistem transportasi yang ada saat ini. Dengan bantuan sistem GPS yang ada saat ini, sistem autopilot pada transportasi dapat mencapai tujuan dengan lebih tepat.

Pada Tugas Akhir ini, sebagai model/pengganti dari alat transportasi adalah Remote Control helicopter (RC heli) dengan merek E-Sky tipe Lama V4. Sebagai pengganti GPS, digunakan vision sensor CMUCAM2+ sebagai pendeteksi posisi RC heli. Untuk mengendalikan gerakan RC heli digunakan ATmega16, yang dihubungkan dengan DAC0808 (untuk mengubah bit keluaran ATmega16 menjadi tegangan), yang dipasangkan pada Remote Control RC heli. Sistem kendali yang digunakan adalah sistem kendali on-off.

Berdasarkan hasil percobaan dalam Tugas Akhir ini, hasil tracking oleh CMUCam2+ memiliki error rata – rata terkecil di pusat daerah kerja dengan error posisi x sebesar 5,010966% dan error posisi y sebesar 44,97954%, sedangkan target terburuk berada di titik VII (bawah kiri) dengan error posisi x sebesar 227,7637% dan error posisi y sebesar 67,19262%, sehingga informasi posisi RC heli dari CMUCam2+ tidak tepat. Pengendalian gerakan RC heli tidak berhasil disebabkan oleh model RC heli yang sulit dikendalikan arah geraknya.

Kata Kunci : E-Sky Lama V4, Vision Sensor CMUCam2+, Pengendali Mikro ATmega16.


(2)

ii Universitas Kristen Maranatha SET POINT TRACKING BY CONTROLLING RADIO CONTROL

HELICOPTER USING VISION SENSOR CMUCam2+ Disusun Oleh:

Nama : Ivan Winarta NRP : 0522009

Jurusan Teknik Elektro, Fakultas Teknik, Universitas Kristen Maranatha, Jl. Prof.Drg.Suria Sumantri, MPH no.65, Bandung, Indonesia,

email : ivanwinarta@hotmail.com ABSTRAK

With the current development in technology, almost everything works automatically as well as the transportation system nowadays. With the help of GPS, the transportation’s autopilot can reach the desired destination with better precision.

In this Final Project, the transportation’s substitute is a Remote Control Helicopter (RC heli) with the E-Sky brand version Lama V4. As the substitute of the GPS, vision sensor CMUCAM2+ was used as the detector of the RC heli’s position. To control the RC heli’s movement, ATmega16 which was combined with the DAC0808 (for changing the biner output from the ATmega16 to voltage) and connected to the Remote Control of the RC heli were used. The control system used in this Final Project was on-off control system.

Based on the experiments done in this Final Project, the tracking result of CMUCam2+ have the smallest error on the center of the work area with the error 5,010966% for position x and error 44,97954% for position y, the biggest error is at the position VII (below left) of the work area with the error 227,7637% for position x and error 67,19262% for position y, thus the information of RC heli’s position from CMUCam2+ is inaccurate. The RC heli controlling is mostly failure because of the RC heli’s unstability which was used as the substitute.

Key words : E-Sky Lama V4, Vision Sensor CMUCam2+, Microcontroller ATmega16.


(3)

v Universitas Kristen Maranatha

DAFTAR ISI

Halaman

ABSTRAK ... i

ABSTRACT ... ii

KATA PENGANTAR ... iii

DAFTAR ISI ... v

DAFTAR TABEL ... viii

DAFTAR GAMBAR ... x

BAB I PENDAHULUAN I.1 Latar Belakang ... 1

I.2 Identifikasi Masalah ... 1

I.3 Perumusan Masalah ... 1

I.4 Tujuan ... 1

I.5 Pembatasan Masalah ... 2

I.6 Spesifikasi Alat ... 2

I.7 Sistematika Penulisan ... 3

BAB II LANDASAN TEORI II.1 Helikopter ... 4

II.1.1 Bagian Utama Helikopter... 4

II.1.2 Prinsip Kerja Helikopter ... 5

II.2 Vision Sensor CMUCam2+ ... 10

II.2.1 Perintah Dasar pada CMUCam2+ ... 13

II.2.2 Tipe Data CMUCam2+ ... 15

II.3 Pengendali Mikro ... 16

II.3.1 Pengenalan ATMEL AVR RISC ... 16

II.3.2 Pengendali Mikro ATmega16 ... 17


(4)

vi Universitas Kristen Maranatha

II.3.2.2 Konfigurasi Pin ATmega16 ... 19

II.3.2.3 Blok ATmega16 ... 21

II.3.2.4 General Purpose Register ATmega16 ... 23

II.3.2.5 Peta Memori ATmega16 ... 23

II.3.2.6 PWM (Pulse Width Modulation) ATMega16 ... 25

II.3.2.7 Pin Input/Output ATmega16 ... 27

II.3.2.8 I2C (Inter-Integrated Circuit ) ATMega16... 27

II.3.2.9 USART (The Universal Synchronous and Asynchronous Serial Receiver and Transmitter) ATmega16 ... 28

II.4 Sistem Kendali ... 30

II.4.1 Pengendali On – Off (Two Position Controller) ... 32

II.4.2 Tracking Control System ... 32

BAB III PERANCANGAN DAN REALISASI III.1 Perancangan Sistem Kendali Penjejakan Radio Control Helikopter (RC Heli) Menggunakan Vision sensor CMUCam2+……… 34

III.1.1 Diagram Blok Sistem Kendali Penjejakan RC Heli Menggunakan Vision sensor CMUCam2+…………..…….. 34

III.1.2 Ilustrasi Sistem………...………..……….. 35

III.1.3 Ide yang Telah Digunakan ………..……….. 36

III.2 Pengaturan Vision sensor CMUCam2+ untuk Menjejak RC Heli ... 36

II.2.1 Pemilihan Baud Rate ... 37

II.2.2 Komunikasi Serial CMUCam2+ dengan Komputer ... 38

II.2.3 Penentuan RGB Maksimum dan Minimum Titik yang Akan di-track Melalui CMUCam2+ GUI ... 39

III.3 Microsoft Visual Basic 6.0 ... 41

III.3.1 Desain Program Aplikasi Microsoft Visual Basic 6.0.…….… 42

III.3.2 Algoritma Penentuan Gerakan RC Heli Menggunakan Microsoft Visual Basic 6 ... 45

III.4 Realisasi Rangkaian Pengendali RC Heli Menggunakan ATMega16 .. 47


(5)

vii Universitas Kristen Maranatha III.4.2 Algoritma Pemrograman Pengendali Mikro ATMega16…… 49 BAB IV DATA PENGAMATAN DAN ANALISA

IV.1 Pengujian Vision Sensor CMUCam2+ ... . 53 IV.2 Pengujian Gerakan RC Heli ... . 64 IV.3 Pengujian Tracking Control RC Heli Menggunakan Vision Sensor

CMUCam2+ ... . 65 BAB V KESIMPULAN DAN SARAN

V.1 Kesimpulan ... . 70 V.2 Saran ... . 71 DAFTAR PUSTAKA ... . 72 LAMPIRAN – A Foto Radio Control Helikopter

LAMPIRAN – B Program pada Microsoft Visual Basic 6 dan Pengendali Mikro ATMega16


(6)

viii Universitas Kristen Maranatha

DAFTAR TABEL

Halaman

1. Tabel 2.1 Fungsi Khusus Port B ... 20

2. Tabel 2.2 Fungsi Khusus Port C ... 20

3. Tabel 2.3 Fungsi Khusus Port D ... 21

4. Tabel 2.4 Konfigurasi Port ATmega16 ... 27

5. Tabel 2.5 Baud Rate ... 30

6. Tabel 3.1 Konfigurasi Baud Rate ... 37

7. Tabel 3.2 Tabel Setting Properti ... 43

8. Tabel 3.3 Penjelasan “G” ... 46

9. Tabel 4.1 Pixel/cm Daerah Kerja ... 53

10. Tabel 4.2 Analisis Perbandingan Pixel Terdeteksi pada Posisi I dengan Pixel Sebenarnya ………....…..………..… 55

11. Tabel 4.3 Analisis Perbandingan Pixel Terdeteksi pada Posisi II dengan Pixel Sebenarnya ………....…..………..… 56

12. Tabel 4.4 Analisis Perbandingan Pixel Terdeteksi pada Posisi III dengan Pixel Sebenarnya ..………….………....…..………..… 57

13. Tabel 4.5 Analisis Perbandingan Pixel Terdeteksi pada Posisi IV dengan Pixel Sebenarnya ..……….………....…..………..… 58

14. Tabel 4.6 Analisis Perbandingan Pixel Terdeteksi pada Posisi V dengan Pixel Sebenarnya ………....…..………..… 60

15. Tabel 4.7 Analisis Perbandingan Pixel Terdeteksi pada Posisi VI dengan Pixel Sebenarnya ..……….………....…..………..… 61

16. Tabel 4.8 Analisis Perbandingan Pixel Terdeteksi pada Posisi VII dengan Pixel Sebenarnya ……….…..…..…..… 62

17. Tabel 4.9 Analisis Perbandingan Pixel Terdeteksi pada Posisi VIII dengan Pixel Sebenarnya ………....……...… 63

18. Tabel 4.10 Analisis Perbandingan Pixel Terdeteksi pada Posisi IX dengan Pixel Sebenarnya ..…….………....…..………..… 65


(7)

ix Universitas Kristen Maranatha 20. Tabel 4.12 Hasil Pengujian Tracking control ... 68


(8)

x Universitas Kristen Maranatha

DAFTAR GAMBAR

Halaman

1. Gambar 2.1 Bagian baling-baling helikopter ... 5

2. Gambar 2.2 Cara kerja baling-baling helikopter ... 7

3. Gambar 2.3 Ilustrasi terbang vertikal helikopter ... 8

4. Gambar 2.4 Arah gerakan helikopter (tampak atas) ... 9

5. Gambar 2.5 Perubahan posisi swashplate untuk gerakan helicopter ... 9

6. Gambar 2.6 Fungsi baling – baling ekor ... 10

7. Gambar 2.7 CMUCam2+ ... 10

8. Gambar 2.8 Diagram Blok CMUCam2+ ... 11

9. Gambar 2.9 CMUCam Color Tracking ... 12

10. Gambar 2.10 Perintah \r ... 13

11. Gambar 2.11 Perintah Reset ... 13

12. Gambar 2.12 Format Perintah RM ... 14

13. Gambar 2.13 Perintah Servo ... 14

14. Gambar 2.14 Perintah TC ... 15

15. Gambar 2.15 Konfigurasi Pin ATmega16 ... 19

16. Gambar 2.16 Diagram Blok ATmega16………….. ... 22

17. Gambar 2.17 General Purpose Register ATmega16 ... 23

18. Gambar 2.18 Pemetaan Memori ATmega16 ... 24

19. Gambar 2.19 Pemetaan Memori Data ATmega16 ... 25

20. Gambar 2.20 Phase & Frequency Correct PWM ... 26

21. Gambar 2.21 Gambaran Modul TWI Keseluruhan ... 28

22. Gambar 2.22 Blok USART ... 29

23. Gambar 2.23 Kendali Loop Terbuka ... 30

24. Gambar 2.24 Kendali Loop Tertutup ... 31

25. Gambar 2.25 Kendali On – Off ... 32

26. Gambar 3.1 Diagram Blok Penjejakan Set Point dengan Mengendalikan RC heli Menggunakan Vision Sensor CMUCam2+ ... 34


(9)

xi Universitas Kristen Maranatha

28. Gambar 3.3 CMUCam2+ Board Layout ... 36

29. Gambar 3.4 Konfigurasi Jumper Baud Rate ... 38

30. Gambar 3.5 Konfigurasi Kabel Serial CMUCam2+ dengan Komputer 39 31. Gambar 3.6 Contoh Tampilan GUI Mengambil Gambar ... 40

32. Gambar 3.7 Nilai RGB Maksimum dan Minimum ... 41

33. Gambar 3.8 Tampilan Visual Basic untuk Mengendalikan Gerakan RC Heli ... 42

34. Gambar 3.9 Diagram Alir Tracking Posisi RC heli dan Penentuan Gerakan RC heli ... 45

35. Gambar 3.10 Skematik Rangkaian Pengendali Gerakan RC heli ... 48

36. Gambar 3.11a Diagram Alir Pergerakan RC heli pada ATMega16……… 49

37. Gambar 3.11b Diagram Alir Gerakan Hover ... 50

38. Gambar 3.11c Diagram Alir Gerakan Maju ... 50

39. Gambar 3.11d Diagram Alir Gerakan Naik ... 51

40. Gambar 3.11e Diagram Alir Gerakan Naik dan Maju……… 51

41. Gambar 3.11f Diagram Alir Gerakan Turun ... 52

42. Gambar 3.11g Diagram Alir Gerakan Turun dan Maju... 52

43. Gambar 4.1 Posisi Titik – Titik Target ……… 54

44. Gambar 4.2 Output CMUCam2+ Target di Posisi I ..………... 54

45. Gambar 4.3 Output CMUCam2+ Target di Posisi II ..………... 56

46. Gambar 4.4 Output CMUCam2+ Target di Posisi III ………….……... 57

47. Gambar 4.5 Output CMUCam2+ Target di Posisi IV ………….……... 58

48. Gambar 4.6 Output CMUCam2+ Target di Posisi V ..………... 59

49. Gambar 4.7 Output CMUCam2+ Target di Posisi VI..………... 61

50. Gambar 4.8 Output CMUCam2+ Target di Posisi VII………... 62

51. Gambar 4.9 Output CMUCam2+ Target di Posisi VIII.………..……... 63

52. Gambar 4.10 Output CMUCam2+ Target di Posisi IX .………... 64


(10)

LAMPIRAN A


(11)

A-1


(12)

A-2


(13)

A-3


(14)

A-4


(15)

A-5


(16)

LAMPIRAN B

PROGRAM PADA MICROSOFT VISUAL BASIC 6 DAN

PENGONTROL MIKRO ATMEGA16


(17)

B-1

MICROSOFT VISUAL BASIC 6

//--- // Tombol Start

//--- Private Sub Command1_Click()

Label4.Caption = "0" Timer5.Enabled = True

MSComm1.Output = "TC6 64 61 115 94 196" & vbCrLf If Option1.Value = True Then

Timer1.Enabled = True End If

If Option2.Value = True Then Timer2.Enabled = True End If

If Option3.Value = True Then Timer3.Enabled = True End If

If CStr(Label6.Caption) > 0 Then Timer4.Enabled = True

End If End Sub

//---

// Tombol Stop

//--- Private Sub Command2_Click()

Timer1.Enabled = False Timer2.Enabled = False Timer3.Enabled = False Timer4.Enabled = False Timer5.Enabled = False For i = 1 To 200


(18)

B-2 MSComm1.Output = " " & vbCrLf Next i

RichTextBox1.Text = " " End Sub

//---

// Program Awal

//--- Private Sub Form_Load()

MSComm1.PortOpen = True MSComm1.PortOpen = True Timer1.Enabled = False Timer2.Enabled = False Timer3.Enabled = False Timer4.Enabled = False Timer5.Enabled = False Option1.Value = True End Sub

//---

// Program pada Timer1

//--- Private Sub Timer1_Timer()

Do While x < X1

x = Value(Label6.Caption) y = Value(Label7.Caption) If x < X1 Then

g1 = 1 Else: g1 = 0 End If If y < Y1 Then g2 = 2 Else: g2 = 0


(19)

B-3 End If

If y > Y1 Then g3 = 4 Else: g3 = 0 End If

g = g1 + g2 + g3 MSComm2.Output = g Loop

Do While x < X2

x = Value(Label6.Caption) y = Value(Label7.Caption) If x < X2 Then

g1 = 1 Else: g1 = 0 End If If y < Y2 Then g2 = 2 Else: g2 = 0 End If If y > Y2 Then g3 = 4 Else: g3 = 0 End If

g = g1 + g2 + g3 MSComm2.Output = g Loop

Do While x < X3

x = Value(Label6.Caption) y = Value(Label7.Caption) If x < X3 Then


(20)

B-4 Else: g1 = 0

End If If y < Y3 Then g2 = 2 Else: g2 = 0 End If If y > Y3 Then g3 = 4 Else: g3 = 0 End If

g = g1 + g2 + g3 MSComm2.Output = g Loop

Do While x < X4

x = Value(Label6.Caption) y = Value(Label7.Caption) If x < X4 Then

g1 = 1 Else: g1 = 0 End If If y < Y4 Then g2 = 2 Else: g2 = 0 End If If y > Y4 Then g3 = 4 Else: g3 = 0 End If

g = g1 + g2 + g3 MSComm2.Output = g Loop


(21)

B-5 Do While x < x5

x = Value(Label6.Caption) y = Value(Label7.Caption) If x < x5 Then

g1 = 1 Else: g1 = 0 End If If y < Y5 Then g2 = 2 Else: g2 = 0 End If If y > Y5 Then g3 = 4 Else: g3 = 0 End If

g = g1 + g2 + g3 MSComm2.Output = g Loop

If x > x5 Then

Timer1.Enabled = False Timer4.Enabled = False End Sub

//---

// Program pada Timer2

//--- Private Sub Timer2_Timer()

Do While x < X1

x = Value(Label6.Caption) y = Value(Label7.Caption) If x < X1 Then


(22)

B-6 Else: g1 = 0

End If If y < Y1 Then g2 = 2 Else: g2 = 0 End If If y > Y1 Then g3 = 4 Else: g3 = 0 End If

g = g1 + g2 + g3 MSComm2.Output = g Loop

Do While x < X2

x = Value(Label6.Caption) y = Value(Label7.Caption) If x < X2 Then

g1 = 1 Else: g1 = 0 End If If y < Y2 Then g2 = 2 Else: g2 = 0 End If If y > Y2 Then g3 = 4 Else: g3 = 0 End If

g = g1 + g2 + g3 MSComm2.Output = g Loop


(23)

B-7 Do While x < X3

x = Value(Label6.Caption) y = Value(Label7.Caption) If x < X3 Then

g1 = 1 Else: g1 = 0 End If If y < Y3 Then g2 = 2 Else: g2 = 0 End If If y > Y3 Then g3 = 4 Else: g3 = 0 End If

g = g1 + g2 + g3 MSComm2.Output = g Loop

Do While x < X4

x = Value(Label6.Caption) y = Value(Label7.Caption) If x < X4 Then

g1 = 1 Else: g1 = 0 End If If y < Y4 Then g2 = 2 Else: g2 = 0 End If If y > Y4 Then g3 = 4


(24)

B-8 Else: g3 = 0

End If

g = g1 + g2 + g3 MSComm2.Output = g Loop

Do While x < x5

x = Value(Label6.Caption) y = Value(Label7.Caption) If x < x5 Then

g1 = 1 Else: g1 = 0 End If If y < Y5 Then g2 = 2 Else: g2 = 0 End If If y > Y5 Then g3 = 4 Else: g3 = 0 End If

g = g1 + g2 + g3 MSComm2.Output = g Loop

If x > x5 Then

Timer2.Enabled = False Timer4.Enabled = False End Sub

//---

// Program pada Timer3

//--- Private Sub Timer3_Timer()


(25)

B-9 Do While x < X1

x = Value(Label6.Caption) y = Value(Label7.Caption) If x < X1 Then

g1 = 1 Else: g1 = 0 End If If y < Y1 Then g2 = 2 Else: g2 = 0 End If If y > Y1 Then g3 = 4 Else: g3 = 0 End If

g = g1 + g2 + g3 MSComm2.Output = g Loop

Do While x < X2

x = Value(Label6.Caption) y = Value(Label7.Caption) If x < X2 Then

g1 = 1 Else: g1 = 0 End If If y < Y2 Then g2 = 2 Else: g2 = 0 End If If y > Y2 Then g3 = 4


(26)

B-10 Else: g3 = 0

End If

g = g1 + g2 + g3 MSComm2.Output = g Loop

Do While x < X3

x = Value(Label6.Caption) y = Value(Label7.Caption) If x < X3 Then

g1 = 1 Else: g1 = 0 End If If y < Y3 Then g2 = 2 Else: g2 = 0 End If If y > Y3 Then g3 = 4 Else: g3 = 0 End If

g = g1 + g2 + g3 MSComm2.Output = g Loop

Do While x < X4

x = Value(Label6.Caption) y = Value(Label7.Caption) If x < X4 Then

g1 = 1 Else: g1 = 0 End If If y < Y4 Then


(27)

B-11 g2 = 2

Else: g2 = 0 End If If y > Y4 Then g3 = 4 Else: g3 = 0 End If

g = g1 + g2 + g3 MSComm2.Output = g Loop

Do While x < x5

x = Value(Label6.Caption) y = Value(Label7.Caption) If x < x5 Then

g1 = 1 Else: g1 = 0 End If If y < Y5 Then g2 = 2 Else: g2 = 0 End If If y > Y5 Then g3 = 4 Else: g3 = 0 End If

g = g1 + g2 + g3 MSComm2.Output = g Loop

If x > x5 Then

Timer3.Enabled = False Timer4.Enabled = False


(28)

B-12 End Sub

//--- // Program pada Timer4 (Penghitung Lamanya Proses)

//--- Private Sub Timer4_Timer()

Label4.Caption = Val(Label4.Caption) + 1 End Sub

//--- // Program pada Timer5 (Pengambil Data CMUCam2+)

//--- Private Sub Timer5_Timer()

Dim Data As Variant Data = MSComm1.Input RichTextBox1.Text = Data Data = Split(Data, " ") Label6.Caption = Data(1) Label7.Caption = Data(2) End Sub


(29)

B-13

PENGONTROL MIKRO ATMEGA16 /***************************************************** This program was produced by the

CodeWizardAVR V1.25.3 Professional Automatic Program Generator

© Copyright 1998-2007 Pavel Haiduc, HP InfoTech s.r.l. http://www.hpinfotech.com

Project : Pengontrol Remote RC Heli Version : 1

Date : 9/27/2010

Author : IVan/PiNgu/APui/ToPui Company : UKM

Comments:

Chip type : ATmega16 Program type : Application Clock frequency : 11.059200 MHz Memory model : Small

External SRAM size : 0 Data Stack size : 256

*****************************************************/

#include <mega16.h> #include <delay.h> #define RXB8 1 #define TXB8 0 #define UPE 2 #define OVR 3 #define FE 4


(30)

B-14 #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)

// USART Receiver buffer #define RX_BUFFER_SIZE 8 char rx_buffer[RX_BUFFER_SIZE];

#if RX_BUFFER_SIZE<256

unsigned char rx_wr_index,rx_rd_index,rx_counter; #else

unsigned int rx_wr_index,rx_rd_index,rx_counter; #endif

// This flag is set on USART Receiver buffer overflow bit rx_buffer_overflow;

// USART Receiver interrupt service routine interrupt [USART_RXC] void usart_rx_isr(void) {

char status,data; status=UCSRA; data=UDR;

if ((status & (FRAMING_ERROR | PARITY_ERROR |

DATA_OVERRUN))==0) {


(31)

B-15 rx_buffer[rx_wr_index]=data;

if (++rx_wr_index == RX_BUFFER_SIZE) rx_wr_index=0; if (++rx_counter == RX_BUFFER_SIZE)

{ rx_counter=0; rx_buffer_overflow=1; }; }; } #ifndef _DEBUG_TERMINAL_IO_

// Get a character from the USART Receiver buffer #define _ALTERNATE_GETCHAR_ #pragma used+ char getchar(void) { char data; while (rx_counter==0); data=rx_buffer[rx_rd_index];

if (++rx_rd_index == RX_BUFFER_SIZE) rx_rd_index=0; #asm("cli") --rx_counter; #asm("sei") return data; } #pragma used- #endif

// Standard Input/Output functions #include <stdio.h>


(32)

B-16 // Declare your global variables here

int G = 0; void main(void) {

// Declare your local variables here

// Input/Output Ports initialization // Port A initialization

// Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out

// State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0 PORTA=0x00;

DDRA=0xFF;

// 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=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out

// State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0 PORTC=0x00;

DDRC=0xFF;

// Port D initialization

// Func7=Out Func6=Out Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In


(33)

B-17

// State7=0 State6=0 State5=T State4=T State3=T State2=T State1=T State0=T PORTD=0x00;

DDRD=0xC0;

// Timer/Counter 0 initialization // Clock source: System Clock // Clock value: Timer 0 Stopped // Mode: Normal top=FFh // OC0 output: Disconnected 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. // 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 TCCR1A=0x00; TCCR1B=0x00; TCNT1H=0x00; TCNT1L=0x00; ICR1H=0x00; ICR1L=0x00;


(34)

B-18 OCR1AH=0x00;

OCR1AL=0x00; OCR1BH=0x00; OCR1BL=0x00;

// Timer/Counter 2 initialization // Clock source: System Clock // Clock value: Timer 2 Stopped // Mode: Normal top=FFh // OC2 output: Disconnected ASSR=0x00;

TCCR2=0x00; TCNT2=0x00; OCR2=0x00;

// External Interrupt(s) initialization // INT0: Off

// INT1: Off // INT2: Off MCUCR=0x00; MCUCSR=0x00;

// Timer(s)/Counter(s) Interrupt(s) initialization TIMSK=0x00;

// USART initialization

// Communication Parameters: 8 Data, 1 Stop, No Parity // USART Receiver: On

// USART Transmitter: Off // USART Mode: Asynchronous // USART Baud rate: 9600


(35)

B-19 UCSRA=0x00; UCSRB=0x90; UCSRC=0x86; UBRRH=0x00; UBRRL=0x47;

// Analog Comparator initialization // Analog Comparator: Off

// Analog Comparator Input Capture by Timer/Counter 1: Off ACSR=0x80;

SFIOR=0x00;

// Global enable interrupts #asm("sei")

//--- //Program Untuk Memberikan Delay 7 Detik dan Kecepatan Motor DC dan Posisi //Motor Servo yang Dimulai Setelah Batere Dipasangkan

//--- delay_ms(7000); PORTA=0x7F; PORTC=0X2B; while (1) {

// Place your code here

//--- //Program Untuk Mengendalikan Kecepatan Motor DC dan Posisi Motor Servo //Berdasarkan “G”

//--- G=getchar();

while (G==1) {


(36)

B-20 PORTA=PORTA--;

}

while (G == 2) {

PORTC--; delay_ms(300); PORTC++; }

while (G == 3) { PORTA=PORTA--; PORTC=PORTC--; delay_ms(300); PORTC=PORTC++; }

while (G == 4) {

PORTA=PORTA++; }

while (G == 5) { PORTA=PORTA++; PORTC=PORTC--; delay_ms(300); PORTC=PORTC++; } }; }


(37)

LAMPIRAN C

DATASHEET


(38)

(39)

(40)

(41)

(42)

(43)

(44)

(45)

(46)

(47)

(48)

(49)

(50)

(51)

(52)

(53)

(54)

(55)

(56)

1 Universitas Kristen Maranatha BAB I

PENDAHULUAN

Pada bab ini berisi tentang latar belakang, identifikasi masalah, perumusan masalah, tujuan, pembatasan masalah, spesifikasi alat, dan sistematika penulisan laporan tugas akhir.

I.1 Latar Belakang

Dengan perkembangan GPS (Global Positioning System) saat ini, maka posisi dari suatu benda di muka bumi dapat diketahui. Dengan menggunakan GPS, sistem autopilot kendaraan bisa dibuat menjadi lebih baik. Contohnya pada pesawat terbang, pada saat pesawat mengudara dan mendarat, pesawat dikendalikan secara manual, namun pada saat berada di angkasa, pesawat terbang dikendalikan secara autopilot. Saat berada dalam keadaan autopilot tersebut, perlu ditentukan jalur yang akan ditempuh. Maka dibutuhkan tracking yang tepat agar pesawat dapat mencapai tujuan yang diinginkan. Hal inilah yang mendasari ide untuk membuat tracking control untuk helikopter.

I.2 Identifikasi Masalah

Bagaimana agar RC heli dapat mencapai suatu tujuan/set point secara otomatis.

I.3 Perumusan Masalah

Mendeteksi posisi RC heli dengan vision sensor CMUCam2+ dan mengendalikannya agar bergerak di jalur (set point) yang diinginkan.

I.4 Tujuan

Membuat RC heli dapat terbang menjejaki 3 buah bentuk jalur yang berbentuk step, ramp, dan parabola secara otomatis.


(57)

Bab I Pendahuluan 2

Universitas Kristen Maranatha I.5 Pembatasan Masalah

Dalam tugas akhir ini, masalah dibatasi sampai hal-hal berikut yaitu : 1. RC heli dibuat menjadi sewarna dengan daerah kerjanya (hitam).

2. Diberi 1 penanda (titik berbentuk persegi berukuran 2 cm x 2 cm) pada titik berat RC heli yang berwarna putih.

3. Percobaan dilakukan di dalam ruangan tertutup (menghindari angin/gangguan dari luar).

4. Daerah kerja RC heli berukuran 49 cm x 33 cm.

5. RC heli bekerja dimulai dan diakhiri dalam keadaan hover (mengambang di udara).

6. Sistem kendali yang digunakan adalah sistem kendali ON-OFF, dengan ON adalah RC heli bergerak ke tujuan dan OFF adalah hover pada posisi terakhir RC heli.

7. RC heli hanya bergerak ke satu sisi (sisi kiri ke sisi kanan).

8. RC heli hanya menghasilkan 6 jenis gerakan, yaitu diam di tempat (hover), naik, turun, maju, diagonal ke atas (gabungan naik dan maju), dan diagonal ke bawa (gabungan turun dan maju).

9. RC heli dikendalikan oleh remote control yang dikendalikan secara otomatis menggunakan ATmega16, yang dihubungkan ke DAC0808.

10. Apabila penanda di badan RC heli berada di luar daerah kerja (tidak terdeteksi oleh CMUCam2+), maka RC heli akan berada dalam keadaan hover.

I.6 Spesifikasi Alat

Spesifikasi alat yang digunakan dalam Tugas Akhir ini adalah sebagai berikut :

1. Menggunakan vision sensor CMUCam2+. 2. Menggunakan ATmega16.


(58)

Bab I Pendahuluan 3

Universitas Kristen Maranatha I.7 Sistematika Penulisan

Sistematika pembahasan laporan Tugas Akhir ini disusun menjadi lima bab, yaitu sebagai berikut :

BAB I PENDAHULUAN

Pada bab ini berisi tentang latar belakang, identifikasi masalah, perumusan masalah, tujuan, pembatasan masalah, spesifikasi alat, dan sistematika penulisan laporan Tugas Akhir.

BAB II LANDASAN TEORI

Pada bab ini dijelaskan mengenai teori-teori penunjang yang diperlukan dalam merancang dan merealisasikan tracking control RC heli menggunakan CMUCam2+.

BAB III PERANCANGAN DAN REALISASI

Pada bab ini dijelaskan tentang Perancangan penjejakan set point dengan mengendalikan Radio Control Helikopter (RC heli) menggunakan vision sensor CMUCam2+, pengaturan vision sensor CMUCam2+ untuk menjejak RC heli, perancangan dan realisasi penentuan gerakan RC heli di komputer menggunakan

Microsoft Visual Basic 6, realisasi rangkaian pengendali remote control RC heli

menggunakan ATmega16.

BAB IV ANALISA DAN DATA PENGAMATAN

Pada bab ini dijelaskan tentang proses pengambilan data pengamatan, pengujian tracking control menggunakan CMUCam2+, dan analisisnya.

BAB V KESIMPULAN DAN SARAN

Pada bab ini berisi kesimpulan dari Tugas Akhir dan saran-saran yang perlu dilakukan untuk perbaikan di masa mendatang.


(59)

67 Universitas Kristen Maranatha BAB V

KESIMPULAN DAN SARAN

Bab ini berisi kesimpulan dari tugas akhir dan saran-saran yang perlu dilakukan untuk perbaikan di masa mendatang.

V.1 Kesimpulan

Dengan memperhatikan data pengamatan dan analisis pada bab sebelumnya, dapat disimpulkan bahwa:

1. Motor driver L293, L298, dan LMD18200 tidak dapat memberikan

kecepatan putaran pada motor DC yang dibutuhkan untuk terbang.

2. Berdasarkan hasil percobaan CMUCam2+, hasil tracking dengan error rata – rata terkecil berada di pusat daerah kerja dengan error posisi x sebesar 5,010966% dan error posisi y sebesar 44,97954%, sedangkan target terburuk berada di di titik VII dengan error posisi x sebesar 227,7637% dan error posisi y sebesar 67,19262%. Error rata – rata dari percobaan ini untuk posisi x adalah 56,37003%, sedangkan untuk posisi y adalah 46,42112%. Error yang besar ini disebabkan oleh cahaya, warna, dan ukuran daerah kerja. 3. RC heli menghasilkan gerakan tidak seperti yang diharapkan dikarenakan

oleh ketidakstabilan RC heli dalam melakukan gerakan hover yang menyebabkan gerakan – gerakan yang lain tidak berhasil (tidak stabil). 4. Berdasarkan hasil percobaan, sistem kendali yang dibuat dalam Tugas Akhir

ini masih belum cukup untuk memenuhi tujuan yang ingin dicapai karena hasil tracking oleh CMUCam2+ memiliki error yang cukup besar dan pengendalian RC heli yang gagal karena ketidakstabilan RC heli itu sendiri.


(60)

Bab V Kesimpulan dan Saran 71

V.2 Saran

Saran-saran yang dapat diberikan untuk perbaikan dan pengembangan dari Tugas Akhir ini adalah sebagai berikut:

1. Mencari dan menggunakan motor driver yang tepat, sehingga RC heli dapat dikendalikan dengan lebih stabil dan leluasa (keluaran dari pengontrol mikro dan motor driver lebih tetap, tidak seperti remote control RC heli).

2. Menggunakan beberapa CMUCam2+ pada posisi yang berbeda agar kemampuan bergerak (derajat kebebasan) dari helikopter dapat dimanfaatkan semua (agar lebih maksimal).


(61)

72 Universitas Kristen Maranatha DAFTAR PUSTAKA

1. Andrianto, H., Buku Panduan : Pelatihan Mikrokontroler AVR ATmega16, 2008.

2. Sigit, Riyanto. Robotika, Sensor, Dan Aktuator, Edisi ke-1, Yogyakarta:Graha Ilmu, 2007.

3. Ogata, Katsuhiko. Modern Control Engineering (4th edition). Prentice-Hall, 2002.

4. Anonymous, ATmega16 datasheet. Amerika : Atmel. 2010.

5. Anonymous, CMUcam2+ Vision Sensor User Guide. Amerika : Acroname. 6. Anonymous, Helikopter. Indonesia : Wikipedia.


(1)

1 Universitas Kristen Maranatha BAB I

PENDAHULUAN

Pada bab ini berisi tentang latar belakang, identifikasi masalah, perumusan masalah, tujuan, pembatasan masalah, spesifikasi alat, dan sistematika penulisan laporan tugas akhir.

I.1 Latar Belakang

Dengan perkembangan GPS (Global Positioning System) saat ini, maka posisi dari suatu benda di muka bumi dapat diketahui. Dengan menggunakan GPS, sistem autopilot kendaraan bisa dibuat menjadi lebih baik. Contohnya pada pesawat terbang, pada saat pesawat mengudara dan mendarat, pesawat dikendalikan secara manual, namun pada saat berada di angkasa, pesawat terbang dikendalikan secara autopilot. Saat berada dalam keadaan autopilot tersebut, perlu ditentukan jalur yang akan ditempuh. Maka dibutuhkan tracking yang tepat agar pesawat dapat mencapai tujuan yang diinginkan. Hal inilah yang mendasari ide untuk membuat tracking control untuk helikopter.

I.2 Identifikasi Masalah

Bagaimana agar RC heli dapat mencapai suatu tujuan/set point secara otomatis.

I.3 Perumusan Masalah

Mendeteksi posisi RC heli dengan vision sensor CMUCam2+ dan mengendalikannya agar bergerak di jalur (set point) yang diinginkan.

I.4 Tujuan

Membuat RC heli dapat terbang menjejaki 3 buah bentuk jalur yang berbentuk step, ramp, dan parabola secara otomatis.


(2)

Bab I Pendahuluan 2

Universitas Kristen Maranatha I.5 Pembatasan Masalah

Dalam tugas akhir ini, masalah dibatasi sampai hal-hal berikut yaitu : 1. RC heli dibuat menjadi sewarna dengan daerah kerjanya (hitam).

2. Diberi 1 penanda (titik berbentuk persegi berukuran 2 cm x 2 cm) pada titik berat RC heli yang berwarna putih.

3. Percobaan dilakukan di dalam ruangan tertutup (menghindari angin/gangguan dari luar).

4. Daerah kerja RC heli berukuran 49 cm x 33 cm.

5. RC heli bekerja dimulai dan diakhiri dalam keadaan hover (mengambang di udara).

6. Sistem kendali yang digunakan adalah sistem kendali ON-OFF, dengan ON adalah RC heli bergerak ke tujuan dan OFF adalah hover pada posisi terakhir RC heli.

7. RC heli hanya bergerak ke satu sisi (sisi kiri ke sisi kanan).

8. RC heli hanya menghasilkan 6 jenis gerakan, yaitu diam di tempat (hover), naik, turun, maju, diagonal ke atas (gabungan naik dan maju), dan diagonal ke bawa (gabungan turun dan maju).

9. RC heli dikendalikan oleh remote control yang dikendalikan secara otomatis menggunakan ATmega16, yang dihubungkan ke DAC0808.

10. Apabila penanda di badan RC heli berada di luar daerah kerja (tidak terdeteksi oleh CMUCam2+), maka RC heli akan berada dalam keadaan hover.

I.6 Spesifikasi Alat

Spesifikasi alat yang digunakan dalam Tugas Akhir ini adalah sebagai berikut :

1. Menggunakan vision sensor CMUCam2+. 2. Menggunakan ATmega16.


(3)

Bab I Pendahuluan 3

Universitas Kristen Maranatha I.7 Sistematika Penulisan

Sistematika pembahasan laporan Tugas Akhir ini disusun menjadi lima bab, yaitu sebagai berikut :

BAB I PENDAHULUAN

Pada bab ini berisi tentang latar belakang, identifikasi masalah, perumusan masalah, tujuan, pembatasan masalah, spesifikasi alat, dan sistematika penulisan laporan Tugas Akhir.

BAB II LANDASAN TEORI

Pada bab ini dijelaskan mengenai teori-teori penunjang yang diperlukan dalam merancang dan merealisasikan tracking control RC heli menggunakan CMUCam2+.

BAB III PERANCANGAN DAN REALISASI

Pada bab ini dijelaskan tentang Perancangan penjejakan set point dengan mengendalikan Radio Control Helikopter (RC heli) menggunakan vision sensor CMUCam2+, pengaturan vision sensor CMUCam2+ untuk menjejak RC heli, perancangan dan realisasi penentuan gerakan RC heli di komputer menggunakan Microsoft Visual Basic 6, realisasi rangkaian pengendali remote control RC heli menggunakan ATmega16.

BAB IV ANALISA DAN DATA PENGAMATAN

Pada bab ini dijelaskan tentang proses pengambilan data pengamatan, pengujian tracking control menggunakan CMUCam2+, dan analisisnya.

BAB V KESIMPULAN DAN SARAN

Pada bab ini berisi kesimpulan dari Tugas Akhir dan saran-saran yang perlu dilakukan untuk perbaikan di masa mendatang.


(4)

67 Universitas Kristen Maranatha BAB V

KESIMPULAN DAN SARAN

Bab ini berisi kesimpulan dari tugas akhir dan saran-saran yang perlu dilakukan untuk perbaikan di masa mendatang.

V.1 Kesimpulan

Dengan memperhatikan data pengamatan dan analisis pada bab sebelumnya, dapat disimpulkan bahwa:

1. Motor driver L293, L298, dan LMD18200 tidak dapat memberikan

kecepatan putaran pada motor DC yang dibutuhkan untuk terbang.

2. Berdasarkan hasil percobaan CMUCam2+, hasil tracking dengan error rata – rata terkecil berada di pusat daerah kerja dengan error posisi x sebesar 5,010966% dan error posisi y sebesar 44,97954%, sedangkan target terburuk berada di di titik VII dengan error posisi x sebesar 227,7637% dan error posisi y sebesar 67,19262%. Error rata – rata dari percobaan ini untuk posisi x adalah 56,37003%, sedangkan untuk posisi y adalah 46,42112%. Error yang besar ini disebabkan oleh cahaya, warna, dan ukuran daerah kerja. 3. RC heli menghasilkan gerakan tidak seperti yang diharapkan dikarenakan

oleh ketidakstabilan RC heli dalam melakukan gerakan hover yang menyebabkan gerakan – gerakan yang lain tidak berhasil (tidak stabil). 4. Berdasarkan hasil percobaan, sistem kendali yang dibuat dalam Tugas Akhir

ini masih belum cukup untuk memenuhi tujuan yang ingin dicapai karena hasil tracking oleh CMUCam2+ memiliki error yang cukup besar dan pengendalian RC heli yang gagal karena ketidakstabilan RC heli itu sendiri.


(5)

Bab V Kesimpulan dan Saran 71

V.2 Saran

Saran-saran yang dapat diberikan untuk perbaikan dan pengembangan dari Tugas Akhir ini adalah sebagai berikut:

1. Mencari dan menggunakan motor driver yang tepat, sehingga RC heli dapat dikendalikan dengan lebih stabil dan leluasa (keluaran dari pengontrol mikro dan motor driver lebih tetap, tidak seperti remote control RC heli).

2. Menggunakan beberapa CMUCam2+ pada posisi yang berbeda agar kemampuan bergerak (derajat kebebasan) dari helikopter dapat dimanfaatkan semua (agar lebih maksimal).


(6)

72 Universitas Kristen Maranatha DAFTAR PUSTAKA

1. Andrianto, H., Buku Panduan : Pelatihan Mikrokontroler AVR ATmega16, 2008.

2. Sigit, Riyanto. Robotika, Sensor, Dan Aktuator, Edisi ke-1, Yogyakarta:Graha Ilmu, 2007.

3. Ogata, Katsuhiko. Modern Control Engineering (4th edition). Prentice-Hall, 2002.

4. Anonymous, ATmega16 datasheet. Amerika : Atmel. 2010.

5. Anonymous, CMUcam2+ Vision Sensor User Guide. Amerika : Acroname. 6. Anonymous, Helikopter. Indonesia : Wikipedia.