This shows you the differences between two versions of the page.
pm:prj2024:avaduva:mihai_brezniceanu [2024/05/27 06:56] mihai.brezniceanu [Concluzii] |
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 8 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. | ||
Line 63: | Line 63: | ||
**Calcul unghiuri de inclinatie** | **Calcul unghiuri de inclinatie** | ||
* AccX = Wire.read() << 8 | Wire.read(); | * AccX = Wire.read() << 8 | Wire.read(); | ||
- | * AccY ..., AccY ...; | + | * AccY ..., AccZ ...; |
* AccX = (float)AccX / 4096; ... | * AccX = (float)AccX / 4096; ... | ||
* AngleRoll = atan(AccY / sqrt(AccX * AccX + AccZ * AccZ)) * 1 / (3.14159265 / 180); | * AngleRoll = atan(AccY / sqrt(AccX * AccX + AccZ * AccZ)) * 1 / (3.14159265 / 180); | ||
* AnglePitch = -atan(AccX / sqrt(AccY * AccY + AccZ * AccZ)) * 1 / (3.14159265 / 180); | * AnglePitch = -atan(AccX / sqrt(AccY * AccY + AccZ * AccZ)) * 1 / (3.14159265 / 180); | ||
| | ||
- | Valori intre -90 si +90 de grade iclinatie. | + | Valorile se afla intre -90 si +90 de grade inclinatie. |
- | Pe abaza acestora si a unui thrashhold de 25-30, are loc deplasarea elementelor. | + | Pe baza acestora si a unui thrashhold de 15-30, are loc deplasarea elementelor. |
===== Rezultate Obţinute ===== | ===== Rezultate Obţinute ===== | ||
Line 87: | Line 87: | ||
===== 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 multiple, dar vreau sa impartasesc cu voi cateva ce le-am gasit eu ca fiind mai esentiale. |
- | Listă cu documente, datasheet-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> | ||