Table of Contents

Toma Mihai Dragos 332CB

Joc snake

Introducere

Ce face: Proiectul meu implică construirea unei plăci Arduino cu un display LCD și funcționalitatea de a juca jocul Snake, însoțit de efecte sonore/muzic fundal. Utilizatorul poate controla direcția șarpelui din joc folosind butoanele, iar difuzorul redă sunetele custom implementate de mine.

Scopul: Scopul proiectului meu este de a crea o experiență de divertisment interactivă și personalizată. Integrând jocul clasic Snake, îmi propun să combin pasiunea pentru tehnologie și programare cu o creativitatea.

Idea inițială: Ideea a pornit de la dorința mea de a explora posibilitățile Arduino și de a-mi pune abilitățile de programare la încercare într-un mod distractiv și creativ. Jocul Snake, fiind unul dintre primele jocuri pe care le-am jucat, a fost alegerea perfectă pentru acest proiect.

Utilitate personală: Consider că acest proiect este util pentru mine, deoarece îmi oferă o oportunitate de a învăța și de a experimenta cu tehnologia Arduino într-un mod practic și distractiv. În plus, finalizarea proiectului îmi va oferi o satisfacție personală și o realizare în domeniul hobby-ului meu.

Descriere generală

Ideea mea este in felul urmator: jucatorul are 4 buatone la dispozitie si apasa unul dintre ele pt a schimba directia sarpelui pe display. Vreau sa am o muzica de fundal care sa cicleze intre melodii, si poate chiar efecte sonore. MP3 player o sa aiba un sd card cu aceste sunete (muzica de fundal). O sa am si mai multe nivele in care sarpele se va misca cu viteze diferite. Un led RGB o sa zica la ce nivel esti prin 3 culori: albastru - 1, verde - 2, rosu - 3

Hardware Design

Piese:

Schema electrica

1. LCD 5110 Nokia

Acesta l-am conectat la niste pini digitali de pe arduinoul meu si am folosit libraria Adafruit_PCD8544 pt a citi informatia si a da diferite outputuri pe ecranul meu. Pini folositi de pe arduino sunt: D2-D6 5 pini digitali pt a initaliza LCD, unul pt alimentare VCC, unul pt ground si unul de lumina pe care l-am conectat la 3.3v impreuna cu cel de VCC (merge si la 5v, dar am pus la 3.3v)

2. Cele 4 butoane

Aici am 4 butoane cu cate 2 pini. Unul il conectez la pinul analog pe care il convertesc la digital si celalat in ground din breadboard (o sa se vada in poza). Pini folositi A0-A3

3. DFPlayer Mini MP3 Player

Am conectat 5 pini aici: TX si RX pe 10 si 11 si le-am configurat eu si speakerul in MP3 player. Am mai pus VCC si ground si inca un pin, BUSY, care ma ajuta sa vad cand s-a terminat o melodie

4. Difuzor

Acesta este conectat in MP3 player pt a putea pune muzica

5. LED RGB

Acest led se aprinde pentru fiecare nivel:

Software Design

Mediu de Dezvoltare (IDE): Arduino IDE 2.3.2

Librării Utilizate:

Structura pentru Snake:

Algoritmi Implementați:

Funcții și Detalii Implementate

Funcția setup():

Funcția start_game():

Funcția placeFood():

Funcția handleInput():

Funcția moveSnake():

Funcția drawGame():

Funcția checkCollision():

Funcția resetGame():

Funcția checkMusicFinished():

Funcția loop():

Concepte folosite:

GPIO: (General Purpose Input/Output):

UART:

Timere:

SPI (Serial Peripheral Interface):

Github:

https://github.com/TomaDragos1/Snake-Game

Rezultate obtinute

Link video demo: https://drive.google.com/file/d/174FOXEIRw77xygK2Ms6H3TgjOdKV4QpC/view?usp=sharing

Produs final:

Concluzii

Un proiect cu adevarat captivant, in care am reusit sa aplic tot ceea ce am invatat la curs si in laborator. Mi-a placut in mod deosebit partea de hardware, cu toate provocarile pe care a trebuit sa le rezolv.

Jurnal

Timeline:

Bibliografie

Biblioteci:

Software:

Hardware: