Inhaltsverzeichnis:
Video: Arduino Space Rocks-Spiel - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:17
Egal, ob sie auf einem Computer, auf einem Telefon, auf einer Spielekonsole oder auf einer eigenständigen Box gespielt werden, viele Videospiele beinhalten ein Element der Hindernisvermeidung. Sicher, es können Punkte für das Sammeln von Token oder das Finden des Weges durch ein Labyrinth vergeben werden, aber seien Sie versichert, dass es wahrscheinlich etwas im Spiel gibt, dessen einziger Zweck darin besteht, Sie daran zu hindern. Das erste Videospiel war Pong, aber danach waren die beliebtesten Spiele Dinge wie „Asteroids“oder „Pac-Man“. Eine neuere Variante wäre das einfache, aber süchtig machende Spiel „Flappy Birds“.
Vor kurzem sah ich, dass jemand eine einfache zweistufige Version von „Flappy Bird“erstellt hatte, die auf einem gewöhnlichen 1602-LCD abgespielt wurde. Ich dachte, das würde den Enkeln gefallen, also beschloss ich, meine eigene Variation von Grund auf neu zu machen. Die 1602-Version hat nur zwei Level, also habe ich mich für ein 2004er LCD (20x4) entschieden, um die Spielschwierigkeit etwas zu erhöhen. Ich habe mich auch dafür entschieden, es eher wie „Asteroiden“zu machen, indem der Spieler ein „Schiff“durch ein Labyrinth aus „Weltraumfelsen“führt. Auch wenn Sie nicht daran interessiert sind, das Spiel zu entwickeln, gibt es möglicherweise einige Elemente der Software, die Sie in einem Ihrer eigenen Projekte verwenden können.
Schritt 1: Hardware
Die Hardware kann auf so ziemlich jeder Arduino-Version basieren. Ich habe das Prototyping mit einem Nano gemacht und dann den Code in einen ATMega328-Chip gebrannt. Dies ist der gleiche Chip, der im Nano verwendet wird, aber die Verwendung allein ermöglicht eine kompaktere Bauweise und einen geringeren Stromverbrauch. Wie Sie sehen können, habe ich die Schaltung auf einem kleinen Steckbrett gebaut, das auf dem LCD-Modul huckepack sitzt. Der andere Aspekt, der sich unterscheidet, ist, dass der Nano mit einem externen Quarz mit 16 MHz läuft, aber ich habe mich dafür entschieden, den eingebauten 8-MHz-Oszillator für den ATMega328-Chip zu verwenden. Das spart Teile und Strom.
Das LCD von 2004 ist mit dem Arduino genauso verbunden wie ein 1602 LCD. Ein interessanter Unterschied besteht in der Adressierung der Anzeigeorte. Offensichtlich gibt es einen Unterschied, weil es vier statt zwei Linien gibt, aber im Jahr 2004 ist die dritte Linie eine Erweiterung der ersten Linie und die vierte Linie eine Erweiterung der zweiten Linie. Mit anderen Worten, wenn Sie ein Testprogramm hätten, das gerade eine Zeichenfolge an das LCD aussendet, würde das 21. Zeichen am Anfang der dritten Zeile erscheinen und das 41. Zeichen springt zurück zum Anfang der ersten Zeile. Ich verwende diese Eigenschaft in der Software, um die Länge des Labyrinths effektiv zu verdoppeln.
Ich beschloss, meine Version batteriebetrieben zu machen, also benutzte ich einen gewöhnlichen 18650 Li-Ion, 3,6-Volt-Akku. Dazu musste ich eine kleine Platine hinzufügen, um das Aufladen über USB zu ermöglichen, und eine weitere kleine Platine, um die Batteriespannung für das LCD und den ATMega-Chip auf 5 Volt zu erhöhen. Die Bilder zeigen die Module, die ich verwendet habe, aber es gibt auch All-in-One-Module, die beide Funktionen erfüllen.
Schritt 2: Software
Die Software ist für den Nano- und den ATMega328-Chip gleich. Der einzige Unterschied liegt in der Programmiermethode. Ich verwende meine eigene Barebone-Version der 1602 LCD-Software und die LCD-Software in diesem Projekt basiert darauf. Ich musste Funktionen hinzufügen, um die zusätzlichen Zeilen der Anzeige von 2004 zu adressieren, und auch Routinen zum Verschieben der Anzeige hinzugefügt. Die Anzeigeverschiebung sorgt für den Bewegungseffekt der „Felsen“am „Schiff“vorbei.
Wie bereits erwähnt, bilden die Linien 1 und 3 eine kreisförmige Warteschlange und die Linien 2 und 4 ebenfalls. Das bedeutet, dass nach 20 Schichten die Zeilen 1 und 3 getauscht werden und die Zeilen 2 und 4 getauscht werden. Nach 40 Schichten befinden sich die Linien wieder in ihrer ursprünglichen Position. Aufgrund dieses Verhaltens wird das ursprüngliche 20-Zeichen-Labyrinth völlig anders, wenn die Zeilen vertauscht werden. Das machte das Leben interessant, als ich versuchte, ein Labyrinth zu bilden. Schließlich habe ich gerade eine Excel-Tabelle geöffnet, damit ich den Pfad aufzeichnen konnte, ohne ständig die Software ändern zu müssen. Die hier bereitgestellte Software enthält zwei Versionen des Labyrinths (eine ist auskommentiert), sodass Sie auswählen können, welche Sie möchten, oder Ihre eigene erstellen.
Ich wollte ursprünglich, dass dies so einfach ist, dass die jungen Enkelkinder es spielen können, aber ich wollte auch, dass es eine zusätzliche Herausforderung darstellt, wenn sie (oder jemand anderes) zu gut darin werden. Das Spiel beginnt mit der Shift-Rate von 1 Sekunde. Die interne Tic-Rate beträgt 50 ms, dh es gibt 20 Intervalle, in denen die Auf-/Ab-Tasten gedrückt werden können. Tatsächlich verbraucht eine gedrückte Taste 2 Tics, da ein 50-ms-Intervall verwendet wird, um das Drücken zu erkennen und ein weiteres 50-ms-Intervall verwendet wird, um auf die Freigabe zu warten. Mit dem Standardlabyrinth beträgt die maximale Anzahl von Drücken, die vor der nächsten Schicht erforderlich sind, drei. Die einfache Möglichkeit, den Schwierigkeitsgrad des Spiels zu erhöhen, besteht darin, die Zeit zwischen den Schichten zu verkürzen, sodass ein paar Codezeilen genau das tun, wenn die Punktzahl steigt. Die Schaltrate ist so eingestellt, dass sie alle 20 Schichten um 50 ms beschleunigt, wobei die minimale Rate auf 500 ms begrenzt ist. Es ist einfach, diese Parameter zu ändern.
Abgesehen von der Änderung der Verschiebungsrate besteht die primäre Logik in der Software darin, das „Schiff“zu bewegen und festzustellen, ob das „Schiff“mit einem „Stein“kollidiert ist. Diese Funktionen nutzen das definierte „Rock/Space“-Array und auch das Array, das die Speicherplätze im Display definiert. Der Verschiebungszähler entspricht der Zeilenlänge des LCD (0-19) und wird als Index in diese Arrays verwendet. Die Logik wird durch die Tatsache, dass die Leitungen alle 20 Schichten tauschen, etwas kompliziert. Eine ähnliche Logik wird verwendet, um die Position des „Schiffs“zu bestimmen, das sich auf einer der vier Linien befinden kann.
Die Punktzahl für jedes Spiel ist einfach die Anzahl der aufgetretenen Verschiebungen und der Highscore wird im internen EEROM des Mikrocontrollers gespeichert. Die EEPROM-Bibliothek wird verwendet, um die Lese- und Schreibvorgänge in diesem Speicher durchzuführen. Die verfügbaren Routinen ermöglichen Einzelbyte-Lese-/Schreibvorgänge und Lese-/Schreibvorgänge von Gleitkommawerten. Ein Wert von 0xA5 wird im ersten EEROM-Speicherort gespeichert, um anzuzeigen, dass ein Highscore gespeichert wurde. Wenn dieser Wert beim Einschalten vorhanden ist, wird der Gleitkommawert für den Highscore gelesen und angezeigt. Wenn der Wert 0xA5 nicht vorhanden ist, wird eine Routine aufgerufen, um den Highscore auf einen Wert von 1 zu initialisieren. Dieselbe Routine wird aufgerufen, wenn ein Reset des Highscores gewünscht wird. Der Highscore wird auf den Wert 1 zurückgesetzt, indem man eine der Auf-/Ab-Tasten gedrückt hält und dann kurz die Reset-Taste drückt.
Schritt 3: Das Spiel spielen
Beim Einschalten wird der aktuelle Highscore angezeigt. Nachdem der Highscore angezeigt wird, werden das Labyrinth aus „Felsen“und das „Schiff“angezeigt und das Spiel beginnt einige Sekunden später. Wenn das „Schiff“auf einen „Felsen“trifft, blinkt die Meldung „CRASH AND BURN“einige Male, bevor der Spielstand angezeigt wird. Wenn ein neuer Highscore erstellt wird, wird diese Nachricht ebenfalls angezeigt. Durch Drücken der Reset-Taste wird ein neues Spiel gestartet.
Empfohlen:
Einen Arduino-Gitarren-Tuner herstellen – wikiHow
So bauen Sie einen Arduino-Gitarren-Tuner: Dies sind die Anweisungen, um einen Gitarren-Tuner aus einem Arduino und mehreren anderen Komponenten zu machen. Mit Grundkenntnissen in Elektronik und Codierung können Sie dieses Gitarrenstimmgerät herstellen. Zuerst müssen Sie wissen, was die Materialien sind. Ma
ALARMA ARDUINO CON SENSOR DE MOVIMIENTO, SIRENA Y AVISO AL TLF. MÓVIL: 9 Schritte
ALARMA ARDUINO CON SENSOR DE MOVIMIENTO, SIRENA Y AVISO AL TLF. MÓVIL: Este proyecto consiste en a alarma básica que Detecta presencia, activa una sirena de 108dB y visa al usuario mediante un SMS (opcional). Permite también el control remoto básico por parte del usuario a través de SMS (encendido, apagado, reinicio
Heimwerken -- Einen Spinnenroboter herstellen, der mit einem Smartphone mit Arduino Uno gesteuert werden kann – wikiHow
Heimwerken || Wie man einen Spider-Roboter herstellt, der mit einem Smartphone mit Arduino Uno gesteuert werden kann: Während man einen Spider-Roboter baut, kann man so viele Dinge über Robotik lernen. Wie die Herstellung von Robotern ist sowohl unterhaltsam als auch herausfordernd. In diesem Video zeigen wir Ihnen, wie Sie einen Spider-Roboter bauen, den wir mit unserem Smartphone (Androi
Einfaches BLE mit sehr geringem Stromverbrauch in Arduino Teil 2 - Temperatur- / Feuchtigkeitsmonitor - Rev 3: 7 Schritte
Easy Very Low Power BLE in Arduino Teil 2 – Temperatur-/Feuchtigkeitsmonitor – Rev 3: Update: 23. November 2020 – Erster Austausch von 2 x AAA-Batterien seit 15. Januar 2019 dh 22 Monate für 2x AAA AlkalineUpdate: 7. April 2019 – Rev 3 of lp_BLE_TempHumidity, fügt Datum/Uhrzeit-Plots hinzu, verwendet pfodApp V3.0.362+ und automatische Drosselung, wenn
Arduino-Programmierung über das Handy -- Arduinodroid -- Arduino-Ide für Android -- Blinzeln: 4 Schritte
Arduino-Programmierung über das Handy || Arduinodroid || Arduino-Ide für Android || Blink: Bitte abonnieren Sie meinen Youtube-Kanal für weitere Videos…… Arduino ist ein Board, das direkt über USB programmiert werden kann. Es ist sehr einfach und günstig für College- und Schulprojekte oder sogar für Produktprototypen. Viele Produkte bauen zunächst darauf für i