v.0.3.1 font 3x5 pretty

This commit is contained in:
tiijay
2025-10-23 19:06:30 +02:00
parent a66b00989f
commit 9fcc7712e6
7 changed files with 334 additions and 592 deletions

69
main.py
View File

@@ -1,9 +1,12 @@
# from machine import Pin, ADC # type: ignore
from app.display.fonts.font_5x7_opt import font_5x7
from app.display.fonts.font_3x5 import font_3x5
from app.display.fonts.font_5x7 import font_5x7
from app.display.fonts.fonts_utils import align_font
from app.display.neopixel_64x64 import NeoPixel_64x64
from app.utils.colors import BLUE, GREEN, ORANGE, RAINBOW, RED, WHITE, YELLOW, GOLD
from app.utils.system_load import show_system_load
import app.utils.utils as utils
import app.display.fonts.fonts_utils as fonts_utils
from app.web.wlan import Wlan
@@ -29,7 +32,7 @@ def emoji_test():
# display.write_text('💛', 28, 47)
char_row = '😀'
utils.is_letter_assigned_right(char_row, emoji_8x8[char_row])
fonts_utils.shift_letter_right(char_row, emoji_8x8[char_row])
# try emoji
display.set_font(emoji_16x16)
@@ -40,32 +43,25 @@ def weather_check(test_mode: bool = False):
wlan = Wlan('WOKWI-Guest', '12345678')
try:
display = NeoPixel_64x64()
display.clear()
display.draw_text('search wlan', 0, 0, color=YELLOW)
display.write()
display.write_text('search wlan', 0, 0, color=YELLOW)
display.clear_row(0, effect=False)
# display.clear()
display.draw_text('wlan connected', 0, 0, color=RAINBOW[1])
display.draw_text('querying', 0, 8, color=RAINBOW[1])
display.draw_text('weather data', 0, 16, color=RAINBOW[1])
display.write()
display.clear()
display.set_font(font_3x5)
display.write_text('wlan connected', 0, 0, color=RAINBOW[1])
display.write_text('querying', 0, 8, color=RAINBOW[1])
display.write_text('weather data', 0, 16, color=RAINBOW[1])
w_resp = wlan.actual_weather(lang='en', test_mode=test_mode)
display.clear()
# display.draw_text(f'{str(w_resp.location.name)}', 0, 0, color=RAINBOW[0])
# display.draw_text(f'{str(w_resp.current.temp_c)}°C', 0, 8, color=RAINBOW[1])
# display.draw_text(f'upd: {str(w_resp.current.last_updated)[-5:]}', 0, 16, color=RAINBOW[2])
# display.draw_text(f'cur: {str(w_resp.location.localtime)[-5:]}', 0, 24, color=RAINBOW[3])
# display.write()
delta = 8
ypos = 0
display.write_text(f'{str(w_resp.location.name)}', 0, ypos, color=RAINBOW[0])
display.write_text(f'{str(w_resp.location.name).upper()}', 0, ypos, color=RAINBOW[0])
display.set_font(font_5x7)
ypos += delta
display.write_text(f'{str(w_resp.current.temp_c)}°C', 0, ypos, color=RAINBOW[1])
ypos += delta
@@ -86,28 +82,48 @@ def weather_check(test_mode: bool = False):
print('finally done.')
def font_5x7_test() -> None:
def font_test(font) -> None:
display.set_font(font)
alphabet: str = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
char_line_1 = alphabet[:11]
char_line_2 = alphabet[11:22]
char_line_3 = alphabet[21:]
num_line = '0123456789'
display.write_text(num_line, 0, 0)
display.write_text(char_line_1.lower(), 0, 1, YELLOW)
display.write_text(char_line_2.lower(), 0, 2, YELLOW)
display.write_text(char_line_3.lower(), 0, 3, YELLOW)
display.write_text(' !?.,:;\'"-_+=*/\\()', 0, 4, ORANGE)
row = 0
incr = 6
display.write_text(num_line, 0, row)
row += incr
display.write_text(char_line_1.upper(), 0, row, YELLOW)
row += incr
display.write_text(char_line_2.upper(), 0, row, YELLOW)
row += incr
display.write_text(char_line_3.upper(), 0, row, YELLOW)
row += incr
display.write_text(char_line_1.lower(), 0, row, YELLOW)
row += incr
display.write_text(char_line_2.lower(), 0, row, YELLOW)
row += incr
display.write_text(char_line_3.lower(), 0, row, YELLOW)
row += incr * 2
display.write_text('!.,:;\'"-_+=*/\\()~°•', 0, row, ORANGE)
def font_pretty(font):
pretty_font = align_font(font)
print(pretty_font)
def bit_arrays():
display.set_font(font_3x5)
# c = 'A'
# print(c)
# [print(utils.number_to_bitarray_msb(num)) for num in font_5x7[c]]
char_row = '1'
[display.write_text(c, 0, idx, YELLOW) for idx, c in enumerate(char_row)]
utils.is_letter_assigned_right(char_row, font_5x7[char_row])
fonts_utils.shift_letter_right(char_row, font_5x7[char_row])
# display.write_text(char_row, 0, len(char_row), ORANGE)
# display.write_text('Kiel', 0, 7, BLUE)
@@ -123,7 +139,8 @@ def bit_arrays():
if __name__ == '__main__':
# emoji_test()
weather_check(test_mode=False)
# font_5x7_test()
# font_test(font_3x5)
# bit_arrays()
# show_system_load()
# font_pretty(font_3x5)
weather_check(test_mode=True)