Retro Nokia Snake Game with Arduino





KATA PENGANTAR


Arduino adalah pengendali mikro single-board yang bersifat open-source, diturunkan dari Wiring platform, dirancang untuk memudahkan penggunaan elektronik dalam berbagai bidang. Hardwarenya memiliki prose-sor Atmel AVR dan softwarenya memiliki bahasa pem-rograman sendiri. Tuturial di Buku Retro Nokia Snake Game with Arduino ini berisi tentang bagaimana ca-ra 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 pe-latihan. Dengan bahasa sederhana, code yang sangat membantu dalam penyusunan game ini, maka belajar akan menjadi lebih mudah dan menyenangkan. Ma-teri menggunakan Arduino 1.8.3 namun tetap diikuti untuk pengguna versi diatasnya. Setelah mempelaja-ri 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 bu-ku 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.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


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

Dijaman sekarang teknologi sudah berkembang pe-sat, sehingga menyebabkan sesuatu yang telah usang akan semakin dilupakan seiring berkembangnya zaman dikarenakan ada suatu hal yang lebih menarik diband-ingkan 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 su-dah pesat, game zaman dahulu itu seakan telah menghi-lang seakan ditelan bumi.

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 pem-rograman sendiri.

Dengan menggunakan Arduino kita dapat membu-at kembali game yang telah lama hilang tersebut meng-gunakan 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 ber-kenaan dengan buku Retro Snake Nokia berbasis Ardu-ino. 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 contro-ller Game Console ?




1.3    Tujuan


Berdasarkan rumusan masalah diatas, maka yang menjadi tujuan pembahasan dalam buku ini adalah se-bagai 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 mo-nitor komputer atau televisi, alat pengendalinya dise-but joystick atau controller. Konsol permainan per-tama 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 di-bawa ke mana-mana disebut konsol portabel, misalnya PlayStation Portable yang dirilis oleh Sony pada tahun 2005, dan Nintendo DS yang diproduksi oleh Nintendo.

  
2.2    Jenis-Jenis Game

Seiring dengan perkembangan zaman dan teknolo-gi, dunia game pun ikut terkena imbasnya. Mulai dari segi konsol, teknologi yang diimplementasikan, mau-pun 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 dima-inkan siapa saja dan di mana saja. Berbagai pilihan jenis game juga semakin berkembang. Berikut bebera-pa 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.

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:

Game satu ini bisa dimainkan di console game khu-sus yang mudah dibawa seperti Sony PSP atau Ninten-do DS.

2.2.4    Mobile Games


Gambar 2.4:


Game jenis ini hadir semenjak era ponsel atau per-angkat mobile. Game ini memang dibuat khusus untuk dimainkan pada mobile phone.

2.3    Genre Game

Genre atau ragam permainan video digunakan un-tuk menggolongkan permainan video berdasarkan in-teraksi bidang permainannya, bukan hanya perbedaan visual maupun naratif. Permainan video diklasi kasik-an independen berdasarkan pengaturan atau isi dari 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 ke-trampilan dan reaksi yang cepat untuk melawan musuh dan menghindari rintangan. Intinya dalam game ini pemain harus menggunakan rees, akurasi dan waktu yang tepat untuk menyelesaikan sebuah level game.

2.3.2    Fighting Game


Gambar 2.6:


Game satu ini berisi pertarungan. Dalam game ini, pemain dapat memilih karakter dengan kemam-puan berbeda-beda. Pemain juga bisa mengeluarkan jurus dan kemampuan berbeda dari tiap karakter un-tuk 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.

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 da-lam beberapa game, karakter hanya ditampilkan dalam bentuk tangan atau senjata saja. Dalam game FPS ini kamu akan menemukan berbagai misi yang harus ka-mu selesaikan. Intinya dalam game ini, pemain mem-butuhkan reex, koordinasi mata dan tangan hingga waktu yang tepat. Contoh game jenis ini ialah Dead Eect dan Counter Strike.

2.3.4    Third Person Shooter (TPS)

Gambar 2.8:


Game ini sebetulnya mirip dengan FPS. Game tem-bak menembak ini hanya berbeda pada sudut pandang pemain. Biasanya game ini akan menampilkan pemain tampak setengah badan atau sudut pandang orang ke-tiga. Contoh game ini ialah Dead Space hingga Hallo.

2.3.5    Real Time Strategy (RTS)

Gambar 2.9:


Game jenis ini menitikberatkan unsur strategi. Ga-me ini memerlukan kemampuan pemain untuk memim-pin sebuah pasukan, kemudian mengelola sumber da-ya hingga membangun peradaban. Tak heran bila ga-me 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.

2.3.6    Role Playing Game (RPG)

Gambar 2.10:


Game ini menghadirkan gameplay yang mengan-dung unsur leveling. Dalam game ini pemain akan bebas menjelajah dunia game. Setiap karakter me-miliki kemampuan dan kekuatan yang berbeda bahk-an 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 pema-in bisa menentukan ending dari jalan cerita game ter-sebut. Game RPG terbagi menjadi dua jenis yakni Action RPG dan turn based RPG. Contoh game jenis ini ialah Ninja Saga dan Final Fantasy.

2.3.7    Adventure

Gambar 2.11:


Game jenis ini berisi tentang petualangan. Pema-in bisa memainkan karakter untuk menjelah hutan be-lantara atau menjelajahi sebuah bangunan. Intinya, pemain akan melalui sebuah misi. Game ini akan me-nekankan jalur cerita dan kemampuan berpikir pemain untuk menemukan petunjuk berikutnya.

2.3.8    Simulasi

Gambar 2.12:


Game dengan genre ini hadir dengan konsep yang mirip kenyataan. Semua faktor dalam game akan di-buat semirip dunia nyata, ada yang menceritakan kehi-dupan manusia atau kehidupan menjadi seorang wali-kota membangun sebuah kota. Dalam game ini semua keputusanmu berpengaruh pada karakter yang dima-inkan. Inti dari game ini membuat pemain harus ber-pikir untuk mendirikan, membangun hingga mengatasi masalah dengan dana terbatas.

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.

2.3.10    Racing Game

Gambar 2.14:


Game ini berisi game balapan atau kemampuan mengemudi baik motor dan mobil atau kendaraan lain-nya. Game ini akan memacu adrenalin pemain untuk menjadi yang tercepat di sirkuit. Game jenis ini con-tohnya, Racing game dan Need for Speed.

2.3.11    Multiplayer Game

Gambar 2.15:


Jenis game ini terbilang sedang tren di pasar In-donesia. Dalam game ini pemain akan bermain secara bersamaan dengan lebih dari 2 orang bahkan bisa ri-buan orang bila memainkannya secara online. Pemain akan berada di sebuah dunia virtual untuk melawan musuh. Rata-rata game ini menggunakan konsep stra-tegi 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 prose-sor Atmel AVR dan softwarenya memiliki bahasa pem-rograman sendiri.

Arduino juga merupakan platform hardware terbu-ka yang ditujukan kepada siapa saja yang ingin mem-buat purwarupa peralatan elektronik interaktif berda-sarkan hardware dan software yang eksibel dan mu-dah digunakan. Mikrokontroler diprogram menggu-nakan bahasa pemrograman arduino yang memiliki ke-miripan syntax dengan bahasa pemrograman C. Kare-na sifatnya yang terbuka maka siapa saja dapat meng-unduh 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 de-ngan menggunakan mikrokontroler lain dan tetap kom-patibel dengan arduino pada level hardware. Untuk eksibilitas, program dimasukkan melalui bootloader meskipun ada opsi untuk membypass bootloader dan menggunakan downloader untuk memprogram mikro-kontroler secara langsung melalui port ISP.


2.5    Sejarah Arduino

Semuanya berawal dari sebuah thesis yang dibuat oleh Hernando Barragan, di institute Ivrea, Italia pa-da tahun 2005, dikembangkan oleh Massimo Banzi dan David Cuartielles dan diberi nama Arduin of Ivrea. La-lu 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 Ba-nzi, David Cuartielles, Tom Igoe, Gianluca Martino, David Mellis, dan Nicholas Zambetti. Mereka mengu-payakan 4 hal dalam Arduino ini, yaitu:
1.  Harga terjangkau

2.  Dapat dijalankan diberbagai sistem operasi, Win-dows, 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 CipaDu-ino yang dibuat oleh SKIR70, terus ada MurmerDuino yang dibuat oleh Robot Unyil, ada lagi AViShaDuino yang salah satu pembuatnya adalah Admin Kelas Ro-bot.

Sampai saat ini pihak resmi, sudah membuat ber-bagai jenis-jenis Arduino. Mulai dari yang paling mu-dah 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 pa-da tahun 2011. Dan untuk hari ini, yang bisa kamu hitung sendiri ya. Dan Arduino juga sudah banyak dipakai oleh perusahaan besar. Contohnya Google meng-gunakan Arduino untuk Accessory Development Kit, NASA memakai Arduino untuk prototypin, ada lagi Large Hadron Colider memakai Arduino dalam bebe-rapa hal untuk pengumpulan data. Dan banyak yang bertanya juga Arduino ini menggunakan bahasa pemo-graman apa? Arduino sebenarnya menggunakan ba-has C, yang sudah disederhanakan. Sehingga orang awam pun bisa menjadi seniman digital, bisa mempe-lajari Arduino dengan mudahnya

2.6    Macam - Macam Arduino

Arduino memiliki beberapa macam atau tipe sesu-ai dengan turnya masing-masing yang dapat dimanfa-atkan sesuai kebutuhan dalam pembuatan sebuah alat atau robot. Berikut beberapa macam dari Arduino de-ngan 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 berda-sarkan ATmega328 (datasheet). Ini memiliki 14 digital pin input / output (dimana 6 dapat digunakan seba-gai 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 menggu-nakannya.

Uno berbeda dari semua papan sebelumnya di bah-wa itu tidak menggunakan chip driver FTDI USB-to-serial. Sebaliknya, tur 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 di-masukkan 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 bera-daptasi dengan tegangan yang tersedia dari pap-an. Di masa depan, perisai akan kompatibel de-ngan kedua papan yang menggunakan AVR yang beroperasi dengan 5V dan dengan Arduino Due yang beroperasi dengan 3.3V. Yang kedua ada-lah 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 un-tuk menandai peluncuran Arduino 1.0. Arduino Uno dan versi 1.0 akan menjadi versi referensi Arduino, ber-gerak 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 pap-an 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 yang lebih tinggi, seper-ti 5V ke I / O pin dapat merusak papan.

Arduino Duemilanove berisi semua yang diperluk-an untuk mendukung mikrokontroler, hanya menghu-bungkannya ke komputer dengan kabel micro-USB atau power dengan adaptor AC-DC atau baterai untuk me-mulainya. Arduino Duemilanove kompatibel dengan semua perisai Arduino yang bekerja di 3.3V dan telah sesuai dengan 1,0 Arduino pinout. Arduino Duemila-nove 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 me-miliki 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. (untuk informasi lebih lanjut lihat int jenis halaman).

ˆ     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 ber-dasarkan 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 tom-bol reset. Berisi semua yang diperlukan untuk men-dukung mikrokontroler, hanya menghubungkannya kekomputer dengan kabel USB atau power dengan adap-tor AC-DC atau baterai untuk memulai menggunak-kannya.

Leonardo berbeda dari semua papan sebelumnya di bahwa ATmega32u4 telah built-in USB komunika-si, menghilangkan kebutuhan untuk prosesor sekunder. Hal ini memungkinkan Leonardo tampil sebagai kom-puter yang terhubung sebagai mouse dan keyboard, se-lain virtual (CDC) serial / COM port. Ini juga memi-liki 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 di-gital pin input / output (dimana 15 dapat digunakan sebagai output PWM), 16 analog input, 4 UART (ha-rdware port serial), osilator kristal 16 MHz, koneksi USB, jack listrik, header ICSP, dan tombol reset. Ini berisi semua yang diperlukan untuk mendukung mik-rokontroler,hanya menghubungkannya ke komputer de-ngan kabel USB atau power dengan adaptor AC-DC atau baterai. Arduino Mega kompatibel dengan seba-gian besar shield,dirancang untuk Arduino Duemilano-ve atau Diecimila.

Arduino Mega2560 berbeda dari semua board se-belumnya ,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 bera-daptasi dengan tegangan yang tersedia dari pap-an. Di masa depan, perisai akan kompatibel baik dengan dewan yang menggunakan AVR yang ber-operasi 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.

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 (da-tasheet). Ini adalah board pertama berdasarkan ar-sitektur 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 Ardu-ino 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. Tegang-an 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 beralih posisi jum-per, 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 Enviro-nment (IDE), yang membuat kegunaan dan pengenal-an 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. Se-buah ukuran penuh Slot mini-PCI Express, pelabuh-an 100Mb Ethernet, slot Micro-SD, RS-232 port serial, port host USB, port USB Client, dan 8MByte NOR Flash.

Gambar 2.20:


2.6.1.6      Arduino Pro Micro AT

Arduino Mikro adalah board mikrokontroler ber-dasarkan ATmega32u4 (lihat datasheet), yang dikem-bangkan bersama dengan Adafruit. Ini memiliki 20 di-gital pin input / output (yang 7 dapat digunakan seba-gai 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 memungkin-kannya untuk dapat dengan mudah ditempatkan pada papan tempat memotong roti.

Arduino Micro mirip dengan Arduino Leonardo in bahwa ATmega32u4 telah built-in USB komunikasi, de-ngan menghilangkan kebutuhan untuk prosesor sekun-der. 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.

Gambar 2.21:


2.6.1.7      Arduino Nano R3

Arduino Nano R3 adalah sebuah papan kecil, leng-kap, dan ramah-papan tempat memotong roti berda-sarkan 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 memili-ki hanya colokan listrik DC, dan bekerja dengan kabel USB Mini-B bukan satu standar. Arduino Nano diran-cang dan diproduksi oleh Gravitech.

Gambar 2.22:


2.6.1.8      Arduino Mini Atmega

Arduino ProMini ditujukan untuk pengguna ting-kat lanjut yang membutuhkan eksibilitas, biaya ren-dah, dan ukuran kecil. Muncul dengan minimum kom-ponen (tidak ada on-board USB atau pin header) untuk menjaga biaya turun. Ini adalah pilihan yang baik un-tuk papan Anda ingin meninggalkan board tertanam dalam proyek. Harap dicatat bahwa ada dua versi dari board: satu yang beroperasi pada 5V (seperti keba-nyakan papan Arduino), dan salah satu yang berope-rasi pada 3.3V. Pastikan untuk memberikan yang benar daya dan penggunaan komponen yang operasi tegang-an cocok dengan board.

Gambar 2.23:



2.6.1.9      Arduino Mega ADK

Arduino MEGA ADK adalah board mikrokontroler AT mega 2560 berdasarkan (datasheet). Memiliki an-tarmuka 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 (ha-rdware port serial), osilator kristal 16 MHz, koneksi USB, jack listrik, header ICSP, dan tombol reset.

Arduino MEGA ADK berdasarkan Mega 2560.Mi-rip dengan Mega 2560 dan Uno, hotel ini memiliki se-buah ATmega8U2 diprogram sebagai konverter USB-to-serial. Revisi ke 2 dari board ADK memiliki resistor menarik garis 8U2 HWB ke tanah, sehingga lebih mu-dah 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 bera-daptasi dengan tegangan yang tersedia dari pap-an. Di masa depan, shield akan kompatibel ba-ik dengan arduino yang menggunakan AVR yang beroperasi dengan 5V dan dengan Arduino Due yang beroperasi dengan 3.3V. Yang kedua ada-lah pin tidak terhubung, yang disediakan untuk tujuan pengembangan.


Gambar 2.24:


2.6.1.10      Arduino Esplora



Arduino Esplora adalah papan mikrokontroler ber-asal 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 ha-rus belajar tentang elektronik dari pertama. Untuk langkah-demi-langkah pengantar Esplora, memeriksa Memulai dengan Esplora panduan.

Esplora onboard suara dan cahaya output, dan be-berapa sensor input, termasuk joystick, slider, sensor suhu, accelerometer, mikrofon, dan sensor cahaya. Hal ini juga memiliki potensi untuk memperluas kemampu-an dengan dua input dan output konektor Tinkerkit, dan soket untuk layar LCD warna TFT.

Seperti papan Leonardo, yang Esplora menggunak-an mikrokontroler AVR Atmega32U4 dengan 16 MHz osilator kristal dan koneksi USB mikro mampu bertin-dak 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 ardu-ino. Ada empat LED Status :

ˆ     Pada [Hijau] menunjukkan apakah board mene-rima catu daya.

ˆ     L [yellow] terhubung langsung ke mikrokontroler, dapat diakses melalui pin 13.

ˆ     RX Dan TX [kuning] menunjukkan data yang di-kirim atau diterima melalui komunikasi USB De-wan berisi semua yang diperlukan untuk mendu-kung mikrokontroler, hanya menghubungkannya ke komputer dengan kabel USB untuk memulai-nya.

Gambar 2.25:


2.6.2    Arduino Tipe Serial

Arduino Serial, yaitu jenis mikrokontroler arduino yang menggunakan RS232 sebagai antar muka pemro-graman atau komunikasi computer.

Gambar 2.26:


2.6.3    Arduino Mega

Arduino MEGA, yaitu mikrokontroler Arduino de-ngan spesi kasi yang lebih tinggi, dilengkapi tambah-an 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 di-tujukan untuk penggunaan nirkabel. Arduino Fio ini menggunakan ATmega328P sebagai basis kontrolernya.

Gambar 2.28:


2.6.5    Arduino Lylypad

Arduino Lilypad, yaitu mikrokontroler dengan ben-tuk yang melingkar. Contoh: LilyPad Arduino 00, Li-lyPad Arduino 01, LilyPad Arduino 02, LilyPad Ardu-ino 03, LilyPad Arduino 04.

Gambar 2.29:


2.6.6    Arduino BT

Arduino BT, mikrokontroler Arduino yang meng-andung modul Bluetooth untuk komunikasi nirkabel.

Gambar 2.30:


2.6.7    Arduino Nano & Mini

Arduino Nano dan Arduino Mini, merupakan je-nis arduino berbentuk kompak dan digunakan bersa-ma breadboard. Contoh: Arduino Nano 3.0, Arduino Nano 2.x, Arduino Mini 04, Arduino Mini 03, Arduino Stamp 02.

Gambar 2.31:


2.7    Arduino Software IDE

IDE itu merupakan kependekan dari Integrated De-veloptment Enviroenment, atau secara bahasa mudah-nya merupakan lingkungan terintegrasi yang digunak-an untuk melakukan pengembangan. Disebut sebagai lingkungan karena melalui software inilah Arduino di-lakukan pemrograman untuk melakukan fungsi-fungsi yang dibenamkan melalui sintaks pemrograman. Ardu-ino menggunakan bahasa pemrograman sendiri yang menyerupai bahasa C. Bahasa pemrograman Ardui-no (Sketch) sudah dilakukan perubahan untuk memu-dahkan pemula dalam melakukan pemrograman dari bahasa aslinya. Sebelum dijual ke pasaran, IC mik-rokontroler Arduino telah ditanamkan suatu program bernama Bootlader yang berfungsi sebagai penengah antara compiler Arduino dengan mikrokontroler.

Arduino software IDE dibuat dari bahasa pemro-graman JAVA. Arduino IDE juga dilengkapi dengan library C/C++ yang biasa disebut Wiring yang mem-buat operasi input dan output menjadi lebih mudah. Arduino IDE ini dikembangkan dari software Proces-sing yang dirombak menjadi Arduino IDE khusus un-tuk pemrograman dengan Arduino.

Gambar 2.32:






Bab 3



IMPLEMTASI





3.1    Pendahuluan

Dalam pembuatan Retro Snake NokianGame wi-th Arduino, komponen yang paling dibutuhkan sudah tentu Arduino itu sendiri. Selanjutnya ada beberapa komponen yang nantinya akan dijelaskan sebagai beri-kut:

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

ˆ     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 di-butuhkan untuk proyek tersebut. anda tentu saja me-nambahkan komponen tambahan jika anda mau. Se-telah anda memilih semua yang anda butuhkan, hanya tinggal klik on generate.

3.1.3    Aplikasi dan Online Service

ˆ     Circuit.io

ˆ     Arduino

3.2    Tentang Proyek

Super Mario, Tetris, Pac-Man. Tidakkah kamu ber-harap bisa memainkan kembali game ini untuk meng-habiskan waktu luang anda didepan layar hitam de-ngan resolusi minimal dan memaikan game yang sa-ngat adiktif? Nah, setelah kami menambahkan layar Nokia ke circuito.io, proyek ini takkan terelakkan. Ka-mi 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 un-tuk 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 me-nempatkan semua komponen pada papan, anda bisa mulai mengaitkannya satu sama lain dan ke Arduino. Ikuti saja wizard, langkah demi langkah, semudah itu!
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 anta-ra semua komponen yang anda pilih. Kode ini akan membantu anda menguji bahwa anda memasang sir-kuit 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, ma-ka anda bisa mengujinya. Semua langkah untuk menguji secara spesi k komponen yang anda gunakan, diu-raikan di bagian "test" dari reply circuito.io. Setelah semuanya diatur dengan benar, Anda bisa melambaik-an selamat tinggal ke circuito.io reply, sampai ketemu dilain waktu.


3.4    Mengubah Code

Jadi segala sesuatu di sirkuit dan kode Anda ter-lihat hebat. Sudah waktunya untuk mengambil kode kustom yang kami buat khusus untuk proyek Snake.

ˆ     Buka le rmware.ino yang mencakup semua li-braries 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
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);
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];
}

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

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 = (((0x00 + bh) << 8) + bl);

if (score > high)

{

high = score;
bh = (high >> 8);
bl = high & 0x;
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))
{

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

}
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");
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'
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:


Gambar 4.2:


Gambar 4.3:









Bab 5



HASIL GAME





5.1    Kesimpulan

Pada percobaan membuat permainan snake ini da-pat dirangkum bahwa penulis merancang sebuah model konsol yang mampu mengendalikan permainan hand-phone dengan beberapa komponen yang saling meleng-kapi satu sama lain dan bekerja dengan baik.

Oleh karena itu, dapat diasumsikan bahwa kompo-nen yang tadinya terpisah dapat mencapai kinerja yang lebih baik saat pengguna bekerja sama satu sama la-in untuk mengirim dan menerima data, daripada saat mereka bersaing untuk mendapatkan akses ke sumber daya yang sama.

5.2    Saran

Untuk kedepannya, dengan menggunakan cara se-perti ini diharapkan untuk membuat yang lebih baik lagi dari yang kami buat.






Bab 6


Lampiran

Gambar 6.1:


Daftar Pustaka




[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/ 4-jenis-dan-11-genre-game-yang-mana-favorit-

kamu

[6]   http://tentangarduino.blogspot.co.id/2014/09/macam-macam-arduino-iniakan-saya.html










Komentar

Postingan populer dari blog ini

Profil Yuuki Asuna (Asuna)

Profil Yui Sword Art Online

10 Anime Terbaik (Menurut Penulis)