Π Π°Π±ΠΎΡΠ° Ρ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ Π΄ΠΈΡΠΏΠ»Π΅ΡΠΌΠΈ (GLCD, TFT, OLED) ΡΠ°ΡΡΠΎ ΡΡΠ΅Π±ΡΠ΅Ρ Π½Π΅ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΡΡΠΈΡΡΠΎΠ² β Π±ΡΠ΄Ρ ΡΠΎ ΠΊΠΈΡΠΈΠ»Π»ΠΈΡΠ°, ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ ΠΈΠ»ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΏΠΎΠ΄ ΠΌΠ°Π»Π΅Π½ΡΠΊΠΈΠΉ ΡΠΊΡΠ°Π½ Π·Π½Π°ΡΠΊΠΈ. GLCD Font Creator (ΠΈΠ»ΠΈ GLCDFontCreator) ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π½Π΅Π·Π°ΠΌΠ΅Π½ΠΈΠΌΡΠΌ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠΌ Π΄Π»Ρ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠΎΠ², ΡΠ°Π΄ΠΈΠΎΠ»ΡΠ±ΠΈΡΠ΅Π»Π΅ΠΉ ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² Π²ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌΡΡ ΡΠΈΡΡΠ΅ΠΌ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΡΠΈΡΡΡ Π² Π±ΠΈΠ½Π°ΡΠ½ΠΎΠΌ ΠΈΠ»ΠΈ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΌ ΡΠΎΡΠΌΠ°ΡΠ΅, ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΠΌ Ρ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎΠΌ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠ². ΠΠ΄Π½Π°ΠΊΠΎ Π±Π΅Π· ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ Π½ΡΠ°Π½ΡΠΎΠ² ΡΠ°Π±ΠΎΡΡ Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΎΠΉ Π΄Π°ΠΆΠ΅ ΠΏΡΠΎΡΡΠ°Ρ Π·Π°Π΄Π°ΡΠ° β Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΡΡΡΡΠΊΠΎΠ³ΠΎ Π°Π»ΡΠ°Π²ΠΈΡΠ° β ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠ΅Π²ΡΠ°ΡΠΈΡΡΡΡ Π² ΡΠ°ΡΠΎΠ²ΡΡ Π³ΠΎΠ»ΠΎΠ²ΠΎΠ»ΠΎΠΌΠΊΡ.
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°Π·Π±Π΅ΡΡΠΌ Π²ΡΠ΅ ΡΡΠ°ΠΏΡ ΡΠ°Π±ΠΎΡΡ β ΠΎΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΈ Π±Π°Π·ΠΎΠ²ΠΎΠΉ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π΄ΠΎ ΡΠΊΡΠΏΠΎΡΡΠ° ΡΡΠΈΡΡΠΎΠ² Π΄Π»Ρ Arduino, STM32, ESP32 ΠΈ Π΄ΡΡΠ³ΠΈΡ
ΠΏΠ»Π°ΡΡΠΎΡΠΌ. ΠΡΠΎΠ±ΠΎΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΠ΄Π΅Π»ΠΈΠΌ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠ°ΠΌΡΡΠΈ (ΠΊΡΠΈΡΠΈΡΠ½ΠΎΠΉ Π΄Π»Ρ ΡΡΡΡΠΎΠΉΡΡΠ² Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΡΠΌΠΈ ΡΠ΅ΡΡΡΡΠ°ΠΌΠΈ) ΠΈ ΠΎΠ±Ρ
ΠΎΠ΄Ρ ΡΠΈΠΏΠΈΡΠ½ΡΡ
ΠΎΡΠΈΠ±ΠΎΠΊ, ΠΈΠ·-Π·Π° ΠΊΠΎΡΠΎΡΡΡ
ΡΡΠΈΡΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ ΠΈΠ΅ΡΠΎΠ³Π»ΠΈΡΠ°ΠΌΠΈ ΠΈΠ»ΠΈ Π²ΠΎΠΎΠ±ΡΠ΅ Π½Π΅ Π·Π°Π³ΡΡΠΆΠ°Π΅ΡΡΡ. ΠΡΠ»ΠΈ Π²Ρ ΠΊΠΎΠ³Π΄Π°-Π½ΠΈΠ±ΡΠ΄Ρ ΡΡΠ°Π»ΠΊΠΈΠ²Π°Π»ΠΈΡΡ Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ Π²ΡΠΎΠ΄Π΅ "avr-gcc: error: undefined reference to 'font'", Π·Π΄Π΅ΡΡ Π²Ρ Π½Π°ΠΉΠ΄ΡΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ.
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ GLCD Font Creator ΠΈ Π·Π°ΡΠ΅ΠΌ ΠΎΠ½ Π½ΡΠΆΠ΅Π½
GLCD Font Creator β ΡΡΠΎ Π±Π΅ΡΠΏΠ»Π°ΡΠ½Π°Ρ ΡΡΠΈΠ»ΠΈΡΠ° Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½Π°Ρ Π΄Π»Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΡΡΠΈΡΡΠΎΠ² Π² ΡΠΎΡΠΌΠ°ΡΠ°Ρ , ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΡ Ρ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ Π΄ΠΈΡΠΏΠ»Π΅ΡΠΌΠΈ. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ:
- π¨ Π ΠΈΡΠΎΠ²Π°ΡΡ ΡΠΈΠΌΠ²ΠΎΠ»Ρ Π²ΡΡΡΠ½ΡΡ (ΠΏΠΈΠΊΡΠ΅Π»Ρ Π·Π° ΠΏΠΈΠΊΡΠ΅Π»Π΅ΠΌ) ΠΈΠ»ΠΈ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈΡ
ΠΈΠ· ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ (
.bmp,.png). - π ΠΠ°ΡΡΡΠ°ΠΈΠ²Π°ΡΡ ΡΠ°Π·ΠΌΠ΅ΡΡ ΡΡΠΈΡΡΠ° (ΡΠΈΡΠΈΠ½Π° Γ Π²ΡΡΠΎΡΠ° Π² ΠΏΠΈΠΊΡΠ΅Π»ΡΡ , ΠΌΠ΅ΠΆΡΠΈΠΌΠ²ΠΎΠ»ΡΠ½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»).
- π₯οΈ ΠΠΊΡΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ Π² ΡΠΎΡΠΌΠ°ΡΡ Π΄Π»Ρ C/C++ (ΠΌΠ°ΡΡΠΈΠ²Ρ Π±Π°ΠΉΡ), Python, ΠΈΠ»ΠΈ Π±ΠΈΠ½Π°ΡΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ.
- π ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠΈ, Π²ΠΊΠ»ΡΡΠ°Ρ
UTF-8,Windows-1251,KOI8-R(Π°ΠΊΡΡΠ°Π»ΡΠ½ΠΎ Π΄Π»Ρ ΠΊΠΈΡΠΈΠ»Π»ΠΈΡΡ).
ΠΠ»Π°Π²Π½ΠΎΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ β Π³ΠΈΠ±ΠΊΠΎΡΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ ΡΡΠΈΡΡ Π²ΡΡΠΎΡΠΎΠΉ 8 ΠΏΠΈΠΊΡΠ΅Π»Π΅ΠΉ Π΄Π»Ρ Nokia 5110 ΠΈΠ»ΠΈ 32 ΠΏΠΈΠΊΡΠ΅Π»Ρ Π΄Π»Ρ ILI9341, ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π² Π΅Π³ΠΎ ΠΏΠΎΠ΄ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ. ΠΠ΅Π· ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ° ΠΏΡΠΈΡΠ»ΠΎΡΡ Π±Ρ Π²ΡΡΡΠ½ΡΡ ΠΏΡΠΎΠΏΠΈΡΡΠ²Π°ΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠΈΠΌΠ²ΠΎΠ» Π² Π²ΠΈΠ΄Π΅ ΠΌΠ°ΡΡΠΈΠ²Π° Π±Π°ΠΉΡ, ΡΡΠΎ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ ΡΠ°ΡΡ ΠΈ ΡΡΠ΅Π²Π°ΡΠΎ ΠΎΡΠΈΠ±ΠΊΠ°ΠΌΠΈ.
β οΈ ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅: GLCD Font Creator Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π°Π½ΡΠΈΠ°Π»ΠΈΠ°ΡΠΈΠ½Π³ (ΡΠ³Π»Π°ΠΆΠΈΠ²Π°Π½ΠΈΠ΅ ΠΊΡΠ°ΡΠ²). ΠΡΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ½Ρ ΠΏΠ»Π°Π²Π½ΡΠ΅ ΡΡΠΈΡΡΡ, ΡΠ°ΡΡΠΌΠΎΡΡΠΈΡΠ΅ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Ρ Π²ΡΠΎΠ΄Π΅ LVGL Font Tool ΠΈΠ»ΠΈ Bitmap Font Generator.
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π²ΠΎΡΡΡΠ΅Π±ΠΎΠ²Π°Π½Π° Π² ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ Π½Π°:
- π€ Arduino (Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ
U8g2,Adafruit_GFX). - π§ STM32 (Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ
STM32CubeIDEΠΈΠ»ΠΈKeil). - π‘ ESP8266/ESP32 (Π΄Π»Ρ Π΄ΠΈΡΠΏΠ»Π΅Π΅Π² ΠΏΠΎ
SPIΠΈΠ»ΠΈI2C). - π₯οΈ ΠΡΠΎΠΌΡΡΠ»Π΅Π½Π½ΡΡ ΠΠΠ (Π³Π΄Π΅ ΡΡΠ΅Π±ΡΡΡΡΡ ΠΊΠ°ΡΡΠΎΠΌΠ½ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ Π΄Π»Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ°).
- Arduino (AVR/ESP)
- STM32 (ARM Cortex)
- ESP32/ESP8266
- Π aspberry Pi Pico
- ΠΡΡΠ³Π°Ρ
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΈ ΠΏΠ΅ΡΠ²ΡΠΉ Π·Π°ΠΏΡΡΠΊ
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° GLCD Font Creator Π½Π΅ ΡΡΠ΅Π±ΡΠ΅Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ β Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠΊΠ°ΡΠ°ΡΡ Π°ΡΡ
ΠΈΠ² Ρ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ Π½Π° GitHub (Π°Π²ΡΠΎΡ β Olikraus, ΡΠΎΡ ΠΆΠ΅, ΠΊΡΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π» Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ U8g2). ΠΠΊΡΡΠ°Π»ΡΠ½Π°Ρ Π²Π΅ΡΡΠΈΡ Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΡΡΠ°ΡΡΠΈ β 1.2.1.
ΠΠΎΡΠ»Π΅ ΡΠ°ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΠΈ Π°ΡΡ ΠΈΠ²Π°:
- ΠΠ°ΠΏΡΡΡΠΈΡΠ΅ ΡΠ°ΠΉΠ»
GLCDFontCreator.jar(ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½Π°Ρ Java 8+). - ΠΡΠ»ΠΈ Java ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ, ΡΠΊΠ°ΡΠ°ΠΉΡΠ΅ Π΅Ρ Ρ Adoptium (ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ OpenJDK 11).
- ΠΡΠΈ ΠΏΠ΅ΡΠ²ΠΎΠΌ Π·Π°ΠΏΡΡΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΠΎΠ·Π΄Π°ΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΠΉ ΡΠ°ΠΉΠ»
config.propertiesΠ² ΡΠΎΠΉ ΠΆΠ΅ ΠΏΠ°ΠΏΠΊΠ΅.
ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈΠ½ΡΡΠΈΡΠΈΠ²Π½ΠΎ ΠΏΠΎΠ½ΡΡΠ΅Π½, Π½ΠΎ ΠΈΠΌΠ΅Π΅Ρ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ:
- πΌοΈ ΠΠ°Π½Π΅Π»Ρ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² (ΡΠ»Π΅Π²Π°) β Π·Π΄Π΅ΡΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ Π²ΡΠ΅ Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ glyphs (ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ β Π»Π°ΡΠΈΠ½ΠΈΡΠ° ΠΈ ΡΠΈΡΡΡ).
- π Π Π΅Π΄Π°ΠΊΡΠΎΡ ΡΠΈΠΌΠ²ΠΎΠ»Π° (ΡΠΏΡΠ°Π²Π°) β ΡΠ΅ΡΠΊΠ° Π΄Π»Ρ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΈΠΊΡΠ΅Π»Π΅ΠΉ.
- βοΈ ΠΠ°Π½Π΅Π»Ρ Π½Π°ΡΡΡΠΎΠ΅ΠΊ (Π²Π½ΠΈΠ·Ρ) β ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΡΠΈΡΡΠ°, ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠ°, ΡΠΊΡΠΏΠΎΡΡ.
β οΈ ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠΡΠ»ΠΈ ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΡΠΈΠ±ΠΊΠ° "Unable to access jarfile", ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅, ΡΡΠΎ ΠΏΡΡΡ ΠΊ ΡΠ°ΠΉΠ»Ρ Π½Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΊΠΈΡΠΈΠ»Π»ΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ΠΈΠ»ΠΈ ΠΏΡΠΎΠ±Π΅Π»ΠΎΠ². ΠΠ΅ΡΠ΅Π½Π΅ΡΠΈΡΠ΅ ΠΏΠ°ΠΏΠΊΡ Π² ΠΊΠΎΡΠ΅Π½Ρ Π΄ΠΈΡΠΊΠ° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ,C:\GLCDFontCreator\).
ΠΠ»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠ°Π±ΠΎΡΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ:
- ΠΡΠ±Π΅ΡΠΈΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»
AΠ² ΠΏΠ°Π½Π΅Π»ΠΈ ΡΠ»Π΅Π²Π°. - Π ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ΅ (ΡΠΏΡΠ°Π²Π°) Π½Π°ΡΠΈΡΡΠΉΡΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΠΉ ΡΠ·ΠΎΡ.
- ΠΠ°ΠΆΠΌΠΈΡΠ΅
File β Export β C Source FileΠΈ ΡΠΎΡ ΡΠ°Π½ΠΈΡΠ΅ ΡΠ°ΠΉΠ» ΠΊΠ°ΠΊtest_font.c.
ΠΡΠ»ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π½Π΅ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ Π½Π° Windows 10/11, ΠΏΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ Π·Π°ΠΏΡΡΡΠΈΡΡ Π΅Ρ ΠΎΡ ΠΈΠΌΠ΅Π½ΠΈ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠ° ΠΈΠ»ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ JAVA_HOME, ΡΠΊΠ°Π·Π°Π² ΠΏΡΡΡ ΠΊ ΠΏΠ°ΠΏΠΊΠ΅ Ρ Java.
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠΈΡΡΠ°
ΠΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΠΏΡΠΈΡΡΡΠΏΠ°ΡΡ ΠΊ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΠ΅ΡΡ Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ ΡΡΠΈΡΡΠ°:
- π Π Π°Π·ΠΌΠ΅Ρ: ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ β
5Γ7,8Γ8,16Γ16. ΠΠ»Ρ OLED-Π΄ΠΈΡΠΏΠ»Π΅Π΅Π² (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, SSD1306) ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ6Γ8. - π€ ΠΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠ°: Π΄Π»Ρ ΠΊΠΈΡΠΈΠ»Π»ΠΈΡΡ Π²ΡΠ±Π΅ΡΠΈΡΠ΅
Windows-1251ΠΈΠ»ΠΈUTF-8(ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π±ΠΎΠ»ΡΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², Π½ΠΎ ΡΡΠ΅Π±ΡΠ΅Ρ Π±ΠΎΠ»ΡΡΠ΅ ΠΏΠ°ΠΌΡΡΠΈ). - π― ΠΠ΅ΠΆΡΠΈΠΌΠ²ΠΎΠ»ΡΠ½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π» (
Spacing): ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ1 ΠΏΠΈΠΊΡΠ΅Π»Ρ. Π£Π²Π΅Π»ΠΈΡΡΡΠ΅ Π΄ΠΎ2β3Π΄Π»Ρ Π»ΡΡΡΠ΅ΠΉ ΡΠΈΡΠ°Π΅ΠΌΠΎΡΡΠΈ.
ΠΡΠΎΡΠ΅ΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΡΠΈΡΡΠ°:
- Π ΠΌΠ΅Π½Ρ
File β NewΡΠΊΠ°ΠΆΠΈΡΠ΅ ΠΈΠΌΡ ΠΏΡΠΎΠ΅ΠΊΡΠ° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ,MyFont_8x16). - Π ΠΏΠ°Π½Π΅Π»ΠΈ
Font PropertiesΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅:Width: 8Height: 16
Spacing: 2
Encoding: Windows-1251 (Π΄Π»Ρ ΡΡΡΡΠΊΠΎΠ³ΠΎ)
- ΠΠΎΠ±Π°Π²ΡΡΠ΅ Π½ΡΠΆΠ½ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ:
- π€ ΠΠ»Ρ Π»Π°ΡΠΈΠ½ΠΈΡΡ: Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½
32β126(ASCII). - π·πΊ ΠΠ»Ρ ΠΊΠΈΡΠΈΠ»Π»ΠΈΡΡ: Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½
192β255(Windows-1251) ΠΈΠ»ΠΈ1024β1103(UTF-8).
- π€ ΠΠ»Ρ Π»Π°ΡΠΈΠ½ΠΈΡΡ: Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½
.bmp (ΠΌΠ΅Π½Ρ File β Import β Bitmap).ΠΡΠΈ ΡΡΡΠ½ΠΎΠΌ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π³ΠΎΡΡΡΠΈΠ΅ ΠΊΠ»Π°Π²ΠΈΡΠΈ:
ΠΠΠβ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΏΠΈΠΊΡΠ΅Π»Ρ.ΠΠΠβ ΡΡΠ΅ΡΠ΅ΡΡ ΠΏΠΈΠΊΡΠ΅Π»Ρ.Shift + ΠΠΠβ Π·Π°Π»ΠΈΠ²ΠΊΠ° ΠΎΠ±Π»Π°ΡΡΠΈ.ΠΡΠΎΠ±Π΅Π»β ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΡΡ ΡΠ²Π΅Ρ (ΡΠ΅ΡΠ½ΡΠΉ/Π±Π΅Π»ΡΠΉ).
ΠΠΎΠ±Π°Π²Π»Π΅Π½Ρ Π²ΡΠ΅ Π½ΡΠΆΠ½ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ (Π²ΠΊΠ»ΡΡΠ°Ρ ΠΊΠΈΡΠΈΠ»Π»ΠΈΡΡ, Π΅ΡΠ»ΠΈ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ)|
ΠΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π° ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠ° (Windows-1251 Π΄Π»Ρ ΡΡΡΡΠΊΠΎΠ³ΠΎ)|
ΠΠ΅ΠΆΡΠΈΠΌΠ²ΠΎΠ»ΡΠ½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π» Π½Π΅ ΡΠ»ΠΈΠ²Π°Π΅Ρ ΡΠΈΠΌΠ²ΠΎΠ»Ρ|
Π¨ΡΠΈΡΡ ΡΠΈΡΠ°Π΅ΠΌ Π½Π° ΡΠ΅Π»Π΅Π²ΠΎΠΌ Π΄ΠΈΡΠΏΠ»Π΅Π΅ (ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅ Π² ΡΠΈΠΌΡΠ»ΡΡΠΎΡΠ΅)-->
ΠΠΊΡΠΏΠΎΡΡ ΡΡΠΈΡΡΠ° Π΄Π»Ρ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠ²
ΠΠΎΡΠ»Π΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΡΠΈΡΡΠ° Π΅Π³ΠΎ Π½ΡΠΆΠ½ΠΎ ΡΠΊΡΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ Π² ΡΠΎΡΠΌΠ°Ρ, ΠΏΠΎΠ½ΡΡΠ½ΡΠΉ Π²Π°ΡΠ΅ΠΌΡ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΡ. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ²:
| Π€ΠΎΡΠΌΠ°Ρ ΡΠΊΡΠΏΠΎΡΡΠ° | ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ | ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ |
|---|---|---|
C Source File |
ΠΠ°ΡΡΠΈΠ² Π±Π°ΠΉΡ Π² Π²ΠΈΠ΄Π΅ .c/.h ΡΠ°ΠΉΠ»ΠΎΠ². ΠΠΎΠ΄Ρ
ΠΎΠ΄ΠΈΡ Π΄Π»Ρ Arduino, STM32. |
|
Binary File |
ΠΠΈΠ½Π°ΡΠ½ΡΠΉ ΡΠ°ΠΉΠ» (.bin), ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΡΠΈΡΡ Π²ΠΎ flash-ΠΏΠ°ΠΌΡΡΡ. |
ΠΡΠΎΠΌΡΡΠ»Π΅Π½Π½ΡΠ΅ ΠΠΠ, Π³Π΄Π΅ ΡΡΠΈΡΡ Ρ ΡΠ°Π½ΠΈΡΡΡ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΌ ΡΠΈΠΏΠ΅. |
Python List |
Π‘ΠΏΠΈΡΠΎΠΊ Π±Π°ΠΉΡ Π΄Π»Ρ ΡΠΊΡΠΈΠΏΡΠΎΠ² Π½Π° Python (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ Raspberry Pi). | |
U8g2 Format |
Π‘ΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΡΠΎΡΠΌΠ°Ρ Π΄Π»Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ U8g2 (ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½ ΠΏΠΎΠ΄ Arduino). |
ΠΠΈΡΠΏΠ»Π΅ΠΈ SSD1306, SH1106. |
ΠΠ»Ρ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π° ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΠΈΡ C Source File. ΠΠ»Π³ΠΎΡΠΈΡΠΌ ΡΠΊΡΠΏΠΎΡΡΠ°:
- ΠΡΠ±Π΅ΡΠΈΡΠ΅
File β Export β C Source File. - Π£ΠΊΠ°ΠΆΠΈΡΠ΅ ΠΈΠΌΡ ΡΠ°ΠΉΠ»Π° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ,
my_font.h). - Π ΠΏΠΎΠ»Π΅
Variable NameΠ²Π²Π΅Π΄ΠΈΡΠ΅ ΠΈΠΌΡ ΠΌΠ°ΡΡΠΈΠ²Π° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ,customFont). - ΠΡΠΌΠ΅ΡΡΡΠ΅ Π³Π°Π»ΠΎΡΠΊΡ
PROGMEM(Π΅ΡΠ»ΠΈ ΡΡΠΈΡΡ Π±ΡΠ΄Π΅Ρ Ρ ΡΠ°Π½ΠΈΡΡΡΡ Π²ΠΎ flash-ΠΏΠ°ΠΌΡΡΠΈ Arduino). - ΠΠ°ΠΆΠΌΠΈΡΠ΅
Export.
ΠΡΠΈΠΌΠ΅Ρ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°:
#include
const uint8_t customFont[] PROGMEM = {
// Π‘ΠΈΠΌΠ²ΠΎΠ» 'A' (ΠΊΠΎΠ΄ 65)
0x00, 0x1C, 0x22, 0x22, 0x22, 0x3E, 0x22, 0x22, 0x22, 0x00,
// Π‘ΠΈΠΌΠ²ΠΎΠ» 'Π' (ΠΊΠΎΠ΄ 194 Π² Windows-1251)
0x00, 0x1C, 0x22, 0x22, 0x3E, 0x22, 0x22, 0x22, 0x3E, 0x00,
...
};
β οΈ ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠΡΠ»ΠΈ Π²Ρ ΡΠΊΡΠΏΠΎΡΡΠΈΡΡΠ΅ΡΠ΅ ΡΡΠΈΡΡ Π΄Π»Ρ STM32 Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌSTM32CubeIDE, ΡΠ΄Π°Π»ΠΈΡΠ΅ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ#includeβ ΠΎΠ½Π° ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π° ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ AVR (Arduino). ΠΠΌΠ΅ΡΡΠΎ Π½Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅#include "stm32fxxx_hal.h"ΠΈ ΡΠ°Π·ΠΌΠ΅ΡΡΠΈΡΠ΅ ΠΌΠ°ΡΡΠΈΠ² Π² ΡΠ΅ΠΊΡΠΈΠΈFLASH:const uint8_t customFont[] __attribute__((section(".rodata"))) = { ... };ΠΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ ΡΡΠΈΡΡΠ° Π² ΠΏΡΠΎΠ΅ΠΊΡ
ΠΠΎΡΠ»Π΅ ΡΠΊΡΠΏΠΎΡΡΠ° ΡΡΠΈΡΡ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ ΠΊ Π²Π°ΡΠ΅ΠΌΡ ΠΏΡΠΎΠ΅ΠΊΡΡ. Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ Π΄Π²Π° ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ ΡΡΠ΅Π½Π°ΡΠΈΡ: Arduino ΠΈ STM32.
ΠΠ»Ρ Arduino (Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΎΠΉ U8g2)
ΠΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ ΡΠΎΡΠΌΠ°Ρ
U8g2:
- Π‘ΠΊΠΎΠΏΠΈΡΡΠΉΡΠ΅ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠ°ΠΉΠ»
my_font.hΠ² ΠΏΠ°ΠΏΠΊΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°.- Π ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΡΠΊΠ΅ΡΡΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ ΠΈ ΡΡΠΈΡΡ:
#include#include "my_font.h"
U8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE);
void setup() {
u8g2.begin();
u8g2.setFont(customFont); // ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Π½Π°Ρ ΡΡΠΈΡΡ
u8g2.drawStr(0, 20, "ΠΡΠΈΠ²Π΅Ρ, ΠΌΠΈΡ!");
u8g2.sendBuffer();
}
ΠΠ»Ρ STM32 (Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ HAL)
ΠΠ»Ρ STM32 ΠΏΡΠΎΡΠ΅ΡΡ ΡΠ»ΠΎΠΆΠ½Π΅Π΅ ΠΈΠ·-Π·Π° ΡΡΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ Ρ Π΄ΠΈΡΠΏΠ»Π΅Π΅ΠΌ:
- ΠΠΎΠ±Π°Π²ΡΡΠ΅ ΡΠ°ΠΉΠ»
my_font.hΠ² ΠΏΡΠΎΠ΅ΠΊΡSTM32CubeIDE.- Π ΡΡΠ½ΠΊΡΠΈΠΈ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠ΅ΠΊΡΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΌΠ°ΡΡΠΈΠ² ΡΡΠΈΡΡΠ°:
void LCD_DrawChar(uint16_t x, uint16_t y, char ch) {uint8_t *char_data = (uint8_t *)&customFont[ch * FONT_HEIGHT];
for (uint8_t i = 0; i < FONT_HEIGHT; i++) {
uint8_t line = char_data[i];
for (uint8_t j = 0; j < FONT_WIDTH; j++) {
if (line & (1 << (7 - j))) {
LCD_DrawPixel(x + j, y + i, WHITE);
}
}
}
}
ΠΠ»Ρ ESP32 Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΎΠΉ
Adafruit_GFXΠΏΡΠΎΡΠ΅ΡΡ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ΅Π½ Arduino, Π½ΠΎ Π²ΠΌΠ΅ΡΡΠΎPROGMEMΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅const:const uint8_t customFont[] = { ... };ΠΡΠ΅Π³Π΄Π° ΠΏΡΠΎΠ²Π΅ΡΡΠΉΡΠ΅, ΡΡΠΎ ΡΠ°Π·ΠΌΠ΅Ρ ΠΌΠ°ΡΡΠΈΠ²Π° ΡΡΠΈΡΡΠ° Π½Π΅ ΠΏΡΠ΅Π²ΡΡΠ°Π΅Ρ Π΄ΠΎΡΡΡΠΏΠ½ΡΡ ΠΏΠ°ΠΌΡΡΡ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ°. ΠΠ»Ρ Arduino Uno (2 ΠΠ SRAM) ΡΡΠΈΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ
16Γ16Ρ 256 ΡΠΈΠΌΠ²ΠΎΠ»Π°ΠΌΠΈ Π·Π°ΠΉΠΌΡΡ ~8 ΠΠ flash-ΠΏΠ°ΠΌΡΡΠΈ!ΠΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ
Π¨ΡΠΈΡΡΡ ΠΌΠΎΠ³ΡΡ Π·Π°Π½ΠΈΠΌΠ°ΡΡ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠ°ΡΡΡ ΠΏΠ°ΠΌΡΡΠΈ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠΈΡΡ
16Γ16Ρ 256 ΡΠΈΠΌΠ²ΠΎΠ»Π°ΠΌΠΈ ΡΡΠ΅Π±ΡΠ΅Ρ:(16 ΠΏΠΈΠΊΡΠ΅Π»Π΅ΠΉ Π²ΡΡΠΎΡΠ° Γ 2 Π±Π°ΠΉΡΠ° Π½Π° ΡΡΡΠΎΠΊΡ Γ 256 ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ²) = 8192 Π±Π°ΠΉΡ (~8 ΠΠ).Π§ΡΠΎΠ±Ρ ΡΠΎΠΊΡΠ°ΡΠΈΡΡ ΡΠ°ΡΡ ΠΎΠ΄ ΠΏΠ°ΠΌΡΡΠΈ:
- π§Ή Π£Π΄Π°Π»ΠΈΡΠ΅ Π½Π΅Π½ΡΠΆΠ½ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ½Π° ΡΠΎΠ»ΡΠΊΠΎ ΠΊΠΈΡΠΈΠ»Π»ΠΈΡΠ° ΠΈ ΡΠΈΡΡΡ, ΡΠΊΡΠΏΠΎΡΡΠΈΡΡΠΉΡΠ΅ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½
48β57(ΡΠΈΡΡΡ) ΠΈ192β255(Windows-1251).- π ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠΆΠ°ΡΠΈΠ΅. Π Π½Π°ΡΡΡΠΎΠΉΠΊΠ°Ρ ΡΠΊΡΠΏΠΎΡΡΠ° Π²ΡΠ±Π΅ΡΠΈΡΠ΅
RLE Compression(Run-Length Encoding). ΠΡΠΎ ΡΠΎΠΊΡΠ°ΡΠ°Π΅Ρ ΡΠ°Π·ΠΌΠ΅Ρ Π½Π° 30β50%, Π½ΠΎ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅Ρ Π²ΡΠ΅ΠΌΡ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³Π°.- π Π£ΠΌΠ΅Π½ΡΡΠΈΡΠ΅ Π²ΡΡΠΎΡΡ ΡΡΠΈΡΡΠ°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΠΌΠ΅ΡΡΠΎ
16Γ16ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅8Γ16(ΡΠΈΡΠΈΠ½Π° Π² 2 ΡΠ°Π·Π° ΠΌΠ΅Π½ΡΡΠ΅).- π Π₯ΡΠ°Π½ΠΈΡΠ΅ ΡΡΠΈΡΡ Π²ΠΎ flash (Π½Π΅ Π² SRAM). ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅
PROGMEM(Arduino) ΠΈΠ»ΠΈ ΡΠ΅ΠΊΡΠΈΡ.rodata(STM32).ΠΡΠΈΠΌΠ΅Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠΊΡΠΏΠΎΡΡΠ° Π΄Π»Ρ Arduino:
// Π ΡΠ°ΠΉΠ»Π΅ my_font.h#include
const uint8_t customFont[] PROGMEM = {
// Π’ΠΎΠ»ΡΠΊΠΎ ΡΠΈΠΌΠ²ΠΎΠ»Ρ '0'β'9' ΠΈ 'Π'β'Π―' (ΠΊΠΈΡΠΈΠ»Π»ΠΈΡΠ°)
// Π Π°Π·ΠΌΠ΅Ρ: 10 (ΡΠΈΡΡΡ) + 32 (ΠΊΠΈΡΠΈΠ»Π»ΠΈΡΠ°) = 42 ΡΠΈΠΌΠ²ΠΎΠ»Π° Γ 16 Π±Π°ΠΉΡ = 672 Π±Π°ΠΉΡ
...
};
ΠΠ»Ρ STM32 ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΉΡΠΈ Π΄Π°Π»ΡΡΠ΅ ΠΈ Ρ ΡΠ°Π½ΠΈΡΡ ΡΡΠΈΡΡ Π² Π²Π½Π΅ΡΠ½Π΅ΠΉ flash-ΠΏΠ°ΠΌΡΡΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, W25Q128), Π·Π°Π³ΡΡΠΆΠ°Ρ Π΅Π³ΠΎ ΠΏΠΎ ΠΌΠ΅ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ. ΠΡΠΎ Π°ΠΊΡΡΠ°Π»ΡΠ½ΠΎ Π΄Π»Ρ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² Ρ Π΄ΠΈΡΠΏΠ»Π΅ΡΠΌΠΈ Π²ΡΡΠΎΠΊΠΎΠ³ΠΎ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ILI9341
320Γ240).ΠΠ°ΠΊ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ Π·Π°Π½ΡΡΡΡ ΠΏΠ°ΠΌΡΡΡ Π² Arduino IDE?
ΠΡΠΊΡΠΎΠΉΡΠ΅
ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ β ΠΠ½Π°Π»ΠΈΠ· ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ(Tools β Get Board InfoΠ² Π½ΠΎΠ²ΡΡ Π²Π΅ΡΡΠΈΡΡ ). Π Π²ΡΠ²ΠΎΠ΄Π΅ Π½Π°ΠΉΠ΄ΠΈΡΠ΅ ΡΡΡΠΎΠΊΠΈ:Global variables use 1234 bytes (60%) of dynamic memoryProgram storage space used: 23456 bytes (71%)
ΠΡΠ»ΠΈ
Program storageΠ±Π»ΠΈΠ·ΠΊΠΎ ΠΊ 100%, ΡΠΌΠ΅Π½ΡΡΠΈΡΠ΅ ΡΠ°Π·ΠΌΠ΅Ρ ΡΡΠΈΡΡΠ° ΠΈΠ»ΠΈ ΡΠ΄Π°Π»ΠΈΡΠ΅ Π½Π΅Π½ΡΠΆΠ½ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ.Π’ΠΈΠΏΠΈΡΠ½ΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΈ ΠΈΡ ΡΠ΅ΡΠ΅Π½ΠΈΡ
ΠΠ°ΠΆΠ΅ ΠΎΠΏΡΡΠ½ΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΡΡΠ°Π»ΠΊΠΈΠ²Π°ΡΡΡΡ Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ GLCD Font Creator. ΠΠΎΡ ΡΠ°ΠΌΡΠ΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ½Π½ΡΠ΅:
ΠΡΠΈΠ±ΠΊΠ° ΠΡΠΈΡΠΈΠ½Π° Π Π΅ΡΠ΅Π½ΠΈΠ΅ Π¨ΡΠΈΡΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ ΠΈΠ΅ΡΠΎΠ³Π»ΠΈΡΠ°ΠΌΠΈ ΠΠ΅Π²Π΅ΡΠ½Π°Ρ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠ° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΡΠ±ΡΠ°Π½Π° UTF-8, Π° Π½ΡΠΆΠ΅Π½Windows-1251).ΠΡΠΎΠ²Π΅ΡΡΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠΈ Π² Font Properties β Encoding.undefined reference to 'font'Π€Π°ΠΉΠ» ΡΠΎ ΡΡΠΈΡΡΠΎΠΌ Π½Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΡΠ½ ΠΊ ΠΏΡΠΎΠ΅ΠΊΡΡ ΠΈΠ»ΠΈ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ΅ ΠΈΠΌΡ ΠΌΠ°ΡΡΠΈΠ²Π°. Π£Π±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ:
- Π€Π°ΠΉΠ»
my_font.hΠ»Π΅ΠΆΠΈΡ Π² ΠΏΠ°ΠΏΠΊΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠ°.- ΠΠΌΡ ΠΌΠ°ΡΡΠΈΠ²Π° Π² ΠΊΠΎΠ΄Π΅ ΡΠΎΠ²ΠΏΠ°Π΄Π°Π΅Ρ Ρ ΡΠΊΡΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ.
- Π
Arduino IDEΡΠ°ΠΉΠ» ΠΏΠΎΠ΄ΠΊΠ»ΡΡΡΠ½ ΡΠ΅ΡΠ΅Π·#include "my_font.h".Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ ΡΠ»ΠΈΠΏΠ°ΡΡΡΡ ΠΈΠ»ΠΈ ΠΎΠ±ΡΠ΅Π·Π°ΡΡΡΡ ΠΠ΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ SpacingΠΈΠ»ΠΈWidth.Π£Π²Π΅Π»ΠΈΡΡΡΠ΅ SpacingΠ΄ΠΎ2β3ΠΈΠ»ΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅ ΡΠΈΡΠΈΠ½Ρ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² Π² Π½Π°ΡΡΡΠΎΠΉΠΊΠ°Ρ .ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π½Π΅ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ Π½Π° macOS/Linux ΠΡΠΎΠ±Π»Π΅ΠΌΡ Ρ Java ΠΈΠ»ΠΈ ΠΏΡΠ°Π²Π°ΠΌΠΈ Π΄ΠΎΡΡΡΠΏΠ°. ΠΠ°ΠΏΡΡΡΠΈΡΠ΅ ΠΈΠ· ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π°: chmod +x GLCDFontCreator.jarjava -jar GLCDFontCreator.jar
ΠΡΡ ΠΎΠ΄Π½Π° ΡΠ°ΡΡΠ°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° β Π½Π΅ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡ Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΠΌΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅
U8g2, Π½ΠΎ ΡΡΠΈΡΡ ΡΠΊΡΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π»ΠΈ Π² ΠΎΠ±ΡΡΠ½ΠΎΠΌC-ΡΠΎΡΠΌΠ°ΡΠ΅, ΡΠΈΠΌΠ²ΠΎΠ»Ρ ΠΌΠΎΠ³ΡΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ ΡΠΎ ΡΠ΄Π²ΠΈΠ³ΠΎΠΌ. Π Π΅ΡΠ΅Π½ΠΈΠ΅:
- ΠΠΊΡΠΏΠΎΡΡΠΈΡΡΠΉΡΠ΅ ΡΡΠΈΡΡ Π² ΡΠΎΡΠΌΠ°ΡΠ΅
U8g2(ΠΎΠΏΡΠΈΡ Π² ΠΌΠ΅Π½Ρ ΡΠΊΡΠΏΠΎΡΡΠ°).- ΠΠ»ΠΈ Π²ΡΡΡΠ½ΡΡ ΠΎΡΡΠ΅Π΄Π°ΠΊΡΠΈΡΡΠΉΡΠ΅ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠ°ΠΉΠ», Π΄ΠΎΠ±Π°Π²ΠΈΠ² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ:
#define FONT_WIDTH 8#define FONT_HEIGHT 16
const uint8_t customFont[256][FONT_HEIGHT] PROGMEM = { ... };
ΠΡΠ»ΠΈ ΡΡΠΈΡΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ "Π»Π΅ΡΠ΅Π½ΠΊΠΎΠΉ" (Π½Π΅ΡΠΎΠ²Π½ΡΠ΅ ΠΊΡΠ°Ρ), ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅:
- π Π‘ΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ Π²ΡΡΠΎΡΡ ΡΡΠΈΡΡΠ° ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ Π΄ΠΈΡΠΏΠ»Π΅Ρ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ SSD1306
128Γ64Π»ΡΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΈΡΡ Π²ΡΡΠΎΡΠΎΠΉ8ΠΈΠ»ΠΈ16).- πΌοΈ ΠΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΡΡΡ ΡΠΊΡΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π΄Π°Π½Π½ΡΡ (ΠΈΠ½ΠΎΠ³Π΄Π° Π±ΠΈΡΡ Π² Π±Π°ΠΉΡΠ°Ρ ΠΏΠ΅ΡΠ΅Π²ΡΡΠ½ΡΡΡ; ΠΏΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ ΠΈΠ½Π²Π΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈΡ Π²ΡΡΡΠ½ΡΡ).
ΠΠ»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Ρ GLCD Font Creator
ΠΡΠ»ΠΈ GLCD Font Creator Π½Π΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ Π²Π°ΡΠ΅ΠΉ Π·Π°Π΄Π°ΡΠΈ, ΡΠ°ΡΡΠΌΠΎΡΡΠΈΡΠ΅ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Ρ:
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΠ»ΡΡΡ ΠΠΈΠ½ΡΡΡ ΠΡΡΡΠ΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ LVGL Font Tool
- ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠ³Π»Π°ΠΆΠΈΠ²Π°Π½ΠΈΡ (Π°Π½ΡΠΈΠ°Π»ΠΈΠ°ΡΠΈΠ½Π³).
- ΠΠΊΡΠΏΠΎΡΡ Π² ΡΠΎΡΠΌΠ°ΡΡ Π΄Π»Ρ LVGL (ΠΏΠΎΠΏΡΠ»ΡΡΠ½Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π΄Π»Ρ GUI).
Π‘Π»ΠΎΠΆΠ½Π΅Π΅ Π² ΠΎΡΠ²ΠΎΠ΅Π½ΠΈΠΈ, ΡΡΠ΅Π±ΡΠ΅Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ. ΠΡΠΎΠ΅ΠΊΡΡ Ρ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠΌ Π½Π° STM32, Raspberry Pi. Bitmap Font Generator (BFG)
- ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ°
TrueTypeΡΡΠΈΡΡΠΎΠ² (ΠΊΠΎΠ½Π²Π΅ΡΡΠ°ΡΠΈΡ Π² ΡΠ°ΡΡΡ).- ΠΠΎΠ»ΡΡΠ΅ ΠΎΠΏΡΠΈΠΉ Π΄Π»Ρ ΠΊΠ΅ΡΠ½ΠΈΠ½Π³Π° ΠΈ ΠΈΠ½ΡΠ΅ΡΠ»ΠΈΠ½ΡΡΠΆΠ°.
ΠΠ»Π°ΡΠ½Π°Ρ Π²Π΅ΡΡΠΈΡ ΠΈΠΌΠ΅Π΅Ρ Π±ΠΎΠ»ΡΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΉ. ΠΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΡ Ρ Π²ΡΡΠΎΠΊΠΈΠΌΠΈ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡΠΌΠΈ ΠΊ ΡΠΈΠΏΠΎΠ³ΡΠ°ΡΠΈΠΊΠ΅. MicroFont
- ΠΡΠΎΡΡΠΎΠΉ Π²Π΅Π±-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ (ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅).
- ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΊΠΈΡΠΈΠ»Π»ΠΈΡΡ "ΠΈΠ· ΠΊΠΎΡΠΎΠ±ΠΊΠΈ".
ΠΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΡΠΊΡΠΏΠΎΡΡΠ°. ΠΡΡΡΡΠΎΠ΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΡΠΈΡΡΠΎΠ² Π΄Π»Ρ Arduino. FontForge + ΡΠΊΡΠΈΠΏΡΡ
- ΠΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½Π°Ρ Π³ΠΈΠ±ΠΊΠΎΡΡΡ (ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ Π²Π΅ΠΊΡΠΎΡΡ).
- ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π²ΡΠ΅Ρ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΎΠΊ.
Π‘Π»ΠΎΠΆΠ½ΡΠΉ Π΄Π»Ρ Π½ΠΎΠ²ΠΈΡΠΊΠΎΠ², ΡΡΠ΅Π±ΡΠ΅Ρ Π·Π½Π°Π½ΠΈΡ Python Π΄Π»Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ. ΠΠ°ΡΡΠΎΠΌΠ½ΡΠ΅ ΡΡΠΈΡΡΡ Π΄Π»Ρ ΠΏΡΠΎΠΌΡΡΠ»Π΅Π½Π½ΡΡ Π΄ΠΈΡΠΏΠ»Π΅Π΅Π². ΠΡΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ½Π° ΠΊΠΈΡΠΈΠ»Π»ΠΈΡΠ°, ΠΎΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° MicroFont ΠΈΠ»ΠΈ LVGL Font Tool β ΠΎΠ½ΠΈ Π»ΡΡΡΠ΅ ΡΠΏΡΠ°Π²Π»ΡΡΡΡΡ Ρ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠ°ΠΌΠΈ, ΡΠ΅ΠΌ GLCD Font Creator. ΠΠ»Ρ ESP32 Ρ Π΄ΠΈΡΠΏΠ»Π΅ΡΠΌΠΈ TFT (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ILI9341) ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ LVGL, ΠΏΠΎΡΡΠΎΠΌΡ LVGL Font Tool ΡΡΠ°Π½Π΅Ρ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΌ Π²ΡΠ±ΠΎΡΠΎΠΌ.
ΠΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ½Π²Π΅ΡΡΠ°ΡΠΈΠΈ ΡΡΠΈΡΡΠ° ΠΈΠ·
.ttfΠ² ΡΠ°ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ FontForge:
- ΠΡΠΊΡΠΎΠΉΡΠ΅
.ttf-ΡΠ°ΠΉΠ» Π² FontForge.- ΠΡΠ΄Π΅Π»ΠΈΡΠ΅ Π½ΡΠΆΠ½ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΈΡΠΈΠ»Π»ΠΈΡΡ).
- ΠΠΊΡΠΏΠΎΡΡΠΈΡΡΠΉΡΠ΅ Π²
.bmpΡΠ΅ΡΠ΅Π·File β Export β Bitmap.- ΠΠΌΠΏΠΎΡΡΠΈΡΡΠΉΡΠ΅
.bmpΠ² GLCD Font Creator Π΄Π»Ρ ΡΠΈΠ½Π°Π»ΡΠ½ΠΎΠΉ Π΄ΠΎΠ²ΠΎΠ΄ΠΊΠΈ.FAQ: ΠΎΡΠ²Π΅ΡΡ Π½Π° ΡΠ°ΡΡΡΠ΅ Π²ΠΎΠΏΡΠΎΡΡ
ΠΠ°ΠΊ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΊΠΈΡΠΈΠ»Π»ΠΈΡΡ Π² GLCD Font Creator?
Π§ΡΠΎΠ±Ρ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΡΡΡΠΊΠΈΠ΅ Π±ΡΠΊΠ²Ρ:
- Π Π½Π°ΡΡΡΠΎΠΉΠΊΠ°Ρ ΡΡΠΈΡΡΠ° (
Font Properties) Π²ΡΠ±Π΅ΡΠΈΡΠ΅ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΡWindows-1251.- ΠΡΡΡΠ½ΡΡ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ Ρ ΠΊΠΎΠ΄Π°ΠΌΠΈ
192β255(ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡ ΠΊΠΈΡΠΈΠ»Π»ΠΈΡΠ΅ Π²Windows-1251).- ΠΠ°ΡΠΈΡΡΠΉΡΠ΅ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠΈΠΌΠ²ΠΎΠ» ΠΈΠ»ΠΈ ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠΉΡΠ΅ ΠΈΠ·
.bmp.- ΠΡΠΈ ΡΠΊΡΠΏΠΎΡΡΠ΅ ΡΠ±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ Π² ΠΊΠΎΠ΄Π΅ ΡΠΊΠ°Π·Π°Π½ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½:
// Π ΡΠ°ΠΉΠ»Π΅ my_font.h#define FONT_FIRST_CHAR 32 // ΠΡΠΎΠ±Π΅Π»
#define FONT_LAST_CHAR 255 // ΠΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΡΠΈΠΌΠ²ΠΎΠ» (Π²ΠΊΠ»ΡΡΠ°Π΅Ρ ΠΊΠΈΡΠΈΠ»Π»ΠΈΡΡ)
ΠΡΠ»ΠΈ Π±ΡΠΊΠ²Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ Π½Π΅Π²Π΅ΡΠ½ΠΎ, ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΡ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π°/Π΄ΠΈΡΠΏΠ»Π΅Ρ β ΠΎΠ½Π° Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡ Ρ
Windows-1251.ΠΠΎΠΆΠ½ΠΎ Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ GLCD Font Creator Π΄Π»Ρ OLED-Π΄ΠΈΡΠΏΠ»Π΅Π΅Π² (SSD1306, SH1106)?
ΠΠ°, ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ Π»ΡΠ±ΡΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ Π΄ΠΈΡΠΏΠ»Π΅Π΅Π², Π²ΠΊΠ»ΡΡΠ°Ρ OLED. ΠΠ»Π°Π²Π½ΠΎΠ΅ β ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ Π½Π°ΡΡΡΠΎΠΈΡΡ ΡΠ°Π·ΠΌΠ΅Ρ ΡΡΠΈΡΡΠ°:
- ΠΠ»Ρ SSD1306 (
128Γ64) ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ β6Γ8ΠΈΠ»ΠΈ8Γ16.- ΠΠ»Ρ SH1106 (
128Γ64) β Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ.- ΠΠΊΡΠΏΠΎΡΡΠΈΡΡΠΉΡΠ΅ ΡΡΠΈΡΡ Π² ΡΠΎΡΠΌΠ°ΡΠ΅
U8g2, Π΅ΡΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡU8g2.ΠΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ΄Π° Π΄Π»Ρ SSD1306:
#include#include "my_font.h"
U8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0);
void setup() {
u8g2.begin();
u8g2.setFont(my_font_8x16); // ΠΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌ ΡΡΠΈΡΡ
u8g2.drawStr(0, 20, "Π’Π΅ΡΡ ΠΊΠΈΡΠΈΠ»Π»ΠΈΡΡ");
u8g2.sendBuffer();
}
ΠΠ°ΠΊ ΡΠΌΠ΅Π½ΡΡΠΈΡΡ ΡΠ°Π·ΠΌΠ΅Ρ ΡΡΠΈΡΡΠ° Π΄Π»Ρ Arduino Uno (ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ 32 ΠΠ flash)?
ΠΠ»Ρ Arduino Uno (ATmega328P) Ρ 32 ΠΠ flash-ΠΏΠ°ΠΌΡΡΠΈ:
- π§Ή Π£Π΄Π°Π»ΠΈΡΠ΅ Π½Π΅Π½ΡΠΆΠ½ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ. ΠΡΡΠ°Π²ΡΡΠ΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΈΡΡΡ (
48β57) ΠΈ Π½ΡΠΆΠ½ΡΠ΅ Π±ΡΠΊΠ²Ρ.- π Π£ΠΌΠ΅Π½ΡΡΠΈΡΠ΅ Π²ΡΡΠΎΡΡ. ΠΠΌΠ΅ΡΡΠΎ
16Γ16ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅8Γ8.- π ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠΆΠ°ΡΠΈΠ΅ RLE (Π² Π½Π°ΡΡΡΠΎΠΉΠΊΠ°Ρ ΡΠΊΡΠΏΠΎΡΡΠ°).
- ποΈ Π₯ΡΠ°Π½ΠΈΡΠ΅