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
  • Laboratoarele de PM pm
pm/prj2013/dtudose/laser-tag.txt · Last modified: 2021/04/14 17:07 (external edit)
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0