This shows you the differences between two versions of the page.
pm:prj2021:avaduva:memorygame [2021/05/21 16:09] andreea.zarioiu |
pm:prj2021:avaduva:memorygame [2021/05/26 01:19] (current) andreea.zarioiu |
||
---|---|---|---|
Line 10: | Line 10: | ||
===== Descriere generală ===== | ===== Descriere generală ===== | ||
- | Jocul incepe prin a genera prima secventa de culori, aceasta ramane pe ecranul aplicatiei Android cateva secunde dupa care dispare. Din acest moment utilizatorul are o limita de timp in care trebuie sa o reproduca apasand butoanele din dreptul ledurilor culorilor respective. Cand se termina timpul si utilizatorul e gata de sa inceapa sa introduca culorile, apasa pe butonul "Ready". Culorile introduse apar pe telefon in timp real, la apasarea butoanelor de pe breadboard. La apasarea butonului gresit buzzerul produce o melodie de fail si jocul se opreste. Daca introduce corect culorile scorul creste si trece la nivelul urmator altfel, jocul se termina. In aplicatie sunt afisate culorile si scorul jucatorului. | + | Jocul incepe prin a genera prima secventa de culori, aceasta ramane pe ecranul aplicatiei Android cateva secunde dupa care dispare. Din acest moment utilizatorul are o limita de timp in care trebuie sa o reproduca apasand butoanele din dreptul ledurilor culorilor respective. Cand se termina timpul si utilizatorul e gata sa introduca culorile, apasa pe butonul "Ready". Culorile introduse apar pe telefon in timp real, la apasarea butoanelor de pe breadboard. La apasarea butonului gresit buzzerul produce o melodie de fail si jocul se opreste. Daca introduce corect culorile scorul creste si trece la nivelul urmator. In aplicatie sunt afisate culorile si scorul jucatorului. |
===Schema bloc=== | ===Schema bloc=== | ||
Line 37: | Line 37: | ||
===== Software Design ===== | ===== Software Design ===== | ||
- | Am folosit Android Studio pentru a dezvolta aplicatia ce comunica cu placuta Arduino. | + | Codul aplicatiei ce comunica cu placuta este scris in Java in Android Studio. |
- | La deschiderea aplicatiei se realizeaza un socket intre telefon si modulul HC-05 prin identificarea acestuia | + | La deschiderea aplicatiei se realizeaza un socket (ce este de fapt un obiect de tip BluetoothSocket din API.ul Android) intre telefon si modulul HC-05 prin cautarea dispozitivelor disponibile si identificarea acestuia prin adresa MAC. Comunicarea are loc dupa conectarea socketului prin clasele InputStream si OutputStream fiind de tipul full-duplex. La apasarea butonului "Start" se genereaza o secventa de culori si se porneste un Timer. La terminarea timpului culorile dispar iar la apasarea butonului "Ready" se asteapta input de la modulul HC-05. Dupa fiecarea culoare trimisa se verifica daca este cea corecta iar daca nu este se trimite un mesaj de eroare la placuta si se porneste buzzerul. Culorile sunt codificate prin caractere si pastrate intr-un hashmap. Pentru codul incarcat pe placuta m-am folosit de IDE-ul dedicat Arduino si de interfata seriala. |
- | cu adresa MAC. La apasarea butonului "Start" se genereaza o secventa de culori si se porneste un Timer. La terminarea timpului | + | |
- | culorile se sterg iar la apasarea butonului "Ready" se asteapta input de la modulul HC-05. Dupa fiecarea culoare trimisa se verifica | + | |
- | daca este corecta iar daca nu este se trimite un mesaj de eroare la placuta si se porneste buzzerul. | + | |
- | + | ||
- | Pentru codul incarcat pe placuta m-am folosit de IDE-ul dedicat Arduino si de interfata seriala. | + | |
===== Rezultate Obţinute ===== | ===== Rezultate Obţinute ===== | ||
Line 71: | Line 66: | ||
===== Concluzii ===== | ===== Concluzii ===== | ||
+ | Mi-a placut sa imbin dezvoltarea de aplicatii mobile cu informatiile acumulate in cadrul laboratorului de PM. Comunicarea dintre telefon si microcontroller prin modulul HC-05 de Bluetooth este cu siguranta partea cea mai interesanta si o regasesc in multe deviceuri pe care le folosesc in viata de zi cu zi. | ||
===== Download ===== | ===== Download ===== | ||
+ | |||
+ | Cod: {{:pm:prj2021:avaduva:memory_game.zip?600 }} | ||
+ | |||
+ | <html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> | ||
===== Jurnal ===== | ===== Jurnal ===== | ||
Line 86: | Line 86: | ||
===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== | ||
+ | |||
+ | https://developer.android.com/reference/android/bluetooth/BluetoothSocket | ||
https://developer.android.com/reference/java/io/InputStreamReader - citire date primite prin Bluetooth | https://developer.android.com/reference/java/io/InputStreamReader - citire date primite prin Bluetooth |