This shows you the differences between two versions of the page.
pm:prj2023:iotelea:labirint [2023/05/07 21:45] ioana_theodora.popa [Hardware Design] |
pm:prj2023:iotelea:labirint [2023/05/29 20:09] (current) ioana_theodora.popa [Bibliografie/Resurse] |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== Labirint ====== | ====== Labirint ====== | ||
+ | |||
+ | Nume: Popa Ioana-Theodora | ||
+ | |||
+ | Grupă: 336CB | ||
===== Introducere ===== | ===== Introducere ===== | ||
Line 14: | Line 18: | ||
Piesele folosite pentru acest proiect sunt: | Piesele folosite pentru acest proiect sunt: | ||
*Arduino UNO (ATMega328p) | *Arduino UNO (ATMega328p) | ||
- | *Ecran LCD | + | *Ecran LCD 2.8' TFT 240X320 |
*Giroscop și Accelerometru MPU6050 | *Giroscop și Accelerometru MPU6050 | ||
*Breadboard | *Breadboard | ||
Line 20: | Line 24: | ||
*Fire de legătură | *Fire de legătură | ||
- | {{ :pm:prj2023:iotelea:pm-1.png?200 |}} | + | {{ :pm:prj2023:iotelea:pm-1.png?800 |}} |
+ | |||
+ | |||
+ | În cazul de față, am conectat LCD-ul, giroscopul și butonul la Arduino Uno. Deoarece modelul de LCD folosit operează la 3.3 V, am folosit niște rezistențe de 10k. | ||
+ | Modulul MPU6050 folosește protocolul I2C. | ||
+ | {{:pm:prj2023:iotelea:whatsapp_image_2023-05-29_at_18.47.43.jpeg?800 |}} | ||
===== Software Design ===== | ===== Software Design ===== | ||
+ | |||
+ | Jocul se imparte in patru stari de joc: | ||
+ | *initializare: se randează background-ul de start cu textul "PRESS BUTTON TO BEGIN!" | ||
+ | *draw labyrinth: la apăsarea butonului de pe plăcuță, va avea loc o întrerupere prin intermediul căreia se intră din starea de inițializare la starea de creare a labirintului și poziționare a mingii | ||
+ | *start game: jocul efectiv începe, iar giroscop-ul transmite constant date despre unghiul în care se află. Pe baza acestuia, se randează poziția mingii, adăungând la poziția mingii un echivalent pentru unghiul în care se află. În cazul coliziunilor, jocul este pierdut și se trece în starea finală. Dacă ajunge la punctul final, jocul este câștigat. | ||
+ | *end game: va arăta rezultatul jocului pe baza unei variabile. | ||
+ | |||
+ | Pentru implementare, am folosit două biblioteci: | ||
+ | *MPU6050_tockn.h - pentru a obține datele de la giroscop și a le folosi ulterior | ||
+ | *LCDWIKI_GUI.h - pentru a lucra cu LCD-ul | ||
+ | |||
+ | O problemă pe care am întâmpinat-o a fost generarea efectului de mișcare a bilei fără spike-uri, deoarece exista constant un lag. Am rezolvat această problemă făcând mingea mai mică și punând un delay între un frame și altul, dând o senzație aproximativ reală. | ||
+ | |||
+ | {{ :pm:prj2023:iotelea:init_state.jpeg?800 |}} | ||
+ | |||
+ | |||
+ | {{ :pm:prj2023:iotelea:labirint2.png?300 |}} | ||
===== Rezultate Obţinute ===== | ===== Rezultate Obţinute ===== | ||
+ | În final, am obținut un joculeț interesant, o interpretare a celui fizic, care permite adăugarea ușoară a altor moduri de joc, mișcarea mingii oferind senzația de realitate, iar coliziunile de asemenea. | ||
===== Concluzii ===== | ===== Concluzii ===== | ||
+ | Prin intermediul acestui joc, am reușit să învăț mai multe despre citirea unei documentații pentru anumite piese, despre interacțiunea pieselor cu plăcuța de Arduino și despre cum trebuie abordate anumite probleme în această instanță. | ||
===== Download ===== | ===== Download ===== | ||
+ | {{ :pm:prj2023:iotelea:proiect_pm.zip |}} | ||
===== Jurnal ===== | ===== Jurnal ===== | ||
+ | *27 aprilie - alegerea temei proiectului | ||
+ | *4 mai - relizarea documentației | ||
+ | *5 mai - alegerea pieselor necesare pentru proiect | ||
+ | *10 mai - comandarea pieselor | ||
+ | *17 mai - începerea implementării hardware | ||
+ | *18 mai - terminarea implementării hardware | ||
+ | *18 mai - începerea implementării software | ||
+ | *25 mai - terminarea implementării software | ||
+ | *26 mai - update wiki | ||
===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== | ||
- | <html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> | + | *[[http://www.lcdwiki.com/2.4inch_SPI_Module_ILI9341_SKU:MSP2402|Conectare LCD la Arduino]] |
+ | * [[https://maker.pro/arduino/tutorial/how-to-interface-arduino-and-the-mpu-6050-sensor|Interfata MPU6050]] | ||
+ | * [[https://github.com/lcdwiki/LCDWIKI_gui|Bibliotecă pentru Interfața LCD Arduino]] | ||
+ | * [[https://github.com/tockn/MPU6050_tockn|Bibliotecă pentru Interfața Modul MPU6050 și Arduino]] | ||