Table of Contents

Cereal Sorter

Introducere

Prezentarea pe scurt a proiectului vostru:

  • ce face: având două tipuri de cereale diferite, te ajută să clasifici cerealele în boluri diferite
  • care este scopul lui → scenariu: pofticios amator de cereale cu lapte are un brand preferat de cereale care include două tipuri de cereale diferite, însă beneficiarul ipotetic are o preferință vis-a-vis de cele două tipuri diferite de cereale, iar producătorul de cereale nu are un sub-brand care să aibă doar cerealele de tipul preferat de beneficiar, astfel Cereal Sorter™ vine în sprijinul nostru pentru a ne bucura de tipul preferat de cereale “hassle-free”
  • care a fost ideea de la care aţi pornit: https://experiments.withgoogle.com/tiny-sorter/view - voi încerca să recreez comportamentul proiectului de aici, bazându-mă pe rezultatul lor final
  • de ce credeţi că este util pentru alţii şi pentru voi: utilitatea proiectului pentru consumatorii de cereale mofturoși este prezentată mai sus, iar în ceea ce mă privește pe mine, utilitatea proiectului va consta în faptul că mă va ajută să mă familiarizez cu programarea folosind un microcontroller, și, de asemenea, cu tehnica dezvoltării unui model de machine learning care va fi capabil să clasifice obiecte în două categorii

Descriere generală

Se va construi o mini rampă de hârtie pe care vor fi plasate cerealele care vor fi sortate în două categorii. Rampa include la baza ei un loc în care încape o cereală care va urma să fie sortată. Servomotorul va fi inclus în structura rampei, iar amplasarea ei se va face în imediata apropiere a camerei video a laptop-ului pentru înregistrarea input-ului video. Servomotorul va fi în trei stări:

1) starea în care se mișcă în stânga și în dreapta astfel încât să cauzeze o mică alunecare a cerealelor de pe rampă până când o cereală ajunge să fie în locul de unde va fi aruncată fie într-un bol, fie în celălalt

2) stare de repaus, cereala se află în locul de unde va fi aruncată în bolul categoriei din care face parte

3) stare de catapultare: servomotorul se înclină în direcția în care se află bolul cerealei curente de sortat

LCD-ul va fi responsabil de afișarea stării în care se află ansamblul (practic servomotorul).

Hardware Design

Listă piese:

Întrucât în momentul în care am încercat să testez simultan servomotorul și lcd-ul i2c (individual funcționa fiecare) arduino-ul uno a părut că și-a dat duhul pentru câteva ore, m-am speriat, așa că am ales să folosesc un alt laborator în loc de i2c pentru minimul de 3 laboratoare, și anume întreruperi. Astfel acum folosesc laboratorul de comunicare serială, laboratorul de pwm pentru control servomotor, și laboratorul de întreruperi.

Software Design

Descriere implementare cod arduino: (https://github.com/robpan38/cereal-sorter/blob/main/arduino/CaineleManancaSalam/CaineleManancaSalam.ino)

Descriere implementare cod python: (https://github.com/robpan38/cereal-sorter/blob/main/model/cereal_app.py)

Rezultate Obţinute

Concluzii

Consider că proiectul a fost o experiență de învățare importantă pentru că mi-a dat ocazia să văd cum pot îmbină concret partea de hardware și partea de software. M-a scos cu siguranță din zona de confort, nu doar pentru că am folosit lucruri cu care nu am mai interacționat până acum, ci și din perspectiva deadline-urilor pe care a trebuit să le respect, fiind un bun exercițiu pentru viitoarea mea carieră de programator.

Mențiune specială: mulțumesc mamei mele că m-a ajutat să lipesc cu scoci servomotorul de suportul lui de carton, mulțumesc arduino uno că nu a crăpat definitiv când credeam că l-am pierdut în cazul testului nereușit cu lcd-ul i2c, și mulțumesc și domnului Adrian Mocanu pentru instruirea pe care ne-a dat-o în cadrul laboratorului.

Jurnal

Bibliografie/Resurse

Export to PDF