Inhaltsverzeichnis:

Zombie-Detektor - Gunook
Zombie-Detektor - Gunook

Video: Zombie-Detektor - Gunook

Video: Zombie-Detektor - Gunook
Video: WE MADE A ZOMBIE DETECTOR! | Gmod TTT 2024, Juli
Anonim
Zombie-Detektor
Zombie-Detektor

Als ich aufs College ging, arbeitete ich auf Knott's Berry Farm und als Halloween auf ein Wochenende fiel, zogen wir viele Leute an. Wir haben uns alle verkleidet und hatten viel Spaß damit und die meisten Kunden schätzten die Mühe. Eines der „Münzenmädchen“, bei denen ich arbeitete, kam perfekt gestylt als Morticia Addams. Damals war der Goth-Look noch nicht erfunden (es sei denn, man zählte Moona Lisa) und so bekam sie auf dem Weg zur Arbeit ein übertriebenes Augenrollen von einem Typen im Auto neben ihr an einer Ampel. Sie starrte ihn an und schenkte ihm ein breites Lächeln – Reißzähne und alles. Anscheinend war sein Gesichtsausdruck unbezahlbar.

Im gleichen Sinne dachte ich darüber nach, diesen Beitrag bis irgendwann um Halloween herum aufzubewahren, aber dann fiel mir ein, dass die Zombie-Apokalypse jederzeit passieren könnte. Als ich das den Enkeln zeigte, sagte ich ihnen, dass es ihren Puls erkennt, wenn sie leben, aber kein Puls bedeutet, dass sie ein Zombie sind. Es kann als Eliminierungsspiel (eine Art seltsame Version von Musikstühlen) verwendet werden, wenn Sie eine Menge haben. Eine Art, wie wir es gespielt haben, war, es um den Tisch herum zu geben. Wenn Sie eine „menschliche“Antwort erhalten haben, haben Sie eine Münze bekommen, wenn nicht, haben Sie eine Münze bezahlt. Die Kinder mögen immer Spiele, bei denen es um Münzen geht.

Schritt 1: Hardware

Hardware
Hardware
Hardware
Hardware
Hardware
Hardware
Hardware
Hardware

Das Schema ist in der obigen Abbildung dargestellt. Der „Detektor“-Teil ist ein einfacher kapazitiver Berührungsschalter, der allgemein als TTP223 beworben wird. Ich habe einen Satz von 10 für so gut wie nichts gekauft, aber es gibt ein kleines Problem mit ihnen. Die Module werden so beworben, dass sie von 2,5 Volt bis 5 Volt arbeiten, aber sie tun es nicht. Was ich herausfand, war, dass alles unter 4,75 Volt dazu führte, dass das Modul im "On" -Zustand verriegelte. Ich wollte das gesamte Projekt mit einem Paar AAA-Batterien (ca. 3 Volt) ausführen, also musste ich das Problem herausfinden. Nachdem ich den Chip auf dem Modul überprüft hatte, stellte ich fest, dass das leere Lötpadpaar einen Kondensator haben soll, der die Empfindlichkeit bestimmt. Der empfohlene Bereich liegt zwischen 0 und 50 pf, wobei die Empfindlichkeit mit abnehmender Kapazität zunimmt. Ich konnte es nicht zum Laufen bringen, indem ich die Pads (0pf) kurzgeschlossen habe, aber es funktionierte gut mit 22pf und 47pf Kondensatoren, die ich habe. Mit dem 22pf-Wert habe ich das Modul problemlos bei 2,5 Volt zum Laufen gebracht.

Die andere Hauptkomponente dieses Projekts (außer dem PIC-Mikrocontroller) ist eine 8x8-LED-Matrix. Ursprünglich habe ich eine einfache Matrix verwendet, musste aber ein Paar Schieberegister hinzufügen, um die Zeilen und Spalten zu adressieren, und musste sie multiplexen, um eine vollständige Anzeige zu erhalten. Dann entdeckte ich ein preiswertes LED-Modul, das mit einem MAX7219-LED-Display-Treiberchip an einer Platine befestigt war. Der Treiberchip akzeptiert serielle Befehle, mit denen er dann die gewünschten Zeilen und Spalten einschaltet. Der Chip führt auch das Multiplexen automatisch durch, sodass der Mikrocontroller entlastet wird. Diese Entdeckung reduzierte sowohl die Hardware- als auch die Softwarekomplexität.

Schritt 2: Projektbox

Projektbox
Projektbox
Projektbox
Projektbox

Ich wollte einen durchscheinenden Rotfilter, um die LED-Matrix abzudecken. Ich hätte ein Stück aus rotem Plexiglas, das ich habe, schneiden und es dann in eine Projektbox kleben können, aber ich entschied mich stattdessen für ein wenig Umnutzung. Die Box, in die ich es eingebaut habe, ist ein Behälter, der einst einen Haufen.22 Kugeln enthielt. Die meisten dieser Behälter sind aus durchsichtigem Plastik, aber ich habe ein paar, die rot sind. Nicht zu elegant, aber den Enkeln ist es egal, elegant zu sein.

Schritt 3: Software

Software
Software
Software
Software

Die Software ist ziemlich einfach. Timer0 darf frei laufen und der Wert wird immer dann überprüft, wenn der Berührungssensor erkannt wird. Ich habe willkürlich entschieden, dass die Zombie-Anzeige erscheinen würde, wenn die Timer0-Zählung kleiner als 100 ist. Da Timer0 8-Bit ist, bedeutet dies, dass die „menschliche“Anzeige für Werte von 100-255 erfolgt. Das ist ein Verhältnis von etwa 3:2 und kann in der Software einfach geändert werden.

Wenn eine Berührung erkannt und ein Anzeigetyp bestimmt wird, wird die entsprechende Routine aufgerufen, um Daten an die LED-Matrix zu senden. Dazu werden eine Reihe von Befehlen als 8-Bit-Adresse und 8-Bit-Daten gesendet. Die ansprechbaren Register werden im vorderen Teil des Listings definiert. Ein paar davon werden verwendet, um die Matrix zu initialisieren (z. B.: Helligkeit) und einer wird verwendet, um die gesamte Matrix ein-/auszuschalten. Die Matrix kann in einem Modus betrieben werden, in dem BCD (binär codierte Dezimalzahl) die entsprechende Zahl anzeigt. Die Init-Routine schaltet das aus, damit wir die einzelnen LEDs ansteuern können. Der andere Teil der Initialisierung besteht darin, das Spaltenlimit festzulegen. Wir wollen alle acht Spalten, also ist das Scan-Limit auf 7 gesetzt.

Es gibt acht Register, die verwendet werden, um die gewünschten einzelnen LEDs zu aktivieren – ein Register für jede Spalte. Eine „1“in einem Datenbit aktiviert diese Spalten-LED. Wie bereits erwähnt, ist in der Software kein Multiplexing erforderlich. Das „menschliche“Display ist ein schlagendes Herz. Nachdem die richtigen Bitmuster an die Matrix gesendet wurden, wird die Schwebung simuliert, indem die Matrix einfach ein- und ausgeschaltet wird (mit Verzögerungen dazwischen), solange der Berührungssensor aktiv ist. Die Zombie-Routine zeigt ein festes „X“-Muster an, bis die Berührung entfernt wird.

Das war's für diesen Beitrag. Schauen Sie sich meine anderen Elektronikprojekte an: www.boomerrules.wordpress.com