Buzz Wire

Autor

Introducere

Proiectul este reprezentat de un joc de tip Buzz Wire, în care jucătorul trebuie să transporte un inel cu mâner de-a lungul unui traseu de sârmă cu o formă provocatoare, fără să atingă metalul.

Scopul proiectului este de a pune în aplicare cunoștințele acumulate de-a lungul semestrului, creând, totodată, un joc.

Descriere generală

Schema bloc

Funcționalitate

La start, jucătorul apasă pe butonul de începere pentru a porni timer-ul și a activa buzzer-ul. De asemenea, LED-ul RGB, care indică numărul de greșeli curente, se va aprinde, difuzând o lumină verde.

Timer-ul va începe pe o bandă led, care va reprezenta scorul. Un timp mai mic de finalizare înseamnă un scor mai bun.

Jucătorul va mișca unealta de-a lungul traseului. Dacă atinge sârma, va fi avertizat printr-un buzz (pentru a da senzatia de curentare) și LED-ul RGB își va schimba culoarea (în portocaliu la prima greșeală, în roșu la a doua și stins la a treia).

Dacă LED-ul se stinge, jucătorul pierde si jocul, care se resetează. Când ajunge la final, el apasă pe butonul de stop, semnalizând finalul jocului. Scorul lui va rămâne câteva secunde pe banda led, fiind apoi înlocuit de scorul cel mai bun înregistrat de la pornirea plăcii.

Pe deasupra, va exista o melodie pusă pe fundal, prin intermediul buzzer-ului pentru a da senzația de joc arcade.

Hardware Design

Componente utilizate

  • Arduino Uno
  • 2 Breadboard-uri
  • Banda LED
  • LED RGB
  • 2 Butoane
  • Buzzer
  • Cabluri
  • Rezistențe
  • Sârmă
  • Placă de lemn
  • Bandă izolatoare

Schema Electrică

Software Design

Mediul de dezvoltare utilizat

  • Arduino IDE - scrierea codului și încărcarea lui pe plăcuță
  • Fritzing - dezvoltarea schemei electrice
  • Draw.io - crearea schemei bloc

Bibliotect folosite

  • pitches.h - rularea melodiei de fundal prin intermediul buzzer-ului

Funcții utilizate

  • buzz() - redarea unui buzz in momentul atingerii traseului
  • sing() - redarea melodiei de fundal pe baza milisecundelor trecute de la ultima iterație
  • updateTimer() - updatarea timer-ului pe baza milisecundelor trecute de la ultima iterație

Notă: logica jocului a fost implementată în funcția loop()

Rezultate Obţinute

Concluzii

Consider că dezvoltarea jocului a fost o experiență utilă, un bun prim contact cu lucrul cu microprocesoare, care a îmbinat construirea în atelier a jocului, conectarea componentelor pentru realizarea circuitului și dezvoltarea codului pentru Arduino, rezultând intr-un produs final, utilizabil.

Jurnal

  • 25.04 - alegerea temei
  • 10.05 - achiziționarea componentelor
  • 20.05 - schema electrică
  • 22.05 - crearea jocului fizic în atelier
  • 23.05 - implementarea buzzer-ului și conectarea la jocul fizic
  • 29.05 - adăugarea LED-ului pentru greșeli și a timer-ului
  • 01.06 - curățare cod, ajustare schemă electrică, filmarea demo-ului și updatarea documentației

Bibliografie/Resurse

pm/prj2021/agrigore/buzzwire.txt · Last modified: 2021/06/03 00:15 by vlad.sandu0308
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