Obsah:

Detektor zombie: 3 kroky
Detektor zombie: 3 kroky

Video: Detektor zombie: 3 kroky

Video: Detektor zombie: 3 kroky
Video: ArmA 3 - Zombies & Demons: The Underpass 2024, Červenec
Anonim
Detektor zombie
Detektor zombie

Když jsem šel na vysokou školu, pracoval jsem na Knott’s Berry Farm a když o víkendu připadl Halloween, přitáhli jsme velký dav. Všichni jsme se oblékli a užili si to a většina zákazníků ocenila snahu. Jedna z „coin girls“, kde jsem pracovala, přišla perfektně stylizovaná jako Morticia Addams. Tehdy ještě nebyl vymyšlen gotický vzhled (pokud nepočítáte Moonu Lisu), takže při cestě do práce dostala přehnané oči od chlapa v autě vedle ní na brzdovém světle. Zadívala se na něj a věnovala mu široký úsměv - tesáky a všechno. Jeho výraz ve tváři byl zjevně k nezaplacení.

Ve stejném duchu jsem přemýšlel o uložení tohoto příspěvku až někdy kolem Halloweenu, ale pak jsem si vzpomněl, že Zombie Apocalypse se může stát kdykoli. Když jsem to ukázal vnoučatům, řekl jsem jim, že detekuje jejich puls, pokud jsou naživu, ale žádný puls neznamenal, že jsou Zombie. Pokud máte dav, lze jej použít jako vyřazovací hru (druh podivné verze hudebních židlí). Jedním ze způsobů, jak jsme to hráli, bylo předat to kolem stolu. Pokud jste dostali „lidskou“odpověď, dostali jste minci, pokud ne, zaplatili jste minci. Děti mají vždy rády hry s mincemi.

Krok 1: Hardware

Hardware
Hardware
Hardware
Hardware
Hardware
Hardware
Hardware
Hardware

Schéma je znázorněno na výše uvedeném diagramu. Část „detektor“je jednoduchý kapacitní dotykový spínač běžně inzerovaný jako TTP223. Zvedl jsem sadu 10 téměř pro nic, ale je s nimi trochu problém. Moduly jsou inzerovány jako fungující od 2,5 voltů do 5 voltů, ale ne. Zjistil jsem, že cokoli méně než 4,75 voltů způsobilo, že se modul zablokoval ve stavu „Zapnuto“. Chtěl jsem spustit celý projekt pomocí dvojice baterií AAA (asi 3 volty), takže jsem musel přijít na problém. Po kontrole čipu na modulu jsem zjistil, že prázdný pár pájecích plošek má mít kondenzátor, který určuje citlivost. Doporučený rozsah je od 0 do 50 pf se zvyšující se citlivostí při snižování kapacity. Nemohl jsem to dostat do práce zkrácením padů (0pf), ale fungovalo to dobře s kondenzátory 22pf a 47pf, které mám. S hodnotou 22pf jsem modul snadno dostal k práci s 2,5 volty.

Druhou hlavní součástí tohoto projektu (kromě mikrokontroléru PIC) je matice LED 8x8. Původně jsem používal obyčejnou matici, ale musel jsem přidat dvojici posuvných registrů k adresování řádků a sloupců a musel jsem je multiplexovat, abych získal úplné zobrazení. Poté jsem objevil levný modul LED, který byl připojen k obvodové desce s čipem ovladače displeje LED MAX7219. Čip ovladače přijímá sériové příkazy, které poté používá k zapnutí požadovaných řádků a sloupců. Čip také provádí multiplexování automaticky, takže zátěž je odstraněna z mikrokontroléru. Tento objev snížil jak hardwarovou, tak softwarovou složitost.

Krok 2: Project Box

Box projektu
Box projektu
Box projektu
Box projektu

Chtěl jsem průsvitný červený filtr, který by zakryl matici LED. Mohl jsem si uříznout kousek z nějakého červeného plexiskla, který mám, a pak ho vlepit do projektové krabice, ale místo toho jsem se rozhodl trochu přepracovat. Krabice, do které jsem ji postavil, je kontejner, který kdysi obsahoval hromadu 0,22 kulek. Většina těchto kontejnerů je z čirého plastu, ale mám pár, kteří jsou červení. Ne příliš elegantní, ale vnoučatům na elegantnosti nezáleží.

Krok 3: Software

Software
Software
Software
Software

Software je velmi jednoduchý. Časovač 0 má povolený volný běh a hodnota je zkontrolována vždy, když je detekován dotykový senzor. Svévolně jsem se rozhodl, že zobrazení Zombie se objeví, pokud je počet Timer0 menší než 100. Vzhledem k tomu, že Timer0 je 8bitový, znamená to, že k „lidskému“zobrazení dojde u hodnot od 100 do 255. To je poměr asi 3: 2 a lze to v softwaru snadno změnit.

Když je detekován dotek a určen typ displeje, je volána příslušná rutina pro odeslání dat do matice LED. Za tímto účelem se odešle řada příkazů jako 8bitová adresa a 8bitová data. Registry, které lze adresovat, jsou definovány v přední části seznamu. Několik z nich se používá k inicializaci matice (např.: jas) a jeden se používá k zapnutí/vypnutí celé matice. Matice může pracovat v režimu, kde BCD (binárně kódované desetinné číslo) zobrazí příslušné číslo. Rutina Init to vypne, abychom mohli ovládat jednotlivé LED diody. Druhou částí inicializace je nastavení limitu sloupců. Chceme všech osm sloupců, takže limit skenování je nastaven na 7.

K povolení požadovaných jednotlivých LED diod slouží osm registrů - jeden registr pro každý sloupec. „1“v datovém bitu povolí LED diody sloupce. Jak již bylo zmíněno dříve, software nevyžaduje multiplexování. „Lidský“displej je tlukoucí srdce. Po odeslání správných bitových vzorů do matice je bitování simulováno jednoduchým zapnutím/vypnutím matice (s prodlevami mezi nimi) tak dlouho, dokud je dotykový senzor aktivní. Rutina Zombie zobrazuje pevný vzor „X“, dokud dotek neodstraníte.

To je k tomuto příspěvku. Podívejte se na mé další projekty v oblasti elektroniky na: www.boomerrules.wordpress.com

Doporučuje: