George-Alexandru NEGRUŢIN (3394) - Memory Game with Leds

Autorul poate fi contactat la adresa: Login pentru adresa

Introducere

  Proiectul consta in realizare unui joc in care dispozitivul aprinde un numar de leduri , apoi utilizatorul
  va trebui sa aprinda aceleasi leduri din butoane, daca s-au aprins aceleasi leduri , se vor aprinde toate
  ledurile, semn ca s-au aprins cele corecte.

Descriere generală

Schema bloc :

Hardware Design

Bill of materials Pachet de componente de baza:

placa PM x 1
ATMEGA324PA-PU x 1
USB-B Conector x 1
16MHZ Quartz 16MHz x 1
dioda Zener BZX55C3V3 x 2
lED 3mm rosu x 2
K1X10 WSL040 x 1
K2X10 x 1
pushbutton x 2
rezistenta 100R x 3
rezistenta 470R x 3
rezistenta 1K5 x 1
rezistenta 10K x 1
condensator 100nF x 3
condensator 15pF x 2
soclu microcontroller x 1
jumper x 1

Materiale infara de cele din pachetul standard :
rezistenta de 330ohm x 6
led 3mm rosu x 6
pushbutton x 6
placa suport x 1

Scheme electrica :

Software Design

Descrierea codului aplicaţiei (firmware):

  • compilator : gcc-avr (WinAVR)
  • IDE : Programmer's Notepad
  • librarii : avr-libc, stdlib.h (varianta avr), util/delay.h

Functii implementate :

  • initializare_ADC - se seteaza referinta de comparare, selectare factor prescalare de ceas.
  • Read_ADC - intoarce valoarea citita (numar intre 0 si 1024).
  • Nr_buton - intoarce index-ul butonului apasat.
  • Aprindere_led - aprinde si stinger un led specificat.
  • initializare - seteaza pinii de iesire ,intrare, activeaza rezistentele de pull-up.
  • patru functii care genereaza anumite secvente pe parcursul jocului.

Rezultate Obţinute

Descrierea jocului :

La inceput sunt aprinse anumite leduri(secventa de inceput) semn ca a pornit jocul, apoi programul incepe sa aprinda random doua led-uri, folosind ca si seed valoarea intoarsa din ADC (citire voltaj dintr-un pin in “aer”), daca secventa de leduri este reprodusa corect, se vor aprinde si stinge toate led-urile semn ca s-a raspuns corect, si se va genera o noua secventa cu 3 led-uri, apoi de 4, apoi de 5 led-uri, daca s-a reprodus corect si secventa cu 5 led-uri , device-ul va folosi secventa de final ce semnifica terminarea jocului. Daca se reproduce gresit o secventa, se va genera o secventa care seminifica ca s-a gresit si se va reseta jocul, si o va de la inceput (secventa cu 2 led-uri).

The Adobe Flash Plugin is needed to display this content.

Concluzii

In urma realizarii proiectului am invatat sa lipesc anumite componente electronice, si cum se genereaza numere random pe un microcontroller avand ca seed pentru functia rand , voltajul citit dintr-un pin analog in “aer”, folosind ADC. O problema am intampinat la rezistentele pull-down puse de mine, nu reuseam sa testez daca un buton este apasat, am fost nevoit sa renunt la rezistentele pull-down si sa activez rezistentele pull-up din microcontroller. A fost un proiect interesant, deoarece a fost un proiect practic.

Download

Bibliografie/Resurse

pm/prj2016/aconstantinescu/memory-game-with-leds.txt · Last modified: 2021/04/14 17:07 (external edit)
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