Inhaltsverzeichnis:

Rootin', Tootin', Shootin' Spiel - Gunook
Rootin', Tootin', Shootin' Spiel - Gunook

Video: Rootin', Tootin', Shootin' Spiel - Gunook

Video: Rootin', Tootin', Shootin' Spiel - Gunook
Video: Rootin' Tootin' Lootin' & Shootin' (Rootin' Tootin' Lootin' & Shootin') · Игра · Геймплей 2024, November
Anonim
Rootin', Tootin', Shootin' Game
Rootin', Tootin', Shootin' Game

Als ich in Orange County, Kalifornien lebte, waren Disneyland und Knott's Berry Farm zwei der größten Arbeitgeber für College-Kids. Da ich eine Elektronikausbildung beim Militär hatte, konnte ich einen Job in der Schießbude von Knott bekommen, anstatt ein lustiges Kostüm tragen zu müssen. Die Gewehre verwendeten Hochspannungsblitzröhren mit Fokussierlinsen und die Ziele verwendeten Fotozellen. Die Zielzählerschaltungen verwendeten als Flip-Flops aufgebaute Germanium-Transistoren. Die Transistoren wurden immer schwieriger zu finden, also hatte jemand versucht, sie durch Silizium-Transistoren zu ersetzen. Leider stellten sie fest, dass die schnellen Schaltzeiten der Siliziumtransistoren diese deutlich anfälliger für Rauschen machten. Das bedeutete, dass ein einziger Treffer auf das Ziel durch die Spielsteine kräuseln und alle Lampen gleichzeitig anzünden würde. Die Lektion hier ist, dass langsam manchmal gut ist.

Kürzlich dachte ich über diese Tage nach und beschloss, zu sehen, ob ich ein einfaches Ballerspiel für meine Enkelkinder entwerfen könnte. Das hier beschriebene Spiel lässt zwei Spieler gegeneinander antreten, um zu sehen, wer zuerst fünf Treffer erzielen kann. Ich entschied mich auch, eine billige rote Laserdiode als Herzstück der Waffe zu verwenden. Sie können Laserpointer verwenden, wenn Sie möchten, aber die Schaltung, die ich für die Waffe einschließe, stellt sicher, dass Sie einen einzelnen Schuss anstelle eines konstanten Strahls erhalten.

Schritt 1: Lichtsensormodule

Lichtsensormodule
Lichtsensormodule

Zuerst wollte ich nur Fototransistoren für die Sensorschaltungen verwenden, aber dann entdeckte ich die oben gezeigten Lichtsensormodule. Ich habe eine 10er-Packung für so gut wie nichts von einem China-Lieferanten gekauft. Die Module verwenden einen Fototransistor, aber sie leiten die Sensorspannung in einen LM393-Komparator, sodass sowohl ein digitaler als auch ein analoger Ausgang bereitgestellt werden. Ein Potentiometer an Bord kann eingestellt werden, um den Auslösepegel des Komparators einzustellen. Es enthält auch eine Power-On-LED und eine LED, die aufleuchtet, wenn der Komparator den digitalen Ausgang schaltet. Das macht es einfacher, den richtigen Pegel einzustellen.

Schritt 2: Zielhardware

Zielhardware
Zielhardware
Zielhardware
Zielhardware
Zielhardware
Zielhardware

Der Großteil der Hardware besteht aus 10 LEDs und 10 Widerständen. Ich habe standardmäßige 5 mm helle weiße LEDs für die Anzeigen 1-4 und eine langsam blinkende LED für die 5. Anzeige verwendet. Der Schalter ist normalerweise ein offener Momentkontakt und wird verwendet, um das Spiel zurückzusetzen. Der PIC-Mikrocontroller ist ein Standard, den ich in anderen Projekten verwendet habe. Wie Sie auf den Bildern sehen können, habe ich die LED-Module separat gebaut, um sie in einem Ziel leichter zu finden.

Schritt 3: Waffenhardware

Waffenzubehör
Waffenzubehör
Waffenzubehör
Waffenzubehör
Waffenzubehör
Waffenzubehör
Waffenzubehör
Waffenzubehör

Die grundlegende Hardware und das Schema für die Laserpistole sind oben gezeigt. Ich habe meine in Plastikspielzeug-Airsoft-Pistolen eingebaut. Das Laufrohr für die Pellets hat fast die perfekte Größe für die Laserdiodenmodule und in der Öffnung für das Magazin konnte ich einen Batteriehalter für zwei AAA-Batterien unterbringen. Es gibt viele billige Laserdiodenmodule und im Grunde unterscheiden sie sich nur im Wert des an Bord montierten Strombegrenzungswiderstands. Dieser Widerstand bestimmt die Nennspannung des Lasermoduls. Ich benutze zwei AAA-Batterien, also habe ich 3-Volt-Laser ausgewählt. Der Schalter ist ein einpoliger Doppelhub-Mikroschalter. Der Kondensator wird verwendet, um bei jedem Abzug des Abzugs einen einzelnen Lichtstoß zu erzwingen. In einer Stellung des Schalters lädt sich der Kondensator auf und in der anderen Stellung entlädt er sich durch den Laser.

Schritt 4: Software

Wie alle meine PIC-Projekte ist die Software in Assembler geschrieben. Was dieses Projekt etwas ungewöhnlich macht, ist, dass die Main-Routine nichts tut, da die gesamte Aktion im Interrupt-Handler stattfindet. Der PIC verfügt über eine Funktion namens Interrupt-on-Change, die bei älteren PICs Interrupts bei jedem positiven zu negativen oder negativen zu positiven Übergang an einem I/O-Pin erzeugt. Dieser spezielle PIC ermöglicht es der Software, die Unterbrechungsquelle entweder auf die positive Flanke, die negative Flanke oder auf beide Flanken einzustellen. Das Lichtsensormodul generiert beide Kanten an einem Übergang, daher ist diese Funktion sehr praktisch. In diesem Fall wartet die Software, bis der Sensorausgang wieder High (Aus) schaltet, bevor der Interrupt generiert wird.

Wenn eine Sensorunterbrechung empfangen wird, deaktiviert die Software diesen Eingang vorübergehend und stellt einen Timer ein. Tatsächlich wirkt der Timer wie eine Entprellschaltung für einen Schalter. Bei dem für den PIC ausgewählten 8-MHz-Takt und der Einstellung für den Timer beträgt die Gesamtzeitüberschreitung etwa 130 ms. Wenn der Timer abgelaufen ist, erzeugt er auch einen Interrupt. An diesem Punkt wird der Sensoreingang wieder aktiviert. Jeder Sensoreingang hat seinen eigenen dedizierten Timer, sodass es keine Konflikte zwischen den Spielern gibt.

Bei jeder Sensorunterbrechung leuchtet auch eine der LEDs für diesen Spieler auf. Anstelle eines Zählers verwendet die Software eine Variable mit einem gesetzten Bit. Dieses Bit wird bei jedem Interrupt nach links verschoben und dann in den Ausgangsport ODER-verknüpft, um die nächste LED aufleuchten zu lassen. Wenn die letzte LED leuchtet, deaktiviert der Interrupt-Handler weitere Interrupts und sperrt den anderen Spieler effektiv aus. Der Reset-Schalter ist mit dem MCLR-Eingang des PIC verbunden und die Konfigurationsbits werden gesetzt, um diese Funktion zu ermöglichen. Wenn Reset gedrückt wird, initialisiert die Software die LEDs neu und löscht sie.

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

Empfohlen: