PENGANTAR TEKNOLOGI GAME
OLEH : KELOMPOK SOFTSKILL (3IA04)
DISUSUN OLEH :
FARIZ KANZI
HARUN AL RASYID
HELMI FADHIEL
JAMALUDIN SALAM
RENDY APRIAN
Bab
1
PENDAHULUAN
Permainan video (bahasa Inggris: video game) ada- lah permainan yang
menggunakan interaksi dengan antarmuka pengguna melalui gambar yang dihasilkan
oleh piranti video. Permainan video umumnya menyediakan sistem penghargaan misalnya
skoryang dihitung berdasarkan tingkat keberhasilan yang dicapai dalam menyelesaikan tugas-tugas
yang ada di dalam permainan. Arduino adalah sebuah platform open source (sumber
terbuka) yang digunakan untuk membuat proyek - proyek elektronika. Arduino
terdiri dari dua bagian utama yaitu sebuah papan sirkuit fisik 6(sering
disebut juga dengan mikrokontroler) dan sebuah perangkat lunak
atau IDE (Integrated Development Environment) yang berjalan pada komputer. Perangkat
lunak ini sering disebut Arduino IDE yang digunakan untuk menulis dan mengupload kode dari
komputer ke papan fisik (hardware) Arduino.
Arduino mampu berinteraksi dengan tombol, LED, motor,
speaker, GPS, kamera, internet, ponsel pintar bahkan dengan televisi. Selain
itu, mikrokontroler bisa menjadi bahan untuk membuat sebuah robot, baik robot
biasa maupun luar biasa. User juga bisa mengkrea-sikan mikrokontroler dalam
pembuatan game-game seru. Komponen utama di dalam papan Arduino adalah 7sebuah microcontroller 8
bit dengan merk AT - mega yang dibuat oleh perusahaan Atmel Corporation. Berbagai papan
Arduino menggunakan tipe ATmega yang berbeda-beda tergantung dari spesi#kasinya.
Sedangkan untuk macam macam jenis atau tipe-tipe arduino yang ada dipasaran ialah: Arduino
USB, Arduino tipe serial, Arduino Mega, Arduino Fio, Arduino Lylypad, Arduino
BT, Arduino Nano dan Mini. Berikut game yang menggunakan Arduino:
Retro Nokia Snake Game with Arduino, Arduino Pong, TechTris, Arduino Controlled
Pinball Machine, Theragym, GamePad using Android mobile sensors and Arduino, dsb. Pong adalah
permainan video generasi pertama yang dirilis sebagai permainan arkade yang di- 8operasikan
dengan koin yang dikembangkan oleh Atari Inc. pada tanggal 29 November, 1972.
Pong adalah permainan video olahraga dua dimensi yang mensimulasikan
sebuah permainan tenis meja. Sistem ini adalah permainan saling berusaha
memasukkan bola ke area lawan menggunakan paddle masing-masing player,
yang diatur dengan dua joystick. Permainan ini dapat dimainkan dengan dua orang. Untuk
memenangkan permainan, sang pemain harus memukul bola tersebut
sampai sang lawan tidak bisa memukul bola tersebut. Sistem game Pong dapat diimplementasikan
menggunakan Arduino Uno, layar OLED, dan dua joystick. Buku ini ditulis untuk memudahkan
pengembang game yang ingin berkreasi dengan Arduino Uno untuk membuat game yang beda dari
biasanya. Buku ini juga cocok untuk pembaca yang baru terjun ke dunia Arduino
dan pengembangan game karena pembahasan pada buku ini cukup sederhana. Semoga setelah
membaca buku ini, pembaca dapat mengerti dan tertarik untuk mempelajari Arduino untuk
pembuatan game.
Bab
2
GAME
DESIGN
2.1 Pong
Pong adalah permainan video generasi pertama yang dirilis sebagai permainan
arkade yang dioperasikan dengan koin yang dikembangkan oleh Atari Inc.
pada tanggal 29 November, 1972. Pong adalah permainan video olahraga dua dimensi yang mensimulasikan
sebuah permainan tenis meja. Sistem ini adalah permainan saling berusaha memasukkan
bola ke area lawan menggunakan paddle masing-masing player, yang diatur dengan dua joystick. Permainan ini
dapat dimainkan dengan dua orang. Untuk memenangkan permainan, sang pemain
harus memukul bola tersebut sampai sang lawan tidak bisa memukul bola tersebut. Pong merupakan
salah satu permainan arkade
perrtama yang
dirilis secara komersial. Permainan ini meraih keuntungan empat kali lebih banyak dibanding
mesin yang dikendalikan dengan koin lainnya. Keuntungan ini yang membuat Atari menerima banyak
pesanan Pong dan memberikan pemasukan yang cukup besar untuk Atari. Pada tahun 1973,
Atari memenuhi 2.500 order dan pada tahun 1974, Atari menjual mesin Pong sebanyak
8.000 unit. Karena
kesuksesan ini, pada tahun 1977, Atari merilis Home Pong, yaitu versi Pong yang dapat
dihubungkan dengan televisi. Home Pong pun sukses menggebrak pasar. Sekitar 150.000 12unit terjual
pada musim liburan. Hingga saat ini, Pong menjadi game yang sangat legendaris.
2.2Objek pada Pong
Pong hanya
memilik 3 buah objek sederhana berbentuk persegi panjang. Dua persegi
panjang digunakan sebagai alat pemukul (paddle) milik masing-masing pemain. Satu persegi panjang
lainnya digunakan sebagai bola yang harus masuk ke area lawan. Tiap pemain
diberikan paddle untuk menangkis bola yang datang. Paddle tersebut berbentuk
persegi panjang pipih dengan panjang yang tidak melebihi area permainan dan cukup
kecil agar bola tetap dapat melewati paddle jika pemain tidak dapat menangkisnya. Paddle ini
hanya dapat bergerak ke arah kiri dan kanan pemain. Bola pada Pong dibuat kecil agar pemain sulit
untuk menangkisnya. Bola ini dapat bergerak ke 9 arah mata angin. Saat bola menabrak
paddle, bola tersebut memantul ke arah bersebrangan menuju pemain lain.
Gambar 2.1: Pemukul (Paddle) dan bola
2.3 Gameplay Pong
Tujuan dari game ini tidak jauh berbeda dari tenis meja. Pemain harus
menjatuhkan bola di posisi lawan. Hanya saja pada Pong, pemain harus membuat bola masuk
ke area belakang lawan. Saat permainan dimulai, bola akan bergerak ke salah satu
pemain. Lalu pemain harus menangkisnya dengan paddle agar bola tidak masuk
ke areanya. Setelah bola mengenai paddle pemain, bola tersebut memantul dan meuju pemain
lain. Jika pemain dapat memasukan bola ke area belakang lawan, pemain tersebut
mendapat poin.
2.4 Gamifcation
2.4.1 Pengertian Gamifcation
Gamifcation atau dalam bahasa Indonesia gamifkasi adalah
penggunaan dari teknik desain permainan, permainan berpikir dan permainan mekanik untuk
meningkatkan non-game konteks. Biasanya gamifkasi berlaku untuk non-game aplikasi dan proses,
untuk mendorong orang untuk mengadopsi mereka, atau untuk mempengaruhi bagaimana
mereka digunakan. Gamifcation menggunakan mekanisme berbasis game, estetika dan
pemikiran game untuk mengaktifkan orang, memotivasi tindakan, mendorong pembelajaran,
dan memecahkan masalah.
2.4.2 Elemen Gamifcation
Ada beberapa elemen dari pengertian gamifcation
yang perlu diperhatikan :
1.Berbasis game
= bertujuan menciptakan suatu sistem dimana pembelajar, pemain, konsumen, dan
karyawan aktif menghadapi tantangan yang didefinisikan melalui aturan-aturan, interaktifitas, dan feedback yang
menghasilkan suatu penilaian yang terukur dan mendorong reaksi emosional.
2.Mekanisme =
mekanisme memainkan game yang dimaksud di sini adalah munculnya level, mendapatkan
lencana, sistem poin, dan batasan waktu. Inilah elemen-elemen yang digunakan dalam game.
3. Estetika =
Tanpa grafis
yang interaktif dan pengalaman permainan yang dirancang secara baik, maka Gamifcation
tidak akan sukses.
4. Pemikiran game
= Ini elemen terpenting dari gamification. Ini merupakan gagasan merubah pengalaman sehari-hari
seperti jogging atau berlari menjadi suatu kegiatan yang memiliki elemen- elemen
kompetisi,kerja sama, eksplorasi dan bercerita (storytelling).
5.Aktif = Tujuan
eksplisit Gamifcation adalah menarik perhatian pembelajar dan melibatkannya. Keterlibatan
dan keaktifan seorang individu menjadi fokus utama gamification.
6. Orang = dapat
berupa pembelajar, konsumen atau pemain.
7. Memotivasi
tindakan = membangkitkan energi dan memberikan arah, tujuan, atau makna bagi perilaku
dan tindakan.
8. Mendorong
pembelajaran = hal ini berjalan karena banyak elemen Gamifcation berdasarkan psikologi
pendidikan.
9. Memecahkan
masalah = Gamifcation dapat berpotensi tinggi menolong memecahkan masalah.
2.4.3 Perbedaan Gamifcation dan Game
·
Game merupakan suatu unit yang
utuh.
·
Game memiliki kegiatan awal,
pertengahan, dan akhir yang jelas sebagai satu keutuhan.
·
Game memiliki suatu kondisi
dimana harus ada kemenangan yang jelas.
·
Pemain tahu ketika orang lain
dan dirinya telah menyelesaikan Game.
·
Game memiliki elemen game yang
banyak.
·
Game memuat mekanisme untuk
berapa kali usaha yang dimainkan; tantangan; reward
system.
·
Gamifcation bukanlah satu unit
game yangutuh.
·
Gamifcation bertujuan menggunakan
elemen game untuk mendorong pembelajar sibuk dengan isi materinya dan
menunjukkan kemajuannya untuk mencapai tujuan pembelajaran.
2.4.4 Jenis Gamification
·
Structural Gamification
Menerapkan elemen game untuk mendorong pembelajar menyimak
konten materi dengan tanpa merubah konten materi menjadi terlihat seperti game namun
struktur di sekeliling konten itulah yang tampak seperti game. Tujuan utama tipe ini adalah
untuk memotivasi pembelajar menyimak isi materi dan menyibukkan diri dengan materinya
dalam proses pembelajaran yang terlihat tidak seperti game namun sambil
meraih berbagai reward. Elemen game yang paling umum pada tipe ini adalah badge, points,
leaderboards, dan level. Contoh: adanya penugasan mengumpulkan jenis-jenis bunga dan akan
mendapatkan badge.
·
Content Gamification
Menerapkan
elemen game dan pemikiran game dalam isi materi sehingga isi materi berubah terlihat seperti
game. Contoh: menambah elemen cerita dalam pengajaran suatu materi atau memulai
suatu pengajaran dengan suatu 21tantangan alih-alih menyampaikan sederet tujuan
mata kuliah. Elemen dalam Content Gamifcation :
1. Cerita
2. Tantangan
3. Keingintahuan Karakter
4. Interakti#tas
5. Feedback
6. Bebas untuk gagal (it's OK to fail)
2.4.5 Kelebihan
Gamification bekerja dengan membuat teknologi yang lebih
menarik,dengan mendorong pengguna untuk terlibat dalam perilaku yang diinginkan, dengan
menunjukkan jalan untuk penguasaan dan otonomi, dengan membantu untuk memecahkan masalah dan tidak
menjadi gangguan, dan dengan mengambil keuntungan dari kecenderungan psikologis
manusia 'untuk terlibat dalam game'.
2.4.6 Kekurangan
1. Motivasi yang didapatkan hanya
bersifat superparsial. Motivasi yang didapatkan hanya dari permainan bukan dari
produk yang seharus- nya dihasilkan. Program seperti frequent #yer miles
menyediakan beberapa manfaat nyata bagi aktivitas dan perkembangan. Namun Gamification akan
menurunkan nilai insentif yang didapat karena hal ini hanya dijadikan perayaan
digital atau cara untuk menyombongkan diri.
2. Terkadang metode untuk mencapai
tingkatan tertinggi menjadi satu-satunya aspek yang dianggap penting. Hal ini
menjadi masalah akibat kesalahan arah motivasional. Pengguna menetapkan
motivasi mereka hanya untuk menjadi yang terbaik namun melupakan apa yang
sebenarnya menjadi penawaran dari situs yangdimaksud. hal ini
mungkin terlihat tidak relevan bagi perusahaan karena pengguna terus menghabiskan
waktu mereka namun tidak terbentuk loyalitas dan ikatan terhadap brand seperti yang
diharapkan perusahaan.
3. Gamification menghilangkan
banyak esensi dari permainan itu sendiri. Ini menjadi seperti teknologi cut and paste
dan kurangnya orisinilitas. Permainan adalah tentang menemukan seuatu dan
melewati rintangan. Memang pada situs yang menggunakan Gamification terdapat beberapa
tingkatan namun bukan layaknyapermainan tradisional. Dimana pengembang situs justru
menampilkan fitur mudah, biasa, dan membosankan sehingga diharapkan peng-una akan
lebih mudah untuk menang.
4.
Gamification dangkal dapat
menghasilkan pengalaman yang biasa saja dan memiiki nilai rendah
terhadap ROI (Return of Investment; pengambalian modal) sehingga terkadang gam kasi tidak
menjual dan justru menjatuhkan nilai situs.
4.4.7
Gamifcation Game Pong
Pong Menuntut pemain untuk mendapatkan poin lebih banyak dari
lawannya dengan memasukan bola ke area lawan. Pemain pun dibuat sulit untuk menjaga
areanya dengan cara membuat paddle tidak terlalu besar, sehingga
bola dapat dengan mudah melewati paddle jika pemain lengah. Pong juga dimainkan oleh dua orang
agar jiwa kompetitif pemain meningkat karena dia melawan manusia bukan melawan melawan NPC
atau AI. Hal seperti itu dilakukan agar pemain terus bermain Pong dan membujuk mereka untuk
menang melawan pemain lain.
2.5 Arduino
Arduino adalah nama keluarga papan mikrokontroler yang awalnya
dibuat oleh perusahaan Smart Projects. Salah satu tokoh penciptanya adalah Massimo Banzi.
Arduino adalah pengendali mikro single-board yang bersifat opensource, diturunkan dari Wiring
platform, dirancang untuk memudahkan penggunaan elektronik dalam berbagai bidang. Hardwarenya
memiliki prosesor Atmel AVR dan softwarenya memiliki bahasa pemrograman sendiri. Arduino
juga merupakan platform hardware terbuka yang ditujukan kepada siapasaja yang ingin membuat
purwarupa peralatan elektronik interaktif berdasarkan hardware dan software yang fleksibel dan mudah
digunakan. Mikrokontroler diprogram menggunakan bahasa pemrograman arduino yang
memiliki kemiripan syntax dengan bahasa pemrograman C. Karena sifatnya yang terbuka maka
siapa saja dapatmengunduh skemahardware
arduino dan membangunnya. Arduino menggunakan keluarga mikrokontroler AT Megayang
dirilis oleh Atmel sebagai basis, namun ada individu/perusahaan yang
membuat clone arduinodengan menggunakan mikrokontroler lain dan tetapkompatibel
dengan arduino pada level hardware. Untuk eksibilitas, program dimasukkan melalui bootloader
meskipun ada opsi untuk membypass bootloader dan menggunakan downloader untuk memprogram
mikrokontroler secara langsung melalui port ISP. Berbagai jenis kartu arduino tersedia, antara lain Arduino
Uno, Arduino Diecimila, Arduino Duemilanove, Arduino Leonardo, Arduino Mega dan Arduino
Nano. Walaupun ada berbagai jenis kartu arduino, secara prinsip pemrogrman yang diperlukan
menyerupai. Hal yang membedakan adalah perlengkapan fasilitas dan pin - pin yang perlu
digunakan.
2.6 Sejarah Arduino
Semuanya berawal dari sebuah thesis yang dibuat oleh Hernando
Barragan, di institute Ivrea, Italia pada 9tahun
2005, dikembangkan oleh Massimo Banzi dan David Cuartielles dan diberi nama Arduinof
Ivrea.Lalu diganti nama menjadi Arduino yang dalam bahasa Italia
berarti teman yang berani. Arduino adalah pengendali mikro singleboard yang
bersifat opensource, diturunkan dari W iring platform, dirancang untuk memudahkan penggu naan elektronik
dalam berbagai bidang Hardwarenya memiliki prosesor Atmel AVR dan sofwarenya memiliki
bahasa pemrograman sendiri. Sifat Arduino yang Open Source, membuat Ar- duino
berkembang sangat cepat. Dan banyak lahir perangkat-perangkat sejenis Arduino. Seperti DF0uino atau
Freeduino, dan kalau yang local ada namanya CipaDuino yang dibuat oleh SKIR70, 30terus ada
MurmerDuino yang dibuat oleh Robot Unyil, ada lagi AViShaDuino yang salah satu pembuatnya
adalah Admin Kelas Robot. Sampai saat ini pihak resmi, sudah membuat berbagai jenis-jenis
Arduino.
Mulai dari yang paling mudah dicari dan paling banyak digunakan, yaitu Arduino
Uno. Hingga Arduino yang sudah menggunakan ARM Cortex, beebentuk Mini PC. Dan sudah
ada ratusan ribu Arduino yang digunakan di gunakan di dunia pada tahun 2011.Dan
untuk hari ini, yang bisa kamu hitung sendiri ya. Dan Arduino juga
sudah banyak dipaka oleh perusahaan besar. Contohnya Google menggu- akan Arduino untuk
Accessory Development Kit,
NASA memakai Arduino untuk prototypin, ada lagi Large Hadron Colider
memakai Arduino dalam beberapa hal untuk pengumpulan data. Dan banyak yang bertanya juga
Arduino ini menggunakan bahasa pemograman apa? Arduino sebenarnya menggunakan
bahas C, yang sudah disederhanakan. Sehingga orang awam pun bisa menjadi seniman digital, bisa
mempelajari Arduino dengan mudah.
2.7 Macam - Macam Arduino
Arduino memiliki
beberapa macam atau tipe sesuai dengan #turnya masing-masing yang dapat dimanfaatkan sesuai
kebutuhan dalam pembuatan sebuah alat atau robot. Berikut beberapa macam dari
Arduino dengan fitur yang dimilikinya :
2.7.1 Arduino
USB
Arduino USB, yaitu
mikrokontroler Arduino dengan menggunakan USB sebagai antar muka pemrograman
atau komunikasi komputer.
- Port USB digunakan untuk menghubungkan Arduino UNO dengan computer
- Colokkan catu daya eksternal digunakan untuk memasok sumberdaya listrik untuk Arduino UNO ketika tidak dihubungkan dengan komputer. Jika arduino UNO dihubungkan ke komputer melalui kabel USB pasokan daya listrik dialirkan oleh komputer.
- Pin digial mempunyai label 0 sampai dengan Disebut dengan pin digital karena mempunyai isyarat digital, yakni berupa 0 atau 1. Dalam praktik, nilai 0 dinyatakan dengan tegangan 0 volt dan nilai 1 dinyatakan dengan tegangan 5 volt.
- Pin analog berarti bahwa pin - pin ini mem punyai nilai yang bersifat analog. Dalam program, nilai setiap pin analog yang berlaku sebagai masukkan berkisar antara 0 sampai dengan 1023.
- Mikro kontroler yang digunakan arduino UNO adalah Atmega328.
- Ada 2 pin yang digunakan untuk memasok catudaya ke komponen elektronis yang digunakan dalam menangani proyek, misalnya sensor gas, sensor jarak dan relay. Tegangan yang tersedia 3,3 volt dan 5 volt. Komponen - komponen elektronis yang diberi tegangan oleh arduino UNO adalah yang memerlukan arus kecil. Sebagai contoh, motor DC yang menarik arus lebih dari 500 mA harus meng- gunakan catu daya tersendiri. Arduino Uno dilengkapi dengan static random access memory (SRAM) berukuran 2kb untuk memegang data, #ash memory berukuran 32kb, dan erasable porgrammable read-only memory (EEPROM). SRAM digunakan untuk menampung data atau hasil pemrosesan data selama arduino menerima pasokan catu daya. Flash memory untuk menaruh program yang anda buat. EEPROM digunakan untuk menaruh program bawaan dari Arduino Uno dan sebagian lagi dapat dimanfaatkan untuk menaruh data milik anda secara permanen. Terdapat beberapa macam pada Arduino USB sebagai berikut :
2.7.1.1 Arduino UNO
Arduino Uno adalah papan mikrokontroler berdasarkan ATmega328 (datasheet).
Arduino Uno berukuran sebesar kartu kredit. Walaupun berukuran kecil seperti
itu, papan tersebut mengandung mikrokontroler dan sejumlah input/output (I/O)
yang memudahkan pemakai untuk menciptakan berbagai proyek elektronika
yang dikhususkan untuk menangani tujuan tertentu. 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. Uno berbeda dari semua papan sebelumnya di bahwa itu tidak
menggunakan chip driver FTDI USB-to- serial. Sebaliknya, fitur Atmega16U2 (Atmega8U2 sam-
pai versi R2) diprogram sebagai konverter USB-to-serial. Revisi ke 2
Uno memiliki resistor menarik garis 8U2 HWB line to ground, sehingga lebih mudah untuk
dimasukkan ke dalam mode DFU. Revisi ke 3 memiliki fitur-fitur baru berikut :
- 1,0 pinout:
menambahkan SDA dan pin SCL yang dekat dengan pin
AREF dan dua pin baru lainnya ditempatkan dekat dengan pin RESET, yang IOREF yang
memungkinkan perisai untuk beradaptasi dengan tegangan yang tersedia dari papan. Di masa depan,
perisai akan kompatibel dengan kedua papan yang menggunakan AVR yang
beroperasi dengan 5V dan dengan Arduino Due yang beroperasi
dengan 3.3V. Yang kedua adalah pin tidak terhubung, yang disediakan untuk tujuan masa depan
- Stronger RESET sirkuit.
Atmega 16U2 menggantikan 8U2. Kata "Uno"berarti
satu di Italia dan diberi nama untuk menandai peluncuran Arduino 1.0.
Arduino Uno dan versi 1.0 akan menjadi versi referensi Arduino, bergerak maju. Arduino Uno
adalah yang terbaru dalam serangkaian USB Arduino papan, dan model referensi
untuk platform Arduino, untuk perbandingan dengan versi sebelumnya, lihat
indeks Arduino papan.
Gambar 2.2: Arduino Uno
2.7.1.2 Arduino
Due
Arduino Arduino
Duemilanovemilanove adalah papan mikrokontroler berdasarkan Atmel SAM3X8E ARM- Cortex-M3
CPU. 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 Duemilanove berjalan pada 3.3V. Tegangan
maksimum yang I / O pin dapat mentolerir adalah 3.3V. Memberikan tegangan yan lebih tinggi,
seperti 5V ke I / O pin dapat merusak papan. Arduino Duemilanove berisi semua yang diperlukan
untuk mendukung mikrokontroler, hanya menghubungkannya ke komputer dengan kabel
micro-USB atau power dengan adaptor AC - DC atau baterai untuk memulainya. Arduino Duemilanove
kompatibel dengan semua perisai Arduino yang bekerja di 3.3V dan telah sesuai dengan 1,0
Arduino pinout. Arduino Duemilanove mengikuti 1.0 pinout :
- TWI: SDA dan SCL pin yang dekat dengan pin AREF.
- Arduino IOREF pin yang memungkinkan perisai terpasang dengan kon#gurasi yang tepat untuk beradaptasi dengan tegangan yang diberikan oleh Arduino. Hal ini memungkinkan kompatibilitas perisai dengan papan 3.3V seperti papan Karena dan AVR berbasis yang beroperasi pada 5V. Arduino Duemilanove memiliki forum khusus untuk membahas papan. Arduino Duemilanove memiliki inti ARM 32-bit yang dapat mengalahkan papan mikrokontroler 8-bit yang khas. Perbedaan yang paling signifikan adalah :
o
32-bit inti, yang memungkinkan
operasi pada 4 byte data luas dalam jam CPU tunggal. (untuk 42informasi
lebih lanjut lihat int jenis halaman).
o
Kecepatan CPU di 84Mhz.
o
96 KByte SRAM.
o
512 KByte memori Flash untuk
kode.
o
DMA controller, yang dapat
meringankan CPU dari melakukan tugas-tugas intensif memori.
2.7.1.3 Arduino
Leonardo
Arduino Leonardo
adalah papan mikrokontroler berdasarkan AT megau4. memiliki 20 digital pin input output (yang 7 dapat digunakan sebagai output PWM dan 12 input
analog sebagai), osilator kristal 16 MHz, koneksi micro USB, jack listrik, header ICSP,
dan tombol reset.Berisi semua yang diperlukan untuk mendukung mikrokontroler, hanya
menghubungkannya ke komputer dengan kabel USB atau power dengan adaptor AC-DC atau baterai
untuk memulai menggunakannya. Leonardo berbeda dari semua papan sebelumnya di
bahwa ATmega32u4 telah built-in USB komunikasi, menghilangkan kebutuhan untuk
prosesor sekunder. Hal ini memungkinkan Leonardo tampil sebagai komputer
yang terhubung sebagai mouse dan keyboard, selain virtual (CDC) serial / COM port.
Ini juga memiliki implikasi lain untuk perilaku modul.
2.7.1.4 Arduino
Mega 2560
Arduino mega
2560 adalah papan mikrokontroller ATmega 2560 berdasarkan (datasheet) memiliki 54 di- gital pin
input / output (dimana 15 dapat digunakan sebagai output PWM), 16 analog input, 4 UART
(hardware port serial), osilator kristal 16 MHz, koneksi USB, jack
listrik,header ICSP, dan tombol reset. Ini berisi semua yang diperlukan untuk
mendukung mikrokontroler,hanya menghubungkannya ke komputer den gan kabel USB
atau power dengan adaptor AC - DC atau baterai. Arduino Mega kompatibel dengan
sebagian besar shield dirancang untuk Arduino Duemilanove atau Diecimila. Arduino
Mega2560 berbeda dari semua board sebelumnya ,tidak menggunakan chip driver FTDI USB-
to-serial. Sebaliknya, fitur ATmega16U2 (ATmega8U2 dalam revisi 1 dan revisi 2 papan) diprogram
sebagai konverter USB-to-serial. Revisi 2 dewan Mega2560 memiliki resistor menarik garis 8U2 HWB
ke tanah, sehingga lebih mudah untuk dimasukkan ke dalam mode DFU. Revisi 3 dari
dewan memiliki fitur-fitur baru
berikut :
- 1,0 pinout:
menambahkan SDA dan pin SCL yang dekat dengan pin
AREF dan dua pin baru 46lainnya ditempatkan dekat dengan pin RESET, yang IOREF
yang memungkinkan perisai untuk beradaptasi dengan tegangan yang tersedia dari papan. Di masa depan,
perisai akan kompatibel baik dengan dewan yang menggunakan AVR yang
beroperasi dengan 5V dan dengan Arduino Due yang beroperasi
dengan 3.3V. Yang kedua adalah pin tidak terhubung, yang disediakan untuk tujuan masa depan
- Stronger RESET sirkuit.
3.
Atmega 16U2 menggantikan 8U2. 472.7.1.5
Arduino Intel Galileo Galileo adalah papan mikrokontroler berdasarkan Intel ® Quark SoC
X1000 Application Processor, 32- bit sistem Pentium-kelas Intel pada sebuah
chip (datasheet). Ini adalah board pertama berdasarkan arsitektur
Intel ® dirancang untuk menjadi hardware dan software pin-kompatibel dengan perisai
Arduino dirancang untuk Uno R3. Digital pin 0-13 (dan AREF berdekatan dan pin GND), Analog
input 0 sampai 5, header listrik, ICSP header, dan pin port UART (0 dan 1), semua di
lokasi yang sama seperti pada Arduino Uno R3. Hal ini juga dikenal sebagai Arduino 1.0 pinout. Galileo
dirancang untuk mendukung shield yang beroperasi di kedua tegangan 3.3V atau 5V. Tegangan
operasi inti Galileo adalah 3.3V. Namun, jumper di board memungkinkan
terjemahan tegangan 5V di pin I / O. Hal ini memberikan dukungan untuk 5V shield Uno
dan perilaku default. Dengan be- ralih posisi jumper, terjemahan tegangan dapat dinonaktifkan
untuk menyediakan operasi 3.3V di pin I / O. Tentu saja, board Galileo
juga perangkat lunak yang cocok dengan Arduino Software Development Environment (IDE),
yang membuat kegunaan dan pengenalan snap. Selain hardware Arduino dan
kompatibilitas software, arduino. Galileo memiliki beberapa
industri PC standar I / O port dan #tur untuk memperluas penggunaan asli dan kemampuan luar
ekosistem perisai Arduino. Sebuah ukuran penuh Slot mini-PCI Express, pelabuhan 100Mb Ethernet,
slot Micro-SD, RS-232 port serial, port host USB, port USB Client, dan 8Mbyte NOR Flash.
2.7.1.6 Arduino
Pro Micro AT
Arduino Mikro adalah board mikrokontroler berdasarkan ATmega32u4
(lihat datasheet), yang dikembangkan bersama dengan Adafruit. Ini memiliki 20 digital
pin input / output (yang 7 dapat digunakan sebagai output PWM dan 12
input analog sebagai), osilator 16 MHz kristal, koneksi USB mikro, header ICSP,
dan tombol reset. Ini berisi semua yang diperlukan untuk mendukung mikrokontroler, hanya
menghubungkannya ke komputer dengan kabel USB mikro untuk memulai- nya. Dengan memiliki
faktor bentuk yang memungkinkannya untuk dapat dengan mudah ditempatkan pada papan tempat
memotong roti. Arduino Micro mirip dengan Arduino Leonardo in bahwa ATmega32u4 telah
built-in USB komunikasi, dengan menghilangkan kebutuhan untuk prosesor sekunder. Hal ini
memungkinkan Micro muncul ke komputer yang terhubung sebagai mouse dan
keyboard, selain virtual (CDC) serial / COM port. Ini juga memiliki implikasi lain untuk
pemanfaatan board.
2.7.1.7 Arduino
Nano R3
Arduino Nano R3 adalah sebuah papan kecil, lengkap, dan ramah-papan
tempat memotong roti berdasarkan ATmega328 (Arduino Nano 3.x) atau ATme- ga168
(Arduino Nano 2.x). Ini memiliki lebih atau kurang fungsi yang sama dari Arduino Duemilanove
tetapi dalam paket yang berbeda. Ini tidak memiliki hanya colokan listrik DC, dan bekerja dengan
kabel USB ini-B bukan satu standar. Arduino Nano dirancang dan diproduksi oleh
Gravitech.
2.7.1.8 Arduino
Mini Atmega
Arduino ProMini ditujukan untuk pengguna tingkat lanjut yang
membutuhkan #eksibilitas, iaya rendah,
dan ukuran kecil. Muncul dengan minimum komponen (tidak ada on-board USB atau pin header)
untuk menjaga biaya turun. Ini adalahpilihan yang baik untuk papan Anda ingin
meninggalkan board tertanam dalam proyek. Harap di catat bahwa ada dua versi
dari board: satu yang beroperasi pada 5V (seperti kebanyakan papan Arduino), dan salah satu
yang beroperasi pada 3.3V. Pastikan untuk memberikan yang benar daya dan penggunaan
komponen yang operasi tegangan cocok dengan board
2.7.1.9 Arduino
Mega ADK
Arduino MEGA ADK adalah board mikrokontroler AT mega 2560
berdasarkan (datasheet). Memiliki antarmuka USB untuk terhubung dengan ponsel berbasis
Android, berdasarkan MAX3421e 54IC. Ini memiliki digital pin input / output (dimana
15 dapat digunakan
BAB
2.
GAME
DESIGN
4 UART (hardware
port serial), osilator Kristal 16 MHz, koneksi USB, jack listrik, header ICSP, dan tombol
reset. Arduino MEGA ADK berdasarkan Mega 2560.Mirip dengan Mega 2560 dan
Uno, hotel ini memiliki sebuah ATmega8U2 diprogram sebagai konverter USB-
to-serial. Revisi ke 2 dari board ADK memiliki resistor menarik garis 8U2 HWB ke tanah,
sehingga lebih mudah untuk dimasukkan ke dalam mode DFU. Revisi 3 dari dewan memiliki fitur-fitur baru berikut :
- 1,0 pinout:
menambahkan SDA dan pin SCL 55yang dekat dengan pin
AREF dan dua pin baru lainnya ditempatkan dekat dengan pin RESET, yang IOREF yang
memungkinkan perisai untuk beradaptasi dengan tegangan yang tersedia dari papan. Di masa depan,
shield akan kompatibel baik dengan arduino yang menggunakan AVR yang
beroperasi dengan 5V dan dengan Arduino Due yang beroperasi
dengan 3.3V. Yang kedua adalah pin tidak terhubung, yang disediakan untuk tujuan
pengembangan.
- Arduino Esplora
Arduino Esplora adalah papan mikrokontroler berasal dari
Arduino Leonardo. Esplora berbeda dari semua papan Arduino sebelumnya dalam hal ini
menyediakan sejumlah built-in, siap digunakan set sensor onboard untuk
interaksi. Ini dirancang untuk orang yang ingin bangun dan berjalan dengan Arduino
tanpa harus belajar tentang elektronik dari pertama. Untuk langkah-langkah
pengantar Esplora, memeriksa Memulai dengan Esplora panduan. Esplora
onboard suara dan cahaya output, dan beberapa sensor input, termasuk joystick,
slider, sensor suhu, accelerometer, mikrofon, dan sensor cahaya. Hal ini 57juga
memiliki potensi untuk memperluas kemampuan dengan dua input dan output
konektor Tinkerkit, dan soket untuk layar LCD warna TFT. Seperti papan
Leonardo, yang Esplora menggunakan mikrokontroler AVR Atmega32U4 dengan 16 MHz
osilator kristal dan koneksi USB mikro mampu bertindak sebagai perangkat USB klien, seperti mouse
atau keyboard. Di sudut kiri atas papan ada tombol tekan reset, yang dapat Anda
gunakan untuk me restart board arduino. Ada empat LED Status :
a.
Pada [Hijau] menunjukkan apakah
board menerima catu daya.
b.
L [yellow] terhubung langsung
ke mikrokontroler, dapat diakses melalui pin 13.
c. RX Dan TX [kuning] menunjukkan
data yang dikirim atau diterima melalui komunikasi USB Dewan berisi semua yang
diperlukan untuk mendukung mikrokontroler, hanya menghubungkannya ke komputer
dengan kabel USB untuk memulainya.
2.7.2 Arduino
Tipe Serial
Arduino Serial,
yaitu jenis mikrokontroler arduino yang menggunakan RS232 sebagai antar muka pemrograman
atau komunikasi computer.
Gambar 2.12:
Arduino Tipe Serial
2.7.3 Arduino
Mega
Arduino MEGA,
yaitu mikrokontroler Arduino dengan spesifikasi yang lebih tinggi, dilengkapi tambahan pin
digital, pin analog, port serial dan sebagainya. Arduino Mega berbasis ATmega1280 dengan 54
digital input/output.
Gambar 2.13:
Arduino Mega
2.7.4 Arduino
Fio
Arduino Fio,
yaitu mikrokontroler Arduino yang ditujukan untuk penggunaan nirkabel. Arduino Fio ini
menggunakan ATmega328P sebagai basis kontrolernya.
Gambar 2.14:
Arduino Fio
2.7.5 Arduino
Lylypad
Arduino Lilypad,
yaitu mikrokontroler dengan bentuk yang melingkar. Contoh: LilyPad Arduino
00, LilyPad Arduino 01, LilyPad Arduino 6102, LilyPad Arduino 03,
LilyPad Arduino 04.
Gambar 2.15:
Arduino Lylypad
2.7.6 Arduino BT
Arduino BT,
mikrokontroler Arduino yang mengandung modul Bluetooth untuk komunikasi nirkabel.
Gambar 2.16:
Arduino BT
2.7.7 Arduino
Nano & Mini
Arduino Nano dan
Arduino Mini, merupakan jenis arduino berbentuk kompak dan digunakan bersama breadboard. Contoh:
Arduino Nano 3.0, Arduino Nano 2.x, Arduino Mini 04, Arduino Mini 03, Arduino Stamp 02 .
Gambar 2.17:
Arduino Nano & Mini
2.8 Arduino
Software IDE
IDE itu
merupakan kependekan dari Integrated Developtment Enviroenment, atau secara Bahasa mudahnya
merupakan lingkungan terintegrasi yang digunakan untuk melakukan pengembangan. Disebut
sebagai lingkungan karena melalui software inilah Arduino dilakukan
pemrograman untuk melakukan fungsi-fungsi yang dibenamkan melalui sintaks pemrograman.
Arduino menggunakan bahasa pemrograman sendiri yang menyerupai bahasa C. Bahasa
pemrograman Arduino (Sketch) sudah dilakukan perubahan untuk memudahkan pemula dalam
melakukan pemrograman dari bahasa aslinya. Sebelum dijual ke
pasaran, IC mikrokontroler Arduino telah ditanamkan suatu program bernama Bootlader yang
berfungsi sebagai penengah antara compiler Arduino dengan mikrokontroler.
Gambar 2.18:
Tampilan Arduino IDE
Arduino software
IDE dibuat dari bahasa pemrograman JAVA. Arduino IDE juga dilengkapi dengan library
C/C++ yang biasa disebut Wiring yang membuat operasi input dan output menjadi
lebih mudah. Arduino IDE ini dikembangkan dari software Processing
yang dirombak menjadi Arduino IDE khusus un- tuk pemrograman dengan Arduino.
Bab
3
PEMBUATAN
GAME
3.1
Komponen-Komponen yang Dibutuhkan
Dalam pembuatan
game Pong dengan Arduino, komponen yang pasti dibutuhkan adalah Arduino itu sendiri. Arduino
yang digunakan adalah Arduino UNO karena Arduino ini umum digunakan dan mudah
untuk didapat. Selain Arduino terdapat beberapa komponen lain yang dibutuhkan agar game ini
menarik perhatian pemain yaitu:
a.
Arduino TFT
b.
breadboard
c.
beberapa kabel jumper
d.
2 buah potentiometer sebesar 10
kilo ohm
3.1.1 Arduino
TFT
Arduino TFT
merupakan layar LCD TFT dengan slot microSD di belakangnya. Layar ini digunakan
untuk menampilkan
antar muka Pong. Pin pada Arduino TFT didesain agar muat dengan soket yang ada pada
Arduino Esplora dan Arduino Robot, tetapi hal ini tidak menutup kemungkinan untuk
digunakan dengan board Arduino lainnya.
Gambar 3.1:
Arduino TFT dan konektornya
Secara default,
orientasi layar Arduino TFT adalah horisontal dengan posisi atas layar tepat di bawah
tulisan SD CARD. Layar ini berukuran 160px x 128px dan dapat menampilkan warna 16 bit.
Channel merah
dan biru memiliki resolusi 5-bit, channel hijau memiliki resolusi 6-bit. Sehingga
terdapat 32 level untuk merah dan biru dan 64 level untuk hijau.
3.1.2
Potentiometer
Potentiometer
merupakan alat dengan tiga terminal yang digunakan dengan cara memutarnya. Alat ini umum
ditemukan pada alat-alat elektronik seperti spe- aker yang digunakan untuk mengatur
volume. Potentiometer termasuk ke dalam alat pasif, yang artinya alat ini dapat
beroperasi tanpa power supply. Nilai pada potentiometer digunakan untuk
mengontrol tengangan maupun arus listrik. Pada game ini, nilai yang
dihasilkan oleh potentiometer akan digunakan untuk menggerakan paddle milik pemain.
Gambar 3.2:
Potentiometer
3.2 Proses
Pembuatan
Pertama,
hubungkan pin power 5V dan pin ground (GND) pada arduino ke breadboard seperti gambar
dibawah ini. Agar tidak bingung, gunakan kabel warna merah untuk power dan kabel warna
69hitam untuk
ground.
Gambar 3.3:
Skema Power dan Ground
Selanjutnya
adalah menghubungkan kedua potentiometer ke breadboard. Hubungkan pin pertama
atau terminal terluar milik potentiometer ke jalur power pada
breadboard. Lalu hubungkan pin terluar lainnya ke jalur ground pada breadboard. Tersisa pin di
tengah yang belum terhubung. Pin ini dihubungkan ke analog input pada Arduino. Melalui pin
ini, potentiometer mengirimkan nilai ke pada Arduino. Potentiometer pertama terhubung
dengan pin analog A0 dan potentiometer kedua terhubung dengan pin analog A1. Seperti biasa,
power dihubungkan dengan kabel berwarna merah, ground dengan kabel berwarna hitam
dan untuk menghubungkan pin tengah, gunakan kabel berwarna kuning.
Gambar 3.4:
Skema Potentiometer dengan Arduino UNO
Setelah
potentiometer terhubung, hubungkan Arduino TFT ke breadboard. Perhatikan baik- baik pin pada
Arduino TFT. Header pada sisi layar dengan tab warna biru lah yang terhubung dengan board. Perlu diingat,
orientasi layar ini terbalik. Jadi jangan kaget.
Gambar 3.5:
Arduino TFT ke Breadboard
Oke, selanjutnya
kita perlu menghubungkan Arduino TFT dengan Arduino UNO. Hubungkan pin BL dan +5V
ke power. Hubungkan juga pin GND ke ground. in LCD-CS dihubungkan ke pin 10, pin DC
dihubungkan ke pin 9, pin RESET dihubungkan ke pin 8, pin MOSI dihubungkan ke pin 11, dan
terakhir pin SCK dihubungkan ke pin 13. Untuk menghubungkan pin-pin tersebut, gunakan
kabel jumper. Untuk pin yang terhubung ke pin digital pada arduino, gunakan kabel warna biru. Kalau
masih bingung cara menghubungkan- nya, lihat gambar di bawah ini.
Gambar 3.6:
Arduino TFT ke Arduino UNO
3.3 Kode Program
Pong
Komponen yang
diperlukan sudah terpasang dengan rapi. Sekarang saatnya untuk membuat program. Sebelum
menulis kode, pastikan IDE yang digunakan adalah versi terbaru agar library yang digunakan
pada game ini dapat diload dengan baik. Ketikan kode berikut untuk mengimpor
library SPI dan TFT.
#include
<SPI.h>
#include
<TFT.h>
Library SPI
digunakan agar microcontroller pada Arduino UNO dapat berkomunikasi dengan komponen
yang terhubung dengan pin SPI (Serial Peripheral Interface). Library TFT
digunakan agar kita dapat menggambar sesuai ke layar Arduino TFT. Lalu definisikan tiga buah
konstanta untuk masing-masing pin LCD-CS, DC, dan RESTART dengan nilai sesuai
dengan pin yang terhubung. Selanjutnya kita butuh instance dari library TFT
untuk mengontrol layar TFT. Instance tersebut diberi nama
TFTscreen. Berikut adalah kodenya.
#de#ne cs 10
#de#ne dc 9
#de#ne rst 8
TFT TFTscreen =
TFT( cs , dc , rst ) ;
Selanjutnya kita
butuh variabel untuk posisi x,y milik paddle dan bola, arah bola dan posisi terakhir bola
dan juga paddle. Seluruh variable ini memiliki tipe integer. int paddle X = 0 ;
int paddle Y = 0
;
int oldPaddleX,
oldPaddle Y ;
int
ballDirection X =1 ;
int
ballDirection Y = 1 ;
int ballX, ballY,
oldBallX, oldBallY ;
Sekarang, kita
inisiasi layar TFT lalu menghapus background layar di dalam function setup(). Berikut adalah
kodenya.
void setup ( ) {
75TFTscreen .
begin ( ) ;
TFTscreen . background ( 0 , 0 , 0 ) ;
}
Dapat dilihat
pada kode di atas, untuk menghapus background layar cukup menset background layar menjadi
hitam melalui function background(). Argumen pada function tersebut adalah nilai
masing-
masing channel
RGB. elanjutnya, kita perlu menyimpan nilai tinggi dan lebar
layar. Kemudian, kita harus membaca nilai dari potentiometer sebelum proses mapping untuk
menggunakan range nilainya. Berikut adalah kodenya.
void loop ( ) {
i n t myWidth = TFTscreen . width ( ) ;
i n t myHeight = TFTscreen . h e i g h t ( ) ;
76paddleX = map( analogRead (A0 ) , 0 , 1023 ,
0 , myWidth )
= 2 0 / 2 ;
paddleY = map( analogRead (A1 ) , 0 , 1023 ,
0 , myHeight )
= 5 / 2 ;
Nilai tinggi dan
lebar layar didapatkan dari unction width() dan height() yang diakses dari objek TF- Tscreen. Lalu untuk membaca nilai dari potentiometer,
gunakan function analogRead() engan argumen pin analog pada Arduino yang terhubung dengan
potentiometer. Setelah membaca nilai dari potentiometer, proses mapping dilakukan
menggunakan function map(). Function ini digunakan untuk mengatur suatu nilai dari
suatu range ke range lain. Nilai rendah potentiometer pertama yang terhubung ke
pin A0 sebesar 0 akan dimap ke nilai terendah yaitu 0 dan nilai tertingginya yaitu
sebesar 1023 akan dimap ke nilai lebar layar. Hal yang serupa juga dilakukan untuk
potentiometer yang terhubung dengan pin A1, hanya saja nilai
tertinggi pada potentiometer ini dimap ke nilai tinggi layar. Setelah proses
mapping, nilai hasil mapping potentiometer A0 dikurangi dengan 20/2 dan disimpan ke
dalam variabel paddleX. Nilai hasil mapping potentiometer A1 dikurangi dengan 5/2 dan
disimpan ke vari- abel paddleY. Ok, selanjutnya dalah menghapus lokasi terakhir
paddle jika ada pergerakan. Berikut adalah kodenya.
TFTscreen . f i l l ( 0 , 0 , 0 ) ;
i f ( oldPaddleX != paddleX | |
oldPaddleY != paddleY ) {
TFTscreen . rect ( oldPaddleX ,
78oldPaddleY , 2 0 , 5 ) ;
}
Untuk menghapus
lokasi terakhir paddle, cukup memuat persegi panjang dengan warna hitam. Pada kode di
atas, function #ll() digunakan untuk memberi warna pada objek yang akan digambar. Function ini
memiliki argumen yang sama dengan function background. Setelah
mengatur warna, program akan mencek apalah nilai old PaddleX tidak sama dengan
nilai paddleX atau nilai oldPaddleY tidak sama dengan nilai paddleY. Jika benar,
berarti ada pergerakan paddle. Maka, program akan membuat persegi di koordinat
oldPaddleX dan 50 oldPaddleY sebesar 20 x 5.Untuk menggambar
paddlenya dengan warna putih, tuliskan kode berikut.
TFTscreen . #ll ( 255 , 255 , 255 ) ;
TFTscreen . rect ( paddleX , paddleY , 20 , 5
) ;
Lalu kita perlu
menyimpan posisi paddle saat ini menjadi posisi sebelumnya. Hal ini dilakukan agar kita
dapat melakukan pengecekan apakah paddle bergerak atau tidak. Masih ingat kode untuk
mengecek pergerakan paddle? Ya, paddle dianggap bergerak jika posisi terakhir
paddle tidak sama dengan posisi paddle sekarang. adalah kodenya.
oldPaddleX = paddleX ;
oldPaddleY = paddleY ;
BerikutTerakhir,
kita akan menggunakan nilai dari variabel ballSpeed untuk menentukan seberapa
cepat layar melakukan perubahan. Kode di bawah ini ditulis pada akhir
function loop(). if ( millis ( ) % ballSpeed < 2)
{ moveBall ( ) ;
}
}
Kode di atas
digunakan untuk mencek apakah millisec modulo nilai ballSpeed lebih kecil dari
2. Jika iya, program akan menjalankan function buatan kita yaitu
moveBall() untuk menggerakkan bola. Function moveBall() akan mengubah posisi bola dengan cara
seperti mengubah posisi paddle, yaitu meng- gambar persegi panjang warna hitam pada
posisi sebelumnya dan menggambar 81persegi panjang warna putih pada posisi yang baru. Function
ini juga akan memastikan bola tidak keluar dari layar jika bola menyentuh sisi layar. Berikut
adalah kodenya. Ingat, tulis kode ini di luar
function loop() ya.
void moveBall ( ) {
if ( ballX > TFTscreen . width ( ) | |
ballX < 0) {
ballDirectionX =
= ballDirectionX
;
}
if ( ballY > TFTscreen . height ( ) | |
ballY < 0) {
ballDirectionY =
= ballDirectionY
;
}
if ( inPaddle ( ballX , ballY , paddleX ,
paddleY , 20 , 5 ) ) {
ballDirectionY =
= ballDirectionY
}
ballX += ballDirectionX ;
ballY += ballDirecti nY ;
82
;TFTscreen . #ll ( 0 , 0 , 0 ) ;
if ( oldBallX != ballX | |
oldBallY != ballY ) {
TFTscreen . rect ( oldBallX , oldBallY ,
5 , 5);
}
TFTscreen . #ll ( 255 , 255 , 255 ) ;
TFTscreen . rect ( ballX , ballY , 5 , 5 ) ;
oldBallX = ballX ; oldBallY = ballY ;
}
Pada function
tersebut, if pertama dan kedua digunakan agar bola tidak keluar dari sisi layar lalu arah bola
dibuat negatif untuk menandakan bola bergerak ke arah datang. Pada if
ketiga, terdapat function baru yaitu inPaddle(). Function ini kita gunakan
untuk mencek apakah bola menyentuh paddle. Jika menyentuh paddle, arah bola terhadap
sumbu Y diubah menjadi berlawanan. Setelah melakukan pengecekan, masing-masing variabel yang
menyimpan koordinat X dan Y milik bola ditambah dengan nilai dari variabel
ballDirection masing-masing sumbu. Lalu, kita hapus bola pada posisi
sebelumnya dengan cara yang sama seperti menghapus paddle. Setelah kita hapus bola tersebut,
kita gambar bola dengan warna putih pada posisi yang baru. Terakhir,
jangan lupa untuk menyimpan koordinat posisi bola saat ini ke
variabel oldBall masing-masing sumbu. Variabel ini digunakan untuk mencek ada
atau tidak pergerakan bola. Kode terakhir adalah function inPaddle(). Function
ini memiliki 6 buah argumen. Berikut adalah kodenya.
boolean inPaddle ( int x , int y ,
int rectX , int rectY ,
int rectWidth , int rectHeight ) {
boolean result = false ;
if ( ( x >= rectX && x <=
( rectX + rectWidth ) ) &&
( y >= rectY && y <=
( rectY + rectHeight ) ) ) { }
result = true ;
}
return result ;
}
Function
inPaddle() akan mencek posisi bola dan paddle. Jika posisi mereka sama, maka function
akan memberikan nilai true dan mengubah arah bola pada function
moveBall(). Itu adalah keseluruhan kode untuk membuat game Pong sederhana. Di bawah ini
adalah bentuk utuh dari programnya.
/ * TFT Pong
This example for the Arduino screen reads the
values of 2 potentiometers to move a rectangular
platform on the x and y axes . The platform can
intersect with a ball causing it to bounce. This
example code is in the public domain . Created
by Tom Igoe December 2012 Modi#ed 15 April
2013 by Scott Fitzgerald
http : / /www. arduino . cc/en/Tutorial/TFTPong
* /
#include <SPI.h>
#include <TFT.h>
#de#ne cs 10
#de#ne dc 9
#de#ne rst 8
86TFT TFTscreen = TFT( cs , dc , rst ) ;
int paddleX = 0 ;
int paddleY = 0 ;
int oldPaddleX , oldPaddleY ;
int ballDirectionX = 1;
int ballDirectionY = 1;
int ballX , ballY , oldBallX , old BallY ;
void setup ( ) {
TFTscreen . begin ( ) ;
TFTscreen . background ( 0 , 0 , 0 ) ;
}
void loop ( ) {
int myWidth = TFTscreen . width ( ) ;
int myHeight = TFTscreen . height ( ) ;
paddleX = map( analogRead (A0 ) , 0 , 1023 ,
0 , myWidth )
=
20/2 ;
paddleY = map( analogRead (A1 ) , 0 , 1023 ,
0 , myHeight )
=
5/2 ;
TFTscreen . #ll ( 0 , 0 , 0 ) ;
if ( oldPaddleX != paddleX | |
oldPaddleY != paddleY ) {
87TFTscreen . rect ( oldPaddleX ,
oldPaddleY , 20 , 5 ) ;
}
TFTscreen . #ll ( 255 , 255 , 255 ) ;
TFTscreen . rect ( paddleX , paddleY , 20 , 5
) ;
oldPaddleX = paddleX ;
oldPaddleY = paddleY ;
if ( millis ( ) % ballSpeed < 2) {
moveBall ( ) ;
}
}
void moveBall ( ) {
if ( ballX > TFTscreen . width ( ) | |
ballX < 0) {
ballDirectionX =
= ballDirectionX
;
}
if ( ballY > TFTscreen . height ( ) | |
ballY < 0) {
ball Direction Y =
= ball
Direction Y ;
}
if (in Paddle (ballX, ballY ,paddleX ,
88paddleY, 20, 5 )) {
ball Direction Y =
= ball
Direction Y ;
}
ball X += ball Direction X ;
ball Y += ball Direction Y ;
TFTscreen.#ll (0, 0, 0) ;
if (old Ball X != ball X ||
oldBall Y != ball Y ) {
TFTscreen.rect ( oldBallX , oldBallY ,
5, 5);
}
TFTscreen.#ll (255, 255, 255);
TFTscreen.rect (ballX, ballY, 5, 5);
oldBallX = ballX; oldBallY = ballY;
}
boolean inPaddle (int x, int y,
int rectX, intrectY,
int rectWidth, intrectHeight) {
boolean result = false;
if ((x >= rectX && x <=
89(rectX+rectWidth)) &&
(y >= rectY && y <=
(rectY + rectHeight))) {
result = true;
}
return result;
}
Bab
4
RUNNING
GAME
Pada bab ini
akan memaparkan tentang proses dan hasil dari implementasi alat yang sudah
dibuat. Mulai dari state awal hingga bagaimana bola dapat mendapatkan score
dan akhirnya game over. Kemudian akan dipaparkan bola yang sudah game ver akan
menempatkan dirinya pada posisi awal
seperti semula.
Gambar 4.1 Awal
Permainan
Bola akan
bergerak ketika tombol launcher ball ditekan/ditarik maka bola akan memasuki arena dan akan
bergerak turun menuju pemukul jika emukul tidak dapat memukul bola maka game akan selesai
dan game bisa bermain dari awal lagi.
Gambar 4.2
Bergerak Mengenai Bumper
Gambar diatas
bola sedang menuju bumper dan terpental oleh bumper. Gambar bola sedang bergerak
terlihat dengan tanda lingkaran merah pada gambar diatas.
Gambar 4.3
Pemukul Mengarahkan Bola ke Atas
Gambar diatas
merupakan bola yang sedang ipukul oleh salah satu pemukul pinball tersebut agar game ini
terus berlanjut dan tidak selesai ola bergerak seperti pada lingkaran merah pada gambar diatas. Pada gambar
dibawah adalah kondisi game over dimana bola tidak dapat dicapai oleh kedua pemukul
kemudian bola tersebut akan jatuh kembali ke wadah dan diambil kembali setelah itu masuk
kembali ke pelontar.
Gambar 4.4 Bola
Lose (Game Over)
Pada gambar
dibawah ini merupakan papan skor untuk hasil sementara dengan lifepoint/nyawa pemain yaitu
sisa bola yang dapat dimainkan.
Gambar 4.5 Game
Score
Gambar dibawah
merupakan arena wadah bola ika terjatuh dan tidak dapat dipukul oleh kedua pemukul .jika terjatuh maka bola akan bergerak embali ke
pelontar seperti gambar dengan panah garis merah pada
gambar dibawah.
Gambar 4.6 Bola
Kembali ke State Awal
Gambar 4.7 Bola
pada State Awal
Gambar 4.7 Bola
Siap Dilontarkan
Bola dimulai di
pojok kanan bawah playfield dan digerakkan oleh solenoid "sirip". Tujuannya adalah untuk
memasukkan bola ke dalam salah atu dari tiga kurung siku di lapangan utama, atau saluran sempit di sepanjang tepi kiri. Berbaai target diberi
nilai poin. Dua target 10 poin relatif mudah untuk mencetak gol. Target 50 point lebih
menantang dan kanal 100 point lebih 98sulit lagi. Saat bola jatuh ke
sasaran, tombol ang tepat ditekan untuk mengeluarkan bola dan juga untuk kenaikan
tampilan nilai LCD dengan nilai titik target. Saat bola turun di bawah pengaruh
gravitasi, ia juga mengendap di sudut kanan bawah, di mana ia bergerak lagi oleh
solenoid "sirip", atau turun melalui saluran pembuangan dan di luar
lapangan permainan yang mengakhiri permainan. Tombol reset pada pap- an seluncur piring
menyetel ulang LCD dan permainan siap untuk putaran berikutnya. Posisi dan sudut kurung
bisa diubah untuk menam- bah atau mengurangi kesulitan. Lengan yang berputar
menambahkan elemen acak pada permainan, membuat keterampilan yang
diperlukan untuk membawa bola ke saluran bernilai tinggi di sebelah kiri. Pilihan lainnya adalah
menggunakan servo 180 derajat reguler dengan set posisi menggunakan generator
bilangan acak Arduino, dan lengan diprogram untuk bergerak setiap setengah
detik atau lebih. Banyak arena bermain yang berbeda memungkinkan dan trial and
error dapat digunakan untuk menentukan posisi terbaik dari target, hambatan dan
senjata pemintalan.
Bab
5
PENUTUP
5.1 Kesimpulan
Game Pinball
merupakan jenis permainan arade, yaitu sebuah mesin permainan hiburan yang dioperasikan dengan
koin yang terpasang di tempattempat umum seperti pusat permainan hiburan. Bentuk
kebanyakan permainan arcade adalah permainan-permainan yang mengumpulkan point
dan men dapat reward atau berhadiah. Saat pastinya masih diperdebatkan,
zaman keemasan permainan video arkade biasanya disebutkan pada periode awal sekitar akhir
1970-an dan berakhir di pertengahanan. Permainan ini bangkit sebentar awal 1990-an,
tetapi kemudian industri arcade semakin menurun di belahan bumi barat karena idak mampu
bersaing dengan konsol permainan video yang dapat
dimainkan di rumah dan beragam jenisnya, serta lebih murah dalam biaya. Game pinball
dapat dibuat bentuknya secara fisik dengan beberapa komponen yang dibutuhkan dan untuk pemrosesannya dapat
menggunakan Arduino. rduino merupakan sebuah mikrokontroler yang memiliki prosesor Atmel AVR. Arduino dapat mengendalikan beberapa
komponen seperti sensor, lampu erta layar display sebagai output. Untuk melakukan pengendalian
tersebut Arduino harus di program terlebih dahulu dengan software bawaan yait IDE dari Ardunio
tersebut. IDE tersebut terbuat dari bahasa java sedangkan jika pengguna ingin memprogramnya
harus menggunakan bahasa C. Untuk mentransfer program yang telah dibuat pada IDE tersebut
maka harus dilakukan penyambungan Arduino dengan kabel usb ke laptop atau komputer kemudian
malakukan proses upload. Arduino memiliki beberapa tipe yang menjadikan nya
unik satu sama lain, seperti jumlah pin yang dimilikinya, besar volt, fitur tambahan dan ukuran
Arduino. Oleh karena itu sesuaikan kebutuhan pada alat yang akan dibuat, jika
seandainya ingin membuat alat yang membutuhkan koneksi bluetooth maka gunaka-
nlah Arduino BT. Walau Arduino memiliki banyak tipe tetapi untuk proses penulisan program
tetap menggunakan IDE yang sama dan dengan cara yang sama untuk melakukan transfer ke
Arduino tersebut.
Pada kesimpulanini
Game Pinball dengan mikrokontroler Arduino adalah permainan bola
kecil di dalam stage yang menuntut pemain untuk mempertahankan bola tersebut tetap ada di
dalam stage untuk mendapatkan nilai sebanyak - banyaknya. Dengan bantuan
berbagai mikrokontroler dapat dibuat menjadi design pinball yang sempurna.Game
pinball ini bisa dimainkan oleh anak remaja maupun yang sudah lanjut usia
denga design tertentu dengan kebutuhan masing - masing.
5.2 Saran
Game Pinball
dengan mikrokontroler Arduino dapat dikembangkan menjadi lebih leluasa dengan
berbagai macam tipe Arduino dan mikrokontroler lainnya. Lebih teliti jika ada
kesalahan atau bug terdapat pada game Pinball. Perhatikan penempatan pin
pada Arduino karena setiap pin memiliki fungsinya masing - masing, seandainya salah maka
konsekuensi yang didapat adalah IC Arduino dapat hangus dan tidak dapat digunakan lagi.
Bibliografi
[1]
https://id.wikipedia.org/wiki/Arduino
[2]
http://www.kelasrobot.com/2014/12/jenis-jenis-
microcontroller-arduino.html
[3]
http://tentangarduino.blogspot.co.id/2014/09/macam-
macam-arduino-iniakan-saya.html
[4]
http://www.sinauarduino.com/artikel/mengenal-
arduino-software-ide/
[5]
https://create.arduino.cc/projecthub/BobB/arduino-
controlled-pinball-machine-525863
[6]
https://www.codepolitan.com/tutorial/digital-
input-output-pada-arduino
[7]
http://ecadio.com/mengenal-dan-belajar-
arduino-uno-r3
[8]
https://www.academia.edu/18955745/Gamification
[9]
https://www.academia.edu/10507735/Pengertian-
Gamification
[10]
http://komunikasi.us/index.php/mata-
kuliah/dmnm/4475-gamification-basic-of-a-
game-in-a-real-life
[11]
http://id.wikipedia.org/wiki/Gamifikasi
[12]
http://wartawarga.gunadarma.ac.id/2010/04/game-
based-learning/
0 Response to "Game Berbasis Arduino : PONG"
Posting Komentar