Classes and functions for animated text and graphics on an LED display

Overview

LEDarcade

A collection of classes and functions for animated text and graphics on an Adafruit LED Matrix.

Follow us on Facebook: https://www.facebook.com/ArcadeRetroClock

See the LEDarcade in action: https://github.com/datagod/LEDarcade

ArcadeRetroClockTitleSmall

Watch the Video: https://youtu.be/Z9uW0MQYcrE?t=10

The Running Man Running Man

Background

Arcade Retro Clock started out as a project on an 8x8 matrix. Over the years it has been converted to 16x16 and now 64x32. Each conversion process involved solving many bugs and enhancing the game play especially with respects to the computer's ability to play against itself.

For LEDarcade, I decided to isolate classes, functions, sprites, etc. that are used specifically for displaying messages and animations and to exclude any functions used to control the specific games.

What it can do

LEDArcade has many classes, functions, pre-defined sprites that are used to do the following:

  • draw a sprite
  • move a sprite
  • make a sprite float across the screen
  • raw animated sprites floating across the screen
  • draw text of multiple sizes
  • scroll text left or right at various speeds
  • multiple ways to clear the screen (zooming in / zooming out / fading)
  • scroll the screen around a large map, displaying only a section of the map in a window

There are many more functions available but they are fairly complex. As this project moves forward I will create more examples and document each function.

Example title screens



PacDotTitleSmall



TronTitleSmall



AstroSmashTitleSmall

Requirements


Raspberry Pi 3 and up
Adafruit LED Matrix (64x32)
Adafruit RGB Hat
hzeller's RBG LED Matrix code: https://github.com/hzeller/rpi-rgb-led-matrix

Usage

Modify the test.py script to contain the messages you want to display. Then execute by issuing the comand:

sudo python3 test.py

Usage

Discord

Join us on discord: https://discord.gg/fUzbh48vRm

Blog

I blog about my Raspberry Pi projects. https://datagod.hashnode.dev/ledarcade-upping-your-led-game

You might also like...
This is an incredible led matrix simulation using the ultimate mosaik co-simulation framework.
This is an incredible led matrix simulation using the ultimate mosaik co-simulation framework.

This project uses the mosaik co-simulation framework, developed by the brilliant developers at the high-ranked Offis institue for computer science, Oldenburg, Germany, to simulate multidimensional LED matrices.

♟️ QR Code display for P4wnP1 (SSH, VNC, any text / URL)
♟️ QR Code display for P4wnP1 (SSH, VNC, any text / URL)

♟️ Display QR Codes on P4wnP1 (p4wnsolo-qr) 🟢 QR Code display for P4wnP1 w/OLED (SSH, VNC, P4wnP1 WebGUI, any text / URL / exfiltrated data) Note: Th

A ch341dll Wrap is for using in Python 32bits windows  to access I2C SPI and MDIO (by GPIO), and Demo with display PC sreen on OLED by i2c or SPI .
A ch341dll Wrap is for using in Python 32bits windows to access I2C SPI and MDIO (by GPIO), and Demo with display PC sreen on OLED by i2c or SPI .

ch341dll_wrap_typcal_app A ch341dll Wrap is for using in Python 32bits windows to access I2C SPI and MDIO (by GPIO). In addition, I provided 3 Demo. I

Minimal and clean dashboard to visualize some stats of Pi-Hole with an E-Ink display attached to your Raspberry Pi
Minimal and clean dashboard to visualize some stats of Pi-Hole with an E-Ink display attached to your Raspberry Pi

Clean Dashboard for Pi-Hole Minimal and clean dashboard to visualize some stats of Pi-Hole with an E-Ink display attached to your Raspberry Pi.

Create a low powered, renewable generation forecast  display with a Raspberry Pi Zero & Inky wHAT.
Create a low powered, renewable generation forecast display with a Raspberry Pi Zero & Inky wHAT.

GB Renewable Forecast Display This Raspberry Pi powered eInk display aims to give you a quick way to time your home energy usage to help balance the g

DIY split-flap display
DIY split-flap display

The goal is to make a low-cost display that's easy to fabricate at home in small/single quantities (e.g. custom materials can be ordered from Ponoko or similar, and other hardware is generally available).

A dashboard for Raspberry Pi to display environmental weather data, rain radar, weather forecast, etc. written in Python
A dashboard for Raspberry Pi to display environmental weather data, rain radar, weather forecast, etc. written in Python

Weather Clock for Raspberry PI This project is a dashboard for Raspberry Pi to display environmental weather data, rain radar, weather forecast, etc.

Pi-hole with Inky pHAT ePaper display
Pi-hole with Inky pHAT ePaper display

Pi-hole with Inky pHAT ePaper display This is my Pi-hole with an ePaper display.

Python information display framework aimed at e-ink devices
Python information display framework aimed at e-ink devices

My display, using a Raspberry Pi Zero W and Waveshare 6" e-paper hat infodisplay Modular information display framework aimed at e-ink devices. Built u

Comments
  • Syntax error in LEDarcade.l

    Syntax error in LEDarcade.l

    sudo python SpaceDot.py --led-gpio-mapping=adafruit-hat
    Traceback (most recent call last):
      File "SpaceDot.py", line 43, in <module>
        import LEDarcade as LED
      File "/home/pi/LEDarcade/LEDarcade.py", line 12106
        print ('--',end='')
                       ^
    SyntaxError: invalid syntax
    
    opened by ToontjeM 2
  • No Screen Output - Troubleshooting

    No Screen Output - Troubleshooting

    I have a RPI ZW2 with a 64x32 screen. It is running MLB, NHL, NBA and a couple other boards without any problems. I performed "git clone https://github.com/datagod/LEDarcade"

    Next I ran: python3 -m pip install --upgrade pip python3 -m pip install --upgrade Pillow

    Now I'm running: "sudo python3 RunningTest.py" = No display on led matrix, but I see the commands being run on my ssh session.

    Also: "sudo python3 RunningTest.py --led-gpio-mapping=adafruit-hat-pwm --led-brightness=40 --led-slowdown-gpio=2 --led-cols=64 --led-rgb-sequence=RBG"

    Both commands have screen outputs as follows:

    --Load Config Data-- Config file not found! Running with default values.

    Suggestion: to slightly improve display update, add isolcpus=3 at the end of /boot/cmdline.txt and reboot (see README.md)

    -- Starry Night Display Text Text1: HIGH SCORES Text2: WATCH THE TOP PLAYERS IN THE WORLD Text3: BREAK RECORDS, MAKE FRIENDS, CELEBRATE EXCELLENCE ElapsedSeconds: 2 ElapsedSeconds: 3 ElapsedSeconds: 5

    Am I missing something simple?

    Thanks!

    opened by jediempi 0
  • Issue when launching Outbreak

    Issue when launching Outbreak

    Traceback (most recent call last):                                                                                            │    9 options.rows       = HatHeight
      File "Outbreak.py", line 3304, in <module>                                                                                  │   10 options.cols       = HatWidth
        LaunchOutbreak(100000)                                                                                                    │   11 options.brightness = 100
      File "Outbreak.py", line 3275, in LaunchOutbreak                                                                            │   12 #stops sparkling 
        PlayOutbreak(GameMaxMinutes)                                                                                              │   13 options.gpio_slowdown = 5
      File "Outbreak.py", line 2763, in PlayOutbreak                                                                              │   14 options.hardware_mapping = "adafruit-hat-pwm"
        DinnerPlate.DisplayWindowZoom(CameraH,CameraV,2,96,0)                                                                     │   15 
      File "Outbreak.py", line 502, in DisplayWindowZoom                                                                          │   16 #options.chain_length = self.args.led_chain
        self.DisplayWindow(h,v,Z)                                                                                                 │   17 options.chain_length = 1
      File "Outbreak.py", line 470, in DisplayWindow                                                                              │   18 #options.parallel = self.args.led_parallel
        name = self.Playfield[v+V][h+H].name                                                                                      │   19 #options.row_address_type = self.args.led_row_addr_type
    IndexError: list index out of range   
    
    opened by ToontjeM 0
  • Error when starting Defender.py

    Error when starting Defender.py

    GroundRGB: (0, 24, 0)                                                                                                         │
    Traceback (most recent call last):                                                                                            │
      File "arcade.py", line 101, in <module>                                                                                     │
        LaunchArcade(5)                                                                                                           │
      File "arcade.py", line 73, in LaunchArcade                                                                                  │
        DE.LaunchDefender(GameMaxMinutes)                                                                                         │
      File "/home/pi/LEDarcade/Defender.py", line 2215, in LaunchDefender                                                         │
        PlayDefender(GameMaxMinutes)                                                                                              │
      File "/home/pi/LEDarcade/Defender.py", line 1337, in PlayDefender                                                           │
        Ground.CreateMountains(GroundRGB,SurfaceRGB,maxheight=MaxMountainHeight)                                                  │
      File "/home/pi/LEDarcade/LEDarcade.py", line 3171, in CreateMountains                                                       │
        self.map[mv][x] = (SurfaceR, SurfaceG, SurfaceB)                                                                          │
    IndexError: list index out of range  
    
    opened by ToontjeM 1
Owner
datagod
I have been programming computers since 1982. I am a database architect who builds Raspberry Pi projects for fun. Read up on me: https://datagod.hashnode
datagod
Code and build instructions for Snap, a simple Raspberry Pi and LED machine to show you how expensive the electricyty is at the moment

Code and build instructions for Snap, a simple Raspberry Pi and LED machine to show you how expensive the electricyty is at the moment. On row of LEDs shows the cost of the hour, the other row the cost of the day.

Johan Jonk Stenström 3 Sep 8, 2022
A simple program to make MSI Modern 15 speaker and microphone mute led work.

MSI Modern 15 sound led fixup for linux A simple program to fix the MSI Modern 15 speaker and microphone mute LEDs. Installation Requirements pulsectl

Seyed Danial Movahed 4 Oct 18, 2022
My 500 LED xmas tree

xmastree2020 This repository contains the code used for Matt's Christmas tree, as featured in "I wired my tree with 500 LED lights and calculated thei

Stand-up Maths 581 Jan 7, 2023
LedFx is a network based LED effect controller with support for advanced real-time audio effects

Welcome to LedFx ✨ -Making music come alive! LedFx website: https://ledfx.app/ What is LedFx? What LedFx offers is the ability to take audio input, an

null 786 Jan 2, 2023
An emulated LED scoreboard for Major League Baseball ⚾

An LED scoreboard for Major League Baseball. Displays a live scoreboard for your team's game on that day.

Tyler Porter 8 Apr 8, 2022
Rasberry Pie GPIO memory game. Press the corresponding key to the lit LED.

RPie-keyboard-game Rasberry Pie GPIO memory game. Press the corresponding key to the lit LED. Randem LED (general output) is lit up on rasberrypi rand

Shawn Dowling 1 Oct 24, 2021
The example shows using local self-hosted runners on-premises by making use of a runner on a Raspberry Pi with LED's attached to it

The example shows using local self-hosted runners on-premises by making use of a runner on a Raspberry Pi with LED's attached to it

Martin Woodward 6 Nov 13, 2021
LED effects plugin for klipper

This plugin allows Klipper to run effects and animations on addressable LEDs, such as Neopixels, WS2812 or SK6812.

Julian Schill 238 Jan 4, 2023
Run this code to blink your ThinkPad LED with a hidden mysterious Morse code! ;)

TMorse Run this code to blink your ThinkPad LED with a hidden mysterious Morse code! ;) Compatible with python3.9+. No third-party library is required

Mahyar 2 Jul 11, 2022
SPI driven CircuitPython driver for PCA9745B constant current LED driver.

Introduction THIS IS VERY MUCH ALPHA AND IN ACTIVE DEVELOPMENT. THINGS WILL BREAK! THIS MAY ALSO BREAK YOUR THINGS! SPI driven CircuitPython driver fo

Andrew Ferguson 1 Jan 14, 2022