Cyclone Arcade Spiel (Programmiercode, 3D-Druckdateien, Beschreibung, Anleitung) Download-Link am Ende des Beitrags



  • 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:

    Leider kann ich hier im Forum (Neuanmeldung) keine Bilder posten. Falls euch das Projekt interessiert, findet ihr alle erforderlichen Infos ganz unten zum Download bereitgestellt über MediaFire.

    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.</b>

    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:

    https://www.hs-heilbronn.de/de/produktion-und-prozessmanagement

    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.
    https://www.mediafire.com/file/kj3cdsh3y15ket0/Cyclone-Dateien.zip/file


Log in to reply