BAB II LANDASAN TEORI

23 

Loading.... (view fulltext now)

Loading....

Loading....

Loading....

Loading....

Teks penuh

(1)

2.1 Teknologi Motor DC

Servo Mechanism kadang-kadang disingkat menjadi servo, adalah perangkat otomatis yang menggunakan error-sensing umpan balik negatif untuk memperbaiki mekanismenya. Istilah yang benar adalah sistem dimana sinyal umpan balik atau koreksi kesalahan membantu posisi kontrol mekanik, kecepatan atau parameter lainnya. Sebagai contoh, kontrol pada power window mobil tidak servo, karena tidak ada umpan balik otomatis yang mengendalikan posisi motor tersebut, akan tetapi dilakukan oleh operator berdasarkan pengamatan. Ada beberapa jenis servo yang digunakan pada industry masa kini yaitu:

(2)

2.1.1 Servo dengan Pengaturan Posisi

Jenis umum dari servo adalah servo kontrol posisi. Servo sebagaimana rangkaian elektronik lainnya menggunakan motor listrik sebagai sarana utama untuk menciptakan energi mekanik. Jenis lainnya dari servos adalah menggunakan menggunakan hidrolika, pneumatik, atau magnetik. Servos beroperasi pada prinsip umpan balik negatif, di mana masukan kontrol dibandingkan dengan posisi sebenarnya dari sistem mekanik yang diukur dengan beberapa jenis transduser pada output. Selisih antara nilai aktual dan yang diinginkan (dianggap sebagai "kesalahan sinyal") dan digunakan untuk menggerakkan sistem ke arah yang diperlukan untuk mengurangi atau menghilangkan error tersebut. Prosedur ini adalah salah satu aplikasi banyak digunakan dalam teori kontrol.

Gambar 2.2 Komponen Servo

Small R/C servo mechanism 1. electric motor.

(3)

3. reduction gear. 4. actuator arm.

2.1.2 Servo dengan Pengaturan kecepatan

Pengaturan Kecepatan sesuai dengan kebutuhan adalah jenis lain dari servo. Mesin uap menggunakan alat pengatur mekanis. aplikasi lain awal adalah untuk mengatur kecepatan roda air. Sebelum Perang Dunia II baling-baling kecepatan konstan dikembangkan untuk mengontrol kecepatan mesin untuk pesawat manuver. Pengaturan Bahan Bakar untuk mesin turbin gas menggunakan hydromechanical atau elektronik untuk pengaturannya.

2.1.3 Servo dengan pengaturan yang lain

Servomechanisms Positioning pertama kali digunakan dalam peralatan militer untuk pengaturan penembakan dan navigasi laut. Servomechanisms saat ini digunakan pada peralatan mesin otomatis, antenna pelacakan satelit, pesawat remote control, sistem navigasi otomatis pada kapal dan pesawat, dan sistem kontrol senjata anti pesawat. Kamera autofocus menggunakan servo untuk mencari posisi lensa sehingga mendapatkan gambar yang akurat, dan juga untuk mengatur fokus. Sebuah hard disk modern drive memiliki sistem servo magnet dengan sub-micrometre untuk akurasi posisi. Pada mesin-mesin industri, servos banyak digunakan untuk melakukan gerakan kompleks.

Servos juga dapat diklasifikasikan dengan cara melihat ontro ontrol umpan balik mereka :

 Tipe Servo 0 : di bawah kondisi siap berkerja mereka menghasilkan nilai konstan output dengan sinyal error konstan.

 Tipe Servo 1 : di bawah kondisi siap berkerja mereka menghasilkan output dengan nilai konstan null error signal, tetapi apabila ada perubahan yang konstan dari referensi akan menghasilkan kesalahan error konstan dalam mengikuti referensi.

 Tipe servo 2 : di bawah kondisi siap berkerja mereka menghasilkan nilai konstan output dengan sinyal error null. tetapi apabila ada perubahan yang

(4)

konstan dari percepatan perubahan referensi akan menghasilkan kesalahan error konstan dalam mengikuti referensi.

Servo bandwidth menunjukkan kemampuan servo untuk mengikuti perubahan yang cepat dalam setiap masukan yang diperintahkan.

2.2 Teknologi Wireless Bluetooth

Bluetooth adalah sebuah standar teknologi nirkabel yang digunakan untuk pertukaran data jarak pendek menggunakan gelombang radio 2.4 GHz. Teknologi ini pertama kali dikembangkan oleh ericsson sebagai pengganti teknologi RS-232 namun memiliki kelebihan yang mampu menghubungkan banyak perangkat. Standarisasi Bluetooth di atur oleh Bluetooth Special Interest Group (SIG) yang memiliki anggota lebih dari 20.000 anggota dari telekomunikasi, komputasi, networking, dan lain-lain. Standarisasi Bluetooth adalah sebagaimana di definisikan di IEEE 802.15.1.

Gambar 2.3 Logo Bluetooth

2.2.1 Teknologi Bluetooth

Bluetooth didefinisikan dengan arsitektur protocol yang terdiri dari protokol pengganti kabel, protokol pengaturan telepon, protokol adopted, dan protocol Core. Namun protokol yang inti untuk Bluetooth adalah LMP, L2CAP, SDP, HCL dan RFCOMM.

(5)

Gambar 2.4 Protokol Bluetooth

Berikut adalah penjelasan-penjelasan terkait dengan protocol-protokol tersebut :  LMP

Link Management Protocol digunakan untuk melakukan pengaturan jalur radio antara 2 perangkat.

 L2CAP

Logical Link Control and Adaptation Protocol digunakan untuk membangun jalur antara 2 buah perangkat antara protocol berbeda yang lebih tinggi. Pada mode dasar L2CAP menyediakan paket dengan beban sebesar 64 KB.

 SDP

Service Discovery Protocol menyediakan peralatan untuk menemukan service pada perangkat yang lain berserta parameter yang diperlukan. Setiap fitur di identifikasi oleh UUID (Universally Unique Identifier) sebesar 16 bits.

 RFCOMM

Radio Frequency Communication adalah sebuah protokol pengganti kabel yang digunakan untuk menghasilkan sebuah aliran data serial virtual. RFCOMM menyediakan data biner untuk transport dan sinyal pengaturan EIA-232 untuk layer baseband. RFCOMM menyediakan aliran data yang sederhana untuk pengguna, mirip dengan TCP.

(6)

2.2.2 Frekuensi Bluetooth

Buetooth beroperasi pada frekuensi kerja 2400 MHz – 2483.5 MHz (termasuk Guard Bands). Frekuensi ini merupakan frekuensi 2.4 GHz yang gratis dan tidak berlisensi. Bluetooth menggunakan teknologi radio yang disebut Frequency Hopping Spread Spectrum. Data dikirim dengan dipotong-potong menjadi banyak paket dan dikirimkan melalui salah satu dari 79 kanal Bluetooth setiap kanal memiliki bandwidth 1 MHz, sedangkan untuk versi Bluetooth 4.0 menggunakan bandwidth 2 MHz yang tersedia sampai 40 kanal. Kanal pertama mulai dari 2402 MHz dan berlanjut dari 2480 MHz. Dengan fitur Adaptive Frequency Hopping (AFH) Enable Bluetooth dapat melakukan hopping sampai 1600 kali.

2.2.3 Kecepatan Transfer Data

Biasanya untuk modulasi hanya digunakan Gaussian Frequency Shift Keying (GFSK), namun dengan adanya standarisasi Bluetooth 2.0+EDR modulasi π/4-DQPSK dan 8 DPSK dapat digunakan. Peralatan yang beroperasi dengan modulasi GFSK pada mode BR (Basic Rate) dapat mencapai transfer data sebesar 1 Mbps. Dengan mode EDR (Enhanced Data Rate) menggunakan π/4-DQPSK

dan 8 DPSK masing masing dapat mencapai 2-3 Mbps, Kombinasi dari 2 teknologi tersebut sering disebut BR/EDR Radio.

Protokol komunikasi Bluetooth adalah sistem dengan protokol dengan master-slave. Satu master mampu berkomunikasi dengan 7 slave. Semua perangkat melakukan sinkronisasi dengan acuan master clock. Pertukaran paket berdasarkan waktu di master, yaitu 312.5 uS setiap intervalnya sehingga 2 buah slot memiliki interval 1250 uS.

Tabel 2.1 Kecepatan Bluetooth

Version Data rate Max. application throughput

1.2 1 Mbit/s >80 kbit/s

2.0 + EDR 3 Mbit/s >80 kbit/s 3.0 + HS 24 Mbit/s See Version 3.0 + HS

(7)

4.0 24 Mbit/s See Version 4.0 LE

2.2.4 Daya Pemancar

Bluetooth dirancang untuk penggunaan daya rendah dengan microchip transceiver yang murah. Dengan menggunakan komunikasi radio sehingga peralatan Bluetooth tidak perlu harus terlihat satu dengan yang lainnya (Bluetooth dapat berkomuniksi walau terhalang sesuatu). Kebanyakan aplikasi Bluetooth digunakan dalam kondisi di dalam ruangan dimana atenuasi akibat sinyal fading yang dihasilkan oleh sinyal pantulan oleh tembok sehingga akan menurunkan jarak jangkauan yang sebenarnya. Kebanyakan aplikasi Bluetooth daya yang digunakan adalah daya kelas 2. Terkadang beberapa tipe dapat menyediakan jarak sampai dengan 1 Km.

Tabel 2.2 Daya Pemancar Bluetooth

Kelas Bluetooth Max. permitted power Typ. range [14] (m) (mW) (dBm) 1 100 20 ~100 2 2.5 4 ~10 3 1 0 ~1

2.3 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.

(8)

Gambar 2.5 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 open-source 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 menggunakan lampu, motor, aktuator dan lain-lainnya. Mikrokontroler di modul ini diprogram menggunakan bahasa pemrograman Arduino (berdasarkan Wiring)

(9)

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.3.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 bagian-bagian seperti comments, Setup (), dan Loop (). Dibawah ini akan dijelaskan secara lebih detail mengenai bagian-bagian tersebut.

2.3.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, * depending on your Arduino board, it has either a built-in LED * or a built-in resistor so that you need only an LED.

(10)

*

* 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 13

2.3.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); }

(11)

2.3.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.3.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.3.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.

(12)

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 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

(13)

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 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.3.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-ke-digital 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);

(14)

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

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.3.2.3 PWM

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

(15)

akan 100% (selalu high), dan analogWrite (127) adalah siklus kerja 50% (High pada separuh waktu dan low pada separuh waktu).

Gambar 2.6 PWM Microcontroller Arduino Uno

2.3.2.4 Memory

Ada tiga jenis memori dalam mikrokontroler yang digunakan pada Arduino (ATmega328)

 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.

(16)

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 32k bytes (0.5 KB untuk loading file)

SRAM 2 Kbytes EEPROM 1024 byte

2.3.3 Teknik memprogram Microcontroller

Berikut adalah konsep dalam memprogram modul microcontroller arduino uno : 2.3.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

(17)

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".

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() {

(18)

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() { 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;

(19)

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.3.3.2 Fungsi-Fungsi

Segmentasi program ke fungsi memungkinkan programmer untuk membuat potongan-potongan program yang melakukan tugas yang telah 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

(20)

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); }

int myMultiplyFunction(int x, int y){ int result;

result = x * y; return result; }

(21)

2.3.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.4 Teknologi Voice Command Recognition System

Voice Command Recognition System atau yang sering kali disebut dengan teknologi Speech Recognition (pengenalan kalimat/kata) dalam ilmu komputer dan teknik elektronika adalah sebuah sistem yang mengubah kalimat suara menjadi kode-kode digital yang berfungsi sebagai perintah untuk melakukan sesuatu pada sistem, sebagai contoh adalah mengemudikan kendaraan, mematikan/menghidupkan Lampu, maupun tugas-tugas yang lainnya. Beberapa sistem speech recognition biasanya menggunakan speaker-independent speech recognition sementara yang lainnya menggunakan Training. Training ini adalah pelatihan yang dilakukan oleh user terhadap sistem Speech Recognition dimana

(22)

seorang user akan membacakan teks-teks tertentu yang kemudian secara otomatis akan dimasukan kedalam sistem Speech Recognition.

Gambar 2.7 Voice Command recognition Proses dengan NI LabView

Kinerja dari sebuah sistem speech recognition biasanya dilihat dalam hal ketepatan dan kecepatan. Ketepatan biasanya dinilai dengan tingkat kesalahan kata (Word Error Rate – WER). Sedangkan kecepatan diukur dengan ystem real time. Beberapa hal-hal penting untuk mengukur kinerja lainnya adalah Single Word Error Rate (SWER) dan Command Success Rate (CSR). Namun sayangnya sistem speech recognition adalah sebuah sistem yang sangat kompleks. Speech recognition juga harus dapat melihat pengguna dalam hal pengucapan kata harus juga melihat aksen yang digunakan, pengucapan pengguna, sambungan kata, kekerasan kata, sifat bunyi dari kata, nada yang terdengar, besar volume yang terdengar dan kecepatan dari pengucapan oleh sang pengguna. Sering kali speech recognition terganggu oleh suara latar dan gaung. Terkadang ketepatan dari sistem speech recognition bervariasi antara lain :

(23)

 Kata-kata yang berurutan, Terputus, atau kata tunggal.  Pembatas kata dan beban kata.

 Kata-kata spontan dan kata-kata yang dibaca.  Kata-kata yang berlawanan.

Figur

Memperbarui...

Related subjects :