Contact: Raducanu Constantin
Proiectul meu urmareste implementarea notoricului joc Snake. Pentru a aduce un nivel in plus de dificultate proiectului m-am gandit ca acesta sa fie controlat prin Bluetooth-ul telefonului mobil. Daca imi va ramane timp si proiectul initial va functiona, atunci voi incerca sa implementez si varianta multiplayer.
Jucatorul se va connecta prin Bluetooth la modul HC-O5, acesta va trimite datele spre ATMEGA, care va interpreta miscarea si o va afisa pe ecran.
Lista piese:
Pentru scrierea codului am folosit editorul de atom si un Makefile pentru compilare in linia de comanda.
Pentru implementarea jocului in sine m-am folosit de o masina de stari, care sa reprezinte fiecare stare a jocului. Pentru comunicarea cu modului de Bluetooth m-am folosit de protocolul USART si de o aplicatia in Android. Pentru partea de grafica m-am folosit de controlerul ST7735R care este utilizat si in laboratorul 5.
#include <avr/io.h> #include <util/delay.h> #include <stdlib.h> #include <stdbool.h> #include <inttypes.h> #include "./usart/usart.h" #include "./spi/spi.h" #include "./ST7735R/ST7735R_TFT.h"
Am facut anumite schimbari minore in anumite biblioteci pentru ca nu erau compatibile cu versiunea mea de avr-gcc.
Masina de stari:
while(1) { switch(game_status) { case STATE_MENU: menu_logic(); break; case STATE_GAME_RUNNING: game_logic(); break; case STATE_GAME_ENDED: end_game_logic(); break; default: menu_logic(); break; } }
Proiect a fost finalizat pana la capat si jocul functioneaza exact cum trebuie. Am incercat sa reduc cat mai mult numarul de buguri si a aduc cat mai multe optiuni proiectului. A creat pentru aceasta si un meniu de unde se pot face anumite setari ale jocului precum: alegerea unui anumit level sau a modului de joc.
A fost o experienta foarte frumoasa, chiar daca am avut anumite neplaceri pe parcurs, precum arderea primului LCD. Am invatat foarte multe din acest proiect.
Codul sursa: source_code_snake_bluetooth.zip
aprilie → 6 mai = finalizat placuta
9 mai → 13 mai = cumparat piese necesare
14 mai → 17 mai = am reusit sa ard lcd-ul :(
18 mai → 21 mai = am cumparat alt lcd si am testat toate piesele
21 mai → 24 mai = am scris codul programului
Aplicatia android: https://play.google.com/store/apps/details?id=appinventor.ai_uktagore.Bluetooth1
Biblioteca pentru controllerul de ST7735R: http://cs.curs.pub.ro/wiki/pm/lab/lab6
LCD: https://www.optimusdigital.ro/ro/optoelectronice-lcd-uri/1311-modul-lcd-spi-de-18-128x160.html?search_query=lcd&results=176
Bluetooth: https://www.optimusdigital.ro/ro/wireless-bluetooth/153-modul-bluetooth-master-slave-hc-05-cu-adaptor.html?search_query=bluetooth&results=127
Buzzer: https://www.optimusdigital.ro/ro/audio-buzzere/634-buzzer-pasiv-de-5-v.html?search_query=Buzzer&results=35
Breadboard: https://www.optimusdigital.ro/ro/prototipare-breadboard-uri/249-mini-breadboard-colorat.html?search_query=breadboard&results=103
Generate pdf