This shows you the differences between two versions of the page.
pm:prj2021:avaduva:memorygame [2021/05/19 17:47] 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 25: | Line 25: | ||
*Leduri\\ | *Leduri\\ | ||
*Rezistente\\ | *Rezistente\\ | ||
- | *Fire mama-tata\\ | + | *Fire tata-tata\\ |
*Butoane\\ | *Butoane\\ | ||
*Mufa baterie 9V\\ | *Mufa baterie 9V\\ | ||
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 ===== | ||
+ | |||
+ | {{ :pm:prj2021:avaduva:memory_game.jpeg?400 }} | ||
+ | |||
In urmatoarele poze se poate vedea topologia hardware a proiectului: breadboardul avand fiecare buton | In urmatoarele poze se poate vedea topologia hardware a proiectului: breadboardul avand fiecare buton | ||
- | asociat cu un led de culoare diferita si buzzerul pentru alertele de la aplicatie. Placuta este alimentata la o baterie de 9V. | + | asociat cu un led de culoare diferita si buzzerul pentru alertele de la aplicatie. Placuta este alimentata la o baterie de 9V.\\ |
+ | |||
+ | {{ :pm:prj2021:avaduva:memory_game_breadboard.jpeg?300 }} | ||
+ | |||
+ | {{ :pm:prj2021:avaduva:memory_game_breadboard2.jpeg?500 }} | ||
+ | |||
+ | |||
+ | Interfata este realizata printr-o aplicatie Android Studio. Prima poza reprezinta fereastra initiala a aplicatiei, a doua este cea dupa apasarea butonului de "Start" ce genereaza culorile iar ultima este la introducerea unei culori gresite. | ||
+ | |||
+ | {{:pm:prj2021:avaduva:memory_game_app_first_window.jpeg?220 }} | ||
+ | {{:pm:prj2021:avaduva:memory_game_colors_generated.jpeg?220 }} | ||
+ | {{:pm:prj2021:avaduva:memory_game_game_lost.jpeg?220}} | ||
+ | |||
+ | Am surprins mai bine functionalitatea proiectului in urmatoarea inregistrare: | ||
+ | |||
+ | https://drive.google.com/file/d/1lk7_J5eBi_ROMokr5eZywgEnuXnZOrtl/view?usp=sharing | ||
- | {{:pm:prj2021:avaduva:memory_game_breadboard.jpeg?300 }} | ||
- | {{ :pm:prj2021:avaduva:memory_game_breadboard2.jpeg?400}} | ||
===== 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 ===== | ||
+ | 23.04.2021 - Primire comanda cu piesele necesare\\ | ||
+ | |||
+ | 30.04.2021 - Documentarea si realizarea comunicarii intre modulul HC-05 si aplicatia Android\\ | ||
+ | |||
+ | 10.05.2021 - Conectare butoane, leduri si buzzer cu placuta Arduino Uno plus finalizare cod\\ | ||
+ | |||
+ | 19.05.2021 - Finalizare pagina de wiki\\ | ||
===== 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/lang/Runnable | ||
+ | |||
+ | https://stackoverflow.com/questions/42195935/while-loop-change-background-color - pentru schimbarea rapida a culorilor in aplicatie | ||
+ | |||
+ | https://create.arduino.cc/projecthub/GeneralSpud/passive-buzzer-song-take-on-me-by-a-ha-0f04a8 - melodie buzzer | ||
+ | |||
+ | |||