GithubHelp home page GithubHelp logo

akaylyn / simon Goto Github PK

View Code? Open in Web Editor NEW
2.0 5.0 0.0 147.67 MB

License: MIT License

C++ 45.61% C 6.89% Processing 2.66% Objective-C 0.15% HTML 40.51% CSS 1.26% JavaScript 1.51% Makefile 0.47% TeX 0.82% Shell 0.03% Batchfile 0.02% Perl 0.07%

simon's Introduction

Simon v2 Overview

The general relationship between the four micro-controllers is:

Light <= Console <=> Tower, Music

That is, Console has a unidirectional relationship with Light (I/O pins), and bidirectional relationships with Tower (radio) and Music (serial).

Microcontrollers

  • Light

    • Arduino Pro Mini controlling WS2812 RGB pixel strips to light rim and buttons on the console.
    • Has 4x GPIO pin connection via Console(Light).
  • Tower

    • JeeNode controlling tower lights and fire.
    • Has RFB12b connection for two-way communication via Console(Tower).
  • Music

    • Arduino Pro Mini controlling VS1053 music breakout.
    • Has Serial connection for two-way communication via Console(Sound).
  • Console

    • Arduino Mega controlling the Simon implementation.
    • Arranged around submodules mirroring the outboard micro-controllers and internal functions:
    • Button: Responsible for hard buttons on a PCB. Used for debugging purposes.
    • Extern: Responsible for interfacing with other projects via RFM12b (currently: Clouds, Giles).
    • Gameplay: Responsible for Simon implementation as a Finite State Machine.
    • Touch: Responsible for UX input via MPR121 capsense breakout.
    • Light: Responsible for UX (light) output local to the console. Coordinates outboard Light.
    • Tower: Responsible for UX (light/fire) output to Towers. Coordinates outboard Tower.
    • Music: Responsible for UX (sound) output. Coordinates outboard Music.

simon's People

Contributors

aaronstj avatar akaylyn avatar giles7777 avatar the-magister avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

simon's Issues

Light, sound and fire: Playing

While the game is playing, we don't want the light, sound and fire going to be (very) distracting from game play. Maybe kick off a quiet "score"/"soundtrack"/"jam" in the background. Maybe kick out a little fire when a player reaches each "skill level" threshold?

System configuration on-the-fly

At some point, we'll identify system tuning parameters that we'd like to adjust while the system is running, without requiring that we recompile and upload code. Let's use this Issue to track what parameters we want to expose, as we learn them.

Light, sound and fire: Game Start

Game start should be punctuated with a short production of light, sound and fire, giving the player the sense that "it's on like Donkey Kong".

Light, sound and fire: Game Ends

At the end of the game, we should have a pretty elaborate light, sound and fire production. Presumably, in proportion to how well the player did (see Skill Level Issue).

Difficulty levels

The original Simon game features 4 play levels which increased the sequence length required to "win". When you "won", the game would just beep. Additionally, the game required that you set the difficulty level before game start, which is kind of fiddly in-real-life. I think we can do better than that!

When the game concludes, check the correct sequence length (int currentLength) and compare to a table. Produce sound, light and fire proportional to achievement level.

Target: Console / Gamplay.cpp / idleState() and playerFanfare()

Cards:

Light, sound and fire: System Idle

After some interval of nobody playing, the project should kick out a light, sound and fire production that's designed to entertain folks standing around, and to draw people in that are in line-of-sight. "Kiosk mode" or "attractant mode".

touch sensors stick

During gameplay and bongo mode, the touch sensors have started registering a button press without a release.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.