Project goals

- Pixel display for patterns and sprites - Show NES Tetris in huge pixels - Some pixelflut

Code: https://github.com/deepestcyber/rgb-tetris-wall

Sub projects

Case
  • MDF/HDF walls + ground 5mm, acrylic top 3mm, Transparentpapier below acrylic top
  • Modules 40x40cm, 8x8px
  • OR one piece 80*120cm, 16x24px
  • for modules: 3mm outer wall, 6mm inner wall, 6mm base (to not get too heavy), 3mm acrylic top
  • BUILD THE WALL!
LED control
  • Arduino Mega based (sufficient memory limit, fast IO control)
  • FastLED library
  • SPI in for image-stream, 115200+ baud rate: 24x16px x 50 or 60Hz x 6bit + control bit(s)
  • OR USB/serial for image-stream up to 115200 baud rate: 30Hz
  • Analog inputs for mode switch: Video/Image/Music/Pattern + pattern_program selection
  • Pattern mode: hard-coded RGB rainbow patterns
  • Music mode: sound detection + appropriate patterns

Image/video preprocessing

  • RasPi based
  • NES signal:
    • A/D converter (svideo → USB)
    • opt for 50/60Hz, 64 colours, perhaps accept 30Hz
    • logic for reading tetris game state (block positions, next block, score)
  • Image presentation:
    • opt for 24bit colours
    • web interface for uploading pictures
  • Trigger Rainbow/Music mode

Energy supply + controller case

  • Prepare for 4 x 18A/12V power lines (overall around 72A/864W)
    • This allows for 0.02x24x16x9 leds (=69.12A)
    • Cheaper option: 2 instead of 3 strips per cell: 46.08A → only 2.88A per column
    • Central power unit, but separate power strip for every column (16x)
    • Organised as 4×2 molex connector
  • Case houses: power unit, raspi, arduino, power switch, 1x mode switch button, 2x pattern/submode switch buttons, 2x speed switch buttons, 2x brightness switch buttons, 1x power switch, 1x child-secure switch (buttons only work, when switch enabled)

TODO

  1. Compile pyv4l @ raspi (needs v4l-dev), see ~/rgb-text-wall/download/pyv4l/
  2. Integrate SPI prototype into rgb-tetris-wall code
  3. Fix YCrCb conversion in streaming tool (see streaming/encoding.py)
  4. Build remaining case parts
  5. Complete the base detection (music mode) und develop nice visual patterns for that
  6. Acquire good Potentiometer