Useless Box

Seceleanu Andrei-Daniel

331CD

Introducere

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.

Descriere Generala

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.

Hardware Design

Lista de piese folosite:

  • Arduino Uno (ATMega328PU microcontroller)
  • 3 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.

Software Design

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

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.txt · Last modified: 2024/09/04 21:42 by andrei.seceleanu02
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