Upload
lytram
View
214
Download
0
Embed Size (px)
Citation preview
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
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
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
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.
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
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:
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)
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:
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
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,
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.
34
3.2.1 Level Converter
Gambar 3.10: Level Converter
3.2.2 Microcontroller
Gambar 3.11: Mikrokontroler
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
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
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.
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.