v.0.4.0 tryout.emojis

This commit is contained in:
tiijay
2025-10-24 13:34:09 +02:00
parent d48087090c
commit 966c196bce
5 changed files with 58 additions and 552 deletions

View File

@@ -1,516 +1,30 @@
# Emoji symbols for LED matrix (16x16)
emoji_16x16 = {
# === SMILEYS & EMOTIONS ===
'😀': [ # Grinning Face
0x07E0,
0x1FF8,
0x3FFC,
0x7FFE,
0x7FFE,
0xFFFF,
0xFFFF,
0xFFFF,
0xFFFF,
0xFFFF,
0x7FFE,
0x7FFE,
0x3FFC,
0x1FF8,
0x07E0,
0x0000,
],
'😊': [ # Smiling Face with Smiling Eyes
0x07E0,
0x1FF8,
0x3FFC,
0x7FFE,
0x7C3E,
0xF81F,
0xF00F,
0xF00F,
0xF00F,
0xF00F,
0xF81F,
0x7C3E,
0x7FFE,
0x3FFC,
0x1FF8,
0x07E0,
],
'😂': [ # Face with Tears of Joy
0x07E0,
0x1FF8,
0x3FFC,
0x7FFE,
0x7C3E,
0xF99F,
0xF3CF,
0xF3CF,
0xF3CF,
0xF3CF,
0xF99F,
0x7C3E,
0x7FFE,
0x3FFC,
0x1FF8,
0x07E0,
],
'😍': [ # Smiling Face with Heart-Eyes
0x07E0,
0x1FF8,
0x3FFC,
0x7FFE,
0x7C3E,
0xF81F,
0xF3CF,
0xE7E7,
0xE7E7,
0xF3CF,
0xF81F,
0x7C3E,
0x7FFE,
0x3FFC,
0x1FF8,
0x07E0,
],
'😎': [ # Smiling Face with Sunglasses
0x07E0,
0x1FF8,
0x3FFC,
0x7FFE,
0x7FFE,
0xFFFF,
0xF00F,
0xF00F,
0xF00F,
0xF00F,
0xFFFF,
0x7FFE,
0x7FFE,
0x3FFC,
0x1FF8,
0x07E0,
],
'😢': [ # Crying Face
0x07E0,
0x1FF8,
0x3FFC,
0x7FFE,
0x7C3E,
0xF81F,
0xF00F,
0xF3CF,
0xF3CF,
0xF00F,
0xF99F,
0x7C3E,
0x7FFE,
0x3FFC,
0x1FF8,
0x07E0,
],
'😠': [ # Angry Face
0x07E0,
0x1FF8,
0x3FFC,
0x7FFE,
0x7C3E,
0xF81F,
0xF3CF,
0xE667,
0xE667,
0xF3CF,
0xF81F,
0x7C3E,
0x7FFE,
0x3FFC,
0x1FF8,
0x07E0,
],
# === HEARTS ===
'❤️': [ # Red Heart
0x0000,
0x0000,
0x0C30,
0x1E78,
0x3FFC,
0x7FFE,
0x7FFE,
0xFFFE,
0xFFFC,
0x7FF8,
0x7FF0,
0x3FE0,
0x1FC0,
0x0F80,
0x0700,
0x0000,
],
'💙': [ # Blue Heart
0x0000,
0x0000,
0x0C30,
0x1E78,
0x3FFC,
0x7FFE,
0x7FFE,
0xFFFE,
0xFFFC,
0x7FF8,
0x7FF0,
0x3FE0,
0x1FC0,
0x0F80,
0x0700,
0x0000,
],
# === WEATHER & NATURE ===
'☀️': [ # Sun
0x8001,
0x4002,
0x2004,
0x1188,
0x0DB0,
0x07E0,
0x03C0,
0xFFFF,
0xFFFF,
0x03C0,
0x07E0,
0x0DB0,
0x1188,
0x2004,
0x4002,
0x8001,
],
'🌙': [ # Crescent Moon
0x0000,
0x1F80,
0x3FC0,
0x7FE0,
0xFFF0,
0xFFF8,
0xFFF8,
0xFFF0,
0xFFE0,
0xFFC0,
0xFF80,
0xFF00,
0xFE00,
0xFC00,
0xF800,
0x0000,
],
'': [ # Star
0x0180,
0x0180,
0x03C0,
0x03C0,
0x07E0,
0x0FF0,
0x1FF8,
0x3FFC,
0x3FFC,
0x1FF8,
0x0FF0,
0x07E0,
0x03C0,
0x03C0,
0x0180,
0x0180,
],
'☁️': [ # Cloud
0x0000,
0x0000,
0x0F00,
0x1F80,
0x3FC0,
0x7FE0,
0x7FE0,
0xFFF0,
0xFFF0,
0xFFF0,
0x7FE0,
0x7FE0,
0x3FC0,
0x1F80,
0x0F00,
0x0000,
],
# === TECHNOLOGY ===
'📱': [ # Mobile Phone
0xFFFF,
0x8001,
0x8001,
0x9FF9,
0x9009,
0x9009,
0x9009,
0x9009,
0x9009,
0x9009,
0x9009,
0x9009,
0x9FF9,
0x8001,
0x8001,
0xFFFF,
],
'💻': [ # Laptop
0x0000,
0x7FFE,
0x4002,
0x4002,
0x4002,
0x4002,
0x4002,
0x4002,
0x4002,
0x4002,
0x4002,
0x4002,
0x7FFE,
0x3FFC,
0x1FF8,
0x0000,
],
'🔒': [ # Lock
0x0FC0,
0x1FE0,
0x3FF0,
0x3FF0,
0x3FF0,
0x3FF0,
0x3FF0,
0x3FF0,
0x3FF0,
0x3FF0,
0x3FF0,
0x3FF0,
0x3FF0,
0x3FF0,
0x3FF0,
0x3FF0,
],
'🔑': [ # Key
0x0000,
0x0000,
0x0F00,
0x1F80,
0x3FC0,
0x3FC0,
0x3FC0,
0x3FC0,
0x3FC0,
0x3FC0,
0x3FC0,
0x3FC0,
0x3FC0,
0x3FC0,
0x3FC0,
0x3FC0,
],
# === ANIMALS ===
'🐱': [ # Cat Face
0x07E0,
0x1FF8,
0x3FFC,
0x7FFE,
0x7FFE,
0x6FF6,
0x6FF6,
0x6FF6,
0x6FF6,
0x6FF6,
0x7FFE,
0x7FFE,
0x3FFC,
0x1FF8,
0x07E0,
0x0000,
],
'🐶': [ # Dog Face
0x07E0,
0x1FF8,
0x3FFC,
0x7FFE,
0x7FFE,
0x6FF6,
0x6FF6,
0x6FF6,
0x6FF6,
0x6FF6,
0x7FFE,
0x7FFE,
0x3FFC,
0x1FF8,
0x07E0,
0x0000,
],
'🐦': [ # Bird
0x0000,
0x0000,
0x0000,
0x0000,
0x0000,
0x0000,
0x0000,
0x0000,
0x0000,
0x0000,
0x0000,
0x0000,
0x0000,
0x0000,
0x0000,
0x0000,
],
# === FOOD ===
'🍕': [ # Pizza
0x07E0,
0x1FF8,
0x3FFC,
0x7FFE,
0x7FFE,
0x7FFE,
0x7FFE,
0x7FFE,
0x7FFE,
0x7FFE,
0x7FFE,
0x7FFE,
0x3FFC,
0x1FF8,
0x07E0,
0x0000,
],
'🍎': [ # Red Apple
0x0000,
0x0000,
0x0000,
0x0000,
0x0000,
0x0000,
0x0000,
0x0000,
0x0000,
0x0000,
0x0000,
0x0000,
0x0000,
0x0000,
0x0000,
0x0000,
],
# === VEHICLES ===
'🚗': [ # Car
0x0000,
0x0000,
0x0FC0,
0x1FE0,
0x3FF0,
0x3FF0,
0x3FF0,
0x3FF0,
0x3FF0,
0x3FF0,
0x3FF0,
0x3FF0,
0x1FE0,
0x0FC0,
0x0000,
0x0000,
],
'✈️': [ # Airplane
0x0000,
0x0000,
0x0000,
0x0000,
0x0000,
0x0000,
0x0000,
0x0000,
0x0000,
0x0000,
0x0000,
0x0000,
0x0000,
0x0000,
0x0000,
0x0000,
],
# === SPORTS ===
'': [ # Soccer Ball
0x07E0,
0x1FF8,
0x3FFC,
0x7FFE,
0x7FFE,
0x7FFE,
0x7FFE,
0x7FFE,
0x7FFE,
0x7FFE,
0x7FFE,
0x7FFE,
0x3FFC,
0x1FF8,
0x07E0,
0x0000,
],
'🏀': [ # Basketball
0x07E0,
0x1FF8,
0x3FFC,
0x7FFE,
0x7FFE,
0x7FFE,
0x7FFE,
0x7FFE,
0x7FFE,
0x7FFE,
0x7FFE,
0x7FFE,
0x3FFC,
0x1FF8,
0x07E0,
0x0000,
],
# === HOLIDAYS ===
'🎄': [ # Christmas Tree
0x0180,
0x03C0,
0x03C0,
0x07E0,
0x07E0,
0x0FF0,
0x0FF0,
0x1FF8,
0x1FF8,
0x3FFC,
0x3FFC,
0x03C0,
0x03C0,
0x03C0,
0x03C0,
0x03C0,
],
'🎃': [ # Jack-O-Lantern
0x07E0,
0x1FF8,
0x3FFC,
0x7FFE,
0x7FFE,
0x7FFE,
0x7FFE,
0x7FFE,
0x7FFE,
0x7FFE,
0x7FFE,
0x7FFE,
0x3FFC,
0x1FF8,
0x07E0,
0x0000,
],
'☀️': [0x8001, 0x4002, 0x2004, 0x1188, 0xDB0, 0x7E0, 0x3C0, 0xFFFF, 0xFFFF, 0x3C0, 0x7E0, 0xDB0, 0x1188, 0x2004, 0x4002, 0x8001],
'☁️': [0x00, 0x00, 0xF0, 0x1F8, 0x3FC, 0x7FE, 0x7FE, 0xFFF, 0xFFF, 0xFFF, 0x7FE, 0x7FE, 0x3FC, 0x1F8, 0xF0, 0x00],
'': [0x3F0, 0xFFC, 0x1FFE, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x1FFE, 0xFFC, 0x3F0, 0x00],
'✈️': [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00],
'❤️': [0x00, 0x00, 0x618, 0xF3C, 0x1FFE, 0x3FFF, 0x3FFF, 0x7FFF, 0x7FFE, 0x3FFC, 0x3FF8, 0x1FF0, 0xFE0, 0x7C0, 0x380, 0x00],
'': [0x60, 0x60, 0xF0, 0xF0, 0x1F8, 0x3FC, 0x7FE, 0xFFF, 0xFFF, 0x7FE, 0x3FC, 0x1F8, 0xF0, 0xF0, 0x60, 0x60],
'🌙': [0x00, 0x3F0, 0x7F8, 0xFFC, 0x1FFE, 0x1FFF, 0x1FFF, 0x1FFE, 0x1FFC, 0x1FF8, 0x1FF0, 0x1FE0, 0x1FC0, 0x1F80, 0x1F00, 0x00],
'🍎': [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00],
'🍕': [0x3F0, 0xFFC, 0x1FFE, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x1FFE, 0xFFC, 0x3F0, 0x00],
'🎃': [0x3F0, 0xFFC, 0x1FFE, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x1FFE, 0xFFC, 0x3F0, 0x00],
'🎄': [0x60, 0xF0, 0xF0, 0x1F8, 0x1F8, 0x3FC, 0x3FC, 0x7FE, 0x7FE, 0xFFF, 0xFFF, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0],
'🏀': [0x3F0, 0xFFC, 0x1FFE, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x3FFF, 0x1FFE, 0xFFC, 0x3F0, 0x00],
'🐦': [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00],
'🐱': [0x3F0, 0xFFC, 0x1FFE, 0x3FFF, 0x3FFF, 0x37FB, 0x37FB, 0x37FB, 0x37FB, 0x37FB, 0x3FFF, 0x3FFF, 0x1FFE, 0xFFC, 0x3F0, 0x00],
'🐶': [0x3F0, 0xFFC, 0x1FFE, 0x3FFF, 0x3FFF, 0x37FB, 0x37FB, 0x37FB, 0x37FB, 0x37FB, 0x3FFF, 0x3FFF, 0x1FFE, 0xFFC, 0x3F0, 0x00],
'💙': [0x00, 0x00, 0x618, 0xF3C, 0x1FFE, 0x3FFF, 0x3FFF, 0x7FFF, 0x7FFE, 0x3FFC, 0x3FF8, 0x1FF0, 0xFE0, 0x7C0, 0x380, 0x00],
'💻': [0x00, 0x3FFF, 0x2001, 0x2001, 0x2001, 0x2001, 0x2001, 0x2001, 0x2001, 0x2001, 0x2001, 0x2001, 0x3FFF, 0x1FFE, 0xFFC, 0x00],
'📱': [0xFFFF, 0x8001, 0x8001, 0x9FF9, 0x9009, 0x9009, 0x9009, 0x9009, 0x9009, 0x9009, 0x9009, 0x9009, 0x9FF9, 0x8001, 0x8001, 0xFFFF],
'🔑': [0x00, 0x00, 0x3C, 0x7E, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF],
'🔒': [0xFC, 0x1FE, 0x3FF, 0x3FF, 0x3FF, 0x3FF, 0x3FF, 0x3FF, 0x3FF, 0x3FF, 0x3FF, 0x3FF, 0x3FF, 0x3FF, 0x3FF, 0x3FF],
'😀': [0x7E0, 0x1FF8, 0x3FFC, 0x7FFE, 0x7FFE, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x7FFE, 0x7FFE, 0x3FFC, 0x1FF8, 0x7E0, 0x00],
'😂': [0x7E0, 0x1FF8, 0x3FFC, 0x7FFE, 0x7C3E, 0xF99F, 0xF3CF, 0xF3CF, 0xF3CF, 0xF3CF, 0xF99F, 0x7C3E, 0x7FFE, 0x3FFC, 0x1FF8, 0x7E0],
'😊': [0x7E0, 0x1FF8, 0x3FFC, 0x7FFE, 0x7C3E, 0xF81F, 0xF00F, 0xF00F, 0xF00F, 0xF00F, 0xF81F, 0x7C3E, 0x7FFE, 0x3FFC, 0x1FF8, 0x7E0],
'😍': [0x7E0, 0x1FF8, 0x3FFC, 0x7FFE, 0x7C3E, 0xF81F, 0xF3CF, 0xE7E7, 0xE7E7, 0xF3CF, 0xF81F, 0x7C3E, 0x7FFE, 0x3FFC, 0x1FF8, 0x7E0],
'😎': [0x7E0, 0x1FF8, 0x3FFC, 0x7FFE, 0x7FFE, 0xFFFF, 0xF00F, 0xF00F, 0xF00F, 0xF00F, 0xFFFF, 0x7FFE, 0x7FFE, 0x3FFC, 0x1FF8, 0x7E0],
'😠': [0x7E0, 0x1FF8, 0x3FFC, 0x7FFE, 0x7C3E, 0xF81F, 0xF3CF, 0xE667, 0xE667, 0xF3CF, 0xF81F, 0x7C3E, 0x7FFE, 0x3FFC, 0x1FF8, 0x7E0],
'😢': [0x7E0, 0x1FF8, 0x3FFC, 0x7FFE, 0x7C3E, 0xF81F, 0xF00F, 0xF3CF, 0xF3CF, 0xF00F, 0xF99F, 0x7C3E, 0x7FFE, 0x3FFC, 0x1FF8, 0x7E0],
'🚗': [0x00, 0x00, 0xFC, 0x1FE, 0x3FF, 0x3FF, 0x3FF, 0x3FF, 0x3FF, 0x3FF, 0x3FF, 0x3FF, 0x1FE, 0xFC, 0x00, 0x00],
}

View File

@@ -43,8 +43,9 @@ class NeoPixel_64x64(NeoPixel):
self.selected_font = font
# Höhe des Fonts, Anzahl der Zeilen für jedes Zeichen
# wir holen den Wert aus "A"
self.font_height = len(self.selected_font['A'])
# wir holen den ersten Wert des Fonts
first_char = next(iter(self.selected_font))
self.font_height = len(self.selected_font[first_char])
print(f'Font set: width: per char; height: {self.font_height}')
def set_pixel(self, x, y, color):
@@ -110,9 +111,7 @@ class NeoPixel_64x64(NeoPixel):
[
# print(xpos, ypos)
self.set_pixel(xpos, ypos, GRAY)
for xpos in range(
x, x + char_width
) # 8 because full with of character representation
for xpos in range(x, x + char_width) # 8 because full with of character representation
for ypos in range(y, y + self.font_height)
]
@@ -157,9 +156,7 @@ class NeoPixel_64x64(NeoPixel):
self.write()
def vertical_floating_text(
self, text, x, color=RAINBOW[0], float_range=3, speed=0.2, duration=10
):
def vertical_floating_text(self, text, x, color=RAINBOW[0], float_range=3, speed=0.2, duration=10):
"""
Vertical floating text animation
@@ -190,9 +187,7 @@ class NeoPixel_64x64(NeoPixel):
self.write()
time.sleep(0.05)
def horizontal_floating_text(
self, text, y, color=RAINBOW[0], float_range=3, speed=0.2, duration=10
):
def horizontal_floating_text(self, text, y, color=RAINBOW[0], float_range=3, speed=0.2, duration=10):
"""
Horizontal floating text animation

0
app/tryout/__init__.py Normal file
View File

17
app/tryout/emojis.py Normal file
View File

@@ -0,0 +1,17 @@
import app.utils.colors as colors
import app.display.fonts.fonts_utils as fonts_utils
from app.display.emoji.emoji_8x8 import emoji_8x8
from app.display.emoji.emoji_16x16 import emoji_16x16
def emojis_check(display):
display.clear()
# try emoji
display.set_font(emoji_8x8)
display.write_text('😀😂✅😎💙', 0, 0, color=colors.GREEN)
# try emoji
display.set_font(emoji_16x16)
display.write_text('🌙💙🔑', 0, 10, color=colors.ORANGE)