Useless Box

Autor

Ionașcu Andrei
Automatica si Calculatoare
335CC

Idei inițiale

* păstrarea ordinii butoanelor și posibilitatea de a apăsa pe mai multe (coadă de task-uri)
* strategii de răspuns:

  • acționare normală
  • “supărare” și refuz (mica pauza pe centru) când sunt apăsate de mai multe ori butoanele într-un interval de timp
  • așteptare aproape de buton câteva secunde după ce se apasă un buton
  • buton de alegere a strategiei + random

* OLED pentru afișarea datelor:

  • tipul de strategie aleasă
  • update cu numărul de butoane activate
  • *POATE* puncte/pătrate cu poziția switchului și schimbarea culorii când acesta este activat
  • alte lucruri în limita spațiului și a posibilității

Descriere & Rezultat

O cutie care la prima vedere nu face prea multe, însă reușește să facă ceva care să te amuze. Proiectul conține 4 butoane cu care poți să te distrezi cu aceasta și un display pentru alegerea mai multor strategii și vizualizarea status-ului curent al dispozitivului.

La activarea unuia dintre butoane, servo-ul de bază va poziționa brațul pe direcția exactă a butonului, iar cel de-al doilea servo va inițializa mișcarea brațului, lovind butonul.

Acest Useless Box este puțin mai special. Pornind de la o problemă neașteptată a ajuns un dispozitiv mult mai complex și mai interesant. În timpul construirii acestuia am avut surpriza de a nu avea destulă putere în servo-ul brațului pentru a acționa butoanele cutiei. Acest lucru a dus la implementarea a câtorva funcționalități extra, precum:
* servo-ul doar atinge butonul acționat și marchează în sistem finalizarea acestuia
* până nu este retars butonul, acesta rămâne în sistem ca fiind neterminat
* brațul refuză realizarea altor strategii până la finalizarea tuturor butoanelor, marcând pe display butoanele problematice

Această adaptare la problemă nu mai este acum un dezavantaj ci a dus la un Useless Box mult mai încăpățânat, diferit de toate celelalte proiecte.

OLED-ul va conține date despre strategia curentă a dispozitivului, cu posibilitatea de a o schimba cu ajutorul unui buton. De asemenea, acesta prezintă reprezentări vizuale asupra stării fiecărui buton, marcând butoanele active, butoanele problematice care nu au ajuns să fie tras înapoi de către utilizator.

Cutia este realizată de la zero având locurile pentru compomentele fine realizate la o freză industrială de precizie.

Strategii

Dispozitivul este incorporat cu 5 strategii diferite ce vor amuza fiecare utilizator:
* Coffee Break

  • Brațul este în pauză de cafea și nu dorește să fie deranjat, indiferent de ce comenzi primește.

* LazyBoy

  • Venind după o binemeritată pauză, acesta nu dorește să muncească prea mult și va acționa butoanele doar dacă vor fi activate 2 butoane în dispozitiv. Acesta nu uita ordinea apăsării, fiindcă nu este atât de leneș.

* WorkingBoy

  • Acesta este mulțumit de pauză făcută și că nu l-ai luat tare din prima și se va juca cu tine cât de bine va putea.

* Mr.ShowOff

  • Cutia nu refuză niciodată să te provoace și să se dea mare cu ce este în stare, așa că, în cazul în care nu avea altă treabă de făcut (nu există butoane în coada sa pe care nu le-a acționat încă) și din această strategie, utilizatorul va acționa toate switch-urile, lăsându-le activate, acesta va începe să te impresioneze cu mișcările proprii.

* Sleep

  • Ca toată lumea, și el are nevoie de o pauză. Dacă nu mai are altă treabă de făcut, va trage un pui de somn binemeritat.

Software Design

Github link: Advanced-Useless-Box

Aici sunt prezente toate fișierele necesare compilării codului prezent pe plăcuță și fișierele pentru bootloader. Codul pentru transmiterea datelor către OLED și I2C-ul folosit de către acesta, nu îmi aparțin.

Rezultat

Hardware Design

Componente

* Servo pentru braț
* Servo pentru platformă
* Toggle Switch x4
* OLED Display
* Cadru de lemn
* Braț
* Platforma de pe servo
* Buton alegere strategie

Block Diagram

Schema Electrică

Fiecare buton va trage pin-ul la high în momentul în care butonul este comutat.
Oled va afișa date despre butoanele activate și tipul de strategie curent.
Cele două servo-uri sunt conectate la pinii PD5 și PD4 pentru a utiliza Timer-ul 1 în PWM cu TOP la ICR1.

pm/prj2019/ostiru/uselessbox.txt · Last modified: 2021/04/14 17:07 (external edit)
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