Senin, 24 Juli 2017

Bab 2 - Game Simulasi Mobil Controller Arduino

Memenuhi Tugas Softskill (Pengantar Teknologi Game) semester 6 tahun ajaran (2016/2017)
Pembahasan :  Game Simulasi Mobil Controller Arduino
Mata kuliah : Pengantar Teknologi Game

BAB II

KONSEP GAME

Game berasal dari bahasa inggris yang berarti permainan . Dalam setiap game terdapat peraturan yang berbeda - beda untuk memulai permainannya sehingga membuat jenis game semakin bervariasi . Karena salah satu fungsi game sebagai penghilang stress atau rasa jenuh maka hampir setiap orang senang bermain game baik anak kecil , remaja maupun dewasa , mungkin hanya berbeda dari jenis game yang dimainkannya saja.
Figure 2.1 Game
Game sendiri mempunyai dampak positif dan negatif pada kehidupan yang memainkannya . Contoh dampak positif , misalnya : sebagai penghilang stres karena lelah bekerja seharian , mungkin bermain game tepat untuk menghilangkan penat tersebut. Lalu bagi anak - anak sebagai media untuk menambah kecerdasan otak dan daya tanggap , dan masih banyak lagi dampak positif yang lainnya . Contoh dampak negatif, misalnya : karena terlalu sering bermain game lupa untuk melakukan pekerjaan yang lainnya , sehingga membuat pekerjaan lain menjadi tertunda . Lalu jika bermain game di komputer terlalu lama akan merusak mata , dan lain sebagainya .

2.1 Jenis-jenis Game

Seiring dengan perkembangan zaman dan teknologi, dunia game pun ikut terkena imbasnya. Mulai dari segi konsol, teknologi yang diimplementasikan, maupun jenis-jenis game yang beredar. Dari yang hanya berupa arcade game dan hanya tersedia di game center di kota-kota besar, sekarang game sudah dapat dimainkan siapa saja dan di mana saja. Berbagai pilihan jenis game juga semakin berkembang. Berikut beberapa genre game yang ada saat ini.

2.1.1 Action

Action Adalah Jenis game dengan fitur utama berupa banyaknya aksi di mana pemain harus memiliki keterampilan reaksi yang cepat untuk menghindari musuh atau menghindari rintangan. Contoh: Metal Gear Solid dan Ace Combat Assault Horizon.
Figure 2.2 Action Game

2.1.2 Real Time Strategy (RTS)

Pada game jenis ini, kita dapat mengendalikan pasukan secara langsung, dari mencari sumber daya, hingga menghancurkan musuh. Semua pertempuran ini dapat kita saksikan secara langsung.
Figure 2.3 Puzzle Game

2.1.3 Role Playing Game (RPG)

Role Playing Game Adalah Jenis game yang seringkali berupa multi-player game di mana setiap pemain memiliki karakter dengan kemampuan, kekuatan, dan kelemahan yang spesifik. Para pemain saling berkompetisi, berinteraksi, dan bertempur satu sama lain. Tampilan grafis yang khas untuk setiap karakter pemain ditambah dengan storyline yang mendebarkan akan sangat menarik dan memberikan pengalaman yang berbeda di dalam bermain. Contoh: Final Fantasy.
Figure 2.4 RPG Game

2.1.4 Real World Simulation

Jenis permainan ini mensimulasi pengoperasian beberapa kendaraan, kendaraan bisa berupa pesawat terbang, pesawat tempur, kereta, kendaraan perang, maupun kendaraan konstruksi. Contoh : Train Simulator, Truck Simulator, FlightGear, Tram, Orbiter.
Figure 2.5 Simulation Game

2.1.5 Adventure

Adventure Adalah Jenis game yang umumnya membuat pemain harus berjalan mengelilingi suatu tempat yang telah di desain sedemikian rupa, seperti sebuah istana, gua yang berkelok, dan planet yang jauh. Pemain melakukan navigasi suatu area, mencari pesan-pesan rahasia, memperoleh obyek yang memiliki kemampuan yang bervariasi, bertempur dengan musuh, dan lain-lain. Untuk membuat game ini, diperlukan perencanaan yang akurat sehingga memiliki alur cerita yang menarik bagi pemain. Contoh: Tomb Raider.
Figure 2.6 Adventure Gameplay

2.1.6 Puzzle

Ditujukan untuk memecahkan suatu masalah tertentu. Hampir semua semua tantangan disini menyangkut masalah logika yang biasanya dibatasi oleh waktu.
Figure 2.7 Puzzle Game

2.2 Desain Game

Desain Game adalah gambaran bagaimana sebuah game komputer itu akan dibuat. Untuk membuat sebuah game terlebih dahulu pembuat game harus membuat deskripsi yang menceritakan game yang akan dibuat (Hahguoh dan Overmars, 2006). Biasanya design game yang sederhana dapat membuat pembuatan game menjadi lebih menyenangkan.
Figure 2.8 Game Desain
Dari design yang telah dibuat kemudian dapat diketahui semua elemen-elemen berbeda yang dibutuhkan dalam pembuatan game, misalnya karakter user, karakter musuh, animasi serangan dan sebagainya. Membuat game akan membutuhkan gambar dari tiap elemen-elemen yang ada.Semua hal diatas dapat dikatakan sebagai resources game. Dalam desain game terdapat hal-hal penting yang harus dipikirkan diantaranya desain karakter, peta (map system), dan game play dari permainan itu sendiri.

2.2.1 Karakter

Berbicara tentang character design memang tidak dikenal sebuah definisi yang paten dalam menjelaskan secara gamblang apa itu karakter desain. Namun tanpa kita sadari bahwa kehidupan kita sangat akrab dengan keberadaan tokoh-tokoh karakter desain tersebut. Siapa yang tidak kenal dengan Mickey Mouse, Tom and Jerry, Spiderman, Si Unyil, Upin dan Ipin bahkan Sponge Bob? Hampir kita semua mengenalnya.
Figure 2.9 Contoh Karakter Desain 1

Melalui berbagai media seperti film, iklan, merchandise dan komik kita dibombardir oleh kehidupan-kehidupan karakter tersebut. Sehingga mereka hidup di hati kita dengan segala atribut kehidupan yang mereka miliki baik secara fisik maupun tingkah laku. Walaupun mereka bukan makhluk hidup sebenarnya tetapi mereka mampu hadir di kehidupan kita. Bahkan sebagian besar dari kita tidak hanya mengenal nama dari karakter tersebut, dimana karakter itu tinggal, apa pekerjaannya dan bagaimana sifatnya pun diketahui seakan-akan karakter tersebut adalah teman akrab dari kita.
Tujuan kita sebenarnya mempelajari character design ini adalah :
1. Sebagai sarana melatih kepekaan estetis dan kecerdasan visual.
2. Sebagai sarana belajar bagaimana mengubah konsep gagasan ke dalam bentuk gambar.
3. Melebarkan perspektif tentang berkesenian. Hal ini untuk mengubah konsep pemikiran bahwa karya seni hanyalah selukis, seni patung, seni tari dan seni musik.
4. Mengekspresikan diri secara positif.
Figure 2.10 Contoh Karakter Desain 2
Sulit menjelaskan secara definitif tentang character design, namun ada beberapa aspek yang bisa dipelajari dari character design, yaitu :
  • Character design adalah salah satu bentuk ilustrasi yang hadir dengan konsep “manusia” dengan segala atributnya (sifat, fisik, profesi, tempat tinggal bahkan takdir) dalam bentuk yang beraneka rupa, bisa hewan, tumbuhan ataupun benda- benda mati.
  • Secara visual character design sering disebut dengan istilah “kartun”. Biasanya hadir dengan visual yang sangat sederhana bahkan terkesan abstrak. Bentuk terdiri dari garis-garis outline, penggunaan warna-warna solid dan aplikasi bentuk yang cenderung berlebihan (eksagration) yang ditujukan untuk mengkomunikasikan konsep karakter yang dimiliki. Hal ini tidak terikat bahkan relatif tergantung gaya apa yang dianut oleh si perancang.Design bisa lahir dari berbagai konsep dan tujuan serta media atau platform apa media itu akan “hidup”. Character design bisa lahir dari sebuah gagasan yang “pure art” atau bisa dikatakan lahir tanpa kepentingan apapun, misalnya karater Killer Gerbil yang popular di dunia grafity, Molly yang selalu hadir di profesi yang berbeda-beda ataupun karakter-karakter lain yang tidak dipublikasikan dikarenakan dibuat hanya karena kesenangan perancangnya saja.
Pada game ini di khususkan menggunakan character kendaraan, yaitu mobil. Karena tipe gamenya adalah simolasi mobil, characternya menggunakan berbagai macam jenis mobil.

2.2.2 Map

Map adalah suatu arena dalam game. Sebagai tempat user dalam bermain game pada suatu daerah dalam game. Didalam map ini tersedia berbagai macam option atau simbol simbol di dalam map seperti tempat atau target yang di tentukan. Map yang digunakan pada game yang dibahas pada buku ini adalah seperti sebuah sirkuit balap pada umumnya.
Figure 2.11 Map / Level Desain

2.2.3 Game Play

Gameplay adalah cara sebuah gamer untuk berinteraksi dengan game tertentu.Gameplay dalam Video Game sangatlah berpengaruh dalam Pembuatan Game. semakin Game tersebut mudah untuk dimainkan maka semakin banyak yang menyukainya walaupun kadang kala ada beberapa game yang dmana Gameplay nya tidak mudah akan tetapi karena penjelasan tutorial yang mudah dimengerti maka game tersebut juga dapat banyak peminatnya.
Figure 2.12 GamePlay FPS
Contoh dari gameplay adalah : Permainan simulasi menggambarkan beragam kategori permainan, yang umumnya dirancang untuk mensimulasikan aktivitas dunia nyata dengan cermat. Sebuah game simulasi mencoba untuk menyalin berbagai aktivitas dari kehidupan nyata dalam bentuk permainan untuk berbagai keperluan seperti pelatihan, analisis, atau prediksi. Biasanya tidak ada tujuan yang ditentukan secara ketat dalam permainan, pemain diberi kebebasan dalam mengendalikan karakter. Contoh yang terkenal adalah permainan perang, permainan bisnis, simulasi permainan mobil dan simulasi permainan peran. Sementara gameplay dari game yang dibahas pada buku ini adalah kontroling atau mengendalikan sesuatu. Dimana hal yang dikendalikan adalah sebuah mobil.

2.3 Arduino

2.3.1 Pengertian

Arduino adalah pengendali mikro single-board yang bersifat open-source, yang dirancang untuk memudahkan penggunaan elektronik dalam berbagai bidang. Hardware (perangkat keras)-nya memiliki prosesor Atmel AVR dan software (perangkat lunak)-nya memiliki bahasa pemrograman sendiri. Open source IDE yang digunakan untuk membuat aplikasi mikrokontroler yang berbasis platform arduino. Mikrokontroler single-board yang bersifat open source hardware dikembangkan untuk arsitektur mikrokontroller AVR 8 bit dan ARM 32 bit.
Dari pengertian di atas, dapat disimpulkan bahwa Arduino adalah kit atau papan rangkaian elektronik open source yang di dalamnya terdapat komponen utama yaitu sebuah chip mikrokontroler dengan jenis AVR. Mikrokontroler itu sendiri adalah chip atau IC (integrated circuit) yang bisa diprogram menggunakan komputer. Tujuan menanamkan program pada mikrokontroler adalah agar rangkaian elektronik dapat membaca input, memproses input tersebut dan kemudian menghasilkan output seperti yang diinginkan. Jadi mikrokontroler bertugas sebagai otak yang mengendalikan input, proses, dan output sebuah rangkaian elektonik. Mikrokontroler terdapat pada perangkat elektronik sekelilingnya, misalnya Handphone, MP3 Player, DVD, Televisi, AC, dan lain-lain. Mikrokontroler juga dapat mengendalikan robot, baik robot mainan maupun industri. Karena komponen utama arduino adalah mikrokontroler, maka arduino dapat diprogram menggunakan komputer sesuai kebutuhan.
Kelebihan arduino antara lain :
  • Tidak perlu perangkat chip programmer karena di dalamnya sudah ada bootloadder yang akan menangani upload program dari komputer.
  • Sudah memiliki sarana komunikasi USB, sehingga pengguna laptop yang tidak memiliki port serial/RS323 bisa menggunakannya.
  • Memiliki modul siap pakai (shield) yang bisa ditancapkan pada board arduino. Contohnya shield GPS, Ethernet, dan lain-lain.

2.3.2 Sejarah Arduino

Semuanya berawal dari sebuah thesis yang dibuat oleh Hernando Barragan, di institute Ivrea. Kemudian tahun 2005, dikembangkan oleh Massimo Banzi dan David Cuartielles dan diberi nama Arduin of Ivrea. Tujuan awal dibuat Arduino adalah untuk membuat perangkat mudah dan murah, dari perangkat yang ada saat itu. Dan perangkat tersebut ditujukan untuk para siswa yang akan membuat perangkat desain dan interaksi.
Saat ini tim pengembangnya adalah Massimo Banzi, David Cuartielles, Tom Igoe, Gianluca Martino, David Mellis, dan Nicholas Zambetti. Mereka mengupayakan 4 hal dalam Arduino ini, yaitu:
1. Harga terjangkau
2. Dapat dijalankan diberbagai sistem operasi, Windows, Linux, Max, dansebagainya.
3. Sederhana, dengan bahasa pemograman yang mudah bisa dipelajari orang awam, bukan untuk orang teknik saja.
4. Open Source, hardware maupun software.
Figure 2.13 Tim Pembuat Arduino
Sifat Arduino yang Open Source, membuat Arduino berkembang sangat cepat. Dan banyak lahir perangkat-perangkat sejenis Arduino. Seperti DFRDuino atau Freeduino, dan kalau yang lokal ada namanya CipaDuino yang dibuat oleh SKIR70, dan juga MurmerDuino yang dibuat oleh Robot Unyil. Arduino menggunakan keluarga mikrokontroler ATMega yang dirilis oleh Atmel sebagai basis, namun ada individu/perusahaan yang membuat clone arduino dengan menggunakan mikrokontroler lain dan tetap kompatibel dengan arduino pada level hardware. Untuk fleksibilitas, program dimasukkan melalui bootloader meskipun ada opsi untuk membypass bootloader dan menggunakan downloader untuk memprogram mikrokontroler secara langsung melalui port ISP.
Secara umum arduino memiliki fungsi memudahkan penggunaan dalam berbagai bidang elektronik seperti pembuatan aplikasi running LED, traffict LED, mobile robot, dan masih banyak lagi yang lainnya. Dengan menggunakan arduino, pembuatan aplikasi-aplikasi tersebut menjadi lebih praktis, mudah, dan murah. Dan juga dapat digunakan untuk mengembangkan objek interaktif, mengambil masukan dari berbagai switch atau sensor, dan mengendalikan berbagai lampu, motor, dan output fisik lainnya.
Proyek Arduino dapat berdiri sendiri, atau berkomunikasi dengan perangkat lunak (software) yang berjalan pada komputer Anda (misalnya Flash, Pengolahan, MaxMSP.) Board dapat dirakit dengan tangan atau dibeli; open-source IDE dapat didownload secara gratis.

2.3.3 Jenis-Jenis Arduino

Arduino sendiri memiliki banyak jenis dan kegunaan yang berbeda. Jenis-jenis arduino yaitu :
1. Arduino Uno
Figure 2.14 Arduino Uno

Arduino Uno adalah papan mikrokontroler berdasarkan ATmega328 (datasheet). Ini memiliki 14 digital pin input / output (dimana 6 dapat digunakan sebagai output PWM), 6 input analog, resonator keramik 16 MHz, koneksi USB, jack listrik, header ICSP, dan tombol reset. Ini berisi semua yang diperlukan untuk mendukung mikrokontroler; hanya menghubungkannya ke komputer dengan kabel USB atau power itu dengan adaptor AC-DC atau baterai untuk memulai menggunakannya.
2. Arduino Due
Figure 2.15 Arduino Due

Arduino Due adalah papan mikrokontroler berdasarkan Atmel SAM3X8E ARM Cortex-M3 CPU (datasheet). Ini adalah pertama papan Arduino didasarkan pada 32-bit mikrokontroler ARM inti. Ini memiliki 54 digital pin input / output (yang 12 dapat digunakan sebagai output PWM), 12 analog input, 4 UART (hardware port serial), jam 84 MHz, USB OTG koneksi yang mampu, 2 DAC (digital ke analog) , 2 TWI, jack listrik, header SPI, header JTAG, tombol reset dan tombol hapus. Peringatan: Tidak seperti papan Arduino lainnya, Arduino Due berjalan pada 3.3V. Tegangan maksimum yang I / O pin dapat mentolerir adalah 3.3V. Memberikan tegangan yang lebih tinggi, seperti 5V ke I / O pin dapat merusak papan.
3. Arduino Mega
Figure 2.16 Arduino Mega

Mirip dengan Arduino Uno, sama- sama menggunakan USB type A to B untuk pemogramannya. Tetapi Arduino Mega, menggunakan Chip yang lebih tinggi ATMEGA2560. Dan tentu saja untuk Pin I/O Digital dan pin input Analognya lebih banyak dari Uno.
4. Arduino Leonardo
Figure 2.17 Arduino Leonardo

Bisa dibilang Leonardo adalah saudara kembar dari Uno. Dari mulai jumlah pin I/O digital dan pin input Analognya sama. Hanya pada Leonardo menggunakan Micro USB untuk pemogramannya.
5. Arduino Fio
Figure 2.18 Arduino Fio

Bentuknya lebih unik, terutama untuk socketnya. Walau jumlah pin I/O digital dan input analognya sama dengan uno dan leonardo, tapi Fio memiliki Socket XBee. XBee membuat Fio dapat dipakai untuk keperluan projek yang berhubungan dengan wireless.
6. Arduino Lilypad
Figure 2.19 Arduino Lilypad

Bentuknya yang melingkar membuat Lilypad dapat dipakai untuk membuat projek unik. Seperti membuat amor iron man misalkan. Hanya versi lamanya menggunakan ATMEGA168, tapi masih cukup untuk membuat satu projek keren. Dengan 14 pin I/O digital, dan 6 pin input analognya.
7. Arduino Nano
Figure 2.20 Arduino Nano

Seperti namanya, Nano yang berukulan kecil dan sangat sederhana ini, menyimpan banyak fasilitas. Sudah dilengkapi dengan FTDI untuk pemograman lewat Micro USB. 14 Pin I/O Digital, dan 8 Pin input Analog (lebih banyak dari Uno). Dan ada yang menggunakan ATMEGA168, atau ATMEGA328.
8. Arduino Mini
Figure 2.21 Arduino Mini

Fasilitasnya sama dengan yang dimiliki Nano. Hanya tidak dilengkapi dengan Micro USB untuk pemograman. Dan ukurannya hanya 30 mm x 18 mm saja.
9. Arduino Micro
Figure 2.22 Arduino Micro

Ukurannya lebih panjang dari Nano dan Mini. Karena memang fasilitasnya lebih banyak yaitu; memiliki 20 pin I/O digital dan 12 pin input analog.
10. Arduino Robot
Ini adalah paket komplit dari Arduino yang sudah berbentuk robot. Sudah dilengkapi dengan LCD, Speaker, Roda, Sensor Infrared, dan semua yang kamu butuhkan untuk robot sudah ada pada Arduino ini.
Figure 2.23 Arduino Robot

Bagian-bagian Arduino :
1. Soket USB
Soket USB adalah soket kabel USB yang disambungkan ke komputer atau laptop, yang berfungsi untuk mengirimkan program ke arduino dan juga sebagai port komunikasi serial.
2. Input / Output Digital dan Input Analog
Input/output digital atau digital pin adalah pin-pin untuk menghubungkan arduino dengan komponen atau rangkaian digital, contohnya, jika ingin membuat LED berkedip, LED tersebut bisa dipasang pada salah satu pin input atau output  digital dan ground komponen lain yang menghasilkan output digital atau menerima input digital bisa disambungkan ke pin ini. Input analog atau analog pin adalah pin-pin yang berfungsi untuk menerima sinyal dari komponen atau rangkaian analog, contohnya; potensiometer, sensor suhu, sensor cahaya, dan lain-lain.
3. Catu daya
Pin catu daya adalah pin yang memberikan tegangan untuk komponen atau rangkaian yang dihubungkan dengan arduino. Pada bagian catu daya ini pin Vinput dan Reset. Vinput digunakan untuk memberikan tegangan langsung kepada arduino tanpa melaluitegangan pada USB atau adaptor, sedangkan Reset adalah pin untuk memberikan sinyal reset melalui tombol atau rangkaian eksternal.
4. Baterai / Adaptor
Soket baterai atau adaptor digunakan untuk menyuplai arduino dengan tegangan dari baterai/adaptor 9V pada saat arduino sedang tidak disambungkan ke komputer. Jika arduino sedang disambungkan ke komputer dengan USB, Arduino mendapatkan suplai tegangan dari USB, Jika tidak perlu memasang baterai / adaptor pada saat memprogram arduino. Untuk memberikan gambaran mengenai apa saja yang terdapat di dalam sebuah mikrokontroler, gambar memperlihatkan contoh diagram blok sederhana dari mikrokontroler Atmega 328 (dipakai pada Arduino Uno).
Figure 2.24 Blok Adaptor

Blok-blok di atas dijelaskan sebagai berikut:
  • Universal Asynchronous Receiver/Transmitter (UART) adalah antar muka yang digunakan untuk komunikasi serial sepertipada RS-232, RS-422 dan RS-485.
  • 2KB RAM pada memory kerja bersifat volatile (hilang saat daya dimatikan), digunakan oleh variable-variabel di dalam program.
  • 32KB RAM flash memory bersifat non-volatile, digunakan untuk menyimpan program yang dimuat dari komputer. Selain program, flash memory juga menyimpan bootloader. Bootloader adalah program inisiasi yang ukurannya kecil, dijalankan oleh CPU saat daya dihidupkan. Setelah bootloader selesai dijalankan, berikutnya program di dalam RAM akan dieksekusi.
  • 1KB EEPROM bersifat non-volatile, digunakan untuk menyimpan data yang tidak boleh hilang saat daya dimatikan. Tidak digunakan pada papan Arduino.
  • Central Processing Unit (CPU), bagian dari mikrokontroler untuk menjalankan setiap instruksi dari program.
  • Port input/output, pin-pin untuk menerima data (input) digital atau analog, dan mengeluarkan data (output) digital atau analog.
5. Bagian Papan Arduino
Dengan mengambil contoh sebuah papan Arduino tipe USB, bagian-bagiannya dapat dijelaskan sebagai berikut :
Figure 2.25 Papan Arduino

  • 14 pin input/output digital (0-13)
Berfungsi sebagai input atau output, dapat diatur oleh program. Khusus untuk 6 buah pin 3, 5, 6, 9, 10 dan 11, dapat juga berfungsi sebagai pin analog output dimana tegangan output-nya dapat diatur. Nilai sebuah pin output analog dapat diprogram antara 0 – 255, dimana hal itu mewakili nilai tegangan 0 – 5V.
  • USB
Memuat program dari komputer ke dalam papan. Komunikasi serial antara papan dan komputer. Serta memberi daya listrik kepada papan.
  • Sambungan SV1
Sambungan atau jumper untuk memilih sumber daya papan, apakah dari sumber eksternal atau menggunakan USB. Sambungan ini tidak diperlukan lagi pada papan Arduino versi terakhir karena pemilihan sumber daya eksternal atau USB dilakukan secara otomatis.
  • Q1 = Kristal (quartz crystal oscillator)
Jika mikrokontroler dianggap sebagai sebuah otak, maka kristal adalah jantung- nya karena komponen ini menghasilkan detak-detak yang dikirim kepada mikrokontroler agar melakukan sebuah operasi untuk setiap detak-nya. Kristal ini dipilih yang berdetak 16 juta kali per detik (16MHz).
  • Tombol Reset S1
Untuk me-reset papan sehingga program akan mulai lagi dari awal. Perhatikan bahwa tombol reset ini bukan untuk menghapus program atau mengosongkan mikrokontroler.
  • In = Circuit Serial Programming (ICSP)
Port ICSP memungkinkan pengguna untuk memprogram mikrokontroler secara langsung, tanpa melalui bootloader. Umumnya pengguna Arduino tidak melakukan ini sehingga ICSP tidak terlalu dipakai walaupun disediakan.
  • IC 1 = Mikrokontroler Atmega
Komponen utama dari papan Arduino, di dalamnya terdapat CPU, ROM dan RAM.
  • X1 = Sumber Daya External
Jika hendak disuplai dengan sumber daya eksternal, papan Arduino dapat diberikan tegangan dc antara 9-12V.
  • 6 Pin Input analog (0-5)
Pin ini sangat berguna untuk membaca tegangan yang dihasilkan oleh sensor analog, seperti sensor suhu. Program dapat membaca nilai sebuah pin input antara 0 – 1023, dimana hal itu mewakili nilai tegangan 0 – 5V.

2.3.4 Bahasa Pemrograman Arduino

Arduino menggunakan pemrograman dengan bahasa C. Berikut ini adalah sedikit penjelasan yang ditujukan kepada anda yang hanya mempunyai sedikit pengalaman pemrograman dan membutuhkan penjelasan singkat mengenai karakter bahasa C dan software Arduino. Untuk penjelasan yang lebih mendalam, web Arduino.cc adalah sumber yang lengkap.
A. Struktur
Setiap program Arduino (biasa disebut sketch) mempunyai dua buah fungsi yang harus ada.
  • void setup( ) { }
    Semua kode didalam kurung kurawal akan dijalankan hanya satu kali ketika program Arduino dijalankan untuk pertama kalinya.
  • void loop( ) { }
    Fungsi ini akan dijalankan setelah setup (fungsi void setup) selesai. Setelah dijalankan satu kali fungsi ini akan dijalankan lagi, dan lagi secara terus menerus sampai catu daya (power) dilepaskan.
B. Sintaks
Berikut ini adalah elemen bahasa C yang dibutuhkan untuk format penulisan.
  • //(komentar satu baris)
    Kadang diperlukan untuk memberi catatan pada diri sendiri apa arti dari kode-kode yang dituliskan. Cukup menuliskan dua buah garis miring dan apapun yang kita ketikkan dibelakangnya akan diabaikan oleh program
  • /* */(komentar banyak baris)
    Jika anda punya banyak catatan, maka hal itu dapat dituliskan pada beberapa baris sebagai komentar. Semua hal yang terletak di antara dua simbol tersebut akan diabaikan oleh program.
  • { }(kurung kurawal)
    Digunakan untuk mendefinisikan kapan blok program mulai dan berakhir (digunakan juga pada fungsi dan pengulangan).
  • ;(titk koma)
    Setiap baris kode harus diakhiri dengan tanda titik koma (jika ada titik koma yang hilang maka program tidak akan bisa dijalankan).
C. Variabel
Sebuah program secara garis besar dapat didefinisikan sebagai instruksi untuk memindahkan angka dengan cara yang cerdas. Variabel inilah yang digunakan untuk memindahkannya.
  • int (integer)
    Digunakan untuk menyimpan angka dalam 2 byte (16 bit). Tidak mempunyai angka desimal dan menyimpan nilai dari -32,768 dan 32,767.
  • long (long)
    Digunakan ketika integer tidak mencukupi lagi. Memakai 4 byte (32 bit) dari memori (RAM) dan mempunyai rentang dari -2,147,483,648 dan 2,147,483,647.
  • boolean (boolean)
    Variabel sederhana yang digunakan untuk menyimpan nilai TRUE (benar) atau FALSE (salah). Sangat berguna karena hanya menggunakan 1 bit dari RAM.
  • float (float)
    Digunakan untuk angka desimal (floating point). Memakai 4 byte (32 bit) dari RAM dan mempunyai rentang dari -3.4028235E+38 dan 3.4028235E+38.
  • char (character)
    Menyimpan 1 karakter menggunakan kode ASCII (misalnya ‘A’ = 65). Hanya memakai 1 byte (8 bit) dari RAM.
D. Operator Matematika
Operator yang digunakan untuk memanipulasi angka (bekerja seperti matematika yang sederhana).
  • =
    Membuat sesuatu menjadi sama dengan nilai yang lain (misalnya: x = 10 * 2, x sekarang sama dengan 20).
  • %
    Menghasilkan sisa dari hasil pembagian suatu angka dengan angka yang lain (misalnya: 12 % 10, ini akan menghasilkan angka 2).
  • +
    Penjumlahan.
  • -
    Pengurangan.
  • *
    Perkalian.
  • /
    Pembagian.
E. Operator Pembanding
Digunakan untuk membandingkan nilai logika.
  • ==
    Sama dengan (misalnya: 12 == 10 adalah FALSE (salah) atau 12 == 12 adalah TRUE (benar))
  • !=
    Tidak sama dengan (misalnya: 12 != 10 adalah TRUE (benar) atau 12 != 12 adalah FALSE (salah))
  • <
    Lebih kecil dari (misalnya: 12 < 10 adalah FALSE (salah) atau 12 < 12 adalah FALSE (salah) atau 12 < 14 adalah TRUE (benar))
  • >
    Lebih besar dari (misalnya: 12 > 10 adalah TRUE (benar) atau 12 > 12 adalah FALSE (salah) atau 12 > 14 adalah FALSE (salah))
F. Struktur Pengaturan
Program sangat tergantung pada pengaturan apa yang akan dijalankan berikutnya, berikut ini adalah elemen dasar pengaturan (banyak lagi yang lain dan bisa dicari di internet).
1. if..else, dengan format seperti berikut ini:
if (kondisi) { }
else if (kondisi) { }
else { }
Dengan struktur seperti diatas program akan menjalankan kode yang ada di dalam kurung kurawal jika kondisinya TRUE, dan jika tidak (FALSE) maka akan diperiksa apakah kondisi pada else if dan jika kondisinya FALSE maka kode pada else yang akan dijalankan.
2. for, dengan format seperti berikut ini:
for (int i = 0; i < #pengulangan; i++) { }
Digunakan bila anda ingin melakukan pengulangan kode di dalam kurung kurawal beberapa kali, ganti #pengulangan dengan jumlah pengulangan yang diinginkan. Melakukan penghitungan ke atas dengan i++ atau ke bawah dengan i–.
G. Digital
  • pinMode(pin, mode)
    Digunakan untuk menetapkan mode dari suatu pin, pin adalah nomor pin yang akan digunakan dari 0-19 (pin analog 0-5 adalah 14-19). Mode yang bisa digunakan adalah INPUT atau OUTPUT.
  • digitalWrite(pin, value)
    Ketika sebuah pin ditetapkan sebagai OUTPUT, pin tersebut dapat dijadikan HIGH (ditarik menjadi 5 volts) atau LOW (diturunkan menjadi ground).
  • digitalRead(pin)
    Ketika sebuah pin ditetapkan sebagai INPUT maka anda dapat menggunakan kode ini untuk mendapatkan nilai pin tersebut apakah HIGH (ditarik menjadi 5 volts) atau LOW (diturunkan menjadi ground).
H. Analog
Arduino adalah mesin digital tetapi mempunyai kemampuan untuk beroperasi di dalam alam analog (menggunakan trik). Berikut ini cara untuk menghadapi hal yang bukan digital.
  1. analogWrite(pin, value)
    Beberapa pin pada Arduino mendukung PWM (pulse width modulation) yaitu pin 3, 5, 6, 9, 10, 11. Ini dapat merubah pin hidup (on)atau mati (off) dengan sangat cepat sehingga membuatnya dapat berfungsi layaknya keluaran analog. Value (nilai) pada format kode tersebut adalah angka antara 0 ( 0% duty cycle ~ 0V) dan 255 (100% duty cycle ~ 5V).
  2. analogRead(pin)
    Ketika pin analog ditetapkan sebagai INPUT anda dapat membaca keluaran voltase-nya. Keluarannya berupa angka antara 0 (untuk 0 volts) dan 1024 (untuk 5 volts).

Figure 2.26 Arduino Setup
Figure 2.27 Contoh Program Sederhana

2.4 Voice Recognition dan Speech Regocnition

Voice recognition (pengenalan suara) dan Speech recognition (pengenalan orang berbicara) sering disamaartikan atau bahkan dipertukarkan artinya oleh kebanyakan orang. Speech recognition adalah proses menangkap pengucapan kata yang diucapkan melalui mikrofon atau telepon dan mengubahnya ke dalam data yang tersimpan secara digital. Kualitas dari sistem speech recognition ditaksir dari dua faktor, yaitu akurasi (tingkat kesalahan dalam mengubah kata yang diucapkan ke dalam data digital) dan kecepatan (seberapa cepat perangkat lunak tersebut dapat mengikuti pembicaraan manusia).
Figure 2.28 Voice Recognition Arduino

Speech recognition adalah proses mengubah ucapan menjadi data digital, sedangkan voice recognition ditujukan untuk mengidentifikasi orang yang sedang berbicara. Voice recognition bekerja dengan menganalisis ciri dari ucapan setiap individu. Setiap orang memiliki pola ucapan yang unik dari anatomi mereka (ukuran dan bentuk mulut dan tenggorokan) dan perilaku pola (nada suara  mereka, gaya bicara mereka, aksen, dan sebagainya). Kesimpulannya voice recognition digunakan untuk mengidentifikasi "siapa yang berbicara", sedangkan speech recognition digunakan untuk mengidentifikasi "apa yang diucapkan" oleh pembicara. Dan pada penelitian ini memakai metode voice recognition pada sensornya, sehingga nantinya sensor hanya merekam satu suara saja yang dikenali oleh sensor, jadi walaupun membuat perintah suara dengan orang lain maka probabilitasnya akan kecil sehingga harus dilakukan berulang kali, maka suara yang tepat adalah suara yang pertama direkam sesuai dengan metode voice recognition yaitu yang dapat menganalisis ucapan setiap individu.

2.5 Easy Voice Recognition (EasyVR)

EasyVR merupakan modul voice recognition multi-fungsi. Dapat digunakan pada banyak aplikasi pengontrolan yang membutuhkan pendeteksian bukan hanya suara melainkan percakapan. EasyVR merupakan generasi penerus setelah kesuksesan generasi pertamanya di pasaran yaitu VRBot. Module ini dapat digunakan atau dihubungkan dengan papan mikrokontroler Arduino.
Sangat cocok digunakan untuk beragam aplikasi, seperti home automation (contohnya mengontrol nyala lampu, kunci pintu, televisi, atau perangkat lainnya hanya dengan perintah kita) atau sebagai modul pelengkap sensor pendengaran robot.yang dibuat sebagaimana robot-robot canggih yang dijual di pasaran yang harganya luar biasa mahal.
Deskripsi :
  • Mendukung beberapanbahasa, yaitu English (US), Italian, German,nFrench, Spanish, Japanese.
  • Mendukung hingga 32 custom Speaker Dependent (SD) trigger atau perintah, bahkan dapat digunakan pada bahasa apapun. 32 custom suara disini bukan bisa menggunakan 32 speaker tetapi dapat menggunakan 32 bahasa yang bisa diubah, jika cocok dengan suara tersebut maka suara yang terekam akan di-trigger. Dan pengertian speaker dependent yaitu hanya suara kita yang bisa, kalau ingin sensor mendeteksinya, maka suaranya harus disamakan dengan suara yang direkam pertama kali.
  • GUI yang mudah digunakan.
  • Dapat dihubungkan dengan mikrokontroler dengan koneksi UART (tegangan 3.3 - 5 V)
  • Mudah diaplikasikan dan didukung oleh dokumentasi yang sederhana
  • 3 x GPIO (IO1, IO2, IO3) dapat dikontrol dengan perintah protokol baru
  • PWM audio output mendukung speaker 8 ohm.
  • Sound playback
  • Kompatible dengan Robonova dan Robozak MR-C3024 controller board.
1. Bagian papan EasyVR
Figure 2.29 Papan EasyVR

Berikut tabel datasheet sensornya : Tabel Datasheet Sensor Easy Voice Recognition :
Figure 2.30 Kondisi Operasi
Figure 2.31 Karakteristik Listrik
Figure 2.32 Karakteristik Listrik
Figure 2.33 Syarat Power Supply

2. Suara
Bunyi atau suara adalah pemampatan mekanis atau gelombang longitudinal yang merambat melalui medium. Medium atau zat perantara ini dapat berupa zat cair, padat, gas. Jadi, gelombang bunyi dapat merambat misalnya di dalam air, batu bara, atau udara.
Kebanyakan suara adalah gabungan berbagai sinyal getar terdiri dari gelombang harmonis, tetapi suara murni secara teoritis dapat dijelaskan dengan kecepatan getar osilasi atau frekuensi yang diukur dalam satuan getaran Hertz (Hz) dan amplitudo atau kenyaringan bunyi dengan pengukuran dalam satuan tekanan suara desibel (dB).
Manusia mendengar bunyi saat gelombang bunyi, yaitu getaran di udara atau medium lain, sampai ke gendang telinga manusia. Batas frekuensi bunyi yang dapat didengar oleh telinga manusia berkisar antara 20 Hz sampai 20 kHz pada amplitudo berbagai variasi dalam kurva responsnya. Suara di atas 20 kHz disebut ultrasonik dan di bawah 20 Hz disebut infrasonik.
3. Hidden Markov Model (HMM)
Hidden Markov Model (HMM) merupakan teknik pendekatan yang dapat mengelompokkan sifat-sifat spektral dari tiap bagian suara pada beberapa pola. Teori dasar dan HMM adalah dengan mengelompokkan sinyal suara sebagai proses parametrik acak, dan parameter proses tersebut dapat dikenali (diperkirakan) dalam akurasi yang tepat.
Figure 2.34 Flow HMM

Blog diagram pengenalan suara dari sensor ke mikrokontroler. Metode modern pada sistem pengenalan suara HMM (Hidden Markov Model) berdasarkan formulasi noisy channel. Metode ini menyatakan bahwa tugas dan sistem pengenalan suara untuk mencari rangkaian kata yang mirip untuk sinyal akustik yang direkam. Dengan kata lain, sistem mencari rangkaian kata diantara semua kemungkinan kata dan rangkaian. Menurut Hidden Markov Model tenmmnologi disebut rangkaian observasi. Dilihat di gambar 2.4 diatas bahwa dari suara yang diucapkan manusia akan bebentuk analog dan di sensor tersebut akan diubah ke data digital berdasarkan metode HMM menuju mikrokontroller. Pada metode HMM inilah probabilitas pada suara sangat ditentukan dimana semakin mirip suara nya maka probabilitas semakin besar sedangkan saat suaranya tidak mirip maka probabilitas akan kecil.

2.6 Motor DC

A. Motor DC
Motor listrik merupakan perangkat elektromagnetis yang mengubah energi listrik menjadi energi mekanik. Motor dc atau sering disebut motor arus searah lebih sering digunakan untuk keperluan yang membutuhkan pengaturan kecepatan dibandingkan dengan motor ac. Alasan utama penggunaan motor dc terutama pada industri-industri modern adalah karena kecepatan kerja motor-motor dc mudah diatur dalam suatu rentang kecepatan yang luas, disamping banyaknya metode-metode pengaturan kecepatan yang dapat digunakan. Motor dc sangat dikenal karena pemakaiannya yang beraneka ragam.
Dengan melakukan berbagai penggabungan lilitan medan yang disusun secara shunt (paralel), seri maupun secara terpisah, dapat dirancang suatu motor yang dapat menampilkan karakteristik tegangan atau arus atau kecepatan momen yang bermacam-macam untuk penggunaan dinamik maupun keadaan tetap (ajek).
Karena mudah diatur, sistem motor dc sering digunakan pada pemakaian yang memerlukan rentang kecepatan yang lebar atau pengaturan yang teliti pada keluaran yang diinginkan. Motor dc memerlukan suplai tegangan searah pada kumparan medan untuk diubah menjadi energi mekanik. Motor dc memiliki 2 bagian dasar yaitu, bagian yang tetap atau stasioner yang disebut stator. Stator ini menghasilkan medan magnet, baik yang dibangkitkan dari sebuah koil (elektromagnet) ataupun magnet permanen, serta bagian yang berputar disebut rotor.
Rotor ini berupa sebuah koil dimana arus listrik mengalir. Jika terjadi putaran pada kumparan jangkar di dalam medan magnet, maka akan timbul tegangan (GGL) yang berubah-ubah arah pada setiap setengah putaran.
Prinsip kerja dari arus searah adalah membalik fasa tegangan dari gelombang yang mempunyai nilai positif dengan menggunakan komutator. Maka dengan memberikan beda tegangan pada kedua terminal tersebut, motor akan berputar pada satu arah, dan bila polaritas dari tegangan tersebut dibalik, maka arah putaran motor akan terbalik pula. Polaritas dari tegangan yang diberikan pada dua terminal menentukan arah putaran motor sedangkan besar dari beda tegangan pada kedua terminal menentukan kecepatan motor.
Bentuk motor paling sederhana memiliki kumparan satu lilitan yang bisa berputar bebas di antara kutub-kutub magnet permanen. Motor dc merupakan jenis motor yang menggunakan tegangan searah sebagai sumber tenaganya.
Figure 2.35 Motor DC Sederhana

Catu tegangan dc dari baterai menuju ke lilitan melalui sikat yang menyentuh komutator, dua segmen yang terhubung dengan dua ujung lilitan. Kumparan satu lilitan disebut angker dinamo atau biasa disebut rotor. Angker dinamo adalah sebutan untuk komponen yang berputar di antara medan magnet .
Berikut bagian-bagian utama pada motor dc :
1. Strator
Stator adalah bagian pada motor listrik atau dinamo listrik yang berfungsi sebagai stasioner dari sistem rotor. Jadi penempatan stator biasanya mengelilingi rotor, stator bisa berupa gulungan kawat tembaga yang berinteraksi dengan angker dan membentuk medan magnet untuk mengatur perputaran rotor. Motor dc memiliki kutub medan yang stasioner dan rotor yang menggerakan bearing pada ruang diantara kutub medan.
2. Rotor
Rotor adalah bagian dari motor listrik atau generator listrik yang berputar pada sumbu rotor. Bila arus masuk menuju rotor, maka arus ini akan menjadi elektromagnet. Rotor yang berbentuk silinder, dihubungkan ke poros penggerak untuk menggerakan beban. Rotor berputar dalam medan magnet yang dibentuk oleh kutub-kutub, sampai kutub utara dan selatan magnet berganti lokasi. Jika hal ini terjadi, arusnya berbalik untuk merubah kutub-kutub utara dan selatan motor.
3. Komutator
Komponen ini terutama ditemukan dalam motor dc. Fungsinya adalah untuk menyearahkan arah arus listrik dalam dinamo. Commutator juga membantu dalam aliran arus antara dinamo dan sumber daya.
B. Prinsip Kerja Motor DC
Jika arus lewat pada suatu konduktor, akan timbul medan magnet di sekitar konduktor. Arah medan magnet ditentukan oleh arah aliran arus pada konduktor. Aturan tangan kanan bisa digunakan untuk menentukan arah garis fluks disekitar konduktor.
Figure 2.36 Prinsip Kerja Motor DC

Genggam konduktor dengan tangan kanan dengan jempol mengarah pada arah aliran arus, maka jari-jari akan menunjukkan arah garis fluks.Pada gambar diatas nomor 2 menunjukkan medan magnet yang terbentuk di sekitar konduktor berubah arah karena berbentuk U. Medan magnet hanya terjadi di sekitar sebuah konduktor jika ada arus mengalir pada konduktor tersebut. Jika konduktor berbentuk U (rotor) diletakkan di antara kutub utara dan selatan, maka kuat medan magnet konduktor akan berinteraksi dengan medan magnet kutub dan ditunjukkan pada gambar diatas.
Figure 2.37 Reaksi Garis Fluks

Lingkaran bertanda A dan B merupakan ujung konduktor yang dilengkungkan (looped conductor). Arus mengalir masuk melalui ujung A dan keluar melalui ujung B. Medan konduktor A yang searah jarum jam akan menambah medan pada kutub dan menimbulkan medan yang kuat di bawah konduktor. Konduktor akan berusaha bergerak ke atas untuk keluar dari medan magnet.
Medan konduktor B yang berlawanan arah jarum jam akan menambah medan pada kutub dan menimbulkan medan yang kuat di atas konduktor. Konduktor akan  berusaha untuk bergerak turun agar keluar dari medan yang kuat tersebut. Gaya-gaya tersebut akan membuat rotor berputar searah jarum jam.
Pada motor dc, daerah kumparan medan yang dialiri arus listrik akan menghasilkan medan magnet yang melingkupi kumparan jangkar dengan arah tertentu. Konversi dari energi listrik menjadi energi mekanik (motor) maupun sebaliknya berlangsung melalui medan magnet, dengan demikian medan magnet disini selain berfungsi sebagai tempat untuk menyimpan energi, medan magnet juga berfungsi sebagai tempat berlangsungnya proses perubahan energi, daerah tersebut dapat dilihat pada gambar dibawah.
Figure 2.38 Prinsip Kerja Motor DC

Agar proses perubahan energi mekanik dapat berlangsung secara sempurna, maka tegangan sumber harus lebih besar dari pada tegangan gerak yang disebabkan reaksi. Dengan memberi arus pada kumparan jangkar yang dilingkupi oleh medan magnet, maka menimbulkan perputaran pada motor.
Mekanisme kerja untuk motor dc :
1. Arus listrik dalam medan magnet akan memberikan gaya.
2. Jika kawat yang membawa arus dibengkokkan menjadi sebuah lingkaran/loop, maka kedua sisi loop, yaitu pada sudut kanan medan magnet akan mendapatkan gaya pada arah yang berlawanan.
3. Pasangan gaya menghasilkan tenaga putar/ torque untuk memutar kumparan.
4. Motor memiliki beberapa loop pada dinamonya untuk memberikan tenaga putaran yang lebih seragam dan medan magnetnya dihasilkan oleh susunan elektromagnetik yang disebut kumparan medan.
Figure 2.39 Proses Konversi Energi

Dengan mengingat hukum kekekalan energi, proses konversi energi listrik menjadi energi mekanik dapat dinyatakan sebagai berikut: Energi listrik sebagai input = Energi mekanik sebagai output + energi yang diubah menjadi panas + energi yang tersimpan dalam.
C. Pengaturan Kecepatan Motor DC
Besarnya gaya gerak listrik induksi pad kumparan armatur akibatnya berputarnya rotor yang terletak diantara kutub magnet diperoleh :

Figure 2.40 Hasil Hitung

Dengan demikian kecepatan putar motor dc dapat diperoleh dengan mengubah- ubah fluks magnet, pengaturan arus armatur atau dengan pengubahan tegangan sumber.
Motor dc berpenguatan bebas merupakan salah satu dari jenis motor dc yang dapat menambah kemampuan daya dan kecepatan, karena memilki fluks medan yang dihasilkan oleh kumparan medan, yang terletak secara terpisah dan mempunyai sumber sendiri. Motor jenis ini mempunyai kumparan medan yang disuplai oleh sumber lain yang bebas dan tidak bergantung pada beban atau tegangan drop di dalam jangkar, kecepatan praktis tetap pada seluruh range beban.
Pada jangkar motor timbul EMF (GGL) lawan sebesar yang melawan tegangan  masuk (Vt). Rangkaian ekivalen motor arus searah berpenguatan bebas lihat gambar berikut:
Figure 2.41 Rangkaian Motor Searah

Motor dc berpenguatan bebas merupakan salah satu dari jenis motor dc yang dapat menambah kemampuan daya dan kecepatan, karena memilki fluks medan yang dihasilkan oleh kumparan medan, yang terletak secara terpisah dan mempunyai sumber sendiri. Motor jenis ini mempunyai kumparan medan yang disuplai oleh sumber lain yang bebas dan tidak bergantung pada beban atau tegangan drop di dalam jangkar, kecepatan praktis tetap pada seluruh range  beban. Pada jangkar motor timbul EMF (GGL) lawan sebesar yang melawan tegangan  masuk (Vt).
Rangkaian ekivalen motor arus searah berpenguatan bebas
Dari gambar rangkaian ekivalen tersebut, maka persamaan yang menyatakan hubungan besaran tegangan, arus, daya dan resistansi dapat dituliskan sebagai berikut:
Figure 2.42 Penjelasan Rumus

2.7 Driver Motor

A. Metal Oxide Semiconductor Field Effect Transistor (MOSFET)
Metal Oxide Semiconductor FET atau MOSFET, memiliki sebuah sumber, gerbang dan saluran. Akan tetapi MOSFET berbeda dengan JFET, dalam hal ini gerbang diisolasi dari saluran. Oleh karena itu, arus gerbang lebih kecil daripada yang ada di JFET. Mosfet kadang-kadang disebut sebagai IGFET atau Insulated Gate FET. Ada dua jenis MOSFET, yaitu tipe depletion-mode dan tipe enhancemen-mode.
Figure 2.43 FET

FET bentuk fisiknya seperti transistor. Fungsinya adalah untuk menaikkan tegangan atau menurunkan tegangan. FET memiliki tiga kaki juga yaitu :
  • GATE (G) adalah kaki input
  • DRAIN (D) adalah kaki output
  • SOURCE (S) adalah kaki sumber
Mosfet yang digunakan yaitu tipe IRFP460 yang memiliki spesifikasi seperti dibawah ini :
Figure 2.44 Datasheet IRFP

Fungsinya biasanya digunakan pada rangkaian power supply jenis switching untuk menghasilkan tegangan tinggi agar memproses trafo. EMOSFET (Enhancement-mode MOSFET) adalah bagian dari evolusi dari tipe D-MOSFET. Gambar 2.13(a) menunjukkan sebuah
E-MOSFET. Substrate p sekarang memperluas semua jalan silikon diokasida.
Figure 2.45 E-MOFSET

Bagaimanakah E-Mosfet berkerja? Pada gambar menunjukkan polaritas pembiasan normal. Ketika tegangan gerbang nol, arus diantara sumber dan saluran adalah nol. Untuk ulasan ini, E-MOSFET biasanya tidak aktif ketika tegangan pada gerbang adalah nol. Jalan satu-satunya untuk mendapatkan arus adalah dengan tegangan
gerbang positif. Ketika gerbang menjadi positif, maka akan menarik elektron bebas ke daerah p. Elektron bebas bergabung kembali dengan lubang-lubang ke silikon dioksida. Ketika tegangan gerbang cukup positif, seluruh lubang yang sudah menyentuh silikon dioksida terisi dan elektron bebas mulai mengalir dari sumber ke saluran. Akibatnya adalah sama seperti membuat sebuah lapisan tipis bahan  tipe n ke silikon diokasida. Lapisan konduksi ini disebut lapisan pembalik tipe n, ketika lapisan ini ada, elektron bebas dapat mengalir dengan mudah dari sumber ke saluran.
VGS minimum yang membuat lapisan pembalik tipe n disebut tegangan ambang batas, disimbolkan VGS(th).
Ketika VGS lebih kecil daripada VGS(th), arus saluran nol. Ketika VGS lebih besar dari pada VGS(th), sebuah lapisan pembalik tipe n menyambung dengan sumber ke saluran dan arus saluran dapat mengalir. Nilai VGS(th) biasanya untuk peralatan sinyal kecil adalah 1 sampai 3 volt.
IC ini bisa digunakan untuk berbagai macam elektronik seperti :
  • Komputer
  • Aplikasi instrumen, mesin pengukuran
  • Peralatan instrumentasi, mesin duplikasi
  • Keperluan elektronik rumah tangga seperti kipas angin
Spesifikasi ic ini yaitu batas tegangan yang bisa dialiri yaitu 18 volt dan arusnya hanya sebesar 50 mA.

2.8 Unity 3D

Unity merupakan suatu aplikasi yang digunakan untuk mengembangkan game multi platform yang didesain untuk mudah digunakan. Unity itu bagus dan penuh perpaduan dengan aplikasi yang profesional. Editor pada Unity dibuat degan user interface yang sederhana. Editor ini dibuat setelah ribuan jam yang mana telah dihabiskan untuk membuatnya menjadi nomor satu dalam urutan rankking teratas untuk editor game.
Figure 2.46 Logo Unity

Grafis pada unity dibuat dengan grafis tingkat tinggi untuk OpenGL dan directX. Unity mendukung semua format file, terutamanya format umum seperti semua format dari art applications. Unity cocok dengan versi 64-bit dan dapat beroperasi pada Mac OS x dan windows dan dapat menghasilkan game untuk Mac, Windows, Wii, iPhone, iPad dan Android. Unity secara rinci dapat digunakan untuk membuat video game 3D, real time animasi 3D dan visualisasi arsitektur dan isi serupa yang interaktif lainnya. Editor Unity dapat menggunakan plugin untuk web player dan menghasilkan game browser yang didukung oleh Windows dan Mac.
Plugin web player dapat juga dipakai untuk widgets Mac. Unity juga akan mendukung  console terbaru seperti PlayStation 3 dan Xbox 360. Pada tahun 2010, telah memperoleh Technology Innovation Award yang diberikan oleh Wall Street Journal dan tahun 2009, Unity Technology menjadi 5 perusahaan game terbesar. Tahun 2006, menjadi juara dua pada Apple Design Awards.
Server aset dari Unity dapat digunakan semua scripts dan aset game sebagai solusi dari versi kontrol dan dapat mendukung proyek yang terdiri atas banyak gigabytes dan ribuan dari file multi-megabyte. Editor Unity dapat menyimpan metadata dan versi mereka, itu dapat berjalan , pembaharuan dan didalam perbandingan versi grafis. Editor Unity dapat diperbaharui dengan sesegera mungkin seperti file yang telah dimodifikasi. Server aset Unity juga cocok pada Mac, Windows dan Linux dan juga berjalan pada PostgreSQL, database server opensource. Perizinan atau license dari Unity ada dua bentuk. Ada Unity dan Unity Pro.
Versi Unity tersedia dalam bentuk gratis, sedang versi Unity Pro hanya dapat dibeli. Versi Unity Pro ada dengan fitur bawaan seperti efek post processing dan render efek texture. Versi Unity merupakan yang gratis memperlihatkan aliran untuk game web dan layar splash untuk game yang berdiri sendiri. Unity dan Unity Pro menyediakan tutorial, isi, contoh project, wiki, dukungan melalui forum dan perbaruan kedepannya. Unity digunakan pada iPhone, iPod dan iPad operating system yang mana iOS ada sebagai add-ons pada Unity editor yang telah ada lisensinya, dengan cara yang sama juga pada Android.

2.8.1 Sejarah Unity

Sejak unity secara resmi dirilis sebagai Unity versi 1.0.1, banyak pembaharuan (update), upgrades dan fitur yang telah ditambahkan selama tahun perilisannya tersebut dan Unity terus berkembang secara terus – menerus. Sekarang ini Unity sudah ada pada versi 3.0 yang telah diumumkan pada bulan Maret 2010, bagaimanapun versi ini masih didalam pre order, yang mana artinya pengguna dapat memesan tetapi sebenarnya software masih belum rilis untuk pengiriman.
Unity ada atau datang dengan beberapa pilihan perijinan (license), berkisar dari yang gratis untuk Unity paket utama ( dasar ) untuk Unity pro,  untuk satu license dijual dengan harga $1200. Baik Unity yang versi gratis dan Unity yang versi pro menawarka banyak fitur yang dapat digunakan, masih untuk yang versi gratis memperlihatkan sebuah halaman spash pada game yang tetap (regular) , dan desain untuk game online menggunakan Unity watermark. Lebih dari beberapa tahun banyak game yang dikembangkan dan dibuat berjalan pada Unity, beberapa lebih ketetapan berada dalam satu bungkus atau masukkan: Butuh Kecepatan: Dunia, yang mana sekarang ini dalam perkembangan dan waktunya rilis berikutnya pada tahun ini, WolfQuest, yang mana rilis pada tahun 2007, Tiger Woods PGA Tour Online , yang mana telah dibuat pada April pada tahun 2007 dan Atmosphir , yang mana banyak game baru yang dapat berjalan di Unity.
Harus di catat akan dapat mengembangkan game untuk Iphone/Ipad platform, degan melakukan upgrade plug-in yang dibutuhkan oleh Uniy, untuk licensenya dapat diperoleh pada website Unity.

2.8.2 Fitur Unity

1. Rendering
Graphics engine yang digunakan adalah Direct3D (Windows, Xbox 360), OpenGL (Mac, Windows, Linux, PS3), OpenGL ES (Android, iOS), dan proprietary APIs (Wii). Ada pula kemampuan untuk bump mapping, reflection mapping, parallax mapping, screen space ambient occlusion (SSAO), dynamic shadows using shadow maps, render-to-texture and full-screen post-processing effects.
Unity dapat mengambil format desain dari 3ds Max, Maya, Softimage, Blender, modo, ZBrush, Cinema 4D, Cheetah3D, Adobe Photoshop, Adobe Fireworks and Allegorithmic Substance. Asset tersebut dapat ditambahkan ke game project dan diatur melalui graphical user interface Unity.
Figure 2.47 Unity RenderInfo

2. Scripting
Script game engine dibuat dengan Mono 2.6, sebuah implementasi open-source dari .NET Framework. Programmer dapat menggunakan UnityScript (bahasa terkustomisasi yang terinspirasi dari sintax ECMAScript, dalam bentuk JavaScript), C#, atau Boo (terinspirasi dari sintax bahasa pemrograman phyton). Dimulai dengan dirilisnya versi 3.0, Unity menyertakan versi MonoDevelop yang terkustomisasi untuk debug script.

Figure 2.48 Scripting pada Unity
3. Assets Tracking
Unity juga menyertakan Server Unity Asset – sebuah solusi terkontrol untuk defeloper game asset dan script. Server tersebut menggunakan PostgreSQL sebagai backend, sistem audio dibuat menggunakan FMOD library (dengan kemampuan untuk memutar Ogg Vorbis compressed audio), video playback menggunakan Theora codec, engine daratan dan vegetasi (dimana mensuport tree billboarding, Occlusion Culling dengan Umbra), built-in lightmapping dan global illumination dengan Beast, multiplayer networking menggunakan RakNet, dan navigasi mesh pencari jalur built-in.
4. Multi Platforms
Unity support pengembangan ke berbagai plaform. Didalam project, developer memiliki kontrol untuk mengirim keperangkat mobile, web browser, desktop, and console. Unity juga mengijinkan spesifikasi kompresi textur dan pengaturan resolusi di setiap platform yang didukung.
Saat ini platform yang didukung adalah BlackBerry 10, Windows 8, Windows Phone 8, Windows, Mac, Linux, Android, iOS, Unity Web Player, Adobe Flash, PlayStation 3, Xbox 360, Wii U and Wii. Meskipun tidak semua terkonfirmasi secara resmi, Unity juga mendukung PlayStation Vita yang dapat dilihat pada game Escape Plan dan Oddworld: New ‘n’ Tasty.
Rencana platform berikutnya adalah PlayStation 4 dan Xbox One. Dan juga rumor untuk kedepanya mengatakan HTML akan menjadi platformnya, dan plug-in Adobe baru dimana akan disubtitusikan ke Flash Player, juga akan menjadi platform berikutnya.
Figure 2.49 Lara Croft, dibuat di Unity 3D

5. Physics System
Unity juga memiliki suport built-in untuk PhysX physics engine (sejak Unity 3.0) dari Nvidia (sebelumnya Ageia) dengan penambahan kemampuan untuk simulasi real-time cloth pada arbitrary dan skinned meshes, thick ray cast, dan collision layers.

2.8.3 Bahsa Pemrograman C#

Figure 2.50 C#

C# adalah bahasa pemrograman yang diciptakan oleh Microsoft (dikembangkan dibawah kepemimpinan Anders Hejlsberg yang notabene juga telah menciptakan berbagai macam bahasa pemrograman termasuk Borland Turbo C++ dan Borland Delphi). Bahasa C# juga telah di standarisasi secara internasional oleh ECMA.
Seperti halnya bahasa pemrograman yang lain, C# bisa digunakan untuk membangun berbagai macam jenis aplikasi, seperti aplikasi berbasis windows (desktop) dan aplikasi berbasis web serta aplikasi berbasis web services. Mengapa Mempergunakan C#? Pertanyaan di atas mungkin muncul di benak kita semua pada saat pertama kali mendengar tentang C#. Hal tersebut sangat beralasan, dengan melihat kenyataan bahwa sebelum C# muncul, telah banyak bahasa pemrograman yang ada, seperti C, C++, Java, Perl dan lain-lain.
Kelebihan C# :
1. Sederhana
C# menghilangkan beberapa hal yang bersifat kompleks yang terdapat dalam beberapa macam bahasa pemrograman seperti Java dan C++, termasuk diantaranya mengilangkan macro, templates, multiple inheritance dan virtual base classes. Hal hal tersebut yang dapat menyebabkan kebingungan pada saat menggunakannya, dan juga berpotensial dapat menjadi masalah bagi para programmer C++.
Jika anda pertama kali belajar bahasa C# sebagai bahasa pemrograman, maka hal-hal tersebut diatas tidak akan membuat waktu anda terbuang terlalu banyak untuk mempelajarinya. C# bersifat sederhana, karena bahasa ini didasarkan kepada bahasa C dan C++. Jika anda familiar dengan C dan C++ atau bahkan Java, anda akan menemukan aspekaspek yang begitu familiar, seperti statements, expression, operators, dan beberapa fungsi yang diadopsi langsung dari Java, C dan C++, tetapi dengan berbagai perbaikan yang membuat bahasanya menjadi lebih sederhana. Perhatikan Gambar 1 yang merupakan komposisi bahasa yang terdapat dalam C# sehingga kita tidak perlu takut lagi untuk mempelajari C#.
2. Modern
Apa yang membuat C# menjadi suatu bahasa pemrograman yang modern?
Jawabannya adalah adanya beberapa fitur seperti exception handling, garbage collection, extensible data types, dan code security (keamanan kode/bahasa pemrograman). Dengan adanya fitur-fitur tersebut, menjadikan bahasa C# sebagai bahasa pemrograman yang modern.
3. OOP
Kunci dari bahasa pemrograman yang bersifat Object Oriented adalah encapsulation, inheritance, dan polymorphism. Secara sederhana, istilah-istilah tersebut bisa didefinisikan sebagai berikut (definisi dan penjelasan lebih lanjut akan di uraikan pada bab-bab selanjutnya). encapsulation, dimana semua fungsi ditempatkan dalam satu paket (single package). inheritance, adalah suatu cara yang terstruktur dari suatu kode-kode pemrograman dan fungsi untuk menjadi sebuat program baru dan berbentuk suatu paket. Polymorphism, adalah kemampuan untuk mengadaptasi apa yang diperlukan untuk dikerjakan. Sifat-sifat tersebut di atas, telah di miliki oleh C# sehingga bahasa C# merupakan bahasa yang bersifat Object Oriented.
4. Fleksibel
C# bisa digunakan untuk membuat berbagai macam aplikasi, seperti aplikasi pengolah kata, grafik, spreadsheets, atau bahkan membuat kompiler untuk sebuah bahasa permrograman.
5. Efisien
C# adalah bahasa pemrograman yang menggunakan jumlah kata-kata yang tidak terlalu banyak. C# hanya berisi kata-kata yang biasa disebut dengan keywords. Keywords ini digunakan untuk menjelaskan berbagai macam informasi. Jika anda berpikiran bahwa bahasa pemrograman yang menggunakan sangat banyak kata-kata (keywords) akan lebih powerfull, maka jawabannya adalah “pemikiran itu tidak selalu benar”, karena hal itu justru bisa menambah kerumitan para developer pada saat membuat suatu aplikasi.
6. Modular


Kode C# ditulis dengan pembagian masing Class-Class (classes) yang terdiri dari beberapa routines yang disebut sebagai member methods. Class-Class dan metodemetode ini dapat digunakan kembali oleh program atau aplikasi lain. Hanya dengan memberikan informasi yang dibutuhkan oleh Class dan metode yang dimaksud, maka kita akan dapat membuat suata kode yang dapat digunakan oleh satu atau beberapa aplikasi dan program (reusable code).