Indholdsfortegnelse:

Zombie Detektor: 3 trin
Zombie Detektor: 3 trin

Video: Zombie Detektor: 3 trin

Video: Zombie Detektor: 3 trin
Video: ArmA 3 - Zombies & Demons: The Underpass 2024, November
Anonim
Zombie detektor
Zombie detektor

Da jeg skulle på college, arbejdede jeg på Knott's Berry Farm, og da Halloween faldt i en weekend, trak vi en stor skare. Vi klædte os alle ud og havde det sjovt med det, og de fleste kunder satte pris på indsatsen. En af de "møntpiger", hvor jeg arbejdede, kom perfekt stylet som Morticia Addams. Dengang var Goth-looket ikke opfundet (medmindre du tællede Moona Lisa), så på vej til arbejde fik hun en overdrevet øjenrulle fra en fyr i bilen ved siden af hende ved et stoplys. Hun stirrede tilbage på ham og gav ham et stort smil - hugtænder og det hele. Tilsyneladende var udseendet på hans ansigt uvurderligt.

I samme ånd tænkte jeg på at gemme dette indlæg indtil engang omkring Halloween, men så huskede jeg, at Zombie Apocalypse kunne ske når som helst. Da jeg viste dette til børnebørnene, fortalte jeg dem, at det registrerer deres puls, hvis de er i live, men ingen puls betød, at de var en zombie. Det kan bruges som et eliminationsspil (en slags underlig version af musikstole), hvis du har en mængde. En måde vi spillede det på var at føre det rundt om bordet. Hvis du fik et "menneskeligt" svar, fik du en mønt, hvis ikke betalte du en mønt. Børnene kan altid lide spil, der involverer mønter.

Trin 1: Hardware

Hardware
Hardware
Hardware
Hardware
Hardware
Hardware
Hardware
Hardware

Skematikken er vist i diagrammet herunder. "Detektor" -delen er en simpel kapacitiv berøringsafbryder, der almindeligvis annonceres som en TTP223. Jeg hentede et sæt på 10 for næsten ingenting, men der er lidt problemer med dem. Modulerne annonceres for at fungere fra 2,5 volt til 5 volt, men de gør det ikke. Hvad jeg fandt ud af var, at noget mindre end 4,75 volt fik modulet til at låse i tilstanden "Til". Jeg ville køre hele projektet ved hjælp af et par AAA -batterier (ca. 3 volt), så jeg var nødt til at finde ud af problemet. Efter at have tjekket chippen på modulet fastslog jeg, at det tomme par loddepuder skulle have en kondensator, der bestemmer følsomheden. Det anbefalede område er fra 0 til 50 pf med følsomheden stigende, da kapacitansen reduceres. Jeg kunne ikke få det til at fungere ved at kortslutte puderne (0pf), men det fungerede godt med 22pf og 47pf kondensatorer, som jeg har. Med 22pf -værdien fik jeg let modulet til at fungere ved 2,5 volt.

Den anden hovedkomponent i dette projekt (bortset fra PIC -mikrokontrolleren) er en 8x8 LED -matrix. Oprindeligt brugte jeg en almindelig matrix, men måtte tilføje et par skiftregistre for at adressere rækker og kolonner og måtte multiplexere dem for at få et komplet display. Jeg opdagede derefter et billigt LED -modul, der blev monteret på et printkort med en MAX7219 LED -skærmdriverchip. Driverchippen accepterer serielle kommandoer, som den derefter bruger til at tænde de ønskede rækker og kolonner. Chippen udfører også multiplexering automatisk, så byrden fjernes fra mikrokontrolleren. Denne opdagelse reducerede både hardware og softwarekompleksitet.

Trin 2: Projektboks

Projektboks
Projektboks
Projektboks
Projektboks

Jeg ville have et gennemskinneligt rødt filter til at dække LED -matricen. Jeg kunne have klippet et stykke af et rødt plexiglas, jeg har, og derefter limet det ind i en projektkasse, men valgte at lave lidt omformulering i stedet. Kassen, jeg byggede den i, er en beholder, der engang indeholdt en flok.22 kugler. De fleste af disse beholdere er klar plast, men jeg har et par, der er røde. Ikke for elegant, men børnebørnene er ligeglade med elegante.

Trin 3: Software

Software
Software
Software
Software

Softwaren er ret enkel. Timer0 får frit løb, og værdien kontrolleres, hver gang berøringsføleren registreres. Jeg besluttede vilkårligt, at Zombie-displayet ville komme frem, hvis Timer0-tallet er mindre end 100. I betragtning af at Timer0 er 8-bits, betyder det, at det "menneskelige" display vil ske for værdier fra 100-255. Det er et forhold på ca. 3: 2 og kan let ændres i softwaren.

Når et tryk detekteres og en displaytype bestemmes, kaldes den passende rutine til at sende data til LED -matrixen. For at gøre dette sendes en række kommandoer som 8-bits adresse og 8-bit data. De registre, der kan adresseres, er defineret i den forreste del af fortegnelsen. Et par af dem bruges til at initialisere matricen (f.eks.: lysstyrke), og en bruges til at tænde/slukke hele matrixen. Matrixen kan fungere i en tilstand, hvor BCD (binær kodet decimal) viser det passende tal. Init -rutinen slukker for det, så vi kan styre de enkelte lysdioder. Den anden del af initialiseringen er at indstille kolonnegrænsen. Vi vil have alle otte kolonner, så scanningsgrænsen er sat til 7.

Der er otte registre, der bruges til at aktivere de ønskede individuelle lysdioder - et register for hver kolonne. Et “1” i en databit aktiverer den kolonne -LED. Som nævnt tidligere kræves ingen multiplexering i softwaren. Det "menneskelige" display er et bankende hjerte. Efter at de korrekte bitmønstre er sendt til matricen, simuleres bankningen ved ganske enkelt at tænde/slukke matrixen (med forsinkelser imellem), så længe berøringssensoren er aktiv. Zombie -rutinen viser et fast “X” -mønster, indtil berøringen fjernes.

Det er det for dette indlæg. Tjek mine andre elektronikprojekter på: www.boomerrules.wordpress.com

Anbefalede: