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).
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
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 Keterangan 1 DCD In
Data carrier Detect/Receiver Line Signal Detect
2 RxD In Recieve Data
3 TxD Out Transmit Data
4 DTR Out Data Terminal Ready
5 GND Ground
6 DSR In Data Set Ready
7 RST Out Request To Send
8 CTS In Clear To Send
9 TRI In Ring Indicator
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.
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
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 Keterangan
0 1: Interupsi akan diaktifkan jika menerima data 1 1: Interupsi akan diaktifkan jika register Tx kosong
2 1: Interupsi diaktifkan jika ada perubahan keadaan pada Line Status Register
3 1: Interupsi diaktifkan jika ada perubahan keadaan pada Modem Status Register
4,5,6,7 Diisi 0
• Interrupt Identification Register, digunakan untuk menentukan urutan prioritas interupsi. Nomor Bit Keterangan 0 0: Interupsi menunggu 1: No interrupt pending 1 dan 2
00: prioritas tertinggi oleh Line Status Register
01: prioritas tertinggi oleh register Rx jika menerima data
10: prioritas tertinggi oleh register Tx jika telah kosong
11: prioritas tertinggi oleh Modem Status Register 3,4,5,6,7 Diisi 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 Keterangan
0 dan 1
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
2
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
3 Bit Pariti 0: Tanpa Pariti 1: Dengan Pariti 4 0: Pariti Ganjil 1: Pariti Genap
5 1: Bit pariti ikut dikirimkan (stick parity)
6 0: Set break control tidak diaktifkan 1: Set break control diaktifkan 7
0: Baudrate divisor tidak dapat diakseskan
1: Baudrate divisor dapat diakses 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
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)
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
hardware-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 PDF
Windows Form/GDI+
Windows
Media Player Direct3D WPF Antarmuka grafik
seperti Forms dan Control × On-Screen Documents × Fixed-Format Documents × × 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 berikut ini menggambarkan layer-layer yang bekerja dalam aplikasi WPF.
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
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 hit-testing, 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
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 device-independent 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
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 3-D yang bisa digunakan di WPF, yaitu ZAM 3-3-D, Maya, dan LightWave. Tampilan Blender dapat dilihat pada gambar dibawah ini:
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: