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

Dipakai oleh perusahaan besar. Contohnya Google menggunakan 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 ba-has C, yang sudah disederhanakan. Sehingga orang awam pun bisa menjadi seniman digital, bisa mempelajari Arduino dengan  mudahnya.

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

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 memulainya. 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 impilikasi lain untuk pemanfaatan board.
 
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

Postingan Populer