This shows you the differences between two versions of the page.
pm:prj2021:apredescu:shootout-time-attack [2021/05/30 17:38] george.constantin99 |
pm:prj2021:apredescu:shootout-time-attack [2021/06/02 23:05] (current) george.constantin99 |
||
---|---|---|---|
Line 14: | Line 14: | ||
{{ :pm:prj2021:apredescu:336ca_george_constantin_blockdiagram.png?500 |}} | {{ :pm:prj2021:apredescu:336ca_george_constantin_blockdiagram.png?500 |}} | ||
+ | |||
* Senzorul detectează dacă o aruncare a fost reușită sau nu; | * Senzorul detectează dacă o aruncare a fost reușită sau nu; | ||
- | * Scorul și timpul rămas vor fi atașate pe mai multe matrice de leduri 8x8; | + | * Scorul și timpul rămas vor fi afișate pe mai multe matrice de leduri 8x8; |
* Fiecare coș marcat va fi echivalentul a două puncte, cu excepția celor marcate în ultimele 24 de secunde, acestea valorând trei puncte; | * Fiecare coș marcat va fi echivalentul a două puncte, cu excepția celor marcate în ultimele 24 de secunde, acestea valorând trei puncte; | ||
* Începutul, respectiv sfârșitul fiecărui nivel, și reușirea fiecărei aruncări vor fi semnalate de câte un buzzer. | * Începutul, respectiv sfârșitul fiecărui nivel, și reușirea fiecărei aruncări vor fi semnalate de câte un buzzer. | ||
Line 33: | Line 34: | ||
* Pentru ca senzorul să ofere rezultate satisfăcătoare, la anodul emițărului infraroșu a fost legată în serie o rezistență de 100Ω. De asemenea, la emitorul fototranzistorului a fost legată o rezistență de 150KΩ cu scopul de a mări tensiunea de ieșire a acestuia. | * Pentru ca senzorul să ofere rezultate satisfăcătoare, la anodul emițărului infraroșu a fost legată în serie o rezistență de 100Ω. De asemenea, la emitorul fototranzistorului a fost legată o rezistență de 150KΩ cu scopul de a mări tensiunea de ieșire a acestuia. | ||
+ | |||
+ | == Schema electrică == | ||
+ | |||
+ | {{:pm:prj2021:apredescu:336ca_george_constantin_schema.jpg?800x400|}} | ||
==== Software Design ==== | ==== Software Design ==== | ||
Line 49: | Line 54: | ||
== Utilizarea buzzerelor == | == Utilizarea buzzerelor == | ||
* Pentru buzzerul care emite sunete la începutul și la sfârșitul nivelului se utilizează funcția tone care folosește un timer implicit și astfel nu blochează execuția procesorului. | * Pentru buzzerul care emite sunete la începutul și la sfârșitul nivelului se utilizează funcția tone care folosește un timer implicit și astfel nu blochează execuția procesorului. | ||
- | * Deoarece există un anumit timp de ordinul secundelor între două aruncări consecutive, pentru buzzerul care emite sunete la reușirea fiecărei aruncări se utilizează funcția myTone. Funcția tone nu se poate utiliza, deoarece aceasta poate reda sunete doar unui singur buzzer la un moment de timp. | + | * Deoarece există un anumit timp de ordinul secundelor între două aruncări consecutive, pentru buzzerul care emite sunete la reușirea fiecărei aruncări se utilizează funcția myTone. În acest caz, funcția tone nu se poate utiliza, deoarece aceasta poate reda sunete doar unui singur buzzer la un moment de timp. |
== Logica jocului == | == Logica jocului == | ||
+ | |||
* Au fost create funcții care efectuează începerea fiecărui nivel, care verifică dacă se poate face trecerea la nivelul următor și care marchează sfârșitul jocului. | * Au fost create funcții care efectuează începerea fiecărui nivel, care verifică dacă se poate face trecerea la nivelul următor și care marchează sfârșitul jocului. | ||
==== Rezultate obținute ==== | ==== Rezultate obținute ==== | ||
+ | |||
+ | * Senzorul detectează precis trecerea mingii prin coș. | ||
+ | * Matricea de leduri afișează corect atât timpul rămas și scorul, cât și începutul și sfârșitul fiecărui nivel. | ||
+ | * Marcarea fiecărui coș, startul și finalizarea fiecărui nivel sunt marcate de sunetele buzzerelor. | ||
+ | * Pentru montajul final, am înlocuit breadboard-ul cu o placă de test pe care am replicat traseele de pe breadboard. | ||
+ | * Toate acestea, împreună cu montajul și amplasarea acestuia realizează întocmai ideea și finalitatea proiectului. | ||
+ | * [[https://www.youtube.com/watch?v=7cXmSp9t2bQ&ab_channel=GeorgeConstantin|Demo]] | ||
+ | |||
+ | {{:pm:prj2021:apredescu:336ca_george_constantin_schema_fizica.jpg?200x200|}} | ||
+ | {{:pm:prj2021:apredescu:336ca_george_constantin_schema_fizica_updated.jpeg?200x200|}} | ||
+ | {{:pm:prj2021:apredescu:336ca_george_constantin_final2.jpeg?200x200|}} | ||
==== Concluzii ==== | ==== Concluzii ==== | ||
+ | |||
+ | * A fost unul dintre cele mai interesante proiecte de realizat pentru facultate, având în vedere că am avut libertate totală în alegerea temei și a modului de implementare. Sunt foarte mulțumit de aspectul vizual al proiectului și de faptul că îl pot folosi oricând doresc să mă joc. | ||
==== Download ==== | ==== Download ==== | ||
- | ==== Jurnal ==== | + | * {{:pm:prj2021:apredescu:georgeconstantin_proiectpm.zip|}} |
==== Bibliografie/Resurse ==== | ==== Bibliografie/Resurse ==== | ||
+ | * [[http://embed.plnkr.co/3VUsekP3jC5xwSIQDVHx|Generare codificări]] | ||
+ | * [[https://www.youtube.com/watch?v=AAiDwBKs9uE&ab_channel=Robojax|Utilizare MAX7219]] | ||
+ | * [[https://www.youtube.com/watch?v=ls-MrbORZ-g&ab_channel=shannonchance|Utilizare senzor optic TCRT5000]] | ||
+ | * [[https://github.com/wayoda/LedControl|LedControl]] | ||
+ | * [[https://www.vishay.com/docs/83760/tcrt5000.pdf|Datasheet TCRT5000]] | ||
+ | * [[https://datasheets.maximintegrated.com/en/ds/MAX7219-MAX7221.pdf|Datasheet MAX7219]] | ||
+ | * [[https://ocw.cs.pub.ro/courses/pm/prj2021/apredescu/shootout-time-attack?do=export_pdf|Pagină PDF]] | ||
+ | |||