This is an old revision of the document!


GravitySlide

Proiectul presupune realizarea unui display din matrici led 32×32 prin intermediul caruia vom oferi utilizatorului un mod interactiva de a interactiona cu obiectele ce sunt afisate pe ecran influentate de unghiul de inclinare. Obiectele/ formele prezentate pot fi alese de utilizator prin intermediul unui aplicatii mobile. Jocul poate fi un mijloc de relaxare atat pentru adulti cat si pentru cei mici.

Descriere generală

Design-ul proiectului se bazeaza pe interactiunea dintre placuta principala Arduino UNO ce se conecteaza cu 2 vectori de 2 matrici ce vor insuma un patrat cu latura de 32 de leduri (2^5 leds) conectate initial in serie 2 cate 2, dar care vor fi tratate ca un grid cu diviziunea de 1 led. Un senzor cu modul de acceleratie si giroscop, ce ne va oferi constant date prin care vom afla unghiul de inclinare pe Ox si Oy, dupa care vom simula caderea.

Modulul bluetooth se va folosi pentru a primi comenzi de la user printr-o aplicatie pentru a varia elementele afisate.

Hardware Design

Elemente hardware folosite:

  • Arduino UNO R3 CH340GO - aici se-ntampla magia
  • MAX7219 LED Dot Matrix Module (x4) - va simula un ecran
  • Modul bluetooth HC-05 realizeaza comunicarea intre placuta si utilizator
  • MPU6050 Accelerometetru si giroscop - cu ajutorul datelor vom calcula unghiurile

schema_electrica_brezni.jpg

In practica matricele sunt lipite patru cate patru, rezultand 4 vectori de leduri paraleli.

Software Design

Medii de dezvoltare

  • VSCode si Arduino IDE

Blioteci

  • Wire - giroscop si accelerometru
  • LedControl - pentru setul de matrici

Cod Pentru a intelege ce a dus la forma software ului, trebuie prezentate cateva probleme aparute:

  • biblioteca producatorului, (https://github.com/MajicDesigns/MD_MAX72XX), nu permite conectarea a mai mult de 16 matrici bloc in serie, eu avand 32, motiv pentru care a trebuit sa calculez de mana indicii fiecarei bucle si afisari. Matricele trebuie considerate paralel desi nu sunt, folosind doi pini pentru CS_PIN.
  • Pinii de Vcc si Ground de la matricii nu pot fi utilizati, intrucat nu mai dau acelasi voltaj la iesire. :(

row_column_brezni.jpg

Codul a fost impartit in functii pentru modularizare, apelul lor bazanduse pe cele doua apeluri de setup si loop. Formele generate sunt pe un set de leduri de 8×8. Aceasta structura este un bitfield de dimensiune de 1 byte in care am retinut ce led trebuie aprins si stins.

Programul este initializat cu un X cu un contor al matricei, dupa care i-a nastere minijocul nostru. Fiecare led isi schimba intensitatea intre 0 si 16. x_matrix.jpg

Functii

  • init_TO_DO - initializeaza imaginea pe diaplay, seteaza intensitatea luminoasa la un interval de 0.5s, initializeaza conexiunea bluetooth si asteapta date pe seriala, initializeaza giroscopul-accelerometrul, printeaza forma pe display-ul din pozitia curenta.
  • functii de calcul pentru indexi si starea ledurilor, precum si nr mini display-ul pe care trebuie incarcate.
  • blocuri de cod timer si preluarea si prelucrarea mesajelor prinmite prin bluetooth.

Documentatia pentru cele doua librari utilizate poate fi gasita pe site-ul oficial, cu o multime de exemple, modele grafice, imagini, cod sursa, API-uri si multe alte informatii pentru o mai buna intelegere a modului de lucru si a potentialului pe care il are proiectul.

https://drive.google.com/file/d/1bfIazC9i1qI_rWyKbnhYPqLdTY1IuT5F/view?usp=sharing

Rezultate Obţinute

Care au fost rezultatele obţinute în urma realizării proiectului vostru.

Concluzii

Download

O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului: surse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-).

Fişierele se încarcă pe wiki folosind facilitatea Add Images or other files. Namespace-ul în care se încarcă fişierele este de tipul :pm:prj20??:c? sau :pm:prj20??:c?:nume_student (dacă este cazul). Exemplu: Dumitru Alin, 331CC → :pm:prj2009:cc:dumitru_alin.

Jurnal

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

Bibliografie/Resurse

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

Export to PDF

pm/prj2024/avaduva/mihai_brezniceanu.1716780696.txt.gz · Last modified: 2024/05/27 06:31 by mihai.brezniceanu
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