This is an old revision of the document!


Wii Fruit Ninja

E-mail contact: dragos_andrei.boncu@stud.acs.upb.ro

Introducere

Ce face proiectul?

Proiectul este un joc asemănător cu celebrul joc pe Smartphone, Fruit Ninja. Proiectul prezintă un ecran LCD pe care va apărea un fruct la cateva secunde și o direcție din care este indicat ca fructul să fie tăiat. Jucătorul prezintă o sabie, asemănător cu controller-ul Wii, ce prezintă un modul accelerometru/giroscop pentru a înregistra mișcările și direcția de tăiere. În cazul în care jucătorul taie o bombă(obiect de pe ecran), sau sensul tăierii este greșit, unul dintre led-urile ce vor reprezenta viețile jucătorului se va închide, iar buzzer-ul va produce un sunet specific. De asemenea, sabia prezintă un buton de lock pentru a ignora miscările greșite ale utilizatorului.

Care este scopul proiectului?

Scopul este crearea unui joc asemănător cu cele de pe consola Wii care este totodată interactiv.

Ideea de la care am pornit

Am plecat de la dorința de a face un proiect bazat pe înregistrarea mișcărilor folosind senzori de proximitate sau un accelerometru/giroscop.

Utilitate

-distracție
-dezvoltare timp de reacție

Descriere generală

Schemă bloc

Descriere schemă bloc

Jucătorul va trimite input-uri către Arduino prin intermediul sabiei legată la modul, și prin intermediul butoanelor(exemplu: cel de lock, ca va bloca acceptarea input-urilor de la modul). Aceste inputuri vor fi folosite în cadrul gameplay-ului propriu-zis, de unde, în funcție de rezultate, se va trimite un semnal către buzzer, ori led-ul/led-urile nu va/vor mai primi curent din partea placuței Arduino.

Hardware design

Listă componente

-Arduino
-breadboard
-fire
-2 butoane
-ecran LCD
-1 buzzer
-3 led-uri
-3 rezistente
-modul accelerometru si giroscop

Software design

Proiectul a fost realizat în Arduino IDE. Pentru realizarea proiectului am folosit următoarele biblioteci:
-TFT.h si SPI.h folosite pentru LCD-ul KMR-1.8 SPI
-Wire.h folosit pentru MPU9250

Jocul începe cu un ecran de start joc, definit in setup(). Dacă butonul de reset este apăsat, se apelează funcția reset() ce pornește jocul, împreună cu cele 3 led-uri și generarea fructelor/direcțiilor de tăiere. Pe parcursul funcției loop(), se apelează funcția drawFruit() ce generează un număr random de la 0 la 6(6 fructe) si drawPointer() pentru săgeți. Se citește poziția inițială a accelerometrului și, după un delay de 2 secunde, dacă butonul 2 este apăsat, se preiau, din nou, informații despre accelerometru. În funcție de aceste coordonate se stabilește un boolean cu privire la tăiere, și la tăierea corectă, în funcție de pointer-ul afișat pe ecran. Dacă o bombă este tăiată sau un fruct nu este tăiat pe direcția dată, se pierde o viață, se stinge un led, și se activează sunetul buzzer-ului pentru 0.25 secunde. Când se pierd toate viețile, va apărea pe un ecran cu mesajul “You lost!” și jocul se poate lua de la capăt. Dacă fructul este tăiat corect, jucătorul primește o viață înapoi și pe ecran va aparea o linie pentru fiecare punct din scor. Cand este atins scorul de 40 de puncte, jocul este considerat câștigat.

Rezultate obținute

TODO

Concluzii

TODO

Download

Bibliografie/Resurse

Documentația în format PDF

pm/prj2021/dbrigalda/wiifruitninja.1622561911.txt.gz · Last modified: 2021/06/01 18:38 by dragos_andrei.boncu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0