Emilia DOBRIN & Bogdan CAȘU-POP - Laser Tag
Introducere
Scopul proiectului nostru este acela de a implementa versiunea Home a cunoscutului joc Laser Tag. Poate fi jucat intre doua persoane, dar proiectul poate fi usor extins la oricati jucatori datorita generalitatii software-ului.
Comunicatia intre cei doi jucatori se realizeaza prin transmisie infrarosu, cele doua dispozitive comunicandu-si numele care va fi ulterior afisat pe ecranul LCD-ului. Tot aici vor fi afisate si numarul de vieti ramase si munitia. Daca un jucator si-a pierdut toate vietile, acesta va avea propriul dispozitiv inactiv pana la un nou reset.
Ideea a pornit de la o seara cu prietenii in oras cand am realizat ca pretul unui bilet la Laser Tag ce iti ofera distractie pentru 15 minute poate fi pretul unui astfel de dispozitiv. And that makes you a good engineer!
Ce avantaje are proiectul nostru?
este interactiv
este distractiv
Laser Tag gratuit
Descriere generală
Hardware Design
Listă componente
Componenta | Cantitate | Utilizare | Preț/buc (lei) |
LED IR 100mA | 2 | Transmisie pulsuri f 38 kHz | 2 |
Senzor IR TSOP34838 | 2 | Demodulare semnal f 38 kHz | 3 |
LCD 2×16 | 2 | LCD backlight mov | 20 |
Rezistenta 2K2 ohmi | 6 | Divizor de tensiune pentru LCD și tranzistor | 0.02 |
Rezistenta 1K ohmi | 2 | Divizor de tensiune | 0.02 |
Rezistenta 10K ohmi | 2 | Divizoare tensiune | 0.02 |
Rezistenta 33 ohmi | 2 | Divizoare tensiune | 0.02 |
Condensator 40nF | 2 | Condensator pentru buzzer | 0.3 |
Tranzisor SD945 | 2 | Alimentare LED IR | 0.5 |
Dioda VD 0.8 | 2 | Stabilizare iluminare ecran | 0.02 |
Difuzor 8 ohmi | 2 | Sonor pentru buton | 3 |
Buton | 2 | Buton pentru aprinderea LED-ului IR | 1 |
Scheme electrice
Schema Transmisie IR (stanga) si Schema Conectare LCD (dreapta)
Diagrame de semnal
Protocolul folosit pentru transmisia/receptia IR se numeste Sony Sirc, iar semnalele arata in felul urmator:
Software Design
Mediu de dezvoltare : Programmer's Notepad + WinAvr
Am ales sa nu folosim librarii suplimentare si sa implementam o varianta simplificata a protocolului SIRC
Implementarea noastra se bazeaza pe o serie de timere si proceduri de tratare a intreruperilor generate de schimbarea de stare a pinului PC7 (output-ul senzorului IR).
Semnalul de 38 kHz pentru transmisie este generat de un timer (ce ruleaza la dubla frecventa), iar schimbarea alternativa a starii ledului IR se realizeaza in functie de variabilele de stare.
Atat partea de transmisie cat si cea de receptie se folosesc de variabile de stare prin care se pot lua decizii la intrarea in procedurile de intrerupere (perioade de oscilatie sau disable).
Sunetul generat de buzzer este implementat tot cu ajutorul unui timer pentru a realiza mai usor o frecventa variabila a sunetului
Pentru partea de receptie se masoara durata intervalelor (1 logic/ 0 logic) produse de senzorul digital TSOP si se actualizeaza continutul variabilei mesaj.
Din motive de simplitate, am ales ca toate transmisiile sa fie de lungime 6 bytes → 48 biti → durata totala de transmisie in jur de 150 ms.
Rezultate Obţinute
Prima etapa de testare hardware a constat in aprindere LED-ului user (PD7) printr-un semnal continuu de frecventa 38kHz
Protocolul folosit trimite biti de 1 sau de 0 prin variatia perioadei active de oscilatie, motiv pentru care este foarte important sa calibram timpii in receptor. Dupa teste numeroase am constatat ca exista anumite intarzieri intre valorile teoretice si cele inregistrate si afisate pe LCD cu scop de debug
Dupa ajustarea timpilor ce definesc valorile logice, am reusit sa transmitem pe un singur dispozitiv catre el insusi date valide.
Surprinzator, transmisia intre cele 2 dispozitive nu a functionat la fel ca de la un emitor si receptor pe aceasi placuta. Dupa o alta sesiune de debug am constatat ca exita iregularitati legate de timpul activ inregitrat pentru primul interval in care se trimite semnal oscilant ('1' logic pentru start)
Prin setarea un prag pentru valoarea '0' logic din semnalul de start problema s-a rezolvat, iar cele doua dispozitive au inceput sa schimbe mesaje valide.
Concluzii
Acest proiect ne-a ajutat sa ne insusim mai bine cunostintele dobandite la laborator, sa intelegem cum sa lucram cu dispozitivele hardware si sa studiem modul de functionare al diverselor componente.
De asemenea, a fost un bun exercitiu de lucru in echipa si de organizare.
Proiectul functioneaza corect si consideram ca ne-am atins toate obiectivele stabilite la inceputul semestrului.
In plus, avem un proiect de care ne vom aduce aminte cu drag si peste ani.
Download
Arhiva ce contine codul ce trebuie pus pe toate dispozitivele (cu mentiunea ca trebuie schimbat numele pentru fiecare: variabila str[])
2013-laser-tag.zip
Jurnal
Pasii parcursi:
am cumparat componente pentru etapa I
Placutiada - corodarea placutei
ne-am ales proiectul
am studiat posibilitatea implementarii proiectului hard si soft
am cumparat noile componente pentru proiectul ales
am studiat datasheets si protocolul de comunicatie
am realizat conexiunile, lipiturile
pe parcurs am implementat cod pentru testarea diferitelor comonente montate
ultimele retusuri
et voila!
Bibliografie/Resurse
Resurse Hardware
Resurse Software
Protocolul de comunicatie IR Sony SIRC
sirc.php
-