Table of Contents

Fazan

Introducere

Descriere generală a proiectului

Acest proiect are ca scop implementarea jocului “Fazan” pe un ecran LCD

Reguli

Hardware Design

Tastatura este simulată prin 19 leduri şi 5 senzori de lumină. S-a ales această metodă în locul unei matrice de butoane atât datorită uşurinţei în implementare, cât şi ca un model de alternativă (se elimină efectul de bouncing specific butoanelor).

Piesele folosite sunt:

Conectarea ecranului cu pinii ATmega32:

Conectarea ledurilor cu pinii ATmega32:

Fotodiodele sunt conectate pe portul A ne interesează valorile exacte înregistrate - folosim convertorul analog-digital.

Placuţa iniţială:

Schema este următoarea:

Proiectul în forma finală arată ca mai jos:

img_0290_fazan013.jpg

Se observă dispunerea celor 19 leduri astfel încât un grup de câte patru leduri indică o literă a alfabetului. Prin plasarea grupului de senzori deasupra unui astfel de grup şi folosirea senzorului de selecţie, se va putea alege o literă pentru construcţia cuvântului.

După cum se poate vedea, cei patru senzori se află pe o plăcuţă separată şi cu ajutorul lor se poate selecta litera dorită. Un cuvânt se termină prin alegerea simbolului ”.”. De asemenea există posibilitatea de a cere o sugestie (un hint) prin selectarea simbolului ”?”.

Software Design

S-a pornit de la sursa Laboratorului 1 pentru că era deja implementată interfaţarea cu ecranul LCD.

Din cauză ca distingerea unui led aprins de către un senzor de lumină depinde de lumina ambientală, în prima fază este nevoie de o “calibrare”: i se va cere utilizatorului să ţină câteva secunde placuţa cu senzori pe litera “A” pentru a determina valoarea pentru poziţia “stins”. Valoarea înregistrată de către ATmega32 va constitui referinţă pentru distingerea poziţiilor “stins” şi “aprins”.

Software-ul realizează următoarele acţiuni:

Rezultate obţinute

Jocul este funcţional însă nu am apucat să terminăm şi dicţionarul de cuvinte pe SD card.

Concluzii

Cele mai dificile au fost întocmirea planului de acţiune şi partea de gameplay a codului.

Din cauză ca distingerea unui led aprins de către un senzor de lumină depinde de lumina ambientală (altfel se poate juca doar dacă lumina ambientală şi-ar păstra valoarea pe întreg parcursul jocului), în prima fază ar fi nevoie de o “calibrare”: i se poate cere utilizatorului să ţină câteva secunde placuţa cu senzori pe litera “A” pentru a determina valoarea pentru poziţia “stins”. Valoarea înregistrată de către ATmega32 ar constitui referinţă pentru distingerea poziţiilor “stins” şi “aprins”.

Pentru că în Isis nu se pot folosi pinii PC6 şi PC7 ca pini de output, pentru simulare LCD-ul trebuie cuplat pe portul D.

Download

Bibliografie/Resurse