Autorul poate fi contactat la adresa: Login pentru adresa
“Feed me like one of your French girls” este dispozitivul de care avem cu toții nevoie în viața noastră ! Cu ajutorul lui, mâncatul de gustări în timpul filmelor nu va mai fi niciodată la fel! Fie că îți place să mănânci floricele, alune, bomboane sau chipsuri, în timp ce bei apă, Cola, Fanta, bere sau Vodka Orange, casca de mai jos este soluția ideală!
Cu ajutorul tehnologiei de ultimă generație, dezvoltată în laboratoarele ATmega, acum te poți uita relaxat la film, în timp ce, o dată la un interval stabilit, vei primi alternativ când mâncare, când băutură.
Uită de chinul de a-ți duce singur paharul cu băutură la gură sau de senzația neplacută de pe mâini de după ce mănânci gustări!
În procesul de dezvoltare a acestui produs revoluționar, s-a pornit de la necesitarea de a automatiza procesul de mâncat gustări în timpul filmelor, întâmpinată de multe ori de autoare, după cum mărturisește în interviul de mai jos:
“De nenumărate ori mi s-a întâmplat să vărs floricele sau suc pe canapea în timp ce mă uitam la film. Fiind prea captivată, greșeam și îmi băgam floricele pe lânga gură sau chiar în nas. Iar la băuturi era și mai rău! Am început să port doar tricouri negre când mă uit la film, să nu se mai observe petele de suc! Această cască m-ar scuti definitiv de probleme!”
“În alte dăți, la filme mai plictisitoare, adormeam, lăsând astfel mâncarea și băutura începute, dar neterminate. Casca mă va ajuta să mă trezesc la film și să evit risipa!”
“Iar cel mai rău era atunci când terminam de mâncat și aveam mâinile pline de sare și ulei. Groaznic sentiment, trebuia să rezolv rapid problema: să mă șterg pe bluză, pe canapea sau pe blana labradorului: orice, ca să nu mă ridic de la film! Am spus “așa nu se mai poate!”, și am creat “Feed me like on of your French girls”!”
“Putând fi folosit acasă, la prieteni sau chiar luat la cinema, atât pentru mine, cât și pentru cei din jur, acest dispozitiv rezolvă complet problemele cauzate de această plăcere a vieții: mâncatul la film.”(Cosmina, 2018)
Microcontroller-ul ATmega324 de pe plăcuța de bază va controla cele trei servomotoare, în funcție de scurgerea timpului, alternativ: la fiecare scurgere de x secunde
(x
stabilit în cod), vor fi acționate când servomotorul A + B, când servomotorul C.
Servomotorul A va aduce paiul de la băutură din sus, de unde va fi gâtuit, până în dreptul gurii utilizatorului, pentru ca el să poată bea dacă dorește. Apoi îl va duce înapoi în sus, pentru ca băutura să nu curgă. Acesta va avea cursa de aprox. 120 grade
.
Servomotorul B va acționa apoi trapa de la fundul cutiei cu gustări și câteva gustări vor cădea în tăviță. După, servomotorul C va duce spre gură tăvița, din dreptul urechii. Astfel, utilizatorul va putea să mănânce din tăviță dacă dorește. Apoi tăvița va fi dusă la loc. Cursa servomotorului B va fi de aprox. 30 grade
, iar cea a servomotorului C de aprox. 180 grade
.
Piesă | Loc achiziție |
---|---|
Placa de bază PM 2018 | Făcută și testată la laborator. |
3 x servomotor 9g tip MS-1.3-9 | https://www.robofun.ro/mecanice/servo/servomotor_9g |
9 x fire mamă-tată 30 cm | https://cleste.ro/arduino/10xfire-dupont-mama-tata-30cm.html |
Cască | https://3gifts.ro/jocuri-de-baut/casca-de-baut-bere |
Capac metal | Din casă. |
Cutie popcorn carton | De la cinema. |
Unit tests: suc, popcorn | De la magazin. |
Alte componente de legătură | Șuruburi, lipituri etc. |
Baterie portabilă 4200mAh | Important e să dea 5V. |
Descrierea codului aplicaţiei:
La începutul implementării, am definit pragurile între care se vor deplasa servomotoarele. În alegerea pragurilor, am avut grijă să nu depășesc cursa maximă admisă de servomotoarele de tip 9g, și anume să mă deplasez doar între ~5 grade si ~175 grade.
Apoi, am creat o funcție de așteptare care așteaptă un număr dat de delay-uri. În proiectul meu am considerat că este în regulă să am busy waiting, deoarece nu am efectiv de făcut calcule multe, intense, să vreau să folosesc capacitatea de procesare în alt mod în acel timp.
În continuare, am funcții care descriu efectiv mișcarea obiectelor:
- pour_food()
: deschide trapa, toarnă floricele pentru un interval scurt de timp și apoi o închide.
- move_plate_left()
: mută la stânga farfuria, încet să nu se verse mâncarea care tocmai a fost turnată.
- move_plate_right()
: mută la dreapta farfuria, încet să nu se verse mâncarea care a rămas.
- eat()
: cade mâncare, se deplasează tăvița și revine.
- drink()
: ridică și coboară paiul.
În main am configurat timerele conform datasheet-ului și porturile pe care se va primi semnalul PWM ce va acționa servomotoarele.
Cu toate că ultimele zile au fost semi-maraton, casca a fost adusă într-o formă funcțională, ideală pentru mersul cu ea la cinema! Am reușit să acționez cele trei componente cu servomotoare, așa cum mi-am propus (și să nu ard nicio componentă!!).
Design-ul efectiv al dispozitivului s-a mai schimbat puțin față de cum mi-l imaginasem inițial, deoarece nu am putut să estimez corect până nu am început efectiv să îmbin componentele. Cea mai grea parte pe partea de componente a fost programarea unui servomotor pe timer pe 8 biți, deoarece nu prea există modele pe internet și doar citind datasheet-ul nu mă prinsesem că prescaler-ul trebuie setat la valoare foarte mare, pentru a putea să simulez cam același comportament ca pe timer-ul de pe 16 biți.
La partea de montaj al componentelor, m-am chinuit cel mai mult cu proiectarea tăviței de popcorn, deoarece trebuia să fie o mișcare circulară și care să aducă mâncarea fix până în dreptul gurii. De asemenea, la deschiderea trapei prin care cad floricele, a trebuit să am grijă să nu cadă prea multe sau prea puține.
Va urma…
Cu totul, a fost un proiect super amuzant, mi-a plăcut mult. Ne-a pus pe noi să ne gândim de la zero ce vrem să implementăm și să ne cumpărăm și asamblăm tot ce trebuie. Chiar mi-ar fi părut rău să ies din facultate și să nu am de făcut și un astfel de proiect (pentru că da, a fost primul!). Keep up the good work!
Mi-ar fi plăcut să am mai mult timp și posibilitatea să îmi construiesc eu singură casca, să o fac direct cum îmi trebuia mie, cu container de popcorn într-o parte și cu suport de suc în cealaltă. Voi lua acest design în considerare când voi începe producția în masă pentru vânzare !
Arhiva de mai jos conține codul, README cu instrucțiuni de folosire și un script ce automatizează integrarea lui cu bootloader-ul și încărcarea pe plăcuță.
23/04/2018
: Dintre cele 3 idei avute, am ales ideea câștigătoare: Casca “Feed me like one of your French girls”, sau cum să fii și mai leneș decât ești deja!
04/05/2018
: Am lipit plăcuța de bază. Se aprinde un LED când e conectată aka semnul internațional că merge!
05/05/2018
: Au sosit celelalte componente (a fost nevoie să mă trezesc înainte de prânz într-o sâmbătă pentru a primi curierul, brutal!).
19/05/2018
: O frumoasă zi de sâmbătă în care a fost frig și a plouat, așadar am stat toată ziua în casă să lucrez la proiect. Am fixat 2/3 servomotoare. La al treilea nu îmi dau seama cum să îl pun, nu reușesc să setez Timer pe 8 biți. E momentul să fac context switch pe tema la SO…
21/05/2018
: Am întrebat la laborator cum se setează, panaceul era setarea unui prescaler f. mare. Invenția e 90% gata!
23/05/2018
: Finalizare documentație, continuare îmbunătățiri pe partea de hardware (i.e. ce tipuri de floricele să aduc vineri la PM fair, și dacă am voie ori nu să pun nefiltrată în loc de Cola ).
Datasheet ATmega324: http://www.alldatasheet.com/datasheet-pdf/pdf/392240/ATMEL/ATMEGA324A.html
Datasheet servomotor 9g: https://lib.chipdip.ru/492/DOC001492031.pdf
Instrucțiuni folosire servomotor: https://www.optimusdigital.ro/ro/motoare-servomotoare/26-micro-servomotor-sg90.html
Schema bloc și cea electrică au fost realizate folosind draw.io, respectiv Autodesk EAGLE.
Documentația în format PDF