# from machine import Pin, ADC # type: ignore from app.display.fonts.font_5x7_opt import font_5x7 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 from app.web.wlan import Wlan from app.display.emoji.emoji_8x8 import emoji_8x8 from app.display.emoji.emoji_16x16 import emoji_16x16 from app.display.fonts.font_8x8 import font_8x8 from app.display.fonts.font_16x16 import font_16x16 display = NeoPixel_64x64() def emoji_test(): display.clear() # display.set_font(font_8x8) # display.show_hello() # display.rotate_text_left_continuous('FLOATING TEXT', 0, speed=8.0, duration=30) display.set_font(font_16x16) display.draw_text('ABCD', 1, 1, color=GOLD) # try emoji display.set_font(emoji_8x8) display.draw_text('πŸ˜€', 1, 20, color=GREEN) display.draw_text('⭐', 1, 29) display.draw_text('βœ…', 1, 38) display.draw_text('😎', 1, 47, color=RED) display.draw_text('πŸ’™', 10, 47) display.draw_text('πŸ’š', 19, 47) display.draw_text('πŸ’›', 28, 47) # try emoji # display.set_font(emoji_16x16) # display.draw_text('πŸ˜€', 10, 20, color=ORANGE) display.write() show_system_load() def weather_check(): wlan = Wlan('WOKWI-Guest', '12345678') try: display = NeoPixel_64x64() display.clear() display.draw_text('search wlan', 0, 0, color=YELLOW) display.write() 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() w_resp = wlan.actual_weather(test_mode=True) 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() display.write_text(f'{str(w_resp.location.name)}', 0, 0, color=RAINBOW[0]) display.write_text(f'{str(w_resp.current.temp_c)}Β°C', 0, 1, color=RAINBOW[1]) display.write_text(f'upd: {str(w_resp.current.last_updated)[-5:]}', 0, 2, color=RAINBOW[2]) display.write_text(f'cur: {str(w_resp.location.localtime)[-5:]}', 0, 3, color=RAINBOW[3]) display.write_text('ready', 5, 7, color=WHITE) except OSError as e: print(f'Error: connection closed - {e}') finally: print('finally done.') def font_5x7_test() -> None: 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) def bit_arrays(): # def number_to_bitarray_msb(number): # """Convert 8-bit number to bit array (MSB first)""" # return [(number >> i) & 1 for i in range(7, -1, -1)] # c = 'A' # print(c) # [print(utils.number_to_bitarray_msb(num)) for num in font_5x7[c]] char_row = 'ΒΆβ€’' [display.write_text(c, 0, idx, YELLOW) for idx, c in enumerate(char_row)] display.write_text(char_row, 0, len(char_row), ORANGE) display.write_text('Kiel', 0, 7, BLUE) # c = 'I' # print(c) # [print(number_to_bitarray_msb(num)) for num in font_5x7[c]] # c = 'J' # print(c) # [print(number_to_bitarray_msb(num)) for num in font_5x7[c]] if __name__ == '__main__': # emoji_test() # weather_check() # font_5x7_test() bit_arrays()