Proiectul este insiprat din jocul care apare pe Google Chrome atunci cand nu avem acces la internet si este un endless runner cu un dinosaur care trebuie sa sara peste obstacole. Scopul proiectului este realizarea unui endless runner similar.
Acest sistem include un Arduino UNO, conectat la un ecran LCD, un buton si un LED. Jocul este similar cu cel disponibil în browser atunci când conexiunea la internet este întreruptă. Jucătorul controlează un personaj care trebuie să sară peste obstacole generate aleatoriu. Fiecare obstacol trecut cu succes aduce un punct.
LED indică nivelul de dificultate, dupa un anumit timp acesta se va aprinde si va face jocul mai greu. Un potențiometru este utilizat pentru ajustarea contrastului ecranului LCD.
Exemplu de schemă bloc: http://www.robs-projects.com/mp3proj/newplayer.html
Lista componente:
Schema Electrica:
Display-ul LCD și pinii pentru buton și LED sunt configurați. Se alege aleatoriu un personaj între dinozaur și cavaler, iar caracterul este creat pe display-ul LCD.
Codul verifică dacă jocul s-a terminat. Dacă da, așteaptă apăsarea butonului pentru restart. Starea butonului este citită pentru a detecta dacă jucătorul a apăsat pentru săritura personajului. Timpul actual este verificat pentru a determina dacă săritura personajului trebuie să se termine. Poziția obstacolului este actualizată periodic, iar obstacolul se deplasează spre stânga.
Personajul este afișat în poziția corectă (pe sol sau în aer, în funcție de starea de săritură). Obstacolul este desenat pe ecran în poziția sa curentă.
Dacă obstacolul ajunge la poziția personajului și acesta nu sare, se detectează o coliziune, jocul se termină și se afișează mesajul “CRASH!” împreună cu scorul. Dacă obstacolul trece de personaj, scorul crește și, dacă atinge 10 puncte, LED-ul se aprinde. Viteza obstacolelor crește după atingerea a 10 puncte pentru a crește dificultatea jocului.
Dacă jocul s-a terminat, apăsarea butonului va reseta jocul, alegând din nou aleatoriu între dinozaur și cavaler și repornind totul de la zero.
A fost un proiect fun, partea de soft a fost considerabil mai greu de implementat decat partea de hard. Ma bucur ca il pot folosi mai departe sa ma joc ceva atunci cand raman fara net.
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.
Nu am intampinat multe probleme in cadrul acestui proiect. Singura chestie a fost ca mi s-a ars led-ul pe care il foloseam pe ultima suta de metri si am fost nevoit sa folosesc led-ul de pe placuta.