This shows you the differences between two versions of the page.
pm:prj2025:mdinica:razvan.baldovin [2025/05/27 20:17] razvan.baldovin Updatat jurnal |
pm:prj2025:mdinica:razvan.baldovin [2025/05/30 09:37] (current) razvan.baldovin Update software |
||
---|---|---|---|
Line 41: | Line 41: | ||
* PWM | * PWM | ||
===== Hardware Design ===== | ===== Hardware Design ===== | ||
+ | |||
+ | Piesele au fost alese cu urmatoarele caracteristici in gand: | ||
+ | * Dimensiunea spatiului util | ||
+ | * Caracteristicile Lego-ului (pentru a putea misca Lego-ul) | ||
+ | |||
+ | Astfel, inainte sa detaliem piesele pe care le-am achizitionat, hai sa detaliem putin cu ce lucram | ||
+ | |||
+ | {{ :pm:prj2025:mdinica:lego_under.png?500 |}} | ||
+ | |||
+ | Avem aici 2 zone in care putem lucra: | ||
+ | * Rosu - 10.4 x 5.5 x 3.2 cm (lungime x latime x inaltime) | ||
+ | * Verde - 10.4 x 4.0 x 6.0 cm | ||
+ | * Albastru - 8.0 x 5.5 x 6.0 cm | ||
+ | |||
+ | (In functie de nevoie, putem alege intre verde si albastru ca spatiu (ambele sunt valide in situatia de fata) | ||
+ | |||
+ | {{ :pm:prj2025:mdinica:lego_side.jpeg?700 |}} | ||
+ | |||
+ | Specificatii Lego: | ||
+ | * Dimensiuni: 65.0 x 27.0 x 13.0 cm | ||
+ | * Greutate: 1.4kg | ||
+ | * Diametru roti: 8.0 cm | ||
+ | |||
+ | Ca sa stabilim viteza cu care ar trebui sa se invarta motorul am facut urmatoarele calcule | ||
+ | |||
+ | - Calculam circumferinta rotii | ||
+ | * circumferinta = π * diametru = π * 0.08 m = 0.2513 m | ||
+ | - Calculam numarul de rotatii per minut al rotii | ||
+ | * Presupunem o viteza de 10km/h | ||
+ | * 10 km/h = 2.78 m/s | ||
+ | * RPS roata = viteza / circumferinta = 2.78 m/s / 0.2513 m ≈ 11.06 RPS | ||
+ | * RPM roata = RPS roata * 60 s = 11.06 * 60 = 664 RPM | ||
+ | - Calculam numarul de rotatii per minut al motorului | ||
+ | * Observam ca o rotatie a axului de motor reuseste sa invarta aproximativ jumatate de roata | ||
+ | * RPM motor = RPM roata * 2 = 664 RPM * 2 = 1328 RPM | ||
+ | |||
+ | Totusi, viteza motorului nu este totul, ne trebuie si destul cuplu cat sa putem pleca de pe loc | ||
+ | |||
+ | - Calculam forta de rezistenta la rulare | ||
+ | * F rezistenta = coef de rezistenta la rulare * masa * gravitatia = 0.01 * 1.4kg * 9.81m/s^2 = 0.137N | ||
+ | * coeficientul de rezistenta la rulare pentru cauciuc am gasit sa fie 0.01 | ||
+ | - Calculam Cuplul minim necesar | ||
+ | * cuplu = F rezistenta * raza rotii = 0.137N * 4cm = 0,0055 N*m | ||
+ | * transformam din N*m in kg * cm | ||
+ | * 0.0055 N*m ≈ 0.056 kg * cm | ||
+ | - Luam ca marja de eroare un factor de 4x, care sa tina cont de flexarea, rezistenta si frecarea pieselor Lego | ||
+ | * cuplu final = cuplu minim * 4 = 0.056 kg * cm * 4 ≈ 0.2 kg * cm | ||
==== Bill of Materials ==== | ==== Bill of Materials ==== | ||
Line 95: | Line 142: | ||
Am folosit urmatoarele biblioteci: | Am folosit urmatoarele biblioteci: | ||
+ | * ESP32Servo.h - Pentru a controla servomotorul prin functii predefinite | ||
* WiFi.h - Pentru a permite conexiunea la Wi-Fi | * WiFi.h - Pentru a permite conexiunea la Wi-Fi | ||
* WebServer.h - Pentru a crea un server web local | * WebServer.h - Pentru a crea un server web local | ||
- | Am creat o pagina web destul de elementara, care are doua joystick-uri: | + | Am creat o pagina web destul de elementara, care are doua slidere: |
* Cel din stanga are rolul unui volan, astfel se ocupa de virat stanga-dreapta | * Cel din stanga are rolul unui volan, astfel se ocupa de virat stanga-dreapta | ||
* Cel din dreapta are rolul de a propulsa/opri masina (inainte-inapoi) | * Cel din dreapta are rolul de a propulsa/opri masina (inainte-inapoi) | ||
Line 106: | Line 154: | ||
* Se initializeaza serverul web (pe o adresa locala, deci trebuie sa ne aflam in aceeasi retea) | * Se initializeaza serverul web (pe o adresa locala, deci trebuie sa ne aflam in aceeasi retea) | ||
* Asteapta input de la utilizator prin serverul web | * Asteapta input de la utilizator prin serverul web | ||
- | * Comenzile, sunt transformate in semnale PWM (in functie de cat de mult tragem spre oricare extrema joystickul, astfel valorile fiind 0 (stanga maxim), 512 (default), 1024 (dreapta maxim)) catre componentele respective: | + | * Comenzile, sunt transformate in semnale PWM catre componentele respective: |
- | * Joystick stanga -> servomotor | + | * Slider stanga -> servomotor (intre 0 si 180) |
- | * Joystick dreapta -> motor | + | * Slider dreapta -> motor (intre -255 (maxim inapoi) si 255 (maxim inainte)) |
===== Rezultate Obţinute ===== | ===== Rezultate Obţinute ===== | ||
Line 148: | Line 196: | ||
* Am achizitionat un servomotor mai puternic (MG90S) | * Am achizitionat un servomotor mai puternic (MG90S) | ||
* Am printat un conector 3D reglabil, pentru a putea strange mai mult ca motorul sa poata transmite putere la Lego | * Am printat un conector 3D reglabil, pentru a putea strange mai mult ca motorul sa poata transmite putere la Lego | ||
- | * Am scos ESP32-ul din Devboard, si am realizat conexiunile cu fire mama-mama | + | * Daca scot ESP32-ul din Devboard, si schimb din fire tata-tata in fire tata-mama, poate incapea totul |
23.05.2025 - Din cauza unei singure piese din Lego, nu incapea motorul cu noul conector, am stat undeva la 2 ore pentru a desface masina (si documenta, pentru a o reface la loc :)) ), urmata de a muta piesa mai in spate pentru a crea spatiu, iar apoi reasamblat. | 23.05.2025 - Din cauza unei singure piese din Lego, nu incapea motorul cu noul conector, am stat undeva la 2 ore pentru a desface masina (si documenta, pentru a o reface la loc :)) ), urmata de a muta piesa mai in spate pentru a crea spatiu, iar apoi reasamblat. | ||
Line 156: | Line 204: | ||
24.05.2025 - Am incercat sa adaug diferite bucati subtire de material intre motor si conector ca sa incerc sa conectez mai bine si sa adaug frecare (poate-poate merge). Din pacate nu a mers, tot se invarte in gol. | 24.05.2025 - Am incercat sa adaug diferite bucati subtire de material intre motor si conector ca sa incerc sa conectez mai bine si sa adaug frecare (poate-poate merge). Din pacate nu a mers, tot se invarte in gol. | ||
- | 28.05.2025 - Am incercat sa mai printez inca un conector pentru motor. | + | 28.05.2025 - Am desfacut lipiturile vechi pentru a putea inlocui cu fire tata-mama pentru a putea scapa de dev board. |
- | <note tip> | + | 28.05.2025 - Am incercat sa actionez MG90S, dar nu am avut succes, am schimbat temporar inapoi la SG90 pana gasesc o solutie mai buna |
- | Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului. | + | |
- | </note> | + | 29.05.2025 - Am incercat sa mai printez inca un conector pentru motor. (fara succes, problema finala este puterea :( ) |
+ | |||
+ | 29.05.2025 - Am folosit un alt motor (TT motor), si ARE DESTULA PUTERE SA MISTE MASINA :-D | ||
+ | |||
+ | 29.05.2025 - Update-uri la cod, pagina, si finalizare proiect pentru prezentare | ||
===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== |