Innholdsfortegnelse:

Zombie Detector: 3 trinn
Zombie Detector: 3 trinn

Video: Zombie Detector: 3 trinn

Video: Zombie Detector: 3 trinn
Video: ЗЛОДЕИ И ИХ ДЕТИ В ШКОЛЕ! Каждый ЗЛОЙ РОДИТЕЛЬ такой! Родительское собрание 2024, Juli
Anonim
Zombie Detektor
Zombie Detektor

Da jeg skulle gå på college jobbet jeg på Knott’s Berry Farm, og da Halloween falt på en helg, trakk vi et stort publikum. Vi kledde oss ut og hadde det gøy med det, og de fleste kundene satte pris på innsatsen. En av "myntjentene" der jeg jobbet kom perfekt stylet som Morticia Addams. Da hadde Goth-looken ikke blitt oppfunnet (med mindre du regnet Moona Lisa), så på vei til jobb fikk hun en overdrevet øye-rull fra en fyr i bilen ved siden av henne ved et stopplys. Hun stirret tilbake på ham og ga ham et stort smil - huggtenner og alt. Tilsynelatende var ansiktet hans uvurderlig.

I samme ånd tenkte jeg på å lagre dette innlegget til en gang rundt Halloween, men da husket jeg at Zombie Apocalypse kan skje når som helst. Da jeg viste dette til barnebarna sa jeg til dem at det oppdager pulsen deres hvis de lever, men ingen puls betydde at de var en zombie. Det kan brukes som et eliminasjonsspill (slags en rar versjon av musikalske stoler) hvis du har en mengde. En måte vi spilte det på var å sende det rundt bordet. Hvis du fikk et "menneskelig" svar, fikk du en mynt, hvis ikke betalte du en mynt. Barna liker alltid spill som involverer mynter.

Trinn 1: Maskinvare

Maskinvare
Maskinvare
Maskinvare
Maskinvare
Maskinvare
Maskinvare
Maskinvare
Maskinvare

Skjematikken er vist i diagrammet som er inkludert ovenfor. "Detektor" -delen er en enkel kapasitiv berøringsbryter som vanligvis annonseres som en TTP223. Jeg hentet et sett med 10 for nesten ingenting, men det er litt problemer med dem. Modulene er annonsert for å fungere fra 2,5 volt til 5 volt, men de gjør det ikke. Det jeg fant var at noe mindre enn 4,75 volt fikk modulen til å låse seg i “På” -tilstand. Jeg ønsket å kjøre hele prosjektet ved hjelp av et par AAA -batterier (ca. 3 volt), så jeg måtte finne ut av problemet. Etter å ha sjekket ut brikken på modulen bestemte jeg meg for at det tomme paret med loddeputer skal ha en kondensator som bestemmer følsomheten. Det anbefalte området er fra 0 til 50 pf med sensitiviteten økende ettersom kapasitansen reduseres. Jeg kunne ikke få det til å fungere ved å kortslutte putene (0pf), men det fungerte bra med 22pf og 47pf kondensatorer som jeg har. Med 22pf -verdien fikk jeg enkelt modulen til å fungere på 2,5 volt.

Den andre hovedkomponenten i dette prosjektet (annet enn PIC -mikrokontrolleren) er en 8x8 LED -matrise. Opprinnelig brukte jeg en vanlig matrise, men måtte legge til et par skiftregistre for å adressere radene og kolonnene og måtte multiplexere dem for å få en komplett visning. Jeg oppdaget da en billig LED -modul som ble festet til et kretskort med en MAX7219 LED -skjermdriverbrikke. Driverchippen godtar serielle kommandoer som den deretter bruker for å slå på de ønskede radene og kolonnene. Brikken multiplexerer også automatisk, slik at byrden fjernes fra mikrokontrolleren. Denne oppdagelsen reduserte både maskinvaren og programvarekompleksiteten.

Trinn 2: Prosjektboks

Prosjektboks
Prosjektboks
Prosjektboks
Prosjektboks

Jeg ønsket et gjennomsiktig rødt filter for å dekke LED -matrisen. Jeg kunne ha klippet et stykke fra et rødt plexiglas jeg har, og deretter limt det inn i en prosjektboks, men valgte å gjøre litt omformulering i stedet. Boksen jeg bygde den i er en beholder som en gang inneholdt en haug med.22 kuler. De fleste av disse beholderne er i klar plast, men jeg har et par som er røde. Ikke for elegant, men barnebarna bryr seg ikke om elegant.

Trinn 3: Programvare

Programvare
Programvare
Programvare
Programvare

Programvaren er ganske enkel. Timer 0 får lov til å løpe fritt, og verdien kontrolleres når berøringssensoren oppdages. Jeg bestemte meg vilkårlig at Zombie-displayet ville komme opp hvis Timer0-tallet er mindre enn 100. Gitt at Timer0 er 8-bits, betyr det at det "menneskelige" displayet vil skje for verdier fra 100-255. Det er et forhold på omtrent 3: 2 og kan enkelt endres i programvaren.

Når en berøring oppdages og en skjermtype bestemmes, kalles den riktige rutinen for å sende data til LED -matrisen. For å gjøre dette sendes en rekke kommandoer som 8-bits adresse og 8-bits data. Registerene som kan adresseres er definert i den fremre delen av oppføringen. Et par av dem brukes til å initialisere matrisen (f.eks. Lysstyrke), og en brukes til å slå hele matrisen på/av. Matrisen kan operere i en modus der BCD (binær kodet desimal) vil vise det riktige tallet. Init -rutinen slår det av slik at vi kan kontrollere de enkelte lysdiodene. Den andre delen av initialiseringen er å sette kolonnegrensen. Vi vil ha alle åtte kolonnene, så skanningsgrensen er satt til 7.

Det er åtte registre som brukes til å aktivere ønsket individuelle lysdioder - ett register for hver kolonne. En “1” i en databit vil aktivere den kolonnen LED. Som nevnt tidligere er det ikke nødvendig med multipleksing i programvaren. Den "menneskelige" skjermen er et bankende hjerte. Etter at de riktige bitmønstrene er sendt til matrisen, simuleres bankingen ved ganske enkelt å slå matrisen på/av (med forsinkelser i mellom) så lenge berøringssensoren er aktiv. Zombie -rutinen viser et fast "X" -mønster til berøring er fjernet.

Det er det for dette innlegget. Sjekk mine andre elektronikkprosjekter på: www.boomerrules.wordpress.com

Anbefalt: