5 BAB II LANDASAN TEORI Untuk merancang sistem robot kontur kartesian, diperlukan beberapa pemahaman teori yang merupakan dasar dari pembentukan sistem yang akan diimplementasikan. Berawal dari pemahaman input code – G, pemrograman dengan menggunakan visual basic, PIO sebagai gerbang antar muka penghubung ke perangkat luar sampai dengan stepper driver yang akan digunakan untuk menggerakan motor stepper sebagai aktuator dari lengan-lengan robot kartesian. 2.1 G-Code G-Code adalah istilah yang biasanya digunakan pada pemrograman bahasa NC ( Numerical Control ) yang biasa digunakan pada beberapa implementasi teknik. Untuk pertama kalinya sistem NC diterapkan di labolatorium MIT servomechanics di sekitar awal tahun 1950. Semenjak itu sistem NC ini mulai diterapkah oleh beberapa organisasi manufaktur baik itu komersil maupun non komersil. Standarisasi utama dari versi code-G ini diresmikan di Amerika serikat oleh Electronic Industries Alliance di awal tahun 1960’an. 6 Revisi terakhir telah di sepakati pada bulan Februari 1980 dengan istilah RS274D. Di Eropa dikenal dengan istilah standar DIN66025 / ISO6983. Beberapa pengembangan ditambahkan secara terpisah oleh beberapa produsen kontrol manufaktur dan peralatan permesinan manufaktur. Sehingga operator harus memahami beberapa code yang lebih spesifik tergantung pada masingmasing produk manufaktur tersebut. Secara umum Code-G ini merupakan code yang memerintahkan perangkat mesin untuk melakukan eksekusi tertentu seperti : Pergerakan dengan kecepatan tertentu Mengontrol pergerakan yang membentuk garis lurus maupun membentuk sudut tertentu. Penggabungan dari beberapa pergerakan seperti membentuk material berlubang, pemotongan benda kerja dengan dimensi tertentu, maupun penambahan bentuk dekoratif pada permukaan benda kerja, dll. Hampir ada seratus Code-G yang sudah distandarisasikan dan juga digunakan dibeberapa manufaktur permesinan mulai dari G00 sampai dengan G99 yang masing-masing mempunyai fungsi code yang berbeda-beda. Namum pada implementasi robot kartesian ini akan diterapkan hanya beberapa contoh G-Code dasar yang sering digunakan yaitu : Tabel 2.1.1 Contoh perintah G-Code dasar G-Code Fungsi Code G00 G01 G02 G03 Pergerakan pemosisian ke koordinat tertentu Pergerakan interpolasi linear atau garis lurus Pergerakan melingkar searah pergerakan jarum jam Pergerakan melingkar berlawanan arah pergerakan jarum jam Untuk melengkapi perintah pergerakan, ditambahkan beberapa code tambahan yang sudah distandarisasi sebagai code informasi mengenai pergerakan pada saat dilakukan eksekusi. Dari standarisasi yang ada code informasi ini dimulai dari huruf A sampai dengan huruf Z yang masing-masing code informasi mempunyai fungsi code informasi yang berbeda-beda. 7 Berikut beberapa contoh Code Informasi dasar yang sering disertakan pada satu baris Code-G yaitu : Tabel 2.1.2 Contoh perintah code informasi dasar Variabel Fungsi Code I J N Menerangkan jarak radius arah X-axis pada perintah G02 atau G03 Menerangkan jarak radius arah Y-axis pada perintah G02 atau G03 Nomor baris pada baris pemrograman X Absolute atau incremental posisi koordinat pada sumbu X Y Absolute atau incremental posisi koordinat pada sumbu Y Z Absolute atau incremental posisi koordinat pada sumbu Z Sehingga dalam satu baris program G-Code dapat ditambahkan beberapa code informasi, sebagai contoh : N001 G01 X50.0 Y50.0 N002 G02 X100.0 Y100.0 I0.0 J-50.0 Pada implementasi robot kartesian ini menggunakan metoda absolute dimana titik akhir dari suatu baris perintah akan dijadikan titik koordinat awal untuk pergerakan baris perintah berikutnya. 2.2 Software pemrograman Microsoft Visual Basic 6.0 Bahasa Basic pada dasarnya adalah bahasa yang mudah dimengerti sehingga pemrograman di dalam bahasa Basic dapat dengan mudah dilakukan meskipun oleh orang yang baru belajar membuat program. Hal ini lebih mudah lagi setelah hadirnya Microsoft Visual Basic, yang dibangun dari ide untuk membuat bahasa yang sederhana dan mudah dalam pembuatan scriptnya (simple scripting language) untuk graphic user interface yang dikembangkan dalam sistem operasi Microsoft Windows. Dengan teknik pemrograman visual yang memungkinkan penggunanya untuk berkreasi lebih baik dalam menghasilkan suatu program aplikasi. 8 Ini terlihat dari dasar pembuatan dalam visual basic adalah FORM, dimana pengguna dapat mengatur tampilan form kemudian dijalankan dalam script yang sangat mudah. Keunggulan penggunaan Visual Basic ditandai dengan kemampuan Visual Basic untuk dapat berinteraksi dengan aplikasi lain di dalam sistem operasi Windows dengan komponen ActiveX Control. Dengan komponen ini memungkinkan penguna untuk memanggil dan menggunakan semua model data yang ada di dalam sistem operasi windows. Hal ini juga ditunjang dengan teknik pemrograman di dalam Visual Basic yang mengadopsi dua macam jenis pemrograman yaitu Pemrograman Visual dan Object Oriented Programming (OOP). Visual Basic 6.0 sebetulnya perkembangan dari versi sebelumnya dengan beberapa penambahan komponen yang sedang tren saat ini, seperti kemampuan pemrograman internet dengan DHTML (Dynamic HyperText Mark Language), dan beberapa penambahan fitur database dan multimedia yang semakin baik. Interface antar muka Visual Basic 6.0, berisi menu, toolbar, toolbox, form, project explorer dan property seperti terlihat pada gambar 2.2.1. berikut: Gambar 2.2.1 Interface antar muka Visual Basic 6.0 9 Menu pada dasarnya adalah operasional standar di dalam sistem operasi windows, seperti membuat form baru, membuat project baru, membuka project dan menyimpan project. Di samping itu terdapat fasilitas-fasilitas pemakaian visual basic pada menu. Untuk lebih jelasnya Visual Basic menyediakan bantuan yang sangat lengkap dan detail dalam MSDN. Toolbox berisi komponen-komponen yang bisa digunakan oleh suatu project aktif, artinya isi komponen dalam toolbox sangat tergantung pada jenis project yang dibangun. Komponen standar dalam toolbox dapat dilihat pada gambar 2.2.2 berikut ini. Gambar 2.2.2 Komponen standard dalam Toolbox Konsep dasar pemrograman Visual Basic 6.0, adalah pembuatan form dengan mengikuti aturan pemrograman Property, Metode dan Event. Hal ini berarti: (1) Property: Setiap komponen di dalam pemrograman Visual Basic dapat diatur propertinya tidak sesuai dengan kebutuhan aplikasi. Property yang boleh dilupakan pada setiap komponen adalah “Name”, yang berarti nama variabel (komponen) yang akan digunakan dalam scripting. Properti “Name” ini hanya bisa diatur melalui jendela Property, sedangkan nilai peroperti yang lain bisa diatur melalui script seperti : 10 Command1.Caption=”Play” Text1.Text=”Visual Basic” Label1.Visible=False Timer1.Enable=True (2) Metode: Bahwa jalannya program dapat diatur sesuai aplikasi dengan menggunakan metode pemrograman yang diatur sebagai aksi dari setiap komponen. Metode inilah tempat untuk mengekpresikan logika pemrograman dari pembuatan suatu prgram aplikasi. (3) Event: Setiap komponen dapat beraksi melalui event, seperti event click pada command button yang tertulis dalam layar script Command1_Click, atau event Mouse Down pada picture yang tertulis dengan Picture1_MouseDown. Pengaturan event dalam setiap komponen yang akan menjalankan semua metode yang dibuat. 2.3 Programmable Peripheral Interface 8255 PPI 8255 merupakan sebuah chip memungkinkan CPU untuk melakukan akses terhadap Programmable parallel IO. PPI terkadang juga digunakan di microcontroller untuk memperbanyak input-output. Gambar 2.3.1 Chip PPI 8255 11 PPI memiliki 3 port yaitu port A, port B dan port C serta satu buah control register, sehingga PPI membutuhkan 4 buah alamat untuk mengontrol ke 4 port tersebut. Pin D0-D7 merupakan data bus untuk mengirimkan data. A0 dan A1 digunakan untuk menyeleksi port mana yang akan digunakan. Pin RD untuk mengaktifkan mode read sedangkan pin RW untuk write (low active). Pin CS digunakan untuk mengaktifkan PPI tersebut. PPI akan bekerja jika pin CS di set bernilai 0. Gambar 2.3.2 Blok diagram PPI 8255 PPI 8255 memiliki 3 mode operasi : mode 0 Operasi input-output sederhana tanpa menggunakan sinyal handshaking. Jika port A dan port B diinisialisasi pada mode 0, port C dapat digunakan sebagai port 8 bit atau sebagai 2 buah port 4 bit. mode 1 Mode ini digunakan untuk mengoperasikan port input-output parallel menggunakan sinyal handshaking. mode 2 Mode ini digunakan untuk komunikasi handshaking dua arah dan port yang bisa dugunaka adalah PortA. Sehingga port A bisa digunakan sebagai input dan output sekaligus. 12 Mode operasi pada PPI 8255 dapat dipilih dengan memberikan nilai pada control register. Mode operasi yang dihasilkan bergantung pada nilai masingmasing pin yang diberikan ke control register melalui bus data D0-D7. Konfigurasinya bisa dilihat pada gambar berikut. Gambar 2.3.3 Pemilihan mode operasi pada PPI 8255 ISA PIO card merupakan sebuah perangkat yang menghubungkan antara PPI 8255 dengan computer melalui port ISA. Bentuk dari ISA PIO card bisa dilihat pada gambar 2.3.4 Gambar 2.3.4 ISA PIO Card 13 Seperti yang telah dijelaskan sebelumnya, PPI 2255 membutuhkan 4 alamat untuk mengakses 3 alamat port dan 1 alamat untuk mengakses control register. Pada ISA PIO card, kita diperbolehkan mengubah alamat tersebut dengan mengganti konfigurasi jumper yang terdapat pada ISA PIO card. Untuk konfigurasi default, alamatnya terdapat di 300h-303h 300h : untuk mengakses port A 301h : untuk mengakses port B 302h : untuk mengakses port C 303h : untuk mengakses control register Tabel 2.3.5 Konfigurasi jumper pada ISA PIO Card 2.4 Motor Stepper Motor stepper merupakan motor yang mengubah pulsa listrik yang diberikan menjadi gerakan rotor yang diskrit disebut step. Misalnya jika satu derajat per langkah (step) maka motor tersebut memerlukan 360 pulsa untuk bergerak sebanyak satu putaran (pada intinya stepper motor mengubah pulsa listrik menjadi suatu perpindahan gerak yang tertentu secara rotasi) . Ukuran kerja dari stepper biasanya diberikan dalam jumlah langkah per putaran per detik. Motor stepper banyak digunakan dalam bidang industri terutama dipakai pada suatu mesin atau peralatan kontrol digital yang membutuhkan ketepatan posisi. 14 Keunggulan motor stepper lainnya adalah frekuensi pulsa input-nya tidak tergantung pada beban. Perputaran motor stepper adalah perputaran yang diskrit dan arah perputarannya dapat searah ataupun berlawanan dengan arah jarum jam. Stuktur sederhana dari motor stepper tampak pada Gambar 2.4.1 dalam penampang melintang : Gambar 2.4.1 Struktur Stepper motor sederhana Dilihat dari lilitannya motor stepper terbagi menjadi 2 jenis yaitu : a. Motor Stepper Unipolar Motor stepper unipolar terdiri dari dua lilitan yang memiliki center tap. Center tap dari masing masing lilitan ada yang berupa kabel terpisah ada juga yang sudah terhubung didalamnya sehingga center tap yang keluar hanya satu kabel. Untuk motor stepper yang center tapnya ada pada masing – masing lilitan kabel inputnya ada 6 kabel. Namun jika center tapnya sudah terhubung di dalam kabel inputannya hanya 5 kabel. Center tap dari motor stepper dapat dihubungkan ke pentanahan atau ada juga yang menghubungkannya ke +VCC hal ini sangat dipengaruhi oleh driver yang digunakan. Sebagai gambaran dapat dilihat konstruksi motor stepper unipolar pada gambar 2.4.2. Gambar 2.4.2 Konstruksi motor stepper unipolar 15 b. Motor Stepper Bipolar Motor stepper bipolar memiliki dua lilitan perbedaaan dari tipe unipolar adalah bahwa pada tipe bipolar lilitannya tidak memiliki center tap. Keunggulan tipe bipolar yaitu memiliki torsi yang lebih besar jika dibandingkan dengan tipe unipolar untuk ukuran yang sama. Pada motor stepper tipe ini hanya memiliki empat kabel masukan. Namun untuk menggerakan motor stepper tipe ini lebih rumit jika dibandingkan dengan menggerakan motor stepper tipe unipolar. Sebagai gambaran dapat dilihat konstruksi motor stepper bipolar pada gambar 2.4.3. Gambar 2.4.3 Konstruksi motor stepper bipolar Bagian-bagian dari motor stepper yaitu tersusun atas rotor, stator, bearing, casing dan poros motor. Poros motor merupakan pegangan dari rotor dimana poros merupakan bagian tengah dari rotor, sehingga ketika rotor berputar poros ikut berputar. Stator memiliki dua bagian yaitu pelat inti dan lilitan. Plat inti dari motor stepper ini biasanya satu bagian dengan casing. Casing motor stepper terbuat dari aluminium dan ini berfungsi sebagai dudukan bearing. Di dalam motor stapper memiliki dua buah bearing yaitu bearing bagian atas dan bearing bagian bawah. Gambar 2.4.4 Bagian stator motor stepper 16 Gambar 2.4.5 Bagian rotor motor stepper 2.5 Driver Stepper Untuk menggerakan motor stepper berbeda dengan menggerakan motor dc, dimana untuk menggerakan motor stepper diperlukan rangkaian driver yang fungsinya untuk memberikan catu ke motor stepper. Driver tidak hanya mengeluarkan tegangan, namun tegangan yang dikeluarkan juga harus dalam bentuk pulsa. Karena motor stepper bergerak step by step sesuai dengan pulsa. Bentuk pulsa yang dikeluarkan oleh driver dapat dilihat pada Gambar 2.5.1 dan gambar 2.5.2. Gambar 2.5.1 Pulsa driver bipolar mode full step Gambar 2.5.2 Pulsa driver unipolar mode full step 17 Bentuk pulsa seperti pada gambar harus dapat dikeluarkan oleh driver sebagai syarat untuk dapat menggerakan motor stepper. Tinggi pulsa yang dikeluarkan juga harus sesuai dengan spesifikasi tegangan motor stepper. Bentuk pulsa pada gambar sebenarnya memiliki bentuk yang sama hanya saja susunannya berbeda. Pada gambar 2.2.13 adalah susunan pulsa untuk menggerakan motor stepper tipe bipolar, sedangkan pada gambar 2.2.14 adalah susunan pulsa untuk menggerakan motor stepper tipe unipolar. Driver untuk motor stepper unipolar lebih sederhana dari driver tipe bipolar karena untuk motor stepper tipe unipolar driver cukup dengan dilalui arus satu arah saja sedangkan untuk tipe bipolar driver harus dapat dilalui oleh arus dengan dua arah. Dari alasan ini motor stepper tipe unipolar lebih banyak digunakan karena untuk menggerakannya lebih sederhana. Driver untuk motor stepper unipolar data menggunakan IC ULN2003, ULN2004 atau dapat juga dengan menggunakan transistor. Jika menggunakan transistor, maka transistor difungsikan sebagai saklar untuk menghubungkan motor stepper ke Vcc atau ke ground tergantung dari hubungan common motor stepper. 2.6 Sistem Koordinat Kartesius Dalam matematika, Sistem koordinat Kartesius digunakan untuk menentukan tiap titik dalam bidang dengan menggunakan dua bilangan yang biasa disebut koordinat x dan koordinat y dari titik tersebut. Untuk mendefinisikan koordinat diperlukan dua garis berarah yang tegak lurus satu sama lain (sumbu x dan sumbu y), dan panjang unit, yang dibuat tanda-tanda pada kedua sumbu tersebut seperti pada gambar 2.6.1. 18 Gambar 2.6.1 Sistem koordinat Kartesius. Terdapat empat titik yang ditandai: (2,3), (-3,1), (-1.5,-2.5), dan (0,0), titik asal. Sistem koordinat Kartesius dapat pula digunakan pada dimensi-dimensi yang lebih tinggi, seperti 3 dimensi, dengan menggunakan tiga sumbu (sumbu x, y, dan z). Gambar 2.6.2 Sistem koordinat Kartesius disertai lingkaran yang berjari-jari 2 yang berpusat pada titik asal (0,0). Persamaan lingkaran merah ini adalah x² + y² = 4. Dengan menggunakan sistem koordinat Kartesius, bentuk-bentuk geometri seperti kurva dapat diekspresikan dengan persamaan aljabar. Sebagai contoh, lingkaran yang berjari-jari 2 dapat diekspresikan dengan persamaan x² + y² = 4 (lihat Gambar 2.6.2). 19 Istilah Kartesius digunakan untuk mengenang ahli matematika sekaligus filsuf dari Perancis Descartes, yang perannya besar dalam menggabungkan aljabar dan geometri (Cartesius adalah latinisasi untuk Descartes). Hasil kerjanya sangat berpengaruh dalam perkembangan geometri analitik, kalkulus, dan kartografi. Ide dasar sistem ini dikembangkan pada tahun 1637 dalam dua tulisan karya Descartes. Pada bagian kedua dari tulisannya Discourse on Method, ia memperkenalkan ide baru untuk menggambarkan posisi titik atau obyek pada sebuah permukaan, dengan menggunakan dua sumbu yang bertegak lurus antar satu dengan yang lain. Dalam tulisannya yang lain, La Géométrie, ia memperdalam konsep-konsep yang telah dikembangkannya. Sistem koordinat Kartesius dalam dua dimensi umumnya didefinisikan dengan dua sumbu yang saling bertegak lurus antar satu dengan yang lain, yang keduanya terletak pada satu bidang (bidang xy). Sumbu horizontal diberi label x, dan sumbu vertikal diberi label y. Pada sistem koordinat tiga dimensi, ditambahkan sumbu yang lain yang sering diberi label z. Sumbu-sumbu tersebut ortogonal antar satu dengan yang lain. (Satu sumbu dengan sumbu lain bertegak lurus.) Titik pertemuan antara kedua sumbu, titik asal, umumnya diberi label 0. Setiap sumbu juga mempunyai besaran panjang unit, dan setiap panjang tersebut diberi tanda dan ini membentuk semacam grid. Untuk mendeskripsikan suatu titik tertentu dalam sistem koordinat dua dimensi, nilai x ditulis (absis), lalu diikuti dengan nilai y (ordinat). Dengan demikian, format yang dipakai selalu (x,y) dan urutannya tidak dibalik-balik. Pilihan huruf-huruf didasari oleh konvensi, yaitu huruf-huruf yang dekat akhir (seperti x dan y) digunakan untuk menandakan variabel dengan nilai yang tak diketahui, sedangkan huruf-huruf yang lebih dekat awal digunakan untuk menandakan nilai yang diketahui. 20 Gambar 2.6.3 Keempat kuadran sistem koordinat Kartesius. Panah yang ada pada sumbu berarti panjang sumbunya tak terhingga pada arah panah tersebut. Sebagai contoh, pada Gambar 2.6.3, titik P berada pada koordinat (3,5). Karena kedua sumbu bertegak lurus satu sama lain, bidang xy terbagi menjadi empat bagian yang disebut kuadran, yang pada Gambar 2.6.3 ditandai dengan angka I, II, III, dan IV. Menurut konvensi yang berlaku, keempat kuadran diurutkan mulai dari yang kanan atas (kuadran I), melingkar melawan arah jarum jam. Pada kuadran I, kedua koordinat (x dan y) bernilai positif. Pada kuadran II, koordinat x bernilai negatif dan koordinat y bernilai positif. Pada kuadran III, kedua koordinat bernilai negatif, dan pada kuadran IV, koordinat x bernilai positif dan y negatif (lihat tabel dibawah ini). Kuadran I II III IV nilai x >0 <0 <0 >0 nilai y >0 >0 <0 <0