Interactive X&O

Ichim Dumitru-Gabriel, 334CC

Introducere

Proiectul consta intr-un joc X&O: AI vs Human sau Human vs Human cu control prin butoane si afisaj pe o matrice 3×3 de leduri, calculul efectiv si deciziile fiind luate pe un telefon cu android. Imi place ideea de comunicare dintre placuta si telefon. Placuta poate sa culeaga informatii si sa afiseze diferite lucruri in timp ce un telefon cu o putere mai mare de calcul poate sa prelucreze acele date.

Descriere generală

Placuta este conectata la o matrice de butoane si la o matrice de led-uri ce reprezinta tabla. De asemenea telefonul o sa aiba o consola unde o sa fie afisat scorul pentru fiecare jucator/calculator sau anumite mesaje pentru starea jocului si a aplicatiei in sine. Placuta comunica cu un telefon cu android printr-un modul bluetooth. Telefonul realizeaza algoritmul jocului in functie de butonul apasat si transmite placutei led-ul de aprins.

Schema bloc

Hardware Design

Schema electrica

Lista de piese

  1. 9 Led-uri RGB 5mm
  2. 2 placi de test
  3. Tastatura 4×4 butoane
  4. Modul Bluetooth HC-05
  5. Cabluri - 43 cabluri mama-mama
  6. Bareta pini tata
  7. 18 Rezistente 2,2 kOhm
  8. 3 Shift Register 74HC595
  9. 2 bucati de fire nemufate de cupru

Software Design

Mediul de dezvoltare

Am lucrat pe Windows10 si am folosit Atom pentru codul sursa pus pe placuta si Android studio pentru realizarea aplicatiei de pe telefon. De asemenea am folosit materialele puse la dispozitie pe site-ul de pm: HIDBootFlash si am instalat avrgcc. Am fisiere separate .h/.c pentru functiile ce apartin de tastatura si shift registeruri.

Referitor la codurile de pe placuta respectiv aplicatie: Codul de pe placuta in mare are 2 roluri. Primul este de a vedea ce buton este apasat pe tastatura si a trimite un char catre aplicatie pentru a semnala butonul. Al doilea lucru pe care il face este sa astepte 3 octeti de la telefon reprezentand valorile celor 3 shift registeruri. Aplicatia trebuie sa primeasca un octet si sa il foloseasca in algoritmul jocului si sa calculeze octetii pe care ii trimite inapoi la placuta. Receptia de mesaje prin bluetooth si jocul x&o se afla pe threaduri separate.

Rezultate Obtinute

Conexiunea bluetooth dintre placuta si telefon merge bine, codul de pe placuta este simplu si independent de codul de pe telefon, astfel se pot aduce modificari jocului foarte usor. Jocul merge bine dar daca se apasa prea repede pe butoane nu apuca sa fie trimis si receptionat rezultatul fapt care duce la o stare de asteptate atat pe placuta cat si pe telefon.

Mai jos am atasat un video cu modul in care se poate juca acest joc.
https://youtu.be/YGPNupZzLlU

Jurnal

22.04.2019 - Milestone 1 (Tema proiectului, lista de piese si schema bloc)
05.05.2019 - Milestone 3 (Schema electrica)
14.05.2019 - Lipirea matricei de leduri
15.05.2019 - Lipirea shift registers pe pcb
17.05.2019 - M-am apucat sa lucrez ca codul de pe placuta si telefon
19.05.2019 - Proiectul era functional
23.05.2019 - Am updatat pagina de wiki

Concluzii

Consider ca proiectul a fost unul interesat si un mod foarte bun de a pune in practica ce am invatat. Mi-a placut ca noi am facut absolut tot, de la lipitul pieselor pe placuta la realizarea montajului pe baza schemei electrice si la scrirea codului pentru microcontroller si crearea aplicatiei de android.

Download

Cod sursa placuta

Cod sursa aplicatie android

Bibliografie/Resurse

  1. wiki-ul de PM (laboratoare + bootloader + fisierul Usart): http://cs.curs.pub.ro/wiki/pm/prj2018
  2. pentru conectarea pinilor la 74HC595 am folosit datasheetul lor: http://www.alldatasheet.com/datasheet-pdf/pdf/12198/ONSEMI/74HC595.html
pm/prj2019/ctranca/interactive-x.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