Cyclone Arcade Spiel

Fortsetzung der Diskussion von Zeigt her eure geilen Projekte!:

Cyclone Arcade Spiel

Im Rahmen einer Projektarbeit an der Hochschule Heilbronn des Studienganges Produktion- und Prozessmanagement haben wir ein altes Arcade Spiel wieder zum Leben erweckt:




Stückliste:
|1| LCD Modul Display|
|2|LED-Ring|
|3|Arduino NANO V3 |
|4|Druckknopf-Mini-Rundschalter|
|5|Kondensator 18F|
|6|Potentiometer|
|7|Active Alarm Buzzer|
|8|Wippe|
|9|USB 2.0 Kabel|

Der Programmcode verwendet dabei die folgenden Bibliotheken:

#include <Adafruit_NeoPixel.h>

#include <util/atomic.h>

#include <LiquidCrystal_I2C.h>

#include <Arduino.h>

#include <EEPROM.h>

Einstellungen

Um die Schwierigkeit des Spiels individuell zu gestalten, können verschiedene Änderungen am Code vorgenommen werden:

Anzahl der LEDs

Die Anzahl der LEDs, welche im Spiel getroffen werden sollen, kann in der CPP-Datei LED-Ring.CPP angepasst werden. Hierzu können beliebig viele LEDs an verschiedenen Positionen des Rings eingefügt werden. Zusätzlich lässt sich die Farbe der LEDs beliebig konfigurieren. Die erforderlichen Änderungen sind in folgendem Code-Abschnitt vorzunehmen:

  m_strip.clear();
  m_strip.setPixelColor((LEDRING_START_NUM - 1), 255, 165, 0);
  m_strip.setPixelColor(LEDRING_START_NUM, 255, 0, 0);
  m_strip.setPixelColor((LEDRING_START_NUM + 1), 255, 165, 0);
  m_strip.setPixelColor(m_currentLed, 0, 255, 0);

Geschwindigkeit der zirkulierenden LED

Die Geschwindigkeit der zirkulierenden LED lässt sich in der config.CPP Datei variieren:

Um die Geschwindigkeit des zirkulierenden LEDs zu ändern, muss der Wert für das Start-Delay angepasst werden. Ein Wert von 30ul entspricht einer Verzögerung von 30 Millisekunden. Durch eine entsprechende Änderung des Wertes kann das Spiel leichter oder auch schwieriger gestaltet werden.

 #define LEDRING_START_DELAY_MS 30ul

Wechseln der Position der zu treffenden LED

Die Anzahl der LEDs, welche im Spiel getroffen werden sollen, kann in der CPP-Datei LED-Ring.CPP verändert werden. Hierzu können beliebig viele LEDs an verschiedenen Positionen des Rings eingefügt werden. Zusätzlich lässt sich die Farbe der LEDs beliebig anpassen.

Eine beispielhafte Änderung der Position würde im Code so aussehen

  m_strip.clear();
  m_strip.setPixelColor((LEDRING_START_NUM - 10), 255, 165, 0);
  m_strip.setPixelColor(LEDRING_START_NUM, 255, 0, 0);
  m_strip.setPixelColor((LEDRING_START_NUM + 10), 255, 165, 0);
  m_strip.setPixelColor(m_currentLed, 0, 255, 0);
}

Anzahl an Leben

Um die Anzahl an Leben zu ändern, kann der Wert in der CPP-Datei config.CPP beliebig festgelegt werden. Standardmäßig sind 3 Leben pro Durchgang eingestellt.

#ifndef PLAYER_TOTLIVES
#define PLAYER_TOTLIVES 3  
#endif

Visuelle Einstellungen

Zusätzlich können auch visuelle Änderungen der LEDs vorgenommen werden. Hierbei kann sowohl die Farbe der LEDs als auch die Helligkeit verändert werden.

Helligkeit

Die Helligkeit kann in der CPP-Datei LEDRing.CPP angepasst werden.

Hierzu ist die folgende Code-Zeile anzupassen:

 m_strip.setBrightness(15) 

Um die Einstellung der Helligkeit zu regulieren, kann die in den Klammern angegebene Zahl auf einen Wert zwischen 1 und 100 eingestellt werden. Hierbei steht der Zahlenwert für die prozentuale Helligkeit der LEDs.

Farbe

Die Farbe der LEDs wird ebenfalls in der CPP-Datei LEDRing.CPP festgelegt. Hierzu sind folgende Code-Zeilen entsprechend der gewünschten Farbe einzustellen.

m_strip.setPixelColor((LEDRING_START_NUM - 1), 255, 165, 0);
m_strip.setPixelColor(LEDRING_START_NUM, 255, 0, 0);
m_strip.setPixelColor((LEDRING_START_NUM + 1), 255, 165, 0);
m_strip.setPixelColor(m_currentLed, 0, 255, 0);

Das Spiel bietet die Möglichkeit, frei nach Fantasie angepasst zu werden und um zusätzliche Funktionen sowie Schwierigkeitsgrade erweitert zu werden. Dabei haben Nachbauende die Freiheit, den Programmcode und die Spielmechaniken nach Belieben zu erweitern und anzupassen.

Wir wünschen viel Spaß bei der Umsetzung und dem Ausprobieren des Cyclones.

--------------------------------------------------

Informationen zu den Autor*innen:

Im sechsten Semester des Bachelor of Engineering Studienganges Produktion- und Prozessmanagement an der Hochschule Heilbronn gilt es, eine Projektleistung eigenständig umzusetzen. Um unsere elektrotechnischen, CAD- sowie Programmierkenntnisse in der Praxis zu testen, entschieden wir uns im Dreierteam für die Umsetzung des Projektes Cyclone-Arcade Spiel.

Link zum Studiengang:

Das Projekt bietet mit der Umsetzung einen umfangreichen Einstieg in die Elektrotechnik und die Programmierung des Mikrocontrollers zur Steuerung der einzelnen Bauteile mit der Arduino-IDE, welche auf der Programmiersprache C und C++ beruht.

Der Aufbau beinhaltet viele grundlegende Bauteile. Dies hilft, ein besseres Verständnis zu erlangen, wie ein Produkt von der Idee bis hin zur Produktentstehung umgesetzt wird.

Falls ihr nun Lust habt den Cyclone nachzubauen stehen euch unter folgendem Link sämtliche Dateien zum Download bereit:

Hier findet sich auch nochmal eine genauere Anleitung zur Umsetzung des Cyclones, da ich hier im Forum (als "Neuling") auf 3 Bilder beschränkt bin.

Ein schönes Projekt.
Ich verstehe nur nicht zu was man ein USB C Verlängerungskabel braucht.
Zum Nachbauen aber zu wenig Infos.

Hi,
erstmal danke und schön, dass dir unser Projekt gefällt.
Ich habe eine detailliertere Anleitung zum Download unter dem Link zu MediaFire bereitgestellt. Dort findest du auch den Programmcode.
Welche Informationen fehlen dir für einen Nachbau? :slight_smile:

Wieso nehmt Ihr im Schaltplan einen UNO und in der Stückeliste einen NANO? Fritzing hat doch auch den NANO.

Der Aufbau auf einem Steckbrett ist sehr wackelig ( Wackelkontakte) .
Da würde ich einen NANO vorschlagen und ein SCREWBoard

Da können die Kabel bequem angeschraubt werden und halten auch.

Mir fehlt ein Foto mit den eingebauten Teilen oder eine genauere Anleitung wie einbauen.

Grüße Uwe

Wieso nehmt Ihr im Schaltplan einen UNO und in der Stückeliste einen NANO? Fritzing hat doch auch den NANO.
-> Das ist nur in der Darstellung so, da es die Darstellung in dem verwendeten Programm nicht gab.

Der Aufbau auf einem Steckbrett ist sehr wackelig ( Wackelkontakte) .
Da würde ich einen NANO vorschlagen und ein SCREWBoard

Mir fehlt ein Foto mit den eingebauten Teilen oder eine genauere Anleitung wie einbauen.

-> Werde ich versuchen nachzustellen und hier bzw. auch im Download zur Verfügung zu stellen.

Du musst bedenken, wir sind ebenfalls Anfänger in der ganzen Thematik und freuen uns auch über Feedback. Das Screwboard sieht für den Aufbau tatsächlich sehr hilfreich aus :D!

Grüße

Habe mal eben eine kleine Hilfestellung zum Stecken / Montieren des Aufbaus gemacht.
Downloadlink habe ich unten bereitgestellt.

Welches Programm ist das? Fritzing hat den NANO.

Deshalb schreibe ich ja.

Grüße Uwe