Snake! (#10936)
* Snake! * Add spiLock to snake score saving * Check fixes * More careful locking * WIP: Big Display Node * Update src/graphics/HUB75Display.cpp Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * Add HUB75 Native * Add Tetris game module with core logic and UI integration - Implement TetrisGame class for game logic, including piece movement, rotation, and line clearing. - Create TetrisModule class to manage game state, input handling, and rendering on OLED display. - Introduce high score tracking with persistence and optional mesh broadcasting. - Define UI states for title, playing, paused, game over, and high scores. - Implement input handling for game controls and state transitions. - Add rendering functions for the game board, high scores, and title screen. * feat(snake): add snake graphics and update display logic in SnakeModule * Prompt for Initials for Tetris, too * refactor games module * Games refactor * hub75 native double buffer * Games tuning * Make joystick repeat events on held button * Add clouds and colors * Fix breakout and more color * difficulty tuning * trunk * refactor game announcements, etc * Scale chirpy gravity as game speed increases * Portduino, check for hub75 display before reading in hub75 options * Final(?) games tuning * Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> * Properly ignore input when games screen not shown * Fail gracefully when HUB75 is selected but not supported. --------- Co-authored-by: Thomas Göttgens <tgoettgens@gmail.com> Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> Co-authored-by: Ixitxachitl <kramerfm@gmail.com> Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
This commit is contained in:
co-authored by
GitHub
Thomas Göttgens
coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Ixitxachitl
Copilot Autofix powered by AI
parent
d3d02af817
commit
8d1fbbf55f
+24
-1
@@ -153,6 +153,30 @@ Display:
|
||||
### You can also specify the spi device for the display to use
|
||||
# spidev: spidev0.0
|
||||
|
||||
### HUB75 RGB LED matrix panel (Raspberry Pi only, via hzeller/rpi-rgb-led-matrix).
|
||||
### Requires the librgbmatrix library to be installed (so `pkg-config rgbmatrix` resolves) and
|
||||
### the firmware built with it present. meshtasticd must run as root (or with /dev/gpiomem
|
||||
### access) and on-board audio disabled (dtparam=audio=off) so it doesn't fight the PWM timing.
|
||||
### The library owns the GPIO pins - they are chosen by HardwareMapping, not set individually.
|
||||
# Panel: HUB75
|
||||
# HUB75:
|
||||
# HardwareMapping: adafruit-hat-pwm # regular | adafruit-hat | adafruit-hat-pwm | regular-pi1 ...
|
||||
# Rows: 64 # pixel rows per panel (e.g. 32 or 64)
|
||||
# Cols: 64 # pixel columns per panel
|
||||
# ChainLength: 1 # panels daisy-chained (width = Cols * ChainLength)
|
||||
# Parallel: 1 # parallel chains (height = Rows * Parallel)
|
||||
# Brightness: 80 # percent, 1..100
|
||||
# PWMBits: 11 # lower = higher refresh, fewer colors
|
||||
# GPIOSlowdown: 4 # raise for faster Pis / long cables if the panel ghosts or flickers
|
||||
# RGBSequence: RGB # reorder if your panel's colors are swapped (e.g. RBG, BGR)
|
||||
# ScanMode: 0 # 0=progressive, 1=interlaced
|
||||
# RowAddressType: 0 # 0=default, 1=AB-addressed (some 64x64 panels)
|
||||
# Multiplexing: 0 # 0=direct, 1=stripe, 2=checker, ...
|
||||
# PanelType: "" # e.g. FM6126A for panels needing a special init
|
||||
# PixelMapper: "" # e.g. "U-mapper;Rotate:90"
|
||||
# LimitRefreshRateHz: 0 # 0 = no limit
|
||||
# DisableHardwarePulsing: false
|
||||
|
||||
Touchscreen:
|
||||
### Note, at least for now, the touchscreen must have a CS pin defined, even if you let Linux manage the CS switching.
|
||||
|
||||
@@ -167,7 +191,6 @@ Touchscreen:
|
||||
### You can also specify the spi device for the touchscreen to use
|
||||
# spidev: spidev0.0
|
||||
|
||||
|
||||
Input:
|
||||
### Configure device for direct keyboard input
|
||||
|
||||
|
||||
@@ -0,0 +1,37 @@
|
||||
Meta:
|
||||
name: HUB75 RGB LED Matrix (64x64)
|
||||
support: community
|
||||
compatible:
|
||||
- raspberry-pi
|
||||
|
||||
### HUB75 RGB LED matrix panel driven by hzeller/rpi-rgb-led-matrix.
|
||||
###
|
||||
### Prerequisites:
|
||||
### - Install the rpi-rgb-led-matrix library so `pkg-config rgbmatrix` resolves, and build the
|
||||
### firmware with it present (the HUB75 backend is compiled in automatically when found).
|
||||
### - meshtasticd must run as root (or have /dev/gpiomem access) for the library's direct GPIO.
|
||||
### - Disable on-board audio (dtparam=audio=off in /boot/firmware/config.txt) - it shares the
|
||||
### PWM hardware and causes flicker otherwise.
|
||||
###
|
||||
### The library owns the GPIO pins; they are selected by HardwareMapping (matching your HAT /
|
||||
### wiring), not assigned individually.
|
||||
Display:
|
||||
Panel: HUB75
|
||||
HUB75:
|
||||
HardwareMapping: adafruit-hat-pwm
|
||||
Rows: 64
|
||||
Cols: 64
|
||||
ChainLength: 1
|
||||
Parallel: 1
|
||||
Brightness: 80
|
||||
PWMBits: 11
|
||||
GPIOSlowdown: 4
|
||||
RGBSequence: RGB
|
||||
# Uncomment/tune as needed for your specific panel:
|
||||
# ScanMode: 0
|
||||
# RowAddressType: 0
|
||||
# Multiplexing: 0
|
||||
# PanelType: FM6126A
|
||||
# PixelMapper: ""
|
||||
# LimitRefreshRateHz: 0
|
||||
# DisableHardwarePulsing: false
|
||||
Reference in New Issue
Block a user