Inhoudsopgave:

Zombie-detector: 3 stappen
Zombie-detector: 3 stappen

Video: Zombie-detector: 3 stappen

Video: Zombie-detector: 3 stappen
Video: TOP 10 HARDEST EASTER EGG STEPS IN ZOMBIES! 2024, Juli-
Anonim
Zombie-detector
Zombie-detector

Toen ik naar de universiteit ging, werkte ik bij Knott's Berry Farm en toen Halloween in een weekend viel, trokken we veel publiek. We verkleedden ons allemaal en hadden er plezier in en de meeste klanten waardeerden de moeite. Een van de 'muntmeisjes' waar ik werkte, kwam perfect gestileerd als Morticia Addams. Destijds was de gothic-look nog niet uitgevonden (tenzij je Moona Lisa meetelde), dus op weg naar haar werk kreeg ze een overdreven oogrol van een man in de auto naast haar bij een stoplicht. Ze staarde naar hem terug en schonk hem een brede glimlach - met hoektanden en al. Blijkbaar was de blik op zijn gezicht onbetaalbaar.

In dezelfde geest dacht ik erover om dit bericht te bewaren tot ergens rond Halloween, maar toen herinnerde ik me dat de Zombie Apocalyps elk moment kon plaatsvinden. Toen ik dit aan de kleinkinderen liet zien, vertelde ik ze dat het hun hartslag detecteert als ze leven, maar geen hartslag betekende dat ze een zombie waren. Het kan worden gebruikt als een eliminatiespel (een soort rare versie van stoelendans) als je een menigte hebt. Een manier waarop we het speelden was om het rond de tafel te geven. Als je een "menselijk" antwoord kreeg, kreeg je een munt, zo niet, dan betaalde je een munt. De kinderen houden altijd van spellen met munten.

Stap 1: Hardware

Hardware
Hardware
Hardware
Hardware
Hardware
Hardware
Hardware
Hardware

Het schema is weergegeven in het bovenstaande diagram. Het "detector" -gedeelte is een eenvoudige capacitieve aanraakschakelaar die gewoonlijk wordt geadverteerd als een TTP223. Ik heb een set van 10 gekocht voor bijna niets, maar er is een probleem mee. Er wordt geadverteerd dat de modules werken van 2,5 volt tot 5 volt, maar dat doen ze niet. Wat ik ontdekte, was dat iets minder dan 4,75 volt ervoor zorgde dat de module in de "Aan" -status werd vergrendeld. Ik wilde het hele project uitvoeren met een paar AAA-batterijen (ongeveer 3 volt), dus ik moest het probleem oplossen. Na het controleren van de chip op de module heb ik vastgesteld dat het lege paar soldeerpads een condensator zou moeten hebben die de gevoeligheid bepaalt. Het aanbevolen bereik is van 0 tot 50pf, waarbij de gevoeligheid toeneemt naarmate de capaciteit afneemt. Ik kreeg het niet werkend door de pads (0pf) kort te sluiten, maar het werkte goed met 22pf en 47pf condensatoren die ik heb. Met de waarde van 22pf kreeg ik de module gemakkelijk aan het werk op 2,5 volt.

Het andere hoofdonderdeel van dit project (behalve de PIC-microcontroller) is een 8x8 LED-matrix. Oorspronkelijk gebruikte ik een gewone matrix, maar moest een paar schuifregisters toevoegen om de rijen en kolommen te adresseren en moest ze multiplexen om een volledige weergave te krijgen. Ik ontdekte toen een goedkope LED-module die op een printplaat was bevestigd met een MAX7219 LED-displaydriverchip. De driverchip accepteert seriële commando's die hij vervolgens gebruikt om de gewenste rijen en kolommen aan te zetten. De chip doet ook automatisch het multiplexen, zodat de last van de microcontroller wordt weggenomen. Die ontdekking verminderde zowel de hardware- als de softwarecomplexiteit.

Stap 2: Projectbox

Projectbox
Projectbox
Projectbox
Projectbox

Ik wilde een doorschijnend rood filter om de LED-matrix te bedekken. Ik had een stuk uit wat rood plexiglas kunnen snijden dat ik heb en het vervolgens in een projectdoos kunnen lijmen, maar koos ervoor om in plaats daarvan een beetje opnieuw te gebruiken. De doos waarin ik het heb ingebouwd, is een container die ooit een stel.22-kogels bevatte. De meeste van deze containers zijn van doorzichtig plastic, maar ik heb er een paar die rood zijn. Niet te elegant, maar de kleinkinderen geven niet om elegant.

Stap 3: Software

Software
Software
Software
Software

De software is vrij eenvoudig. Timer0 mag vrij lopen en de waarde wordt gecontroleerd wanneer de aanraaksensor wordt gedetecteerd. Ik heb willekeurig besloten dat de Zombie-weergave zou verschijnen als de Timer0-telling minder dan 100 is. Aangezien Timer0 8-bits is, betekent dit dat de "menselijke" weergave zal plaatsvinden voor waarden van 100-255. Dat is een verhouding van ongeveer 3:2 en kan eenvoudig in de software worden gewijzigd.

Wanneer een aanraking wordt gedetecteerd en een weergavetype wordt bepaald, wordt de juiste routine aangeroepen om gegevens naar de LED-matrix te verzenden. Om dit te doen, wordt een reeks opdrachten verzonden als 8-bits adres en 8-bits gegevens. De registers die geadresseerd kunnen worden, zijn gedefinieerd in het voorste deel van de lijst. Een paar ervan worden gebruikt om de matrix te initialiseren (bijvoorbeeld: helderheid) en een wordt gebruikt om de hele matrix aan/uit te zetten. De matrix kan werken in een modus waarin BCD (binair gecodeerd decimaal) het juiste getal weergeeft. De Init-routine schakelt dat uit, zodat we de individuele LED's kunnen bedienen. Het andere deel van de initialisatie is het instellen van de kolomlimiet. We willen alle acht kolommen, dus de scanlimiet is ingesteld op 7.

Er zijn acht registers die worden gebruikt om de gewenste individuele LED's in te schakelen - één register voor elke kolom. Een "1" in een databit zal die kolom-LED inschakelen. Zoals eerder vermeld, is er geen multiplexing vereist in de software. Het “menselijke” display is een kloppend hart. Nadat de juiste bitpatronen naar de matrix zijn gestuurd, wordt het kloppen gesimuleerd door de matrix eenvoudig aan/uit te zetten (met tussenliggende vertragingen) zolang de aanraaksensor actief is. De Zombie-routine toont een vast "X" -patroon totdat de aanraking wordt verwijderd.

Dat was het voor dit bericht. Bekijk mijn andere elektronicaprojecten op: www.boomerrules.wordpress.com

Aanbevolen: