23 October 2024

Scaffolding: Progress Review - Rhythm Heaven Tambourine

Isaiah Maeztu and Matthew Cabrera

Description:

Our controller is an interactive tambourine designed to play any of the wide variety of minigames present in the rhythm game Rhythm Heaven. Its conceptual model is an actual tambourine used in one of the minigames in which the player repeats the rhythm of a monkey playing tambourine with them. It provides users with a way to immerse themselves in positions of various characters in the game and feel like they are part of the driving beat. The controller allows for inputs mapped to the two major actions of the game, A button presses and B button presses. Users can select A or B by tilting the controller either left or right respectively, then hitting the tambourine to "press" the button. On the side of the controller, a potentiometer allows for precise inputs such as menu navigation in the game.

Controller Sketch:

Schematic:

Pseudocode:

#include <Adafruit_CircuitPlayground.h>
#include <Adafruit_Circuit_Playground.h>

//Initialize keyboard/controller stuff depending on input we use

// Setup
{
  // Initialize Switch on Playground for On/Off
  // Initialize Circuit Playground
  // Initialize Keyboard / Controller
}

// Loop
{
  // If the switch is on...
  {
    // Print Accelerometer Values

    // Button Input
    // If Microphone is over a certain value / Sensor detects a tap
    {
      // If Accelerometer rotation is over a certain value (Tilted)
      {
        // Release A
        // Press B
      }
      // Else
      {
        // Release B
        // Press A
      }
    }
    // Else
    {
      // Release buttons
    }

    //D-Pad Potentiometer
    // If Potentiometer value is Neutral (between two values)
    {
      // Release all D-Pad Inputs
    }

    // If Potentiometer is below a certain value (Left)
    {
      // If Accelerometer rotation is over a certain value (Tilted)
        // Press Up
      // Else
        // Press Left
    }

    // If Potentiometer is over a certain value (Right)
    {
      // If Accelerometer rotation is over a certain value (Tilted)
        // Press Down
      // Else
        // Press Right
    }
  }
}

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.