Cuprins:

Detector de zombi: 3 pași
Detector de zombi: 3 pași

Video: Detector de zombi: 3 pași

Video: Detector de zombi: 3 pași
Video: ArmA 3 - Zombies & Demons: The Underpass 2024, Iulie
Anonim
Detector de zombi
Detector de zombi

Când mergeam la facultate, am lucrat la Knott’s Berry Farm și când Halloween-ul a căzut într-un weekend am atras o mulțime mare. Ne-am îmbrăcat cu toții și ne-am distrat puțin și majoritatea clienților au apreciat efortul. Una dintre „fetele cu monede” unde am lucrat a venit perfect ca Morticia Addams. Pe atunci aspectul gotic nu fusese inventat (dacă nu o numărați pe Moona Lisa), așa că, în drumul său spre serviciu, a primit o imagine exagerată de la un tip din mașina de lângă ea, la un stop. S-a uitat înapoi la el și i-a aruncat un zâmbet larg - colți și tot. Se pare că aspectul de pe chipul său era neprețuit.

În același spirit m-am gândit să salvez această postare până cândva în jurul Halloween-ului, dar apoi mi-am amintit că Apocalipsa Zombie s-ar putea întâmpla oricând. Când le-am arătat acest lucru nepoților le-am spus că le detectează pulsul dacă sunt în viață, dar nici un puls nu înseamnă că sunt zombie. Poate fi folosit ca un joc de eliminare (un fel de versiune ciudată a scaunelor muzicale) dacă aveți o mulțime. O modalitate prin care am jucat-o a fost să o trecem în jurul mesei. Dacă ați primit un răspuns „uman”, ați primit o monedă, dacă nu, ați plătit o monedă. Copiilor le plac întotdeauna jocurile care implică monede.

Pasul 1: Hardware

Hardware
Hardware
Hardware
Hardware
Hardware
Hardware
Hardware
Hardware

Schema este prezentată în diagrama inclusă mai sus. Partea „detector” este un comutator tactil capacitiv simplu, care este publicat în mod obișnuit ca TTP223. Am luat un set de 10 pentru aproape nimic, dar există o problemă cu ei. Modulele sunt publicitate ca funcționând de la 2,5 volți la 5 volți, dar nu. Ceea ce am constatat a fost că ceva mai mic de 4,75 volți a făcut ca modulul să se blocheze în starea „Pornit”. Am vrut să rulez întregul proiect folosind o pereche de baterii AAA (aproximativ 3 volți), așa că a trebuit să-mi dau seama de problema. După ce am verificat cipul de pe modul, am stabilit că perechea goală de tampoane de lipit ar trebui să aibă un condensator care determină sensibilitatea. Gama recomandată este de la 0 la 50 pf, cu sensibilitatea crescând pe măsură ce capacitatea este redusă. Nu am reușit să funcționeze scurtcircuitând tampoanele (0pf), dar a funcționat bine cu condensatoarele de 22pf și 47pf pe care le am. Cu valoarea 22pf am reușit cu ușurință modulul să funcționeze la 2,5 volți.

Cealaltă componentă principală a acestui proiect (alta decât microcontrolerul PIC) este o matrice LED de 8x8. Inițial am folosit o matrice simplă, dar a trebuit să adaug o pereche de registre de schimbare pentru a aborda rândurile și coloanele și a trebuit să le multiplexez pentru a obține un afișaj complet. Am descoperit apoi un modul LED ieftin care a fost atașat la o placă de circuite cu un chip de driver cu afișaj LED MAX7219. Cipul driverului acceptă comenzi seriale pe care apoi le folosește pentru a activa rândurile și coloanele dorite. Cipul face, de asemenea, multiplexarea în mod automat, astfel încât sarcina să fie eliminată din microcontroler. Această descoperire a redus complexitatea hardware și software.

Pasul 2: Caseta de proiect

Caseta proiectului
Caseta proiectului
Caseta proiectului
Caseta proiectului

Am vrut un filtru roșu translucid care să acopere matricea LED. Aș fi putut tăia o bucată dintr-un plexiglas roșu pe care o am și apoi l-aș fi lipit într-o cutie de proiect, dar am ales să fac un pic de refacere. Cutia în care am construit-o este un container care a avut odată o grămadă de gloanțe.22. Majoritatea acestor containere sunt din plastic transparent, dar am câteva care sunt roșii. Nu prea elegant, dar nepoților nu le pasă de eleganță.

Pasul 3: Software

Software
Software
Software
Software

Software-ul este destul de simplu. Temporizatorul0 este permis să ruleze liber și valoarea este verificată ori de câte ori este detectat senzorul tactil. Am decis în mod arbitrar că afișajul Zombie va apărea dacă numărul Timer0 este mai mic de 100. Având în vedere că Timer0 este de 8 biți, aceasta înseamnă că afișajul „uman” se va întâmpla pentru valori cuprinse între 100-255. Acesta este un raport de aproximativ 3: 2 și poate fi modificat cu ușurință în software.

Când se detectează o atingere și se determină un tip de afișare, se apelează rutina adecvată pentru a trimite date către matricea LED. Pentru a face acest lucru, o serie de comenzi sunt trimise ca adresă pe 8 biți și date pe 8 biți. Registrele care pot fi adresate sunt definite în partea din față a listei. Câteva dintre ele sunt utilizate pentru a inițializa matricea (de exemplu: luminozitate) și una este utilizată pentru a porni / dezactiva întreaga matrice. Matricea poate funcționa într-un mod în care BCD (zecimal codat binar) va afișa numărul corespunzător. Rutina Init oprește acest lucru, astfel încât să putem controla LED-urile individuale. Cealaltă parte a inițializării este de a seta limita coloanei. Vrem toate cele opt coloane, astfel încât limita de scanare să fie setată la 7.

Există opt registre care sunt utilizate pentru a activa LED-urile individuale dorite - un registru pentru fiecare coloană. Un „1” într-un bit de date va activa ledul coloanei respective. După cum sa menționat mai devreme, nu este necesară multiplexarea în software. Afișajul „uman” este o inimă care bate. După ce modelele de biți corespunzătoare sunt trimise la matrice, bătăile sunt simulate prin simpla pornire / oprire a matricei (cu întârzieri între ele) atât timp cât senzorul tactil este activ. Rutina Zombie afișează un model fix „X” până când este eliminată atingerea.

Gata pentru această postare. Consultați celelalte proiecte electronice ale mele la: www.boomerrules.wordpress.com

Recomandat: