Pong
Nume: Dobre Andreea-Viktorya
Grupa: 331AA
Introducere
Proiectul constă în realizarea jocului clasic Pong, afișat pe un ecran. Jocul este conceput pentru un singur jucator, având la dispoziție două butoane pentru a-și controla platforma vertical (sus și jos). Pe ecran, mingea se deplasează și ricoșează atunci când lovește platformele jucătorilor sau marginile superioare și inferioare ale ecranului. Jocul se termina in momentul in care minge pica. Scopul proiectului este de a oferi un mod simplu și distractiv de a te juca.
Descriere generală
Diagrama bloc
Inițial apare un ecran de start pentru a împiedica începerea automată a jocului când circuitul este alimentat de la USB. Pentru acesta se folosește un buton separat.
O dată apăsat acel buton apar pe ecran: scorul - în partea de sus, plaftorma și mingea. Mingea va incepe să se miste într-o direcție aleatoare pornind din centrul ecranului.
Hardware Design
Hardware desing
ecran oled
Arduino UNO R3
butoane
giroscop
Schema Circuit
Bill Of Materials
Se mai pot adauga componente ulterior.
Imagini componente
Software Design
Laboratoare folosite
Laboratorul 0 – GPIO → folosit pentru configurarea pinilor pentru butoane.
Laboratorul 1 – UART → folosit pentru a afișa informații de debug în consola serială.
Laboratorul 2 – Întreruperi → folosit pentru tratarea apasărilor de buton folosind debouncing.
Laboratorul 6 – I2C → folosit pentru afișajul pe ecran.
Motivatia alegerii bibliotecilor:
#include <Wire.h>: Giroscopul L3GD20H este conectat prin I2C (pinii SDA si SCL), iar aceasta biblioteca gestionează transmiterea și primirea de date I2C.
#include <SPI.h>: Display-ul OLED folosește SPI pentru comunicare, iar biblioteca SPI.h este necesară pentru controlul pinilor MOSI, SCK, CS.
#include <Adafruit_GFX.h>: Pentru a folosi funcțiile precum drawPixel(), drawRect(), drawFastVLine(), necesare pentru a desena mingea si paleta.
#include <Adafruit_SSD1306.h>: Este necesară pentru a trimite datele către display-ul OLED.
#include <Adafruit_L3GD20.h>: Pentru functii precum gyro.begin() și gyro.read() pentru a obține valorile de rotație (în jurul axelor X/Y/Z), folosite pentru a controla paleta din jocul Pong
Rezultate Obţinute
Care au fost rezultatele obţinute în urma realizării proiectului vostru.
Concluzii
Download
O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului: surse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună

.
Fişierele se încarcă pe wiki folosind facilitatea Add Images or other files. Namespace-ul în care se încarcă fişierele este de tipul :pm:prj20??:c? sau :pm:prj20??:c?:nume_student (dacă este cazul). Exemplu: Dumitru Alin, 331CC → :pm:prj2009:cc:dumitru_alin.
Jurnal
Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului.
Bibliografie/Resurse