BAB II DASAR TEORI
Computer Numeric Control (CNC) merupakan suatu sistem yang digunakan untuk mengendalikan suatu mesin secara otomatis melalui komputer sehingga dapat digunakan untuk melakukan pekerjaan tertentu sesuai yang diinginkan. Pergerakan–pergerakan mesin ditentukan oleh data data numerik yang diberikan secara sekuensial oleh kontroller sesuai koordinat yang diinginkan. Pada mesin konvensional penentuan pergerakan–pergerakan mesin dilakukan secara manual sehingga faktor ketelitian dan akurasinya sangat tergantung kepada keadaan kecakapan dan keahlian dari operator dalam menjalankan mesin tersebut. Dalam hal ini faktor kesalahan manusia menjadi dominan.
2.1
Bagian Mesin CNC Mesin CNC terdiri dari dua bagian utama yaitu bagian kontroller dan
bagian plant. Bagian kontroller berfungsi untuk mengatur pergerakan plant sesuai input dari perangkat lunak Graphic User Interface (GUI). Bagian kontroller terdiri atas 2 bagian yaitu komputer sebagai kontroller utama dan mikrokontroler yang sebagai slave.
Gambar 2.1 Skema Bagian Mesin CNC Sedangkan plant adalah bagian dari objek kendali dari sistem. Plant yang akan dikendalikan pada mesin CNC adalah motor stepper dan pengubah gerak (rotasional ke transional serta rotasional ke rotasional). 5
2.2
Komunikasi serial 2.2.1 Tata cara komunikasi data serial Dikenal dua cara komunikasi secara serial, yaitu komunikasi data serial secara sinkron dan komunikasi data serial secara asinkron. Pada komunikasi data serial sinkron, clock dikirimkan bersama-sama dengan data serial, sedangkan komunikasi data serial asinkron, clock tidak dikirimkan bersama data serial, tetapi dibangkitkan secara sendiri sendiri baik pada sisi pengirim (transmitter) dan pada sisi penerima (receiver). Pada IBM PC kompatibel, port serial termasuk jenis asinkron. Komunikasi serial ini dikerjakan oleh UART (Universal Asynchronous Receiver/Transmitter). IC UART dibuat khusus untuk mengubah data paralel menjadi serial dan menerima data serial yang kemudian diubah kembali menjadi data paralel. IC UART 8250 INTEL merupakan salah satunya. Selain berbentuk IC mandiri, berbagai macam mikrokontroller ada dilengkapi UART.
Pada UART, kecepatan pengiriman data (baudrate) dan fase clock pada sisi transmitter dan receiver harus sinkron. Untuk itu diperlukan sinkronisasi antara keduanya. Hal ini dilakukan oleh bit Start dan bit Stop. Ketika saluran transmisi dalam keadaan idle, keluaran UART adalah dalam keadaan logika high. Ketika transmitter ingin mengirimkan data, output UART akan diset lebih dahulu ke logika low. Sinyal ini pada receiver akan dikenali sebagai sinyal Start yang digunakan untuk sinkronisasi fase clock antara transmitter dan receiver. Selanjutnya, data akan dikirimkan secara serial dari bit paling rendah (bit 0) sampai bit tertinggi. Selanjutnya, akan dikirimkan sinyal Stop sebagai akhir dari pengiriman dari data serial.
Kecepatan transmisi (baudrate) dapat dipilih bebas dalam rentang tertentu. Baudrate yang umum dipakai adalah 110, 135, 150, 300, 600, 1200, 2400, dan 9600 (bit/sekon).
6
2.2.2 Karakteristik Sinyal Port Serial Standard sinyal komunikasi serial yang banyak digunakan adalah Standard RS232 yang dikembangkan oleh Electronic Industry Association and the Telecommunications Industry(EIA/TIA) . Standar sinyal serial RS232 memiliki ketentuan level tegangan sebagai berikut: •
Logika High disebut mark terletak antara -3 Volt sampai -25 Volt
•
Logika Low disebut space terletak antara +3 sampai +25 Volt
Daerah tegangan antara -3 sampai +3 Volt adalah invalid level yang harus dihindari.
2.2.3. Flow Control Jika kecepatan transfer data dari DTE (Data Terminal Equipment) ke DCE (Data Circuit Equipment) lebih cepat daripada transfer data dari DCE ke DCE, maka buffer pada DCE akan mengalami overflow.
2.2.4 Konfigurasi Port Serial Nomor Pin
Nama Sinyal
Directi on
1 2 3 4 5 6 7 8 9
DCD RxD TxD DTR GND DSR RST CTS TRI
In In Out Out
Keterangan Data carrier Detect/Receiver Line Signal Detect Recieve Data Transmit Data Data Terminal Ready Ground Data Set Ready Request To Send Clear To Send Ring Indicator
In Out In In
Tabel 2.1 Konfigurasi Port Serial
7
Keterangan mengenai fungsi saluran RS-232 pada konektor DB-9 adalah sebagai berikut: • Recieved Line Signal Detect, dengan saluran ini DCE memberitahukan ke DTE bahwa pada terminal masukan ada data masuk. • Recieve Data, digunakan DTE untuk menerima data dari DCE. • Transmit Data, digunakan DTE untuk mengirimkan data dari DCE. • Data Terminal Ready, pada saluran ini DTE memberitahukan kesiapan terminalnya. • Signal Ground, saluran ground • Ring Indicator, pada saluran ini DCE memberitahu ke DTE bahwa sebuah stasiun menghendaki hubungan dengannya. • Clear To Send, dengan saluran ini DCE memberitahukan bahwa DTE boleh mulai mengirimkan data. • Request To Send, dengan saluran ini DCE diminta mengirmkan data oleh DTE • DCE Ready, sinyal aktif pada saluran ini menunjukkan bahwa DCE sudah siap.
8
2.2.5 Register Serial Untuk dapat menggunakan port serial kita perlu mengetahui alamatnya. Biasanya tersedia dua port serial pada CPU, yaitu COM1 dan COM2. Base Address COM1 biasanya adalah 1016 (3F8h) dan COM2 biasanya 760 (2F8h). Setelah kita mengetahui base address, maka kita dapat menentukan alamat-alamat register yang digunakan untuk komunikasi serial. Berikut adalah tabel tabel register berserta alamatnya.
Nama Register
COM1
COM2
TX Buffer
3F8h
2F8h
RX Buffer
3F8h
2F8h
Baud rate Divisor Latch LSB
3F8h
2F8h
Baud rate Divisor Latch MSB
3F9h
2F9h
Interrupt Enable Register
3F9h
2F9h
Interrupt Identification Register
3Fah
2Fah
Line Control Register
3FBh
2FBh
Modem Control Register
3FCh
2FCh
Line Status Register
3FDh
2FDh
Modem Statur Register
3Feh
2Feh
Tabel 2.2 Register Port Serial Keterangan mengenai fungsi register-register tersebut adalah sebagai berikut: •
RX buffer digunakan untuk menampung dan menyimpan data dari DCE
•
TX buffer digunakan untuk menampung dan menyimpan data yang akan dikirim oleh DTE
•
Baud rate Divisor Latch LSB, digunakan untuk menampung byte LSB dari pembagi clock pada IC UART. •
Baud rate Divisor Latch MSB, digunakan untuk menampung byte MSB dari pembagi clock Baud Rate(bit/detik) Angka Pembagi 9
300
0180h
600
0C00h
1200
0060h
1800
0040h
2400
0030h
4800
0018h
9600
000Ch
Tabel 2.3 Baudrate Serial Komputer •
Interrupt Enable Register, digunakan untuk menset interupsi apa saja yang akan dilayani komputer.
Nomor Bit 0 1 2 3 4,5,6,7
Keterangan 1: Interupsi akan diaktifkan jika menerima data 1: Interupsi akan diaktifkan jika register Tx kosong 1: Interupsi diaktifkan jika ada perubahan keadaan pada Line Status Register 1: Interupsi diaktifkan jika ada perubahan keadaan pada Modem Status Register Diisi 0 Tabel 2.4 Interupsi Enable Register
10
•
Interrupt Identification Register, digunakan untuk menentukan urutan prioritas interupsi. Nomor Bit
Keterangan
0: Interupsi menunggu 1: No interrupt pending 00: prioritas tertinggi oleh Line Status Register 01: prioritas tertinggi oleh register Rx jika menerima data 1 dan 2 10: prioritas tertinggi oleh register Tx jika telah kosong 11: prioritas tertinggi oleh Modem Status Register 3,4,5,6,7 Diisi 0 0
Tabel 2.5. Interupt Identification Register •
Line Control Register, digunakan untuk menentukan jumlah bit data, jumlah bit pariti, jumlah bit stop, serta untuk menentukan apakah baudrate divisor dapat diubah atau tidak.
Nomor Bit
0 dan 1
2
3 4 5
Keterangan Jumlah bit data 00: Jumlah bit data adalah 5 01: Jumlah bit data adalah 6 10 : Jumlah bit data adalah 7 11: Jumlah bit data adalah 8 bit stop 0: Jumlah bit stop adalah 1 1: Jumlah bit stop adalah 1 untuk 5 bit data dan 2 untuk 6- 8 bit data Bit Pariti 0: Tanpa Pariti 1: Dengan Pariti 0: Pariti Ganjil 1: Pariti Genap 1: Bit pariti ikut dikirimkan (stick parity) 11
0: Set break control tidak diaktifkan 1: Set break control diaktifkan 0: Baudrate divisor tidak dapat diakseskan 1: Baudrate divisor dapat diakses
6 7
Tabel 2. 6 Register Line Control •
Modem Control Register, digunakan untuk mengatur saluran pengatur modem terutama saluran DTR dan saluran RST.
•
Line Status Register, digunakan untuk menampung bit-bit yang menyatakan keadaan penerimaan atau pengiriman data dan status kesalahan operasi.
•
Modem Status register, digunakan untuk menampung bit-bit yang menyatakan status dari saluran hubungan dengan modem.
Alasan penggunaan port serial karena dibandingan dengan menggunakan port paralel, penggunaan port serial lebih sederhana. Berikut keuntungan penggunaan dari port serial dibandingkan port paralel: •
Pada komunikasi dengan kabel yang panjang, masalah cable loss tidak akan
menjadi
masalah
besar
dibandingkan
paralel.
Port
serial
mentransmisikan ‘1’ pada level -3 V sampai -25 V dan ‘0’ pada +3 V sampai +25 V, sedangkan paralel mentransmisikan ‘1’ pada 2.4 V hingga 5 V dan ‘0’ pada 0 V hingga 0.4 V •
Dibutuhkan jumlah kabel yang lebih sedikit. Bahkan dapat menggunakan 3 kabel saja, yaitu TxD, RxD dan GND.
2.3 Multi-Processor Communicaton Mode (MPCM) Komunikasi serial digunakan karena komputer sebagai pengendali utama akan mengatur pergerakan pada sumbu. Setiap sumbu terhubung dengan sebuah motor stepper dan pengubah gerak (ulir) dikontrol oleh sebuah mikrokontroler ATTiny2313. 12
ATtiny 2313 memiliki fitur utama: •
Operasi full duplex
•
Operasi asynchronous atau synchronous
•
Operasi clock dari master atau slave
•
Baudrate resolusi tinggi
•
Mampu serial frame dengan 5, 6, 7, 8 atau 9 bit data dan 1 atau 2 bit stop
•
Genap atau ganjil parity generator dan pengecek parity
•
Deteksi data overrun
•
Deteksi framing error
•
Noise filter
•
3 interupt pada Tx complete, Tx data register empty dan Rx complete
•
Multi-processor communicaton mode
•
Double speed asychoronous communication mode
Multi-Processor Communication Mode menyebabkan beberapa slave MCU untuk menerima data dari sebuah master MCU. Ini dapat dilakukan dengan melakukan decoding terhadap address frame untuk mengetahui MCU yang mana telah dialamatkan. Bila suatu slave telah dialamatkan, slave akan menerima data frame, sedangkan slave lainnya akan mengabaikan frame yang diterima sampai address frame dikirimkan lagi oleh master. 2.3.1 Prosedur Multi-Processor Communicaton Mode (MPCM) Untuk sebuah MCU agar bertindak sebagi master, MCU tersebut dapat mengunakan bit data frame format (UCSZ =7). Bit ke-9 harus diset waktu address frame (TXB8 =1) atau di-clear waktu data frame dikirim. Slave pada kasus ini akan diset mengunakan 9 bit data format. Berikut prosedur untuk mengunakan perpindahan data di Multi-Processor Communication Mode: 1. Semua slave pada Multi-Processor Communication Mode (MPCM in UCSRA set) 13
2. Master MCU mengirimkan sebuah address frame dan semua slave menerima dan membaca frame tersebut. Pada slave, RXC flag in UCSRA akan diset sebagai normal 3. Setiap slave MCU akan membaca UDR register dan menentukan apakah slave tersebut yang dipilih. Bila ya, slave akan men-clear MPCM bit pada UCSRA. Bila tidak, slave menunggu untuk address byte selanjutnya dan MPCM setting tetap. 4. MCU yang dituju akan menerima semua data frame hingga sebuah address frame yang baru dikirim oleh master. Sedangkan slave MCU lainnya, tetap memiliki MPCM bit set dan akan mengabaikan data frame. 5. Bila data frame yang terakhir diterima oleh MCU yang dituju (the addressed MCU), MCU tersebut akan menset MPCM bit dan menunggu address frame yang baru dari master. Dan mengulangi proses dari nomor 2. Menggunakan 5 hingga 8 bit karakter frame format memungkinkan, tetapi tidak praktis karena receiver harus berubah antara n dan n+1 karakter format. 2.4 Windows Presentation Foundation Windows Presentation Foundation (WPF) adalah sebuah sistem disain Grafik terbaru untuk Windows. WPF didesain untuk .NET, dipengaruhi oleh teknologi display modern seperti HTML dan Flash. WPF bersifat hardwareaccelerated dan merupakan suatu perubahan besar untuk Windows user interfaces semenjak Windows 95. Sebelum adanya WPF, ada beberapa teknologi Grafik yang telah digunakan lebih dari belasan tahun: •
User32 menyediakan tampilan Windows yang familiar untuk elemenelemen window seperti: buttons, text box, dan lain-lain. Pada waktu itu komputer belum memasuki era 32-bit.
•
GDI/GDI+ menyediakan dukungan untuk rendering
•
DirectX 14
DirectX dikembangkan untuk mengatasi keterbatasan User32 dan GDI/GDI+. DirectX banyak digunakan untuk membuat games pada platform Windows. Karena kompleksitasnya yang rumit, maka DirectX hampir tidak pernah digunakan pada pengembangan aplikasi Windows.
Hadirnya WPF mengubah semua ini. Aplikasi WPF menggunakan DirectX apapun jenis user interface yang akan dibuat. Hal ini berarti jika kita memakai DirectX untuk membuat grafik tiga dimensi yang rumit atau hanya membuat tombol dan teks. Berikut ini adalah beberapa keunggulan dari WPF : Windows Forms Antarmuka grafik seperti Forms dan Control On-Screen Documents Fixed-Format Documents
PDF
Windows
Windows
Form/GDI+
Media Player
Direct3D
WPF
× × ×
× ×
Gambar
× ×
Video dan Audio
×
×
Grafik Dua-Dimensi
× ×
Grafik Tiga-Dimensi
Tabel 2.7 Keunggulan Windows Presentation Foundation 2.4.1 Arsitektur WPF WPF
menggunakan
arsitektur
multilayer.
Gambar
menggambarkan layer-layer yang bekerja dalam aplikasi WPF.
15
berikut
ini
Gambar 2.2 Arsitektur dari WPF
Gambar di atas memasukkan komponen-komponen berikut: •
PresentationFramework.dll memegang tipe-tipe top-level WPF.
•
PresentationCore.dll
•
WindowsBase.dll
•
milcore.dll
•
WindowsCodec.dll
•
Direct3-D
•
User32
2.4.2 Hirarki Class Gambar 2.3 menunjukkan gambaran dasar dengan sejumlah cabang kunci dari class hierarchy.
16
Gambar 2.3 Fundamental class dari WPF
2.4.3 3-D Drawing DirectX dan OpenGL telah lama digunakan untuk membangun interfaces 3-D. Namun, pemrograman model yang sulit dan kebutuhan akan video card khusus menjadikan pemrograman 3-D tetap berada di luar jangkauan para pengguna dan bisnis perangkat lunak. WPF memperkenalkan pengembangan baru dari model 3-D yang mengubah itu semua. Dengan menggunakan WPF, kita bisa membangun 3-D build scenes yang baik, dengan adanya classes pembantu yang menyediakan hittesting, moused-based rotation, dan building-blocks fundamental lainnya, walaupun tidak didukung oleh video card yang sangat bagus. Karena membuat model 3-D yang rumit dengan mengetik sendiri kode XAML sangat susah, maka sebaiknya kita menggunakan third-party tool untuk
17
membuat objek 3-D, meng-ekspornya menjadi XAML, dan kemudian menambahkannya pada aplikasi WPF yang kita bangun. 2.4.4 Satuan WPF Sebuah WPF window dan semua elemen di dalamnya diukur menggunakan measuring-independent units. Sebuah satuan alat independen tunggal yang didefinisikan sebagai 1/96 inchi. Untuk memahaminya, dapat kita lihat pada contoh berikut: Contohnya kita membuat sebuah tombol dengan ukuran 96x96 satuan. Jika kita menggunakan pengaturan DPI windows standar (96 dpi), setiap deviceindependent unit setara dengan satu pixel fisikal, karena WPF menggunakan perhitungan sebagai berikut: [Physical Unit Size] = [Device-Independent Unit Size] [System DPI] = 1/96 inch 96 dpi = 1 pixel
Pada intinya, WPF berasumsi bahwa diperlukan 96 inchi untuk membuat satu inchi karena Windows menyatakan ini lewat pengaturan dpi. Bagaimanapun kenyataannya bergantung pada alat penampil kita. Contohnya, pada sebuah monitor LCD 20 inchi dengan resolusi maksimum 1600 x 1200 piksel. Menggunakan rumus Pythagoras, kita bisa menghitung kerapatan piksel untuk monitor ini, seperti pada contoh berikut:
Dalam kasus ini, kerapatan pikselnya berada pada 100 dpi, dimana sedikit lebih tinggi daripada yang diasumsikan oleh Windows. Hasilnya, pada monitor ini tombol 96x96 piksel terlihat sedikit lebih kecil daripada 1 inchi.
18
Pada sisi lain, dimisalkan ada sebuah monitor LCD 15 inchi dengan resolusi 1024 x 768. Disini, kerapatan piksel turun menjadi sekitar 85 dpi, sehingga tombol 96x96 terlihat sedikit lebih besar daripada 1 inchi Banyak aplikasi Windows yang tidak mendukung pengaturan DPI yang lebih tinggi. Yang buruknya, menambah DPI dari sistem, maka sebagaian dari konten menjadi lebih besar sedangkan yang lain tidak. Inilah perbedaan WPF dengan aplikasi Windows biasa. Pada WPF, jika kita mengubah DPI sistem menjadi
120 dpi, WPF mengasumsikan bahwa
diperlukan 120 piksel. Berikut ini adalah perhitungan WPF dalam mengubah satuan logikanya menjadi piksel divais fisik: [Physical Unit Size] = [Device-Independent Unit Size] [System DPI] = 1/96 inch 120 dpi = 1.25 pixels
2.5 Blender Blender adalah sebuah aplikasi modeler open source yang bisa digunakan untuk menghasilkan output dari modelnya dalam bentuk XAML, sehingga dapat secara langsung dapat digunakan dalam aplikasi WPF. Perangkat lunak ini tersedia secara gratis di http://www.blender.org, sedangkan export-script untuk mengekspor file blender ke XAML terdapat di http://codeplex.com/xamlexporter. Selain Blender, terdapat pula perangkat lunak lain untuk membangun tampilan 3D yang bisa digunakan di WPF, yaitu ZAM 3-D, Maya, dan LightWave. Tampilan Blender dapat dilihat pada gambar dibawah ini:
19
Gambar 2.4 Tampilan Blender Secara standar Blender tidak mendukung output dalam format XAML. Namun sekarang telah ada modul yang ditulis dalam python yang dapat ditempelkan ke Blender, sehingga Blender dapat menghasilkan output dalam XAML. Dengan menginstall modul tersebut, pada bagian exporter Blender telah ada pilihan XAML, seperti dilihat pada gambar berikut:
Gambar 2.5 Mengekspor blender ke XAML
20