Maria-Elena MIHĂILESCU - Connect Four pe LED-uri

Autorul poate fi contactat la adresa: Login pentru adresa

Introducere

Connect Four este un joc ce se joacă în 2 jucători pe o tablă care conține discuri sau bile colorate. Fiecărui jucător îi este atribuită o culoare: roșu sau verde. O mutare constă în alegerea unei coloane din tabla de joc. Piesa va fi pusă în primul loc disponibil pe coloana aleasa de jucător și colorată în culoarea acestuia. Primul jucător care are o linie de 4 piese de aceeași culoare(verticală, orizonatală sau oblică) va câștiga jocul.

Este un joc de logică, ușor de jucat și amuzant în același timp.

Descriere generală

Proiectul va implementa jocul Connect Four folosind o matrice de 5×5 LED-uri bicolore. Primul jucător va avea culoarea roșie, iar cel de-al doilea verde. Folosindu-se de două butoane de control(stânga - dreapta) și de un buton de selectare(Enter), jucătorul va putea să-și aleagă coloana dorită. De asemenea, va exista și un timer. Fiecărui jucator îi sunt acordate 10 secunde pentru a executa o mișcare. Dacă acest timp expiră, atunci se va considera coloana indicată până în acel moment.

Schemă bloc

în această schemă, placa de bază ce conține un micro-controller ATMEGA324 este alimentată de o sursă externă, primește comenzi prin intemediul butoanelor, aprinde LED-urile din matricea de LED-uri conform logicii jocului și afișează pe display timpul rămas pentru efectuarea mutării.

Hardware Design

Listă de piese

  • componente placă de bază laborator - 1
  • leduri bicolore cu 3 terminale (roșu - verde) - 25
  • rezistențe de 220 ohmi - 12 (5 pentru liniile de roșu și 7 pentru afișajul 7 segmente)
  • rezistențe de 150 ohmi - 5
  • placă de test 13cm x 25cm
  • fire mamă-mamă - 30
  • ULN2003A - 1
  • afișaj dual 7 segmente
  • butoane - 4
  • headere tată

Schema electrică în Eagle

Schema electrică inițială

Schema electrică în Eagle refăcută (conectat pinul de GND al ULN2003A la ground și schimbat pinii - nu am pus nimic pe PD6 pentru ca era conectat butonul de reset)

Implementarea matricii de LED-uri

Așa arată plăcuța de test după lipirea componentelor

Software Design

Codul a fost scris într-un editor de text normal (Notepad++).

Pentru compilare am folosit Winavr.

Codul a fost încărcat pe plăcuță folosind HIDBootloader.

Rezultate Obţinute

Rezultat final, după implementarea software-ului

Proiectul este funcțional și se poate juca în două persoane. Nu merg decât 3 butoane din 4 (am avut o problemă cu unul din butoane, care la cea mai mică atingere, înregistra mai multe apăsări, cu tot cu debouncing. Am schimbat butonul cu butonul care initial era folosit pentru reset-ul jocului, gândindu-mă că jocul se poate reseta apăsând pe butonul RESET de pe plăcuța de bază. Am observat că butonul funcționează mai bine decât precedentul buton.)

Butoanele de pe plăcuță au următoarele semnificații:

                  
MOVE_LEFT                MOVE_RIGHT
                                               ENTER
     DO_NOTHING

Concluzii

Proiectul a fost amuzant și interesant de implementat. Partea hardware a fost cea mai grea deoarece nu am știut de la început de ce componente am nevoie(mi-am dat seama că am nevoie de tranzistori de-abia înainte să încep să lipesc firele). Lipirea și aranjarea componentelor a fost o muncă destul de antrenantă și a necesitat multă atenție.

Implementarea software-ului a fost chiar ușoară, combinând lucrurile învățate în laborator.

Per total, sunt mulțumită de proiect și de cum arată în faza finală.

Download

Arhiva cu Codul

Jurnal

Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului.

Bibliografie/Resurse

Datasheet

L59Kinghbright LED datasheet

7digit Display Datasheet

ULN2001A Datasheet

ATMEGA324PA-PU datasheet

Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe Resurse Software şi Resurse Hardware.

pm/prj2016/astratulat/47701.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