Table of Contents

Laser Whack-a-Mole

Autor: Damian Robert-Eugen

Grupa: 334CC

Introducere

Pentru realizarea proiectului, am pornit de la o potentiala tema pentru licenta, si anume o modalitate de a elimina insecte nedorite zburatoare. Am fost inspirat de eficacitatea scutului aerian Phalanx CIWS, dar din moment ce majoritatea materialelor necesare ar fi fost imposibil de procurat din postura de civil, m-am rezumat la a crea o tureta cu laser. O simpla tureta controlabila ar fi intrat in categoria de tutorial de 15 minute pe YT, asa ca m-am decis sa adaug un element de tintire/detectie. Aceste elemente componente se preteaza perfect pe un joc de Whack-A-Mole.

Consider ca este util ca o modalitate placuta de a petrece timpul, cat si in scop didactic, realizarea acestuia fiind o experienta practica utila in realizarea proiectelor dinamice cu microcontrollere.

Descriere generală

Jucatorul va putea controla o tureta laser cu ajutorul unui joystick. Cu aceasta va tinti la un grid format din LED-uri care se vor aprinde in pozitii aleatorii la un interval de timp. La terminarea jocului dupa un anumit timp, jucatorul va putea sa-si vizualizeze scorul din jocul precedent si sa apese butonul de reset pentru a incepe un joc nou.

Schema bloc

Layout

Schema electrica

Hardware Design

Componente

Software Design

Proiectul a fost dezvoltat cu ajutorul IDE-ului Arduino IDE. In componenta sa am utilizat ca fisiere externe biblioteca “Servo.h” pentru a genera automat semnalul PWM ce trebuia trimis la servomotoare pentru a directiona tureta. In linii mari, programul incepe cu o verificare a tuturor LED-urilor rosii, pentru a atentiona jucatorul de o potentiala problema, precum si a-i oferi sansa sa updateze codul sursa ce se afla pe microprocesor. Continua apoi cu bucla principala: verifica potentiale actualizari ale pozitiei joystickului, pentru a actualiza pozitia turetei, iar apoi verifica utilizarea laserului, pe partea de tureta. Pe partea de grid, verifica daca se afla in starea de incipit, idle, sau LED activ, urmand apoi sa ia o actiune, in cazul in care a trecut suficient timp asociat starii respective: daca a trecut prea mult timp de cand s-a aprins un led tinta, acesta se va inchide si se va afisa un mesaj in terminalul serial, ori daca jucatorul a nimerit o tinta, se va afisa un mesaj si in acest sens, informandu-l pe acesta de scorul sau.

Rezultate Obţinute

Rezultatele obtinute sunt functional extrem de similare cu cele propuse initial, insa diavolul se afla in detalii: interfata cu jucatorul nu este tocmai prietenoasa, proiectul foloseste mai putine tinte, deoarece 3 dintre senzorii de laser s-au ars in decursul testarii, iar modulele multiplexoare s-au dovedit a fi inutile. Insa jocul, cu putin de polish, ar fi foarte playable si chiar fun.

Demo

https://youtu.be/4f9iN698TU4

Concluzii

Proiectul a fost interesant, si a reprezentat o provocare, asadar a reprezentat o experienta per total placuta. Ca lectie invatata ar fi informarea integrala referitor la toate componentele, deoarece am avut surprize pe parcursul dezvoltarii: informatiile de pe site-ul comerciantului erau complet opuse a ceea ce am sesizat experimental in cazul senzorilor de lumina rosie.

Download

layout_scheme.zip

Codul sursa

Bibliografie/Resurse

Modul Multiplexor

Documentatie Arduino

Tutorial Senzori

Export to PDF