Autorul poate fi contactat la adresa: Login pentru adresa
Pentru acest proiect doresc sa implementez un scoreboard digital ce poate fi folosit pentru jocuri de Darts. Acesta va suporta 3 moduri de joc: Cricket, 301 si 501. Scorurile vor fi introduse cu ajutorul unui keypad si vor fi afisate pe LCD pe perioada jocului.
Descrierea celor 3 moduri de joc
- Cricket
Fiecare jucator trebuie sa nimereasca de cate 3 ori pentru a inchide fiecare din segmentele: 20, 19, 18, 17, 16, 15 si centru. Restul sunt neutre si nu aduc beneficii. Pentru a inchide o zona, se poate lovi si in segmentul care marcheaza dublu, respectiv triplu, astfel din numarul de lovituri ramase se vor scadea 2, respectiv 3 lovituri (triplu evident va inchide zona imediat pentru jucatorul respectiv). Jocul se termina cand toate zonele au fost inchise de catre un jucator, iar acesta castiga.
- 301
Fiecare jucator trebuie sa inregistreze puncte cat mai multe. Acestea se vor scadea din totalul de 301, insa trebuie facut un numar fix de 301 puncte. Pe langa aceasta, lovitura de incheiere trebuie sa fie in segmentul care dubleaza. De exemplu, daca un jucator are 10 puncte ramase, ca sa castige trebuie sa loveasca 5-dublu pentru a face fix 10; daca face mai mult de 10 puncte isi pierde tura si este randul celuilalt jucator sa arunce. Modul pe care l-am implementat suporta 4 jucatori
- 501
La fel ca 301, dar scorul incepe de la 501. Acest mod de joc este un bonus pe care l-am realizat ulterior.
De ce?
Acest proiect ar putea fi folosit la orice joc de darts, fara a fi nevoie de foi sau o aplicatie online/pe telefon. De asemenea pe viitor acest proiect poate continua sa fie imbunatatit, adaugand moduri noi de joc sau un LCD mai mare etc.
Descriere hardware
In final, scoreboard-ul va fi controlat cu ajutorul keypadului (nu mai este optional, este varianta cu care am realizat actual). Butoanele vor permite introducerea scorului (301/501) sau alegerea segmentului (Cricket). Va exista un buton general pentru reset. Toate datele sunt afisate real-time pe LCD.
Descriere software
Va exista un meniu de start in care alegi unul din cele 3 moduri de joc. Pentru fiecare din acestea va aparea un scoreboard unde se pot introduce date in mod interactiv. Fiecare modificare se va vedea automat si pe LCD.
Lista de piese:
Schema electrica:
Initial sau dupa apasarea butonului de reset, va fi afisat meniul principal din care se poate alege unul din cele 3 moduri de joc. Pentru acest meniu, cat si pentru cele 3 moduri de joc a fost implementata o functie generala de control. Toata interactiunea cu programul se face folosind keypadul. Pentru modurile de joc 301 si 501 exista posibilitatea sa joace 4 persoane in acelasi timp, fiecare cu scorul propriu si counter pentru victorii. Modul Cricket este doar pentru 2 jucatori.
Controls:
- 301 si 501: se alege playerul activ folosind una din tastele A, B, C, D. Se introduce scorul folosind * si se poate sterge o cifra cu #. Scorul se introduce folosind cifrele 0-9, numere de maxim 3 cifre.
- Cricket: schema este mai simpla. Cu A si B se alege jucatorul activ. Se introduc maxim 3 hituri pentru fiecare din coloanele tabelei folosind cifrele 0-9.
Rezultatul este o aplicatie interactiva foarte utila pentru pasionatii de Darts. Existenta unui device dedicat pentru a tine scorurile este foarte folositor.
Mai exista cateva cazuri in care LCD-ul se comporta anormal in cazul in care vreunul din pini nu este conectat cum trebuie. Foarte rar se intampla ca pinul care sta pe GND sa se miste si sa nu mai faca contact cum trebuie, moment in care LCD-ul sta alb si nu afiseaza ceva.
A fost o experienta unica in ceea ce priveste programarea in general. Sa vezi rezultatele obtinute pe un LCD si sa controlezi totul dintr-un keypad in miniatura ofera o satisfactie neobisnuita.
Eu mi-as fi dorit sa mai pot adauga animatii sau moduri de joc interesante, dar din pacate programul deja este foarte aproape de limita memoriei flash si nu se mai pot adauga alte features. Poate pe un controller cu mai multa memorie voi continua proiectul.
Resurse Software
https://circuitdigest.com/microcontroller-projects/keypad-interfacing-with-avr-atmega32
http://winavr.sourceforge.net/
https://notepad-plus-plus.org/
Resurse Hardware
https://cdn-shop.adafruit.com/datasheets/ILI9341.pdf
http://ww1.microchip.com/downloads/en/DeviceDoc/doc2503.pdf
http://www.alldatasheet.com/datasheet-pdf/pdf/134369/ETC1/LM1086.html
https://www.optimusdigital.ro/ro/
https://www.conexelectronic.ro/