bab 3 perancangan sistem 3.1 blok diagram perangkat …thesis.binus.ac.id/doc/bab3/2010-2-00447-sk...

16
23 BAB 3 PERANCANGAN SISTEM 3.1 Blok Diagram Perangkat Keras Sistem perangkat keras yang digunakan dalam penelitian ini ditunjukkan oleh blok diagram berikut: Gambar 3.1: Blok Diagram Perangkat Keras 3.1.1 Computer Computer merupakan perangkat lunak yang digunakan untuk mengendalikan Microcontroller dalam hal pengaturan posisi dari DC Motor. Selain itu, Computer juga digunakan untuk membaca data yang diterima dari Encoder oleh Microcontroller. Parallel Port ICSP Encoder DC Motor Computer Microcontroller Serial Port Level Converter Motor Driver

Upload: lytram

Post on 30-Mar-2019

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: BAB 3 PERANCANGAN SISTEM 3.1 Blok Diagram Perangkat …thesis.binus.ac.id/doc/Bab3/2010-2-00447-SK bab 3.pdftersedia secara bebas (open-source) untuk membuat prototip elektronika dengan

23

BAB 3

PERANCANGAN SISTEM

3.1 Blok Diagram Perangkat Keras

Sistem perangkat keras yang digunakan dalam penelitian ini ditunjukkan oleh blok

diagram berikut:

Gambar 3.1: Blok Diagram Perangkat Keras

3.1.1 Computer

Computer merupakan perangkat lunak yang digunakan untuk mengendalikan

Microcontroller dalam hal pengaturan posisi dari DC Motor. Selain itu, Computer juga

digunakan untuk membaca data yang diterima dari Encoder oleh Microcontroller.

Parallel Port

ICSP

Encoder

DC Motor

Computer

Microcontroller

Serial Port

Level Converter

Motor Driver

Page 2: BAB 3 PERANCANGAN SISTEM 3.1 Blok Diagram Perangkat …thesis.binus.ac.id/doc/Bab3/2010-2-00447-SK bab 3.pdftersedia secara bebas (open-source) untuk membuat prototip elektronika dengan

24

Perangkat lunak yang digunakan merupakan program open-source dengan nama

Arduino.

3.1.1.1 Arduino Programming Tool

Arduino merupakan perangkat pemrograman mikrokontroler jenis AVR yang

tersedia secara bebas (open-source) untuk membuat prototip elektronika dengan

menggunakan bahasa pemrograman C. Program ini ditujukan untuk siapa saja yang

ingin membuat perangkat elektronika yang dapat berinteraksi dengan keadaan

sekitarnya. Arduino dapat menerima input dari berbagai jenis sensor dan mengendalikan

lampu, motor, dan aktuator lainnya.

Gambar 3.2: Tampilan Utama Aplikasi Arduino

Page 3: BAB 3 PERANCANGAN SISTEM 3.1 Blok Diagram Perangkat …thesis.binus.ac.id/doc/Bab3/2010-2-00447-SK bab 3.pdftersedia secara bebas (open-source) untuk membuat prototip elektronika dengan

25

Layar utama Arduino terdiri dari 4 bagian, yaitu:

1. Toolbar

Gambar 3.3: Toolbar pada Aplikasi Arduino

1) Verify

Tombol ini digunakan untuk meng-compile program yang telah dibuat. Compile

berguna untuk mengetahui apakah program yang dibuat telah benar atau masih

memiliki kesalahan. Apabila ada kesalahan yang terjadi, bagian Message akan

menampilkan letak kesalahan tersebut.

2) Stop

Tombol ini digunakan untuk membatalkan proses Verify yang sedang

berlangsung.

3) New

Tombol ini digunakan untuk membuat coding pada window yang baru.

4) Open

Tombol ini digunakan untuk membuka coding yang sudah disimpan sebelumnya.

5) Save

Tombol ini digunakan untuk menyimpan coding yang sedang dikerjakan.

6) Upload

Tombol ini digunakan untuk mengirim coding yang sedang dikerjakan ke

mikrokontroler.

7) Serial Monitor

Page 4: BAB 3 PERANCANGAN SISTEM 3.1 Blok Diagram Perangkat …thesis.binus.ac.id/doc/Bab3/2010-2-00447-SK bab 3.pdftersedia secara bebas (open-source) untuk membuat prototip elektronika dengan

26

Tombol ini digunakan untuk melihat aktivitas komunikasi serial dari

mikrokontroler baik yang dikirim oleh user ke mikrokontroler maupun

sebaliknya.

2. Coding area

Bagian ini merupakan tempat penulisan coding dengan menggunakan bahasa

pemrograman C. Coding di dalam Arduino memiliki 2 (dua) bagian utama, yaitu:

1) void setup()

Bagian ini merupakan inisialisasi yang diperlukan sebelum program utama

dijalankan. Contoh:

void setup()

Serial.begin(19200); // inisialisasi baudrate komunikasi serial.

pinMode(5, INPUT); // set pin no. 5 Arduino sebagai Input.

pinMode(12, OUTPUT); // set pin no. 12 Arduino sebagai Output.

2) void loop()

Bagian ini merupakan fungsi utama yang dijalankan terus menerus selama modul

Arduino terhubung dengan power supply. Contoh:

void loop()

digitalWrite(13, HIGH); // memberikan logic High pada pin 13.

delay(1000); // menunda selama 1 detik.

Page 5: BAB 3 PERANCANGAN SISTEM 3.1 Blok Diagram Perangkat …thesis.binus.ac.id/doc/Bab3/2010-2-00447-SK bab 3.pdftersedia secara bebas (open-source) untuk membuat prototip elektronika dengan

27

digitalWrite(13, LOW); // memberikan logic Low pada pin 13.

delay(1000); // menunda selama 1 detik.

3. Application status

Bagian ini memberikan informasi kepada pengguna mengenai tugas yang sedang

dijalankan oleh aplikasi Arduino.

4. Message

Bagian ini memberikan informasi kepada pengguna mengenai besarnya ukuran file

dari coding yang dibuat dan letak kesalahan yang terjadi pada coding.

3.1.1.2 Modul Arduino

Modul Arduino yang paling sederhana adalah modul versi S3v3 dengan tampilan

board sebagai berikut:

Gambar 3.4: Tampilan Atas Board Arduino Versi S3v3

Setiap modul Arduino menggunakan 2 (dua) buah koneksi dengan komputer,

paralel dan serial. Komunikasi paralel digunakan untuk burn bootloader, program

Page 6: BAB 3 PERANCANGAN SISTEM 3.1 Blok Diagram Perangkat …thesis.binus.ac.id/doc/Bab3/2010-2-00447-SK bab 3.pdftersedia secara bebas (open-source) untuk membuat prototip elektronika dengan

28

inisialiasi mikrokontroler agar dapat menggunakan koneksi serial dalam hal

pemrograman, sehingga mikrokontroler dapat diprogram secara serial maupun

komunikasi data antara mikrokontroler dan komputer menggunakan aplikasi Arduino.

Selain itu, komunikasi paralel dapat juga digunakan untuk memprogram mikrokontroler

secara paralel.

Tabel berikut ini menunjukkan penomoran setiap pin pada Arduino:

PIN ATmega168 PIN Arduino PIN ATmega168 PIN Arduino

1 15 9 (PWM)

2 0 (RX) 16 10 (PWM)

3 1 (TX) 17 11 (PWM)

4 2 18 12

5 3 (PWM) 19 13

6 4 20

7 21

8 22

9 23 1 analog in

10 24 2 analog in

11 5 (PWM) 25 3 analog in

12 6 (PWM) 26 4 analog in

13 7 27 5 analog in

14 8 28 6 analog in

Tabel 3.1: Penomoran PIN pada Arduino

Tabel di atas digunakan sebagai referensi untuk menentukan nomor pin pada

mikrokontroler ATmega168 yang akan dipakai pada aplikasi Arduino. Contoh:

Page 7: BAB 3 PERANCANGAN SISTEM 3.1 Blok Diagram Perangkat …thesis.binus.ac.id/doc/Bab3/2010-2-00447-SK bab 3.pdftersedia secara bebas (open-source) untuk membuat prototip elektronika dengan

29

pinMode(5, INPUT);

Artinya, membuat pin nomor 11 pada ATmega168 sebagai input.

3.1.2 Parallel Port

Untuk memprogram bootloader ke dalam mikrokontroler ATmega168,

diperlukan komunikasi paralel dengan konfigurasi sebagai berikut:

R1 = R2 = R3 = R4 = 100 Ω

Gambar 3.5: Parallel Programmer

Selain untuk memprogram, parallel port juga digunakan untuk mengirimkan

pulsa STEP dan DIRECTION ke mikrokontroler yang nantinya akan digunakan sebagai

penentu arah dan posisi dari motor DC.

3.1.3 ICSP

ICSP atau In-Circuit System Programming merupakan metode pemrograman

mikrokontroler secara langsung menggunakan komunikasi paralel. Ada 3 (tiga)

parameter yang diperhatikan pada ICSP, yaitu:

1) MOSI (Master Out Slave In)

Page 8: BAB 3 PERANCANGAN SISTEM 3.1 Blok Diagram Perangkat …thesis.binus.ac.id/doc/Bab3/2010-2-00447-SK bab 3.pdftersedia secara bebas (open-source) untuk membuat prototip elektronika dengan

30

Merupakan jalur transmisi data dari komputer ke mikrokontroler. Berfungsi untuk

mengirim program yang akan disimpan ke dalam ROM mikrokontroler.

2) MISO (Master In Slave Out)

Merupakan jalur transmisi data dari mikrokontroler ke komputer. Berfungsi untuk

mengkonfirmasi program yang sudah diterima melalui MOSI.

3) SCK (Serial Clock)

Timing yang diberikan oleh komputer untuk sinkronisasi data antara komputer dan

mikrokontroler sehingga seluruh data dapat dikirim dan diterima dengan benar.

3.1.4 Serial Port

Komunikasi serial digunakan untuk memprogram mikrokontroler langsung dari

aplikasi Arduino. Selain itu, komunikasi serial juga digunakan untuk mengirim dan

menerima data antara mikrokontroler dan komputer melalui fasilitas Serial Monitor

yang terdapat pada aplikasi Arduino.

3.1.5 Level Converter

Karena adanya perbedaan tegangan logic antara TTL dan komputer, maka

diperlukan suatu rangkaian untuk mengkonversi tegangan tersebut. Berikut ini adalah

rangkaian yang diperlukan:

Page 9: BAB 3 PERANCANGAN SISTEM 3.1 Blok Diagram Perangkat …thesis.binus.ac.id/doc/Bab3/2010-2-00447-SK bab 3.pdftersedia secara bebas (open-source) untuk membuat prototip elektronika dengan

31

Gambar 3.6: Level Converter

3.1.6 Microcontroller

Mikrokontroler yang digunakan adalah jenis AVR dengan tipe ATmega168.

Jenis mikrokontroler AVR memiliki fungsi PWM (Pulse Width Modulation) yang

menghasilkan output digital dengan besar tegangan yang menyerupai output analog.

3.1.7 Motor Driver

Rangkaian motor driver yang digunakan adalah sebagai berikut:

Gambar 3.7: Tampilan Atas Modul Motor Driver

Page 10: BAB 3 PERANCANGAN SISTEM 3.1 Blok Diagram Perangkat …thesis.binus.ac.id/doc/Bab3/2010-2-00447-SK bab 3.pdftersedia secara bebas (open-source) untuk membuat prototip elektronika dengan

32

Rangkaian di atas disediakan secara open-source melalui forum komunikasi

CNCzone.com.

3.1.8 DC Motor

Jenis motor DC yang akan digunakan adalah brushed dc motor buatan Yaskawa

dengan tipe UGRMEM02SAK0E - UTOPI 080.

Gambar 3.8: Yaskawa Minertia RM Series

Motor DC ini telah memiliki optical encoder yang terhubung dengan rotornya.

3.1.9 Encoder

Encoder yang digunakan adalah encoder optik dengan resolusi 800

pulses/revolution. Encoder ini sudah ada di dalam motor DC yang digunakan. Selain itu,

Page 11: BAB 3 PERANCANGAN SISTEM 3.1 Blok Diagram Perangkat …thesis.binus.ac.id/doc/Bab3/2010-2-00447-SK bab 3.pdftersedia secara bebas (open-source) untuk membuat prototip elektronika dengan

33

encoder tersebut memiliki keluaran sebanyak 2 channel, A dan B, yang dibutuhkan oleh

rangkaian Motor Driver.

3.2 Skematik Perangkat Keras

Secara keseluruhan, skematik dari rangkaian driver DC servo motor adalah sebagai

berikut:

Gambar 3.9: Skematik Perangkat Keras Secara Keseluruhan

Skematik di atas disediakan secara open-source melalui forum komunikasi

CNCzone.com.

Page 12: BAB 3 PERANCANGAN SISTEM 3.1 Blok Diagram Perangkat …thesis.binus.ac.id/doc/Bab3/2010-2-00447-SK bab 3.pdftersedia secara bebas (open-source) untuk membuat prototip elektronika dengan

34

3.2.1 Level Converter

Gambar 3.10: Level Converter

3.2.2 Microcontroller

Gambar 3.11: Mikrokontroler

Page 13: BAB 3 PERANCANGAN SISTEM 3.1 Blok Diagram Perangkat …thesis.binus.ac.id/doc/Bab3/2010-2-00447-SK bab 3.pdftersedia secara bebas (open-source) untuk membuat prototip elektronika dengan

35

3.2.3 H-Bridge

Berikut ini merupakan skematik dari H-bridge dan encoder reception yang digunakan:

Gambar 3.12: H-Bridge

Gambar 3.13: Encoder Reception

Page 14: BAB 3 PERANCANGAN SISTEM 3.1 Blok Diagram Perangkat …thesis.binus.ac.id/doc/Bab3/2010-2-00447-SK bab 3.pdftersedia secara bebas (open-source) untuk membuat prototip elektronika dengan

36

3.3 Blok Diagram Perangkat Lunak

Gambar 3.14: Blok Diagram Perangkat Lunak

3.3.1 STEP/DIR In

STEP/DIR In merupakan fungsi untuk menerima pulsa step dan direction dari parallel

port PC untuk menentukan arah gerak motor DC.

3.3.2 Serial In

Serial In merupakan fungsi untuk meminta input dari user. Input yang diberikan oleh

user menentukan fungsi mana yang akan dijalankan berikutnya.

3.3.3 Backward

Backward merupakan fungsi untuk memutar motor dc berlawanan arah jarum jam

dengan jumlah step tertentu.

3.3.4 Stop

Stop merupakan fungsi untuk menghentikan putaran motor DC apabila telah mencapai

set-point yang diberikan dan mempertahankan posisinya dari gangguan luar.

Serial In

Forward Backward Stop

Serial Out

STEP/DIR In

PID Calc. Encoder In

Page 15: BAB 3 PERANCANGAN SISTEM 3.1 Blok Diagram Perangkat …thesis.binus.ac.id/doc/Bab3/2010-2-00447-SK bab 3.pdftersedia secara bebas (open-source) untuk membuat prototip elektronika dengan

37

3.3.5 Forward

Forward merupakan fungsi untuk memutar motor dc searah jarum jam dengan jumlah

step tertentu.

3.3.6 Encoder In

Encoder In atau Encoder Input merupakan fungsi untuk mengolah sinyal – sinyal yang

dihasilkan oleh encoder untuk menentukan posisi dari motor DC.

3.3.7 Serial Out

Serial Out merupakan fungsi untuk menampilkan posisi akhir dari motor dc beserta

besarnya error yang terjadi.

3.3.8 PID Calc.

PID Calc. atau PID Calculation merupakan fungsi untuk membandingkan posisi

encoder dengan set-point dan menghasilkan nilai PWM tertentu untuk mengatur arah

dan kecepatan motor DC berdasarkan perhitungan sistem kendali lup tertutup.

Page 16: BAB 3 PERANCANGAN SISTEM 3.1 Blok Diagram Perangkat …thesis.binus.ac.id/doc/Bab3/2010-2-00447-SK bab 3.pdftersedia secara bebas (open-source) untuk membuat prototip elektronika dengan

38

3.4 Diagram Alur Perangkat Lunak

Secara ringkas, diagram alur dari program pengendalian posisi motor dc adalah sebagai

berikut:

Gambar 3.15: Diagram Alur Program Mikrokontroler

3.5 Program Lengkap Mikrokontroler

Coding dapat dilihat pada lampiran.