BAB II LANDASAN TEORI
2.1 Motor Servo Motor Servo adalah motor yang memiliki kontrol yang tepat dari posisi sudut, kecepatan, dan percepatan ketika motor tersebut sedang beroperasi. Motor jenis ini biasanya digabungkan dengan sensor untuk umpan balik posisi terakhir aktuator motor tersebut berada. Motor servo biasanya digunakan ke dalam sebuah sistem yang memiliki control loop tertutup. Servo motor biasanya juga digunakan dalam aplikasi seperti robot, mesin CNC, dan manufaktur otomatis.
Gambar 2.1 Komponen-komponen Motor Servo
1
Rumah Motor
2
Sensor
3
Gear Box
4
Motor Servo Arm
5
6
2.1.1 Mekanisme Motor Servo Mekanisme motor servo menggunakan loop tertutup umpan balik positif yang digunakan untuk melakukan pengaturan gerakan maupun posisi terakhir dari aktuator motor. Masukan pengaturan adalah sinyal baik berupa analog maupun digital yang memerintahkan actuator agar bergerak menuju posisi yang diinginkan. Motor servo memiliki beberapa jenis encoder yang dipasangkan kedalam motor tersebut, sehingga motor tersebut dapat memberikan posisi dan kecepatan umpan balik. Dalam beberapa kasus yang paling sederhana, hanya sebuah posisi actuator motor servo saja yang diatur, posisi tersebut didapat dari output yang kemudian akan dibandingkan dengan posisi yang diperintahkan. Jika posisi keluaran berbeda dari yang diperlukan maka sinyal error akan dihasilkan yang kemudian akan menyebabkan motor untuk memutar ke posisi yang sesuai, dan ketika sudah dekat sinya error akan menjadi kecil, dan kemudian apabila sudah sesuai dengan posisi yang diinginkan sinyal error akan menjadi nol dan motor kemudian akan berhenti.
Gambar 2.2 Mekanisme Motor Servo dengan kontrol pulsa PWM
Dalam beberapa kasus ketika dibutuhkannya motor servo yang murah, maka untuk sensor seringkali menggunakan potensiometer untuk menentukan posisi dimana aktuatir tersebut berhenti. Jenis servo macam ini tidak banyak
7
digunakan untuk kontrol gerakan pada industry-industri, namun sering kali digunakan untuk model radio control dimana dibutuhkannya motor servo yang sangat murah. Untuk motor servo yang lebih canggih lagi yang dapat melakukan pengaturan baik pada posisi actuator, kecepatan kerja, dan hanya memiliki sedikit overshoot pada motor servo jenis ini biasanya menggunakan algoritma PID untuk pengaturannya.
2.1.2 Desain Motor Servo Desain motor yang digunakan untuk motor servo tidaklah penting, sehingga jenis-jenis motor yang berbeda dapat digunakan. Namun untuk jenis motor servo yang sederhana biasanya digunakan Motor DC dengan brushless magnet permanent dikarenakan desainnya yang sangat sederhana dan rendahnya biaya untuk pembuatannya. Motor servo yang biasanya digunakan untuk industri desainnya menggunakan motor induksi AC. Namun untuk kebutuhan akan performansi yang tinggi biasanya menggunakan Brushless AC motor dengan magnet permanent. Modul pengemudi untuk motor servo menggunakan komponen dasar elektronika daya. Dengan menggunakan MOSFET yang dipadu dengan H Bridge modul ini dapat menerima perintah dengan satu arah dan jarak rotasi actuator (pulse count) sebagai masukan.
2.1.3 Encoder Motor Servo Motor Servo pertama kali dikembangkan dengan Synchros sebagai encodernya. Motor servo ini pada awalnya digunakan untuk pengembangan teknologi radar dan artileri anti serangan pesawat udara selama perang dunia II. Servo motor sederhana biasanya menggunakan potensiometer sebagai encoder posisi actuator mereka, sehingga dapat menghasilkan motor servo yang sederhana dan murah pembuatannya. Namun motor servo jenis ini memiliki kelemahan akan noise listrik pada potensiometernya. Servo motor modern menggunakan encoder optic, dengan hal ini maka encoder dapat menentukan posisi mereka ketika pertama kali daya listrik dihidupkan. Namun motor servo dengan encoder optic ini sangat mahal dan lebih rumit, meskipun dengan encoder
8
optic jenis incremental kecepatan operasinya sangat cepat bila dibandingkan dengan motor yang lainnya.
Gambar 2.3 Standar motor servo untuk Industri
2.1.4 Motor Servo Versus Motor Stepper Perbedaan antara motor servo dengan motor stepper ada pada cara berkerjanya. Pada motor servo akan berkerja dan mengkonsumsi daya sehingga dapat berputar ke posisi sesuai dengan yang diperintahkan, dan kemudian motor servo akan berhenti. Namun pada motor stepper akan berkerja dan mengkonsumsi daya sampai pada posisi yang diperintahkan, namun kemudian menggunakan daya yang sama untuk mengunci dan memegang motor pada posisi diperintahkan. Motor servo biasanya digunakan sebagai alternative untuk motor stepper
2.2 Mikrokontroller Arduino Uno Pengendali mikro (Inggris: microcontroller) adalah sistem mikroprosesor lengkap yang terkandung di dalam sebuah chip. Mikrokontroler berbeda dari mikroprosesor serba guna yang digunakan dalam sebuah PC, karena sebuah mikrokontroler umumnya telah berisi komponen pendukung sistem minimal mikroprosesor, yakni memori dan antarmuka I/O.
9
Gambar 2.4 Microcontroller Arduino Uno
Sistem komputer dewasa ini paling banyak justru terdapat di dalam peralatan lain, seperti telepon, jam, perangkat rumah tangga, kendaraan, dan bangunan. Sistem embedded biasanya mengandung syarat minimal sebuah sistem mikroprosesor yaitu memori untuk data dan program, serta sistem antarmuka input/output yang sederhana. Antarmuka semacam keyboard, tampilan, disket, atau printer yang umumnya ada pada sebuah komputer pribadi justru tidak ada pada sistem mikrokontroler. Sistem mikrokontroler lebih banyak melakukan pekerjaan-pekerjaan sederhana yang penting seperti mengendalikan motor, saklar, resistor variabel, atau perangkat elektronis lain. Seringkali satu-satunya bentuk antarmuka yang ada pada sebuah sistem mikrokontroler hanyalah sebuah LED, bahkan ini pun bisa dihilangkan jika tuntutan konsumsi daya listrik mengharuskan demikian. Perkembangan Teknologi Mikrokontroler sekarang ini sudah sampai pada Mikrokontroler dengan platform open source Arduino Uno. Arduino adalah opensource elektronik prototyping platform berbasis pada perangkat keras dan perangkat lunak yang fleksibel dan mudah digunakan. Hal Ini dimaksudkan bagi para seniman, desainer, penggemar, dan siapapun yang tertarik dalam menciptakan objek atau lingkungan yang interaktif. Arduino bisa merasakan lingkungan dengan menerima masukan dari berbagai sensornya dan dapat melakukan pengendalian sekitarnya dengan
10
menggunakan lampu, motor, aktuator dan lain-lainnya. Mikrokontroler di modul ini diprogram menggunakan bahasa pemrograman Arduino (berdasarkan Wiring) dan pengembangan lingkungan Arduino (berdasarkan Processing). Proyek Arduino dapat berdiri sendiri atau mereka dapat berkomunikasi dengan perangkat lunak yang berjalan pada komputer (misalnya Flash, Pengolahan,MaxMSP). Modul arduino ini dapat dibangun sendiri atau dibeli jadi. Perangkat lunaknya dapat didownload secara gratis. Desain referensi perangkat keras (File CAD) yang tersedia di bawah lisensi open-source, dan bebas untuk menyesuaikannya dengan kebutuhan. Ada banyak jenis modul arduino Semua modul berbeda antara satu dengan yang lainnya. Hal yang membedakan antar modul arduino adalah chipsetnya, ukuran onboard memori, on-board peripheral dan fungsinya. Dari segi arsitektur dan instruksi yang digunakan mereka bisa dikatakan hampir sama.
2.2.1 Sketch Sketch adalah lembar kerja pada system arduino yang digunakan untuk menulis listing program, mengeditnya, mengcompile dan kemudian mengupload ke dalam microcontroller arduino tersebut. Sketch Arduino terdiri dari bagianbagian seperti comments, Setup (), dan Loop (). Dibawah ini akan dijelaskan secara lebih detail mengenai bagian-bagian tersebut.
2.2.1.1 Comments Biasanya komentar digunakan untuk memudahkan bagi orang-orang membaca kode yang telah ditulis oleh engineer, untuk menjelaskan tujuan dari dibuatnya program ini, cara kerjanya, atau mengapa program tersebut ditulis seperti itu. Dibawah adalah contoh Comments :
/* *
Blink
* * The basic Arduino example. Turns on an LED on for one second, * then off for one second, and so on...
We use pin 13 because,
11
* depending on your Arduino board, it has either a built-in LED *
or
a
built-in
resistor
so
that
you
need
only
an
LED.
* *
http://www.arduino.cc/en/Tutorial/Blink
*/
Adalah sesuatu yang baik untuk memberikan komentar atas sketch, salah satunya adalah untuk membantu ketika adanya kode yang ingin diperbaiki serta hal ini dapat membantu orang lain untuk belajar dari atau memodifikasi kode yang sudah berjalan. Ada comments dengan bentuk lain, yaitu single-line. Comments ini dimulai dengan “ // “ dan lanjut hingga ke akhir baris. Sebagai contohnya adalah : int ledPin = 13; // LED connected to digital pin 13 Kalimat yang berisi pesan ini "LED connected to digital pin 13" adalah sebuah comments yang digunakan untuk menjelaskan mengenai variable 1.
2.2.1.2 Fungsi Setup () Ada beberapa fungsi khusus yang merupakan bagian dari sketch yaitu “ Setup () “. Fungsi Setup () dipanggil sekali, yaitu ketika sketsa dimulai. Fungsi ini merupakan tempat yang baik untuk melakukan pengaturan-pengaturan seperti : • Pengaturan mode output pada pin digital • Inisialisasi library microcontroller arduino • Inisialisasi Variabel, dan lain-lain fungsi setup hanya akan berjalan sekali, setelah setiap PowerUp atau setelah tombol reset pada rangkaian modul Arduino ditekan. Berikut adalah contoh dari fungsi setup () : void setup() { Serial.begin(9600); pinMode(buttonPin, INPUT); }
12
2.2.1.3 Fungsi Loop () Fungsi Loop () adalah fungsi utama dalam sketch arduino ini. Fungsi ini dipanggil berulang kali oleh modul microcontroller untuk menjalankan program yang telah tersimpan di dalamnya. Berikut adalah contoh penggunaan dari fungsi Loop () : void loop() { if (digitalRead(buttonPin) == HIGH) serialWrite('H'); else serialWrite('L'); delay(1000); } fungsi loop () sesuai dengan namanya, melakukan perulangan setiap listing program yang dituliskan, yang pada saat tertentu variable dari program anda telah berubah sehingga system merespon dan menghasilkan output baru yang berbeda dengan hasil output pertama.
2.2.2 Fitur-fitur Microcontroller Arduino Uno Berikut ini adalah Fitur-fitur dari perangkat keras microcontroller Arduino Uno. Perangkat keras ini dapat diprogram dengan mudah pada sketch. Ada beberapa fitur-fitur perangkat keras yang dapat ditemukan pada modul microcontroller arduino uno, berikut adalah penjelasan dari fitru-fitur tersebut :
2.2.2.1 Pin I/O Digital I/O Port pada modul microcontroller Arduino Uno dikenal dengan Pin Digital. Pin ini dapat dikonfigurasi baik sebagai input ataupun dapat digunakan sebagai output.
Karakteristik pin digital ketika menjadi input Arduino dengan chipsnya Atmega, secara default pengaturan port digital adalah pengaturan untuk port masukan, sehingga mereka tidak perlu secara
13
eksplisit dinyatakan sebagai input dengan pinMode (). Pin dikonfigurasi sebagai input sehingga pin tersebut berada dalam keadaan impedansi tinggi. Salah satu penjelasannya adalah pin input akan mengambil daya yang sangat kecil sekali pada rangkaian ketika dalam kondisi pengambilan sampel, dapat dikatakan bahwa ada resistor seri dari 100 Megaohm di depan pin tersebut. Hal ini berarti bahwa hanya sangat sedikit arus yang digunakan untuk memindahkan kondisi pin input tersebut dari keadaan satu ke keadaan yang lain. Sehingga hal ini dapat membuat pin berguna untuk melakukan tugas-tugas seperti membaca sensor sentuh kapasitif, membaca sebuah LED sebagai dioda, atau membaca sebuah sensor analog dengan skema seperti RCTime. Akan tetapi hal ini juga berarti, apabila ada pin input yang tidak terhubung ke rangkaian, akan menghasilkan beberapa keadaaan seperti akan berlogika acak, menghasilkan noise, atau akan menjadi kapasitor coupling pada pin yang berdekatan dengan Pin tersebut. Adalah hal yang berguna untuk mengarahkan pin masukan ke keadaan yang dikenal jika tidak ada input. Hal ini dapat dilakukan dengan menambahkan resistor pullup (ke +5 V), atau resistor pull-down (resistor ke tanah) pada input, dengan resistor 10 Kohm. Ada juga resistor pullup 20 KOhm yang dapat di akses pada chip Atmega dengan perangkat lunak. Berikut ini adalah cara untuk mengakses resistor pullup built-in. pinMode(pin, INPUT);
// set pin to input
digitalWrite(pin, HIGH);
// turn on pullup resistors
Karakteristik pin digital ketika menjadi Output Apabila Pin digital ini dikonfigurasi sebagai OUTPUT dengan pinMode (), maka Pin ini akan berada dalam keadaan impedansi rendah. Hal ini berarti bahwa mereka dapat menyediakan sejumlah besar arus ke rangkaian lainnya. Pin Atmega dapat menjadi sumber arus positif atau menjadi sumber arus negatif hingga 40 mA (milliamps) arus ke perangkat lain. Hal ini cukup untuk menghidupkan sebuah LED, menjalankan banyak sensor, namun sayangnya saat ini tidak cukup untuk menjalankan relay, solenoida, atau motor. Hubungan pendek pada pin Arduino, atau mencoba untuk menjalankan rangkaian dengan arus yang besar, dapat merusak atau menghancurkan transistor
14
output pada pin, atau merusak chip Atmega keseluruhan. Sering kali ini akan menghasilkan sebuah pin "mati" dalam mikrokontroler akan tetapi chip yang tersisa masih akan berfungsi secara memadai. Maka untuk alasan ini, adalah sebuah ide yang baik untuk menghubungkan pin OUTPUT ke perangkat lain dengan resistor 470 Ohm atau 1 KOhm.
2.2.2.2 Pin I/O Analog Sebagian besar port Arduino (Atmega) adalah pin analog yang dapat dikonfigurasi dan digunakan persis dengan cara yang sama seperti pin digital. Berikut ini adalah karakteristik dari Pin Analog.
A/D Converter Chips Atmega digunakan pada Arduino memiliki 6 saluran analog-kedigital converter (ADC). ADC tersebut memiliki 10 bit resolusi dari 0 ke 1023. Sedangkan fungsi utama dari pin analog pada Arduino adalah untuk membaca sensor analog. pin analog juga memiliki semua fungsi General Purposes input / output (GPIO) pin (sama dengan pin digital 0-13).
Pemetaan Pin Pin analog dapat digunakan sama seperti pin digital, menggunakan penamaan A0 (untuk input analog 0), A1, dll Sebagai contoh, kode berikut digunakan untuk mengatur 0 pin analog ke output, dan mengaturnya berlogika “High” : pinMode(A0, OUTPUT); digitalWrite(A0, HIGH);
Pull up Resistor Pin yang analog juga memiliki resistor pullup, yang bekerja sama seperti resistor pullup pada pin digital. Mereka diaktifkan dengan mengeluarkan perintah seperti dibawah ini : digitalWrite(A0, HIGH); // set pullup on analog pin 0
15
namun harus disadari bahwa mengatur Resistor Pull up akan mempengaruhi nilai yang akan diambil oleh analogRead (). Hal tersebut dikarenakan Perintah analogRead tidak akan bekerja dengan benar jika pin sebelumnya di gunakan sebagai output, akan tetapi apabila hal ini terjadi maka pin tersebut harus di atur kembali menjadi masukan sebelum menggunakan perintah analogRead. Hal yang sama pula harus diterapkan jika pin telah diatur untuk menjadi logika “High” sebagai output, resistor pullup harus diatur ketika beralih kembali ke input.
2.2.2.3 PWM ( Pulse Width Modulator ) Pulse Width Modulation, atau PWM, adalah teknik untuk mendapatkan hasil yang analog dengan teknik digital. Digital kontrol digunakan untuk membuat gelombang persegi, dan kemudian sinyal diatur sehingga beralih antara hidup dan mati secara cepat. Pola on-off ini dapat mensimulasikan tegangan Hidup (5 Volt) dan off (0 Volt) dengan mengubah sebagian waktu sinyal Hidup dengan waktu pada sinyal mati. Lamanya "on time" disebut lebar pulsa. Untuk mendapatkan berbagai nilai analog, pengguna akan mengubah, atau memodulasi, yang lebar pulsa. Jika pengguna mengulangi pola on-off ini dengan cukup cepat dan menggunakan LED misalnya sebagai output, maka hasilnya adalah pengendalian kecerahan LED. Dalam grafik di bawah, garis-garis hijau merupakan periode waktu yang teratur. Ini adalah durasi atau periode yang merupakan kebalikan dari frekuensi PWM. Dengan kata lain, dengan frekuensi PWM Arduino di sekitar 500Hz, garis hijau hanya akan teratur selama 2 milidetik saja. Fungsi untuk analogWrite () memiliki nilai skala dari 0 – 255. Ketika analogWrite memiliki (255) maka siklus akan 100% (selalu high), dan analogWrite (127) adalah siklus kerja 50% (High pada separuh waktu dan low pada separuh waktu).
16
Gambar 2.5 PWM Microcontroller Arduino Uno
2.2.2.4 Memory Ada tiga jenis memori dalam mikrokontroler yang digunakan pada moArduino (ATmega168) •
Flash memori adalah tempat dimana listing program (sketch) Arduino disimpan.
•
SRAM adalah di mana listing program (sketch) Arduino menciptakan dan memanipulasi variabel ketika berjalan sketch tersebut dijalankan.
•
EEPROM adalah ruang memori untuk menyimpan informasi jangka panjang.
Flash memori dan EEPROM adalah non-volatile (informasi tetap ada setelah power dimatikan). Sedangkan SRAM adalah volatile dan akan hilang saat tidak adanya power supply. Chip ATmega328 memiliki kapasitas memori sebagai berikut : Flash 32 Kbytes (of which 0.5k is used for the bootloader) SRAM 2 Kbytes EEPROM 1 Kbytes
17
2.2.3 Teknik memprogram Microcontroller Berikut adalah konsep dalam memprogram modul microcontroller arduino uno :
2.2.3.1 Variabel Variabel adalah tempat untuk menyimpan data. Variabel memiliki nama, nilai, dan tipe. Sebagai contoh, pernyataan ini (disebut deklarasi): int pin = 13; Perintah ini menciptakan variabel yang namanya pin, yang nilainya adalah 13, dan bertipe int. apabila user membutuhkan variable ini, maka akan dapat menunjuk ke variabel ini dengan memanggil namanya. pada saat itu variable ini nilainya akan dicari dan digunakan. seperti dalam pernyataan ini: pinMode(pin, OUTPUT); Nilai dari pin (13) ini akan diteruskan ke perintah pinMode (). Dalam hal ini, sebenarnya user tidak perlu menggunakan variabel, pernyataan ini akan bekerja dengan baik sama seperti : pinMode(13, OUTPUT); Keuntungan dari penggunaan variabel dalam hal ini adalah bahwa user hanya perlu menentukan jumlah pin yang digunakan sekali, akan tetapi user dapat menggunakannya berkali-kali. sehingga jika user kemudian memutuskan untuk mengubah penggunaan dari pin 13 menjadi pin 12, user hanya perlu mengubah sedikit kode. user juga dapat menggunakan nama pengenal untuk membuat pentingnya variabel yang jelas (misalnya program mengendalikan LED RGB memungkinkan penamaan variabel redPin, greenPin, dan bluePin. Sebuah variabel memiliki kelebihan lain atas nilai seperti mengubah nilai dari variabel menggunakan perintah Sebagai contoh: pin = 12; Perintah ini akan mengubah nilai dari variabel menjadi 12. Perhatikan bahwa user tidak menentukan jenis variable, hal tersebut tidak diubah oleh perintah tersebut. Artinya, nama variabel secara permanen diasosiasikan dengan jenis, user hanya melakukan perubahan nilainya. user harus mendeklarasikan variabel sebelum user memberikan nilai untuk itu. Jika tidak maka pesan error ini akan muncul "error: pin was not declared in this scope".
18
Bila user menetapkan satu variabel yang lain, user membuat salinan nilai variable tersebut dan menyimpan salinannya pada lokasi di memori yang terkait dengan variabel lain. Mengubah satu tidak berpengaruh pada yang lain. Misalnya, setelah: int pin = 13; int PIN2 = pin; pin = 12; hanya variable pin yang memiliki nilai 12, sedangkan untuk variable PIN2 memiliki nilai 13. Hal ini mengacu pada bagian dari listing program user di mana variabel tersebut digunakan. Sebagai contoh, jika user ingin dapat menggunakan variabel mana saja dalam programnya, maka user dapat menyatakan di bagian atas listing programnya. Ini disebut variabel global, berikut adalah contohnya: int pin = 13; void setup() { pinMode(pin, OUTPUT); } void loop() { digitalWrite(pin, HIGH); } Seperti yang terlihat, pin yang digunakan di kedua setup () dan loop () fungsi. Kedua fungsi mengacu pada variabel yang sama, sehingga perubahan itu satu akan mempengaruhi nilai yang telah di yang lain, seperti di bawah ini : int pin = 13; void setup() { pin = 12; pinMode(pin, OUTPUT); } void loop() {
19
digitalWrite(pin, HIGH); } Di sini, digitalWrite () fungsi yang dipanggil dari loop () akan melewati nilai 12, karena itu nilai yang ditugaskan ke variabel di setup () fungsi. Jika user hanya perlu menggunakan variabel dalam sebuah perintah tunggal, user dapat menyatakan variable tersebut di Setup (), sehingga ruang lingkup variable tersebut akan terbatas pada perintah tersebut. Sebagai contoh : void setup() { int pin = 13; pinMode(pin, OUTPUT); digitalWrite(pin, HIGH); } Dalam perintah ini, pin variabel hanya dapat digunakan dalam setup () fungsi. Jika user mencoba untuk melakukan sesuatu seperti ini: void loop() { digitalWrite(pin, LOW); // wrong: pin is not in scope here. } User akan mendapatkan pesan yang sama seperti sebelumnya"error: pin was not declared in this scope". Hal ini berarti meskipun user telah menyatakan variable pin dalam program, user mencoba untuk menggunakan suatu variabel di luar jangkauannya. Hal ini berarti jika sebuah variabel bersifat global, nilainya bisa diubah di mana saja di dalam listing program tersebut, sehingga user perlu memahami keseluruhan program untuk mengetahui apa yang akan terjadi pada variabel. Misalnya, jika variabel user memiliki nilai yang tidak Anda harapkan, akan lebih mudah untuk mencari tahu di mana nilai tersebut berasal dari jika variabel memiliki ruang lingkup terbatas.
2.2.3.2 Fungsi-Fungsi Segmentasi program ke fungsi memungkinkan programmer untuk membuat potongan-potongan program yang melakukan tugas yang telah
20
didefinisikan sebelumnya dan kemudian kembali ke awal program dimana fungsi itu dipanggil. Menciptakan sebuah fungsi sangat berguna ketika salah satu kebutuhan untuk melakukan tindakan yang sama beberapa kali dalam sebuah program. Untuk programer yang terbiasa menggunakan BASIC, fungsi dalam Arduino memberikan (dan memperluas) kegunaan menggunakan subrutin (gosub dalam BASIC). Menstandarisasikan program ke fungsi memiliki beberapa keuntungan yaitu membantu programmer tetap terorganisir yang seringkali hal ini membantu pada awal konsep program. Fungsi juga mengelompokan satu tindakan dalam satu tempat sehingga fungsi hanya harus dipikirkan dan debugged sekali. Hal ini juga mengurangi kemungkinan untuk kesalahan dalam modifikasi, jika ada listing program yang perlu diubah. Fungsi juga membuat sketsa keseluruhan menjadi lebih kecil dan lebih kompak karena hanya bagian kode tertentu saja yang digunakan
kembali
berkali-kali.
Fungsi
membuat
lebih
mudah
untuk
menggunakan kembali kode dalam program lain dengan membuatnya lebih modular, dan sebagai efek sampingnya, menggunakan fungsi juga sering membuat program lebih mudah dibaca. Ada dua fungsi yang diperlukan dalam sketsa Arduino, setup () dan loop (). Fungsi lainnya harus dibuat di luar kurung dari dua fungsi. Sebagai contoh, dibawah ini adalah fungsi sederhana untuk mengalikan dua angka. void setup(){ Serial.begin(9600); } void loop() { int i = 2; int j = 3; int k; k = myMultiplyFunction(i, j); // k now contains 6 Serial.println(k); delay(500); }
21
int myMultiplyFunction(int x, int y){ int result; result = x * y; return result; }
2.2.3.3 Library-Library Sebuah Kelas hanyalah sebuah kumpulan fungsi dan variabel yang semua berada di satu tempat. Fungsi-fungsi dan variabel dapat bersifat publik, yang berarti bahwa mereka dapat diakses oleh orang yang menggunakan library user, atau Private yang berarti mereka hanya dapat diakses dari dalam kelas itu sendiri. Setiap kelas memiliki fungsi khusus yang dikenal sebagai konstruktor, yang digunakan untuk membuat sebuah instance dari kelas. Konstruktor ini memiliki nama yang sama dengan kelas, dan tidak ada jenis kembali. library menyediakan fungsionalitas tambahan untuk digunakan dalam sketch, misalnya menggunakan perangkat keras atau memanipulasi data. Untuk menggunakan perpustakaan di sketch, pilih Sketch> Impor Library Menu. Hal ini akan memasukkan satu atau lebih pernyataan # include di bagian atas sketch dan akan mengcompile sketch user dengan Library. Karena library masuk ke sketch user hal ini menyebabkan peningkatan jumlah memory yang diperlukan untuk sketch ini. Jika sketch tidak lagi membutuhkan library, cukup hapus pernyataannya # include dari atas sketch. Ada banyak library yang sudah ada di dalam perangkat lunak arduino, Dan beberapa dapat didownload dari berbagai sumber. Library dapat ditemukan dalam folder khusus, dan biasanya akan berisi sedikitnya dua file dengan akhiran h Dan satu dengan akhiran cpp.
2.3 Team Viewer Team Viewer adalah suatu program yang cukup sederhana dan sangat mudah digunakan untuk beberapa keperluan terutama melakukan akses PC secara remote melalui internet. Software tersebut merupakan salah satu aplikasi Remote Dekstop. Remote Desktop adalah istilah yang menggambarkan dimana sebuah
22
komputer yang satu, bisa dikendalikan oleh komputer yang lainnya dengan menggunakan media jaringan komputer seperti Internet.
2.3.1 Kegunaan Team Viewer Dengan menggunakan program Team Viewer ini, kita bisa mengakses komputer yang berada jauh disana. Misalkan ketika sedang tugas keluar kota, namun kita hanya membawa laptop saja, dan file-file penting yang dibutuhkan ada pada komputer desktop dirumah, bagaimana solusinya? Disinilah letak kegunaan program ini. Setelah menginstall program TeamViewer ini, maka secara otomatis kita bisa saling berhubungan dengan komputer yang ada jauh disana, sehingga selain melakukan remote kita juga bisa mengambil file-file yang ada di komputer desktop tadi kedalam laptop tadi. Namun dengan catatan, dua komputer samasama terhubung ke Internet. Atau mungkin juga ketika sedang ada disuatu liburan, tiba-tiba salah soerang staff kita mengabarkan bahwa proyek yang di ajukan pada suatu perusahaan beberapa waktu lalu telah diterima langsung oleh CEO perusahaan tersebut, dan mereka sangat menginginkan presentasi proyek kita pada waktu itu juga. Dengan menggunakan program ini, kita juga bisa mengadakan presentasi secara jarak jauh. Program ini akan menggambarkan keadaan komputer kita, dan perusahaan tersebut bisa melihat apa yang kita lakukan pada komputer mereka. Ini merupakan hal yang sangat bermanfaat. Apalagi ditambah dengan fitur goresan pena ataupun highlight stabilo di layar monitor ataupun menambahkan keterangan gambar yang ada pada layar monitor sehingga client bisa lebih detail lagi melihat penjelasan yang dipresentasikan. Bukan hanya itu, kita pun bisa menambahkan suara (VOIP) dan netmeeting menggunakan webcam pada presentasi.
2.3.2 Langkah Pengoperasian Team Viewer Berikut adalah langkah-langkah penggunaan program ini. 1. Kedua komputer yang saling terhubung sudah terinstal program ini dan terhubung ke jaringan internet. Team Viewer merupakan software free yang dapat ditemukan dan dapat didownload dari internet.
23
2. Pada saat program Team Viewer dibuka, disana akan terlihat dua bagian. Pada bagian “Wait for session” dibawahnya terdapat ID dan Password. Jika anda belum melihat nomor ID dan passwordnya, itu tandanya program sedang tes koneksi dan menentukan ID komputer anda dan juga password untuk komputer anda agar bisa diremote oleh komputer lainnya. Jika sudah tampil nomornya, maka itulah “identitas” anda. Lalu pada bagian kanannya yang bernama “Create Session“, kotak tersebut diisikan untuk koneksi ke komputer Remote. Lakukanlah hal yang sama pada komputer yang lainnya. Nah, disini anda tentukan mana komputer yang digunakan sebagai remote dan mana yang difungsikan sebagai remoter. Remoter maksudnya komputer yang digunakan untuk mengendalikan komputer remote. 3. Sekarang masukkan ID komputer remote pada bagian “Create Session“. Saya mengamsusikan anda telah mengetahui ID dan Password dari komputer remote anda. Lalu pada bagian bawah, tentukan tentukan 4 opsi yang ada. Apakah Remote support, Presentation, File transfer, atau VPN. Lalu klik tombol Connect to Partner. 4. Masukkan password komputer remote kita. 5. Team Viewer sudah dapat digunakan.
Gambar 2.6 Tampilan Team Viewer dengan ID dan Password
24
3.5 Microsoft Visual Basic 6 Visual Basic merupakan sebuah bahasa pemrograman yang menawarkan Integrated Development Environment (IDE) visual untuk membuat program perangkat
lunak
berbasis
sistem
operasi
Microsoft
Windows
dengan
menggunakan model pemrograman (COM). Apa sebenarnya definisi dari Visual Basic itu sendiri? Kata “Visual” merujuk kepada metode yang digunakan untuk membuat antar muka yang bersifat grafis Graphical User Interface (GUI). Daripada menulis berbaris-baris kode untuk menjelaskan pemunculan dan lokasi dari suatu elemen di dalam antar muka, Anda dengan mudah dapat menambahkan object yang sebelumnya sudah dibangun ke dalam tempat dan posisi yang Anda inginkan di layar Anda. Kata “Basic” merujuk kepada bahasa BASIC (Beginners All-Purpose Symbolic Instruction Code), sebuah bahasa yang digunakan oleh banyak programmer dibandingkan dengan bahasa lainnya dalam sejarah komputer. Visual Basic telah berubah dari bahasa asli BASIC dan sekarang memiliki ratusan pernyataan (statements), fungsi (functions), dan kata kunci (keywords), dan kebanyakan di antaranya terkait dengan antar muka grafis di Windows.
Gambar 2.7 Tampilan awal Visual Basic pada saat dijalankan