Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pm:prj2024:avaduva:mihai_brezniceanu [2024/05/27 06:31]
mihai.brezniceanu [Software Design]
pm:prj2024:avaduva:mihai_brezniceanu [2024/05/27 09:20] (current)
mihai.brezniceanu [Software Design]
Line 25: Line 25:
  
  
-{{:​pm:​prj2024:​avaduva/​schema_electrica_brezni.jpg?​800x750}}+{{:​pm:​prj2024:​avaduva/​schema_electrica_brezni.jpg?​750x750}}
  
 In practica matricele sunt lipite patru cate patru, rezultand 4 vectori de leduri paraleli. In practica matricele sunt lipite patru cate patru, rezultand 4 vectori de leduri paraleli.
Line 39: Line 39:
 **Cod** **Cod**
 Pentru a intelege ce a dus la forma software ului, trebuie prezentate cateva probleme aparute: 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.+  * biblioteca producatorului,​ (https://​github.com/​MajicDesigns/​MD_MAX72XX),​ nu permite conectarea a mai mult de matrici bloc in serie, eu avand 16, 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. :(   * Pinii de Vcc si Ground de la matricii nu pot fi utilizati, intrucat nu mai dau acelasi voltaj la iesire. :(
  
Line 54: Line 54:
   * 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.   * 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.   * 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.+  * blocuri de cod timer si preluarea si prelucrarea mesajelor prinmite prin bluetooth ​(se utilizeaza o aplicatie ca interfata - https://​play.google.com/​store/​apps/​details?​id=com.giumig.apps.bluetoothserialmonitor&​hl=en )
  
 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. 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 +Protocoalele de comunicatie utilizateI2C, SPI, UART
 +Pentru o buna intelegere, utilizati laboratoarele de PM. 
  
 +**Calcul unghiuri de inclinatie**
 +   * AccX = Wire.read() << 8 | Wire.read();​
 +   * AccY ..., AccZ ...;
 +   * AccX = (float)AccX / 4096; ...
 +   * AngleRoll = atan(AccY / sqrt(AccX * AccX + AccZ * AccZ)) * 1 / (3.14159265 / 180);
 +   * AnglePitch = -atan(AccX / sqrt(AccY * AccY + AccZ * AccZ)) * 1 / (3.14159265 / 180);
 +    ​
 +Valorile se afla intre -90 si +90 de grade inclinatie.
 +Pe baza acestora si a unui thrashhold de 15-30, are loc deplasarea elementelor.  ​
 + 
 ===== Rezultate Obţinute ===== ===== Rezultate Obţinute =====
  
 <note tip> <note tip>
-Care au fost rezultatele obţinute în urma realizării proiectului vostru.+**Demo** 
 +https://​drive.google.com/​file/​d/​1bfIazC9i1qI_rWyKbnhYPqLdTY1IuT5F/​view?​usp=sharing
 </​note>​ </​note>​
  
 ===== Concluzii ===== ===== Concluzii =====
 +
 +Lipsa unei biblioteci, mareste substantial volumul de munca al unui programator,​ dar si imposibilitatea modificarii uneia este un proces tot la fel de anevoios. ​
 +Proiectul poate si merita imbunatatiri multiple, motiv pentru care vreau continui cu el. 
 +Daca mi-a placut ce am facut ? Cu siguranta, am dobandit cunostinte foarte utile, am realizat si un proiect, ce PRINDE VIATA :).
 +Este foarte util sa lucrezi si sa intelegi ce presupune un hardware, limitat, o memorie mica, mult prea mica ( inial am si umplut-o in primele zile - uhh... ). Codul a trebuit sa sufere multe imbunatatiri si sa respecte conditii peste conditii si ma bucur ca le-am avut, te fac sa te adaptezi si sa cauti solutii.
  
 ===== Download ===== ===== Download =====
  
-<note warning>​ +**Check the repo**
-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**. +    ​{{pm:prj2024:avaduva:gravityslide.zip}}
-</​note>​+
  
-===== Jurnal ===== 
- 
-<note tip> 
-Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului. 
-</​note>​ 
  
 ===== Bibliografie/​Resurse ===== ===== Bibliografie/​Resurse =====
  
-<​note>​ +Informatiile sunt multipledar vreau sa impartasesc cu voi cateva ce le-am gasit eu ca fiind mai esentiale. 
-Listă cu documentedatasheet-uri, resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**. +  ​https://​www.youtube.com/​watch?​v=7VW_XVbtu9k&​t=697s 
-</note>+  ​https://​mschoeffler.com/​2017/​10/​05/​tutorial-how-to-use-the-gy-521-module-mpu-6050-breakout-board-with-the-arduino-uno/​ 
 +  ​https://​lastminuteengineers.com/​max7219-dot-matrix-arduino-tutorial/​ 
 +  ​https://​atadiat.com/​en/​e-towards-understanding-imu-basics-of-accelerometer-and-gyroscope-sensors/​ 
 +  ​https://w3.braude.ac.il/​wp-content/​uploads/​2021/​03/​HC-051.pdf 
 +  * https://​www.arduino.cc/​reference/​en/​language/​functions/​communication/​wire/​ 
  
-<​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</​a></​html>​ 
  
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