This shows you the differences between two versions of the page.
pm:prj2024:vstoica:andrei.seceleanu02 [2024/05/30 17:46] andrei.seceleanu02 removed |
pm:prj2024:vstoica:andrei.seceleanu02 [2024/09/04 21:42] (current) andrei.seceleanu02 |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== UselessBox ====== | + | ====== Useless Box ====== |
- | Useless box. | + | Seceleanu Andrei-Daniel |
- | Descreiere: e useless | + | 331CD |
- | Usecase: None | + | ===== Introducere ===== |
- | Documentatie: e facut cu ce aveam prin casa | + | <note tip> |
+ | Prezentarea pe scurt a proiectului vostru: | ||
+ | *O jucarie interactiva care nu se lasa infranta. Aceasta cutie vrea sa fie lasata in pace. Atunci cand dai de un switch robotelul dinauntru este suparat ca l-a deranjat si se opune dorintei tale de ai da flip la switch-uri. Scopul este sa creeze amuzament si zambete. | ||
- | Concluzie: e cool | + | </note> |
+ | |||
+ | ===== Descriere Generala ===== | ||
+ | |||
+ | <note tip> | ||
+ | Robotul si actiunile lui sunt dupa cum urmeaza: | ||
+ | *detectarea modificarii starii unui switch | ||
+ | *sortarea switch-urilor in functie de distanta minima pe care robotul trebuie sa o parcurga. | ||
+ | *actionarea servo-ului de rotatie care aliniaza pozitia bratului cu ce a switch-ului care trebuie lovit. | ||
+ | *actionarea servo-ului care modifica pozitia bratului pentru lovirea switch-urilor. | ||
+ | *capacul este ridicat de catre brat, fapt datorat formei custom a acestuia. | ||
+ | |||
+ | {{ :pm:prj2024:vstoica:andrei.seceleanu02:whatsapp_image_2024-09-04_at_19.21.38.jpeg?200 |}} {{ :pm:prj2024:vstoica:andrei.seceleanu02:whatsapp_image_2024-09-04_at_19.21.39.jpeg?200 |}} | ||
+ | |||
+ | </note> | ||
+ | |||
+ | ===== Hardware Design ===== | ||
+ | |||
+ | <note tip> | ||
+ | |||
+ | Lista de piese folosite: | ||
+ | *Arduino Uno (ATMega328PU microcontroller) | ||
+ | *<del>3</del> 2 servomotoare MG995 | ||
+ | *6 Switch-uri On-On | ||
+ | *cabluri de conectare | ||
+ | *filament plastic pentru imprimanta | ||
+ | *un buton | ||
+ | *in diagrama apare si un pcb dar acela este doar pentru vizualizare. | ||
+ | *bateria din diagrama este defapt in adapotor usb care se poate pune in priza sau se poate scoate cablul din adaptor si sa fie pus direct in laptop. In realitate a avut nevoie de 2 cabluri pentru ca nu aveam un adaptor cu putere destul de mare pentru arduino si pentru motoare. | ||
+ | {{ :pm:prj2024:vstoica:andrei.seceleanu02:image_2024-09-04_203506867.png?300 |}} | ||
+ | |||
+ | </note> | ||
+ | |||
+ | ===== Software Design ===== | ||
+ | |||
+ | <note tip> | ||
+ | Descrierea codului din aplicatie | ||
+ | *Pentru switch-uri am activat toti pinii de pe PORTC pe input. | ||
+ | *Am activat rezistentele interne de pull-up si am dat enable la intreruperi pe pinii respectivi | ||
+ | *Am setat o rutine de intreruperi pentru pinii respectivi si de fiecare data cand este o modificare pe unul dintre ei, valorile lor sunt citite din registrii si sunt pusi intr-un vector care retine starile pinilor. Acestia dupa sunt pusi intr-o coada sortata care ne da traseul/ordinea in care switch-urile trebuiesc oprite. | ||
+ | *Algoritmul de sortare a vectorului este unul pentru rezolvarea TSP (problema comis-voiajorului) modificat pentru aplicatia curenta. Acesta sorteaza switch-urile care trebuie apasate in ordinea care minimizeaza drumul pe care trebuie sa il traverseze robotul. | ||
+ | *Folosesc un timer pentru a determina comportamentul robotului in starea de idle. | ||
+ | *Motoarele sunt controlate prin PWM. | ||
+ | |||
+ | Librarii aditionale foloite: | ||
+ | *Servo -> pentru a controla mai usor motoarele | ||
+ | *Avr -> in rest | ||
+ | |||
+ | </note> | ||
+ | |||
+ | ===== Rezultate obtinute ===== | ||
+ | |||
+ | Un robote haios care nu te lasa sa faci cum vrei tu. | ||
+ | |||
+ | ===== Concluzii ===== | ||
+ | |||
+ | Isi merita pe deplin numele de Useless Box | ||
+ | |||
+ | |||
+ | ===== Download ===== | ||
+ | {{:pm:prj2024:vstoica:andrei.seceleanu02:useless_box.zip|}} |