Differences

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

Link to this comparison view

pm:prj2024:alucaci:alexandru.carp3008 [2024/05/23 17:26]
alexandru.carp3008 [Software Design]
pm:prj2024:alucaci:alexandru.carp3008 [2024/05/27 00:39] (current)
alexandru.carp3008 [Rezultate Obţinute]
Line 56: Line 56:
  
  Am implementat functii care verifica senzorii Hall (avand grija sa nu contorizez de mai multe ori aceeasi detectie), care schimba viteza in sus/jos - calibrand numarul de milisecunde pentru care motorul trebuie sa functioneze pentru o schimbare prin teste. De asemenea, am implementat o functie care salveaza persistent in memorie viteza curenta - astfel in cazul unui reset se pastreaza cunoscuta starea in care a ramas schimbatorul. O alta functie importanta este cea de recalibrare,​ care actioneaza schimbatorul spre cea mai mica viteza pana cand este detectat faptul ca s-a ajuns in capat. Aceasta functie este utilizata daca nu se gaseste fisierul cu viteza curenta (in principiu dupa flash), dar si in caz ca viteza curenta nu este 1 dar se detecteaza capatul cablului.  Am implementat functii care verifica senzorii Hall (avand grija sa nu contorizez de mai multe ori aceeasi detectie), care schimba viteza in sus/jos - calibrand numarul de milisecunde pentru care motorul trebuie sa functioneze pentru o schimbare prin teste. De asemenea, am implementat o functie care salveaza persistent in memorie viteza curenta - astfel in cazul unui reset se pastreaza cunoscuta starea in care a ramas schimbatorul. O alta functie importanta este cea de recalibrare,​ care actioneaza schimbatorul spre cea mai mica viteza pana cand este detectat faptul ca s-a ajuns in capat. Aceasta functie este utilizata daca nu se gaseste fisierul cu viteza curenta (in principiu dupa flash), dar si in caz ca viteza curenta nu este 1 dar se detecteaza capatul cablului.
 + Am implementat si o functie pentru citirea acceleratiei de pe senzorul MPU6050, prin i2c. Am folosit datasheet-ul senzorului pentru a afla adresa i2c si adresele registrelor de interes.
    
  In bucla principala, retin mereu timpii ultimelor 3 detectii ale senzorului Hall de pe pedala, si in functie de diferentele dintre ei (deci de timpii ultimelor 2 rotatii complete ale pedalelor), decid daca   In bucla principala, retin mereu timpii ultimelor 3 detectii ale senzorului Hall de pe pedala, si in functie de diferentele dintre ei (deci de timpii ultimelor 2 rotatii complete ale pedalelor), decid daca 
-este nevoie de o schimbare a vitezei. Daca timpii sunt prea diferiti, inseamna ca nu se pedaleaza consistent deci datele se ignora. Daca sunt sub o anumita limita, se comanda schimbarea vitezei in sus, si daca sunt peste o alta limita se comanda schimbarea vitezei in jos. In plus, se seteaza un cooldown: un numar de detectii ale senzorului de pe pedala care nu vor comanda o noua schimbare - pentru a lasa cadenta sa se stabilizeze la un nou nivel dupa schimbarea anterioara.+este nevoie de o schimbare a vitezei. Daca timpii sunt prea diferiti, inseamna ca nu se pedaleaza consistent deci datele se ignora. Daca sunt sub o anumita limita, se comanda schimbarea vitezei in sus, si daca sunt peste o alta limita se comanda schimbarea vitezei in jos. In plus, se seteaza un cooldown: un numar de detectii ale senzorului de pe pedala care nu vor comanda o noua schimbare - pentru a lasa cadenta sa se stabilizeze la un nou nivel dupa schimbarea anterioara. ​In plus, detectia unei decelerari puternice (franare) - se traduce prin schimbarea vitezei in jos la urmatoarea rotatie a pedalelor detectata. 
 + 
  
 Pentru calibrarea motorului am implementat mai intai un program care schimba succesiv vitezele in sus si apoi in jos, la fiecare 3 rotatii ale pedalelor. Pentru calibrarea motorului am implementat mai intai un program care schimba succesiv vitezele in sus si apoi in jos, la fiecare 3 rotatii ale pedalelor.
Line 64: Line 67:
 ===== Rezultate Obţinute ===== ===== Rezultate Obţinute =====
  
-<note tip> + Am obtinut un prototip functional, utilizabil, care chiar daca nu tine cont de la fel de multi parametri pe cat planuiam initial, isi face treaba destul de bineLucrul cu senzorul de giroscop/accelerometru a fost dificil si din cauza faptului ca este mai dificil de testat. Atasez o demonstratie,​ in care vitezele se schimba dupa cadenta (viteza cu care se invart pedalele). Mai intai am simulat o cadenta mare -vitezele se schimba spre pinioanele mai mici, apoi una normala, apoi o cadenta mica, caz in care lantul revine pe pinioanele mai mari.
-Care au fost rezultatele obţinute în urma realizării proiectului vostru. +
-</note>+
  
-===== Concluzii =====+[[https://​ctipub-my.sharepoint.com/:​v:/​g/​personal/​alexandru_carp3008_stud_acs_upb_ro/​EeCGlFcx125JjiWX8B01o1IBYHiffwRrOAZf7sqH_ntCJQ?​nav=eyJyZWZlcnJhbEluZm8iOnsicmVmZXJyYWxBcHAiOiJPbmVEcml2ZUZvckJ1c2luZXNzIiwicmVmZXJyYWxBcHBQbGF0Zm9ybSI6IldlYiIsInJlZmVycmFsTW9kZSI6InZpZXciLCJyZWZlcnJhbFZpZXciOiJNeUZpbGVzTGlua0NvcHkifX0&​e=duQ3qy|Video demo]]
  
-===== Download =====+Atasez si o demonstratie in conditii reale:
  
-<note warning>​ +[[https://drive.google.com/​file/​d/​1bd52wimQbFpF-R0WBAKPzSb97mUcYgEO/​view?​usp=sharing|Vide demo 2]] 
-O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectuluisurse, scheme, etcUn fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-). +===== Concluzii ===== 
- + Experienta de a duce o idee pana la un prototip functional a fost una inedita si interesanta,​ din care am avut multe de invatat
-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**. +===== Download ​===== 
-</​note>​ +{{:​pm:​prj2024:​alucaci:​alexandru.carp332cc.zip|}}
- +
-===== 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 =====
pm/prj2024/alucaci/alexandru.carp3008.1716474385.txt.gz · Last modified: 2024/05/23 17:26 by alexandru.carp3008
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