Retro Snake Nokia With Arduino
1
KATA PENGANTAR
Arduino adalah pengendali mikro single-board yang bersifat
open-source, diturunkan dari Wiring platform,dirancang untuk memudahkan
penggunaan elektronikdalam berbagai bidang. Hardwarenya memiliki prosesor Atmel
AVR dan softwarenya memiliki bahasa pemrograman sendiri. Tuturial di Buku Retro
Nokia SnakeGame with Arduino ini berisi tentang bagaimana cara untuk membuat game
snake yang terkenal pada HP Nokia pada saat dizaman kejayaan HP Nokia tersebut.Disusun
secara sistematis sehingga cocok untuk modul pembelajaran untuk membuatnya
maupun untuk pelatihan. Dengan bahasa sederhana, code yang sangat membantu
dalam penyusunan game ini, maka belajar akan menjadi lebih mudah dan
menyenangkan. Materi menggunakan Arduino 1.8.3 namun tetap diikuti untuk
pengguna versi diatasnya. Setelah mempelajari dan mempraktekkan materi dibuku
ini, diharapkan anda belajar dari sumber-sumber lain di dunia nyata maupun di
dunia maya. Penulis berharap anda bisa membuat yang lebih baik lagi dari yang
ada pada buku ini.
Jakarta, Juli
2017
Penyusun
Daftar Isi
1 PENDAHULUAN 5
1.1 Latar Belakang . . . . . . .
. . . . . . . 5
1.2 Rumusan Masalah . . . . . . .
. . . . . 6
1.3 Tujuan . . . . . . . . . . .
. . . . . . . 7
2 GAME DESIGN 8
2.1 Penjelasan Konsol Game . . .
. . . . . . 8
2.2 Jenis-Jenis Game . . . . . .
. . . . . . . 9
2.2.1 PC Games . . . . . . . . .
. . . . 9
2.2.2 Console Games . . . . . . .
. . . 10
2.2.3 Handheld Games . . . . . .
. . . 10
2.2.4 Mobile Games . . . . . . .
. . . . 11
2.3 Genre Game . . . . . . . . .
. . . . . . 11
2.3.1 Action . . . . . . . . . .
. . . . . 12
2.3.2 Fighting Game . . . . . . .
. . . 13
2.3.3 First Person Shooter (FPS)
. . . 14
2.3.4 Third Person Shooter (TPS)
. . . 15
2
DAFTAR ISI 3
2.3.5 Real Time Strategy (RTS) .
. . . 16
2.3.6 Role Playing Game (RPG) . .
. . 17
2.3.7 Adventure . . . . . . . . .
. . . . 18
2.3.8 Simulasi . . . . . . . . .
. . . . . 19
2.3.9 Sport Game . . . . . . . .
. . . . 20
2.3.10 Racing Game . . . . . . .
. . . . 21
2.3.11 Multiplayer Game . . . . .
. . . . 22
2.4 Arduino . . . . . . . . . . .
. . . . . . . 22
2.5 Sejarah Arduino . . . . . . .
. . . . . . . 23
2.6 Macam - Macam Arduino . . . .
. . . . 25
2.6.1 Arduino USB . . . . . . . .
. . . 25
2.6.1.1 Arduino UNO . . . . . .
25
2.6.1.2 Arduino Duemilanove . 27
2.6.1.3 Arduino Leonardo . . . 29
2.6.1.4 Arduino Mega 2560 . . .
30
2.6.1.5 Arduino Intel Galileo . .
32
2.6.1.6 Arduino Pro Micro AT . 34
2.6.1.7 Arduino Nano R3 . . . .
35
2.6.1.8 Arduino Mini Atmega . 36
2.6.1.9 Arduino Mega ADK . . 37
2.6.1.10 Arduino Esplora . . . .
38
2.6.2 Arduino Tipe Serial . . . .
. . . . 40
2.6.3 Arduino Mega . . . . . . .
. . . . 41
2.6.4 Arduino Fio . . . . . . . .
. . . . 41
2.6.5 Arduino Lylypad . . . . . .
. . . 42
DAFTAR ISI 4
2.6.6 Arduino BT . . . . . . . .
. . . . 43
2.6.7 Arduino Nano & Mini . .
. . . . 43
2.7 Arduino Software IDE . . . .
. . . . . . 44
3 IMPLEMTASI 46
3.1 Pendahuluan . . . . . . . . .
. . . . . . 46
3.1.1 Komponen dan Supplies . . .
. . 46
3.1.2 Barang Elektronik . . . . .
. . . 47
3.1.3 Aplikasi dan Online Service
. . . 47
3.2 Tentang Proyek . . . . . . .
. . . . . . . 48
3.3 Circuito.IO Reply . . . . . .
. . . . . . . 48
3.3.1 BoM . . . . . . . . . . . .
. . . . 48
3.3.2 Step-by-step wiring guide .
. . . 48
3.3.3 Code . . . . . . . . . . .
. . . . . 49
3.3.4 Test . . . . . . . . . . .
. . . . . 49
3.4 Mengubah Code . . . . . . . .
. . . . . . 50
4 HASIL GAME 61
5 HASIL GAME 63
5.1 Kesimpulan . . . . . . . . .
. . . . . . . 63
5.2 Saran . . . . . . . . . . . .
. . . . . . . . 64
6 Lampiran 65
BAB 1
PENDAHULUAN
1.1 Latar Belakang
Dizaman
sekarang teknologi sudah berkembang pesat, sehingga menyebabkan sesuatu yang
telah using akan semakin dilupakan seiring berkembangnya zaman dikarenakan ada
suatu hal yang lebih menarik dibandingkan dengan hal sebelumnya. sebagai contoh
bila kita lihat pada zaman dahulu saat barang elektronik yaitu handphone keluar,
permainan pada handphone pada saat zaman dahulu yaitu snake, tetris, bounce
dll.Bila kita lihat sekarang karena kemajuan teknologi sudah pesat, game zaman
dahulu itu seakan telah menghilang seakan ditelan bumi.Arduino adalah pengendali
mikro single-board yang bersifat open-source, diturunkan dari Wiring platform,dirancang
untuk memudahkan penggunaan elektronik.
5
BAB 1.
PENDAHULUAN 6
Dalam
berbagai bidang. Hardwarenya memiliki prosesor Atmel AVR dan softwarenya
memiliki bahasa pemrograman sendiri. Dengan menggunakan Arduino kita dapat
membuat kembali game yang telah lama hilang tersebut menggunakan sebuah konsol.
Untuk mencapai tujuan itu khususnya membuat game Retro Snake Nokia berbasis Arduino
dirancang dan dikembangkan.
1.2 Rumusan Masalah
Berdasarkan
latar belakang diatas, maka penulis memberikan perumusan masalah khususnya yang
berkenaan dengan buku Retro Snake Nokia berbasis Arduino. Untuk itu penulis
merumuskan masalah, sebagai berikut :
1.
Apa itu Game Console ?
2.
Apa yang dimaksud dengan Arduino ?
3.
Apa saja tipe-tipe pada Arduino ?
4.
Apa itu IDE Arduino ?
5.
Bagaimana penggunaan Arduino sebagai controller Game Console ?
BAB 1.
PENDAHULUAN 7
1.3 Tujuan
Berdasarkan
rumusan masalah diatas, maka yang menjadi tujuan
pembahasan dalam buku ini adalah sebagai berikut :
1. Untuk
mengetahui apa itu Game Console.
2. Untuk
mengetahui apa yang dimaksud Arduino.
3. Untuk
mengetahui tipe-tipe Arduino.
4. Untuk
mengetahui IDE Arduino.
5. Untuk
mengetahui penggunaan Arduino sebagai controller Game
Console.
BAB 2
GAME DESIGN
2.1 Penjelasan Konsol Game
Konsol permainan adalah sebuah
mesin elektronik yang dirancang khusus untuk memainkan permainan video.
Perangkat penampil gra_knya dapat berupa monitor komputer atau televisi, alat
pengendalinya disebut joystick atau controller. Konsol permainan pertama kali
dibuat Atari, kemudian dilanjutkan dengan Nintendo yang sempat merajai pasaran
pada tahun 1985-1989. Konsol permainan modern saat ini antara lain adalah
PlayStation buatan Sony dan Xbox buatan Microsoft. Konsol yang berdimensi kecil
dan mudah dibawa ke mana-mana disebut konsol portabel, misalnya PlayStation
Portable yang dirilis oleh Sony pada tahun 2005, dan Nintendo DS yang
diproduksi oleh Nintendo.
8
BAB 2. GAME
DESIGN 9
2.2 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.2.1
PC Games
Gambar
2.1:
Game
jenis ini biasanya dimainkan menggunakan
personal computer atau PC Desktop hingga laptop.
BAB
2. GAME DESIGN 10
2.2.2
Console Games
Gambar
2.2:
Game
jenis ini bisa dimainkan menggunakan konsol game tertentu seperti PlayStation
hingga Xbox.
2.2.3
Handheld Games
Gambar 2.3:
BAB
2. GAME DESIGN 11
Game satu ini bisa dimainkan di console game khusus yang mudah dibawa
seperti Sony PSP atau Nintendo DS.
2.2.4
Mobile Games
Gambar
2.4:
Game
jenis ini hadir semenjak era ponsel atau perangkat mobile. Game ini memang
dibuat khusus untuk dimainkan pada mobile phone.
2.3 Genre Game
Genre
atau ragam permainan video digunakan untuk menggolongkan permainan video
berdasarkan interaksi bidang permainannya, bukan hanya perbedaan visual maupun
naratif. Permainan video diklasi_kasikan independen berdasarkan pengaturan atau
isi.
BAB
2. GAME DESIGN 12
sktruktur permainan tersebut, tidak seperti _lm atau pun buku.
2.3.1
Action
Gambar 2.5:
Game jenis ini
menghadirkan tur utama berupa aksi. Dalam action game, pemain harus memiliki ketrampilan
dan reaksi yang cepat untuk melawan musuh dan menghindari rintangan. Intinya
dalam game ini pemain harus menggunakan re_es, akurasi dan waktu yang tepat
untuk menyelesaikan sebuah level game.
BAB 2. GAME
DESIGN 13
2.3.2
Fighting Game
Gambar
2.6:
Game
satu ini berisi pertarungan. Dalam game ini, pemain dapat memilih karakter
dengan kemampuan berbeda-beda. Pemain juga bisa mengeluarkan
jurus
dan kemampuan berbeda dari tiap karakter untuk mengalahkan musuh. Biasanya
pertarungan hadir secara one on one (satu lawan satu) dalam sebuah arena yang
terbatas. Contoh game jenis ini yang cukup terkenal ialah Mortal Kombat, Street
_ghter hingga Teken.
BAB
2. GAME DESIGN 14
2.3.3
First Person Shooter (FPS)
Gambar
2.7:
Sesuai
namanya, game jenis ini berisi tembak-menembak. Namun, dalam game ini kamu akan
memainkan tokoh dengan cara pandang orang pertama. Tak heran dalam beberapa
game, karakter hanya ditampilkan dalam bentuk tangan atau senjata saja. Dalam
game FPS ini kamu akan menemukan berbagai misi yang harus kamu selesaikan. Intinya
dalam game ini, pemain membutuhkan re_ex, koordinasi mata dan tangan hingga waktu
yang tepat. Contoh game jenis ini ialah Dead E_ect dan Counter Strike.
BAB 2. GAME DESIGN 15
2.3.4
Third Person Shooter (TPS)
Gambar
2.8:
Game
ini sebetulnya mirip dengan FPS. Game tembak menembak ini hanya berbeda pada
sudut pandang pemain. Biasanya game ini akan menampilkan pemain tampak setengah
badan atau sudut pandang orang ketiga. Contoh game ini ialah Dead Space hingga
Hallo.
BAB
2. GAME DESIGN 16
2.3.5
Real Time Strategy (RTS)
Gambar
2.9:
Game
jenis ini menitikberatkan unsur strategi. Game ini memerlukan kemampuan pemain
untuk memimpin sebuah pasukan, kemudian mengelola sumber daya hingga membangun
peradaban. Tak heran bila game ini memiliki waktu permainan yang lebih lama dan
bisa dikerjakan santai. Setelah pembangunan selesai, kamu bisa berperang dengan
pasukan lain untuk me-
rebut
kekuasaan. Maka dibutuhkan strategi yang pas dan hati-hati agar pasukan bisa
menang dan wilayah sendiri tidak diserang.
BAB
2. GAME DESIGN 17
2.3.6
Role Playing Game (RPG)
Gambar 2.10:
Game ini menghadirkan gameplay yang mengandung unsur
leveling. Dalam game ini pemain akan bebas menjelajah dunia game. Setiap
karakter memiliki kemampuan dan kekuatan yang berbeda bahkan dapat berkembang
sesuai yang dinginkan pemain. Game RPG memungkinkan pemain untuk berkompe-
tisi hingga berinteraksi atau bertarung dengan pemain
lain. Beberapa Game RPG bahkan membuat pemain bisa menentukan ending dari jalan
cerita game tersebut. Game RPG terbagi menjadi dua jenis yakni Action RPG dan
turn based RPG. Contoh game jenis ini ialah Ninja Saga dan Final Fantasy.
BAB
2. GAME DESIGN 18
2.3.7
Adventure
Gambar 2.11:
Game jenis ini
berisi tentang petualangan. Pemain bisa memainkan karakter untuk menjelah hutan
belantara atau menjelajahi sebuah bangunan. Intinya,
pemain akan
melalui sebuah misi. Game ini akan menekankan jalur cerita dan kemampuan
berpikir pemain untuk menemukan petunjuk berikutnya.
BAB
2. GAME DESIGN 19
2.3.8
Simulasi
Gambar
2.12:
Game
dengan genre ini hadir dengan konsep yang mirip kenyataan. Semua faktor dalam
game akan dibuat semirip dunia nyata, ada yang menceritakan kehidupan manusia
atau kehidupan menjadi seorang walikota membangun sebuah kota. Dalam game ini
semua keputusanmu berpengaruh pada karakter yang dimainkan. Inti dari game ini
membuat pemain harus berpikir untuk mendirikan, membangun hingga mengatasi masalah
dengan dana terbatas.
BAB
2. GAME DESIGN 20
2.3.9
Sport Game
Gambar
2.13:
Game
jenis ini hadir untuk para pemain yang gemar olah raga. Game ini memiliki
gameplay berbagai jenis olahraga di dunia. Intinya, pemain akan melakukan pertandingan
olahraga secara virtual. Conton game jenis ini ialah Pro Evolution Soccer
hingga NBA 2015.
BAB 2. GAME
DESIGN 21
2.3.10
Racing Game
Gambar
2.14:
Game
ini berisi game balapan atau kemampuan mengemudi baik motor dan mobil atau
kendaraan lainnya. Game ini akan memacu adrenalin pemain untuk
menjadi
yang tercepat di sirkuit. Game jenis ini contohnya, Racing game dan Need for
Speed.
BAB
2. GAME DESIGN 22
2.3.11
Multiplayer Game
Gambar
2.15:
Jenis
game ini terbilang sedang tren di pasar Indonesia. Dalam game ini pemain akan
bermain secara bersamaan dengan lebih dari 2 orang bahkan bisa ribuan orang
bila memainkannya secara online. Pemain akan berada di sebuah dunia virtual
untuk melawan musuh. Rata-rata game ini menggunakan konsep strategi walaupun
ada pula genre lainnya.
2.4 Arduino
Arduino
adalah pengendali mikro single-board yang bersifat open-source, diturunkan dari
Wiring platform,dirancang untuk memudahkan penggunaan elektronik dalam berbagai
bidang. Hardwarenya memiliki prosesor Atmel AVR dan softwarenya memiliki bahasa
pemrograman sendiri.
BAB
2. GAME DESIGN 23
Arduino
juga merupakan platform hardware terbuka yang ditujukan kepada siapa saja yang
ingin membuat purwarupa peralatan elektronik interaktif berdasarkan hardware
dan software yang _eksibel dan mudah digunakan. Mikrokontroler diprogram menggunakan
bahasa pemrograman arduino yang memiliki kemiripan syntax dengan bahasa
pemrograman C. Karena sifatnya yang terbuka maka siapa saja dapat mengunduh
skema hardware arduino dan membangunnya.Arduino menggunakan keluarga
mikrokontroler AT Mega 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 eksibilitas, program dimasukkan
melalui bootloader meskipun ada opsi untuk membypass bootloader dan
menggunakan
downloader untuk memprogram mikrokontroler secara langsung melalui port ISP.
BAB
2. GAME DESIGN 24
2.5 Sejarah
Arduino
Semuanya
berawal dari sebuah thesis yang dibuat oleh Hernando Barragan, di institute
Ivrea, Italia pada tahun 2005, dikembangkan oleh Massimo Banzi dan
David
Cuartielles dan diberi nama Arduin of Ivrea. Lalu diganti nama menjadi Arduino
yang dalam bahasa Italia berarti teman yang berani. 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.
Visi awalnya aja udah mulia kan. 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, dan sebagainya.
3.
Sederhana, dengan bahasa pemograman yang
mudah
bisa dipelajari orang awam, bukan untuk orang teknik saja.
4.
Open Source, hardware maupun software.
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, terus 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.
BAB 2. GAME
DESIGN 25
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 tur yang dimilikinya.
2.6.1
Arduino USB
Arduino
USB, yaitu mikrokontroler Arduino dengan menggunakan USB sebagai antar muka
pemrograman atau komunikasi komputer. Contoh:
2.6.1.1
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.
BAB
2. GAME DESIGN 26
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, _tur Atmega16U2 (Atmega8U2 sampai 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 _tur-_tur baru berikut :
1,0
pinout: menambahkan SDA dan pin SCL yang dekat dengan pin AREF dan dua pin baru
lain-nya 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.
BAB
2. GAME DESIGN 27
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.16
2.6.1.2
Arduino Duemilanove
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.
BAB
2. GAME DESIGN 28
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 yang 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
microUSB 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 pinAREF.
. 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 signi_kan adalah :
. 32-bit inti, yang
memungkinkan operasi pada 4 byte data luas dalam jam CPU tunggal. (untukinformasi
lebih lanjut lihat int jenis halaman).
BAB
2. GAME DESIGN 29
. Kecepatan CPU di 84Mhz.
.
96 KByte SRAM.
.
512 KByte memori Flash untuk kode.
.
DMA controller, yang dapat meringankan CPU dari melakukan tugas-tugas intensif memori.
Gambar
2.17:
2.6.1.3 Arduino Leonardo
Arduino
Leonardo adalah papan mikrokontroler berdasarkan AT mega32u4. 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.
BAB
2. GAME DESIGN 30
Ke
Komputer dengan kabel USB atau power dengan adaptor AC-DC atau baterai untuk
memulai menggunakkannya.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.
Gambar
2.18:
2.6.1.4
Arduino Mega 2560
Arduino mega
2560 adalah papan mikrokontroler ATmega 2560 berdasarkan (datasheet) memiliki
54 digital pin input / output (dimana 15 dapat digunakan
sebagai output
PWM), 16 analog input, 4 UART (hardware port serial), osilator kristal 16 MHz,
koneksi.
BAB
2. GAME DESIGN 31
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 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, _tur 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 _tur-_tur baru berikut:
. 1,0 pinout: menambahkan
SDA dan pin SCL yang dekat dengan pin AREF dan dua pin baru lain-nya 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.
. Atmega 16U2 menggantikan
8U2.
BAB 2. GAME
DESIGN 32
Gambar 2.19:
2.6.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 yangberoperasi di kedua tegangan 3.3V atau 5V.
Tegangan operasi inti Galileo adalah 3.3V. Namun, jumper diboard memungkinkan
terjemahan tegangan 5V di pin.
BAB 2. GAME DESIGN 33
I
/ O. Hal ini memberikan dukungan untuk 5V shield Uno dan perilaku default.
Dengan beralih 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 kompatibilitasm 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 NORFlash.
Gambar
2.20:
BAB
2. GAME DESIGN 34
2.6.1.6 Arduino
Pro Micro AT
BAB
2. GAME DESIGN 35
Gambar 2.21:
2.6.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 ATmega168 (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 Mini-B bukan satu standar. Arduino Nano dirancang dan
diproduksi oleh Gravitech.
BAB
2. GAME DESIGN 36
Gambar 2.22:
2.6.1.8 Arduino Mini Atmega
Arduino
ProMini ditujukan untuk pengguna tingkat lanjut yang membutuhkan eksibilitas,
biaya ren-dah, dan ukuran kecil. Muncul dengan minimum komponen (tidak ada on-board
USB atau pin header) untuk menjaga biaya turun. Ini adalah pilihan yang baik untuk
papan Anda ingin meninggalkan board tertanam dalam proyek. Harap dicatat 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.
BAB 2. GAME
DESIGN 37
Gambar 2.23:
2.6.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 IC. Ini memiliki 54 digital 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.Arduino MEGA ADK berdasarkan Mega 2560.Mirip dengan Mega 2560 dan
Uno, hotel ini memiliki sebuah ATmega8U2 diprogram sebagai konverter USBto-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 _tur-_tur baru berikut :
BAB 2. GAME DESIGN 38
. 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, 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.
Gambar 2.24:
2.6.1.10 Arduino Esplora
Arduino
Esplora adalah papan mikrokontroler berasal dari Arduino Leonardo. Esplora
berbeda dari semua papan Arduino sebelumnya dalam hal ini menyediakan.
BAB
2. GAME DESIGN 39
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-demi-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 juga 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 :
.
Pada [Hijau] menunjukkan apakah board menerima catu daya.
.
L [yellow] terhubung langsung ke mikrokontroler,dapat diakses melalui pin 13.
.
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.
BAB
2. GAME DESIGN 40
Gambar 2.25:
2.6.2
Arduino Tipe Serial
Arduino Serial, yaitu jenis mikrokontroler arduino yang menggunakan RS232
sebagai antar muka pemrograman atau komunikasi computer.
Gambar 2.26:
BAB
2. GAME DESIGN 41
2.6.3
Arduino Mega
Arduino MEGA, yaitu
mikrokontroler Arduino dengan spesi_kasi yang lebih tinggi, dilengkapi tambahan
pin digital, pin analog, port serial dan sebagainya. Arduino Mega berbasis
ATmega1280 dengan 54 digital input/output.
Gambar 2.27:
2.6.4
Arduino Fio
Arduino
Fio, yaitu mikrokontroler Arduino yang ditujukan untuk penggunaan nirkabel.
Arduino Fio ini menggunakan ATmega328P sebagai basis kontrolernya.
BAB
2. GAME DESIGN 42
Gambar 2.28:
2.6.5
Arduino Lylypad
Arduino
Lilypad, yaitu mikrokontroler dengan bentuk yang melingkar. Contoh: LilyPad
Arduino 00, LilyPad Arduino 01, LilyPad Arduino 02, LilyPad Arduino 03, LilyPad
Arduino 04.
Gambar 2.29:
BAB
2. GAME DESIGN 43
2.6.6
Arduino BT
Arduino BT, mikrokontroler Arduino yang mengandung modul Bluetooth untuk
komunikasi nirkabel.
Gambar 2.30:
2.6.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.
BAB
2. GAME DESIGN 44
Gambar 2.31:
2.7 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.
BAB 2. GAME DESIGN 45
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 untuk pemrograman dengan Arduino.
Gambar
2.32:
BAB
3
IMPLEMTASI
3.1 Pendahuluan
Dalam
pembuatan Retro Snake NokianGame with Arduino, komponen yang paling dibutuhkan
sudah tentu Arduino itu sendiri. Selanjutnya ada beberapa
komponen
yang nantinya akan dijelaskan sebagai berikut:
3.1.1 Komponen
dan Supplies
.
Arduino uno genuino uno
.
Mini Speaker - PC Mount 12mm 2.048kHz
.
Graphic LCD 84x48 - Nokia 5110
.
Lithium Ion Battery - 2200mAh 7.4v
.
PSP 2-Axis Analog Thumb Joystick 46
BAB
3. IMPLEMTASI 47
. Momentary Pushbutton Switch - 12mm
Square
3.1.2 Barang Elektronik
. Layar
Nokia 5110
. Arduino Uno
. Piezo Speaker
. Joystick
. Push Button
. Switch
. Battre Lithium
Untuk perakitan
listriknya cukup sederhana. Dalam link circuito.io, kita sudah memilih semua
bagian dibutuhkan untuk proyek tersebut. anda tentu saja menambahkan komponen
tambahan jika anda mau. Setelah anda memilih semua yang anda butuhkan, hanya tinggal
klik on generate.
3.1.3 Aplikasi dan Online Service
.
Circuit.io
.
Arduino
BAB
3. IMPLEMTASI 48
3.2 Tentang
Proyek
Super
Mario, Tetris, Pac-Man. Tidakkah kamu berharap bisa memainkan kembali game ini
untuk menghabiskan waktu luang anda didepan layar hitam dengan resolusi minimal
dan memaikan game yang sangat adiktif? Nah, setelah kami menambahkan layar Nokia
ke circuito.io, proyek ini takkan terelakkan. Kami bangga mempersembahkan
kreasi kami yaitu game Nokia Snake yang dibungkus dalam kotak Arduino!
3.3 Circuito.IO Reply
Circuito reply
mempunyai 4 tahapan:
3.3.1 BoM
Daftar
semua komponen yang Anda perlukan untuk proyek ini. anda mungkin bertanya-tanya
mengapa komponen baru "muncul" pada daftar ini, walaupun
anda
belum memilihnya. Nah, bagian ini diperlukan untuk proyek anda seperti bagian
inti yang anda pilih, dan otomatis ditambahkan ke daftar suku cadang anda setelah
dihitung oleh smart engine kami.
3.3.2
Step-by-step wiring guide
Ini
adalah bagian yang menyenangkan. Setelah menempatkan semua komponen pada papan,
anda bisa mulai mengaitkannya satu sama lain dan ke Arduino.Ikuti saja wizard,
langkah demi langkah, semudah itu.
BAB
3. IMPLEMTASI 49
Pastikan
untuk membaca komentar yang pop-up di sisi kiri bar, karena mungkin sangat
membantu.
3.3.3
Code
Pada
bagian ini anda memiliki kode contoh yang dibuat secara otomatis untuk
mengintegrasikan antara semua komponen yang anda pilih. Kode ini akan membantu
anda menguji bahwa anda memasang sirkuit dengan benar. Ikuti langkah dibawah
ini, yang juga muncul pada circuito.io reply:
.
Download Firmware.zip
.
Extract semua _le ke folder baru dengan nama_Firmware_
.
Buka _Firmware.ino_ menggunakan Arduino IDE
yang
bisa didownload di web resminya.
.
Pastikan board terhubung dengan computer anda via USB.
.
Di Arduino IDE jangan lupa untuk select correct Port dan Board di tool menu.
. Upload _Firmware.ino_ ke board.
3.3.4
Test
Setelah anda
mengupload kode untuk boardnya, maka anda bisa mengujinya. Semua langkah untuk.
BAB 3.
IMPLEMTASI 50
uji
secara spesi_k komponen yang anda gunakan, diuraikan di bagian "test"
dari reply circuito.io. Setelah semuanya diatur dengan benar, Anda bisa
melambaikan selamat tinggal ke circuito.io reply, sampai ketemu dilain waktu.
3.4 Mengubah
Code
Jadi
segala sesuatu di sirkuit dan kode Anda terlihat hebat. Sudah waktunya untuk
mengambil kode kustom yang kami buat khusus untuk proyek Snake.
.
Buka _le _rmware.ino yang mencakup semua libraries dari circuito.io reply.
.
Pada tab _rmware, simpan // Include Libraries dan // Pin De_nitions.
.
Ganti sisa kode pada tab _rmware, dengan kode di bawah ini:
#include
<EEPROM.h>
//
Global variables and de_nes
//de_ne
Nokia LCD contrast and dimentions(in pi-
xels)
#de_ne
LCD_CONTRAST 70
#de_ne
LCD_SIZE_COL 84
#de_ne
LCD_SIZE_ROW 48
bool
dl = false, dr = false, du = false, dd = false;
//
to check in which direction the snake is currently
moving
BAB
3. IMPLEMTASI 51
uint8_t
x[200], y[200], i, slength, tempx = 10, tem-
py
= 10, xx, yy;
unsigned
int high;
uint8_t
bh, bl;
uint8_t
xegg, yegg;
int
freq, tb;
bool
l, r, u, d, p;
unsigned
long time = 280, beeptime = 50;
int
score = 0, _ag = 0
#include
<EEPROM.h>
//
object initialization
Adafruit_PCD8544
nokiaLcd(NOKIALCD_PIN_DC,
NOKIALCD_PIN_CS,
NOKIALCD_PIN_RST);
Button
pushButton(PUSHBUTTON_PIN_1);
//
Setup the essentials for your circuit to work. It
runs
_rst every time your circuit is powered with ele-
ctricity.
void
setup()
{
//Serial.begin(9600);
pinMode(JOYSTICKPSP_PIN_X,
INPUT);
pinMode(JOYSTICKPSP_PIN_Y,
INPUT);
//Initialize
Nokia instance
nokiaLcd.begin(LCD_SIZE_COL,
LCD_SIZE_ROW);
nokiaLcd.clearDisplay();
nokiaLcd.setContrast(LCD_CONTRAST);
//Adjust
display
contrast
pushButton.init();
slength
= 8; //Start with snake length 8
xegg
= (nokiaLcd.width()) / 2;
yegg
= (nokiaLcd.height()) / 2
BAB
3. IMPLEMTASI 52
nokiaLcd.setTextSize(2);
//Initial nokiaLcd
nokiaLcd.setTextColor(BLACK);
nokiaLcd.setCursor(10,
15);
nokiaLcd.setCursor(10,
40);
nokiaLcd.display();
delay(4000);
nokiaLcd.clearDisplay();
for
(i = 0; i <= slength; i++) //Set starting coo-
rdinates
of snake
{
x[i]
= 25 - 3 * i;
y[i]
= 10;
}
for
(i = 0; i < slength; i++) //Draw the snake
{
nokiaLcd.drawCircle(x[i],
y[i], 1, BLACK);
}
nokiaLcd.display();
dr
= true; //Going to move right initially
}
//
Main logic of your circuit. It de_nes the inte-
raction
between the components you selected. After
setup,
it runs over and over again, in an eternal loop.
void
loop()
{
movesnake();
//This is called endlessly
}
void
movesnake()
{
int
X_val = analogRead(JOYSTICKPSP_PIN_X);
int
Y_val = analogRead(JOYSTICKPSP_PIN_Y);
BAB
3. IMPLEMTASI 53
l
= X_val < 400 ? 1 : 0;
d
= X_val > 650 ? 1 : 0;
r
= Y_val < 400 ? 1 : 0;;
u
= Y_val >= 650 ? 1 : 0;
p
= pushButton.onPress();
if
(p == HIGH) //Pause game for 5 seconds
{
nokiaLcd.clearDisplay();
nokiaLcd.setTextColor(BLACK);
nokiaLcd.setCursor(25,
10);
nokiaLcd.setTextSize(1);
nokiaLcd.print("Pause");
nokiaLcd.display();
delay(1000);
while
(!pushButton.onPress());
nokiaLcd.clearDisplay();
redraw();
//Redraw the snake and egg at the same
position
as it was
}
if
(millis() % time == 0) //this condition becomes
true
after every 'time' milliseconds...millis() returns the
time
since launch of program
{
direct();
if
(_ag == 0) //_ag 0 means no directional key has
been
pressed in the last 'time' milliseconds
{
if
(dr == true) {
tempx
= x[0] + 3; // so the snake moves one step
in
the direction it is moving currently
tempy
= y[0];
BAB
3. IMPLEMTASI 54
}
if
(dl == true) {
tempx
= x[0] - 3; //The new coordinates of head of
snake
goes in tempx,tempy
tempy
= y[0];
}
if
(du == true) {
tempy
= y[0] - 3;
tempx
= x[0];
}
if
(dd == true) {
tempy
= y[0] + 3;
tempx
= x[0];
}
}
_ag
= 0;
checkgame();
//Check if snake has met egg or co-
incided
with itself
checkegg();
if
(tempx <= 0) {
tempx
= 84 + tempx; //If the new coordinates are
out
of screen, set them accordingly
}
else
if (tempx >= 84) {
tempx
= tempx - 84;
}
if
(tempy <= 0) {
tempy
= 48 + tempy;
}
else
if (tempy >= 48) {
tempy
= tempy - 48;
BAB
3. IMPLEMTASI 55
}
for
(i = 0; i <= slength; i++) //Change the coo-
rdinates
of all points of snake
{
xx
= x[i];
yy
= y[i];
x[i]
= tempx;
y[i]
= tempy;
tempx
= xx;
tempy
= yy;
}
drawsnake();
//Draw the snake and egg at the new
coordinates
}
}
void
checkgame() //Game over checker
{
for
(i = 1; i < slength; i++) //Checking if the co-
ordinates
of head have become equal to one of the non
head
points of snake
{
if
(x[i] == x[0] && y[i] == y[0])
{
bh
= EEPROM.read(1);
bl
= EEPROM.read(0);
high
= (((0x_00 + bh) <_< 8) + bl);
if
(score > high)
{
high
= score;
bh
= (high >_> 8);
bl
= high & 0x_;
BAB
3. IMPLEMTASI 56
EEPROM.write(1,
bh);
EEPROM.write(0,
bl);
}
nokiaLcd.clearDisplay();
nokiaLcd.setTextColor(BLACK);
nokiaLcd.setTextSize(1);
nokiaLcd.setCursor(20,
12);
nokiaLcd.print("Game
Over");
nokiaLcd.setCursor(15,
30);
nokiaLcd.print("Score:
");
nokiaLcd.print(score);
nokiaLcd.setCursor(15,
40);
nokiaLcd.print("High:
");
nokiaLcd.print(high);
nokiaLcd.display();
beep(20,
5000);
nokiaLcd.clearDisplay();
slength
= 8; //Resetting the values
score
= 0; time = 280; redraw(); //Restart game
by
drawing snake with the resetted length and score
}
}
}
void
checkegg() //Snake meets egg
{
if
(x[0] == xegg or x[0] == (xegg + 1) or x[0] ==
(xegg
+ 2) or x[0] == (xegg - 1)) //Snake in close
vicinity
of egg
{
if
(y[0] == yegg or y[0] == (yegg + 1) or y[0] ==
(yegg
+ 2) or y[0] == (yegg - 1))
BAB
3. IMPLEMTASI 57
{
score
+= 1; //Increase length,score and increase
movement
speed by decreasing 'time'
slength
+= 1;
if
(time >= 90)
{
time
-= 5;
}
nokiaLcd._llRect(xegg,
yegg, 3, 3, WHITE); //De-
lete
the consumed egg
nokiaLcd.display();
beep(35,
beeptime); //Beep with a sound of 35Hz
for
'beeptime' ms
xegg
= random(1, 80); //Create New egg randomly
yegg
= random(1, 40);
}
}
}
void
direct() //Check if user pressed any keys and
change
direction if so
{
if
(l == HIGH and dr == false) //when key LEFT
is
pressed ,L will become low
{
dl
= true; du = false; dd = false;
tempx
= x[0] - 3; //Save the new coordinates of
head
in tempx,tempy
tempy
= y[0];
_ag
= 1; //Do not change direction any further for
the
ongoing 'time' milliseconds
}
BAB
3. IMPLEMTASI 58
else
if (r == HIGH and dl == false)
{
dr
= true;
du
= false;
dd
= false;
tempx
= x[0] + 3;
tempy
= y[0]; _ag = 1;
}
else
if (u == HIGH and dd == false)
{
du
= true;
dl
= false;
dr
= false;
tempy
= y[0] - 3;
tempx
= x[0];
_ag
= 1;
}
else
if (d == HIGH and du == false)
{
dd
= true; dl = false; dr = false;
tempy
= y[0] + 3;
tempx
= x[0];
_ag
= 1;
}
else
if (p == HIGH) //Pause game for 5 seconds
{
nokiaLcd.clearDisplay();
nokiaLcd.setTextColor(BLACK);
nokiaLcd.setCursor(25,
10);
nokiaLcd.setTextSize(1);
nokiaLcd.print("Pause");
BAB
3. IMPLEMTASI 59
nokiaLcd.display();
delay(1000);
while
(!pushButton.onPress());
nokiaLcd.clearDisplay();
redraw();
//Redraw the snake and egg at the same
position
as it was
}
}
void
drawsnake() //Draw snake and egg at newly
changed
positions
{
nokiaLcd._llRect(xegg,
yegg, 3, 3, BLACK); //Draw
egg
at new pos
nokiaLcd.drawCircle(x[0],
y[0], 1, BLACK); //Draw
new
head of snake
nokiaLcd.drawCircle(x[slength],
y[slength], 1, WHI-
TE);
//Delete old tail of snake
nokiaLcd.display();
}
void
redraw() //Redraw ALL POINTS of snake and
egg
{
nokiaLcd._llRect(xegg,
yegg, 3, 3, BLACK);
for
(i = 0; i < slength; i++)
{
nokiaLcd.drawCircle(x[i],
y[i], 1, BLACK);
}
nokiaLcd.display();
}
void
beep (int freq, long tb) //This function creates
a
sound of frequency 'freq' Hz and for a duration of 'tb'
BAB
3. IMPLEMTASI 60
milliseconds
{
int
x;
long
delayAmount = (long)(500 / freq); //Calcula-
te
time duration of half cycle
long
loopTime = (long)(tb / (delayAmount * 2));
//Calculate
no. of cycles
for
(x = 0; x < loopTime; x++) // One iteration
produces
sound for one cycle
{
digitalWrite(PIEZOSPEAKER_PIN_SIG,
HIGH);
//High
for half cycle
delay(delayAmount);
digitalWrite(PIEZOSPEAKER_PIN_SIG,
LOW);
//Low
for half cycle
delay(delayAmount);
}
delay(2); //a little delay to make all notes sound
separate
}
===
Kode Program ===
Bab
4
HASIL
GAME
Gambar
4.1:
61
BAB
4. HASIL GAME 62
Gambar
4.2:
Gambar
4.3:
BAB
5
HASIL
GAME
5.1 Kesimpulan
Pada
percobaan membuat permainan snake ini dapat dirangkum bahwa penulis merancang
sebuah model konsol yang mampu mengendalikan permainan handphone dengan beberapa
komponen yang saling melengkapi satu sama lain dan bekerja dengan baik. Oleh
karena itu, dapat diasumsikan bahwa komponen yang tadinya terpisah dapat
mencapai kinerja yang lebih baik saat pengguna bekerja sama satu sama lain
untuk mengirim dan menerima data, daripada saat mereka bersaing untuk
mendapatkan akses ke sumber daya yang sama.
63
BAB 5. HASIL
GAME 64
5.2 Saran
Untuk
kedepannya, dengan menggunakan cara seperti ini diharapkan untuk membuat yang
lebih baik lagi dari yang kami buat.
Bab 6
Lampiran
Gambar 6.1:
65
Bibliogra
[1]
https://create.arduino.cc/projecthub/circuito-io-
team/retro-nokia-snake-game-with-arduino-f8163b
[2]
https://id.wikipedia.org/wiki/Arduino
[3]
https://id.wikipedia.org/wiki/Genre_permainan_video
[4]
https://id.wikipedia.org/wiki/Konsol_permainan
[5]
http://www.pricebook.co.id/article/review/2016/01/26/3593/ada-
4-jenis-dan-11-genre-game-yang-mana-favorit-
kamu
[6]
http://tentangarduino.blogspot.co.id/2014/09/macam-
macam-arduino-iniakan-saya.html
66
Komentar
Posting Komentar