Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ Π½Π° Π±Π°Π·Π΅ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ² часто Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ Π½Π΅ просто мигания свСтодиодом, Π° ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½ΠΎΠ³ΠΎ графичСского интСрфСйса. Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° fabgl esp32 vga стала настоящим ΠΏΡ€ΠΎΡ€Ρ‹Π²ΠΎΠΌ для энтуастов, ΠΆΠ΅Π»Π°ΡŽΡ‰ΠΈΡ… Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ высокой чСткости Π±Π΅Π· использования дорогостоящих ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ² дисплССв. Она позволяСт ΠΏΡ€Π΅Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π±ΡŽΠ΄ΠΆΠ΅Ρ‚Π½ΡƒΡŽ ΠΏΠ»Π°Ρ‚Ρƒ Π² ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½ΡƒΡŽ Π³Ρ€Π°Ρ„ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΡΡ‚Π°Π½Ρ†ΠΈΡŽ, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΡƒΡŽ ΠΌΡ‹ΡˆΡŒ, ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρƒ ΠΈ Π΄Π°ΠΆΠ΅ ΡΠΌΡƒΠ»ΡΡ†ΠΈΡŽ старых ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠ².

ИспользованиС Π²ΠΈΠ΄Π΅ΠΎΠ²Ρ‹Ρ…ΠΎΠ΄Π° VGA ΠΈΠ»ΠΈ HDMI Ρ‡Π΅Ρ€Π΅Π· этот Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ возмоТности, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°Π½Π΅Π΅ казались нСдоступными для Ρ‚Π°ΠΊΠΈΡ… ΠΌΠ°Π»ΠΎΠΌΠΎΡ‰Π½Ρ‹Ρ… устройств. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Ρ€Π΅Ρ‚Ρ€ΠΎ-консоли, ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ Ρ‚Π°Π±Π»ΠΎ ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ эмуляторы Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΠΎΠ². Однако, Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠ΅ fabgl Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ понимания Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ части, Π½ΠΎ ΠΈ тонкостСй Ρ€Π°Π±ΠΎΡ‚Ρ‹ с GPIO ΠΈ Ρ‚Π°ΠΉΠΌΠΈΠ½Π³Π°ΠΌΠΈ видСосигнала.

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, способы ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌ Ρ‚ΠΈΠΏΠ°ΠΌ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΎΠ² ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. ΠšΠ»ΡŽΡ‡Π΅Π²ΠΎΠΉ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒΡŽ fabgl являСтся Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΡ‚ΡŒ Π³Ρ€Π°Ρ„ΠΈΠΊΡƒ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ Π² Π±ΡƒΡ„Π΅Ρ€ ΠΊΠ°Π΄Ρ€Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ DMA ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ ESP32. Π­Ρ‚ΠΎ обСспСчиваСт ΠΏΠ»Π°Π²Π½ΠΎΡΡ‚ΡŒ Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΈ, Π½Π΅Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΡƒΡŽ ΠΏΡ€ΠΈ использовании стандартных Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ для LCD экранов.

АрхитСктура ΠΈ возмоТности Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ fabgl

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° fabgl прСдставляСт собой слоТный ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ комплСкс, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Π΅Ρ€Π΅Ρ‚ Π½Π° сСбя ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π²ΠΈΠ΄Π΅ΠΎΠ²Ρ‹Ρ…ΠΎΠ΄ΠΎΠΌ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°. Она Π½Π΅ просто рисуСт пиксСли, Π° Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ Ρ‚ΠΎΡ‡Π½Ρ‹Π΅ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ сигналы синхронизации, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π­Π›Π’-ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΎΠ² ΠΈΠ»ΠΈ соврСмСнных LCD ΠΏΠ°Π½Π΅Π»Π΅ΠΉ с VGA Π²Ρ…ΠΎΠ΄ΠΎΠΌ. Π­Ρ‚ΠΎ достигаСтся Π·Π° счСт интСнсивного использования Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹Ρ… рСсурсов Ρ‡ΠΈΠΏΠ° ESP32.

Основой систСмы являСтся Π²ΠΈΠ΄Π΅ΠΎΠ³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ с основным ΠΊΠΎΠ΄ΠΎΠΌ прилоТСния. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠΊΠ° ΠΎΠ΄ΠΈΠ½ ядро процСссора занимаСтся отрисовкой ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ Π±ΡƒΡ„Π΅Ρ€Π°, Π²Ρ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Π»ΠΎΠ³ΠΈΠΊΡƒ вашСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, сСтСвыС запросы ΠΈΠ»ΠΈ Π²Π²ΠΎΠ΄ Π΄Π°Π½Π½Ρ‹Ρ…. Вакая Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° критичСски Π²Π°ΠΆΠ½Π° для создания ΠΎΡ‚Π·Ρ‹Π²Ρ‡ΠΈΠ²Ρ‹Ρ… интСрфСйсов.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠŸΡ€ΠΈ использовании Π²ΠΈΠ΄Π΅ΠΎΡ€Π΅ΠΆΠΈΠΌΠΎΠ² с высоким Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠ΅ памяти RAM Ρ€Π΅Π·ΠΊΠΎ возрастаСт, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ Π½Π΅Ρ…Π²Π°Ρ‚ΠΊΠ΅ рСсурсов для Π΄Ρ€ΡƒΠ³ΠΈΡ… Π·Π°Π΄Π°Ρ‡.

ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹ΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ€Π°ΡΡ‚Ρ€ΠΎΠ²ΡƒΡŽ Π³Ρ€Π°Ρ„ΠΈΠΊΡƒ, Π½ΠΎ ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρƒ с ΡˆΡ€ΠΈΡ„Ρ‚Π°ΠΌΠΈ, Π²Π΅ΠΊΡ‚ΠΎΡ€Π½Ρ‹ΠΌΠΈ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π°ΠΌΠΈ ΠΈ Π΄Π°ΠΆΠ΅ Π±Π°Π·ΠΎΠ²ΡƒΡŽ 3D-Π³Ρ€Π°Ρ„ΠΈΠΊΡƒ. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π»ΠΈ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ с популярными стандартами, Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ ANSI ΠΈ VGA, Ρ‡Ρ‚ΠΎ позволяСт Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ legacy-прилоТСния. Для управлСния ΠΏΠ΅Ρ€ΠΈΡ„Π΅Ρ€ΠΈΠ΅ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ спСциализированныС Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Ρ‹, ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π² ΠΎΠ±Ρ‰ΠΈΠΉ Ρ†ΠΈΠΊΠ» обновлСния экрана.

πŸ’‘

ИспользованиС Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ ядра ESP32 для Π²ΠΈΠ΄Π΅ΠΎΠ²Ρ‹Ρ…ΠΎΠ΄Π° позволяСт ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π²Ρ‹ΡΠΎΠΊΡƒΡŽ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ основного прилоТСния Π±Π΅Π· Ρ€Ρ‹Π²ΠΊΠΎΠ² ΠΈ Π·Π°Π΄Π΅Ρ€ΠΆΠ΅ΠΊ.

Аппаратная Ρ‡Π°ΡΡ‚ΡŒ: ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ VGA ΠΈ HDMI

ЀизичСскоС ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ дисплСя ΠΊ ΠΏΠ»Π°Ρ‚Π΅ ESP32 Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ сигналы RGB ΠΈ синхронизации ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ ΠΏΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ ΠΏΠΈΠ½Π°ΠΌ. Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° fabgl esp32 vga ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ стандартный Π½Π°Π±ΠΎΡ€ GPIO, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π² ΠΊΠΎΠ΄Π΅, Π½ΠΎ для ΡΡ‚Π°Π±Π»ΡŒΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΡ€ΠΈΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒΡΡ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π½Π½Ρ‹Ρ… схСм. Для VGA ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ трСбуСтся 3 ΠΏΠΈΠ½Π° Π½Π° ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ†Π²Π΅Ρ‚ (Red, Green, Blue) ΠΈ 2 ΠΏΠΈΠ½Π° синхронизации.

Для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ HDMI ситуация слоТнСС, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ трСбуСтся ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ сигнала. Часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π½ΠΈΠΊΠΈ VGA-to-HDMI Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Π΅ ΠΈΠ»ΠΈ пассивныС, Π½ΠΎ fabgl ΡƒΠΌΠ΅Π΅Ρ‚ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ сигнал, совмСстимый с DVI/HDMI Π²Ρ…ΠΎΠ΄Π°ΠΌΠΈ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ Ρ‡Π΅Ρ€Π΅Π· ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ ΠΏΠΈΠ½Ρ‹. Π’Π°ΠΆΠ½ΠΎ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ ΡƒΡ€ΠΎΠ²Π½ΠΈ напряТСния: ESP32 Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΎΡ‚ 3.3Π’, Π° стандарт VGA ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚ 0.7Π’, поэтому часто Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ рСзисторы для согласования ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ.

  • πŸ”Œ ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ ΠΏΠΈΠ½Ρ‹ RGB (R0-R2, G0-G2, B0-B2) ΠΊ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ Π²Ρ…ΠΎΠ΄Π°ΠΌ VGA Ρ€Π°Π·ΡŠΠ΅ΠΌΠ° Ρ‡Π΅Ρ€Π΅Π· рСзисторы.
  • ⚑ ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ соСдинитС зСмлю (GND) ΠΏΠ»Π°Ρ‚Ρ‹ ESP32 с Π·Π΅ΠΌΠ»Π΅ΠΉ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€Π° для устранСния ΠΏΠΎΠΌΠ΅Ρ….
  • πŸ“Ί Π‘ΠΈΠ³Π½Π°Π»Ρ‹ HSync ΠΈ VSync Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ ΠΊ ΠΏΠΈΠ½Π°ΠΌ, ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌ Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π²ΠΈΠ΄Π΅ΠΎΠ΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π°.
  • πŸ”§ Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ рСзисторы Π½ΠΎΠΌΠΈΠ½Π°Π»ΠΎΠΌ 270-470 Ом для согласования ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ сигнала с VGA стандартом.

ΠŸΡ€ΠΈ сборкС схСмы Π²Π°ΠΆΠ½ΠΎ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π»ΠΈΠ½Ρƒ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΎΠ², особСнно ΡΠΈΠ³Π½Π°Π»ΡŒΠ½Ρ‹Ρ… Π»ΠΈΠ½ΠΈΠΉ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ искаТСния изобраТСния. Π”Π»ΠΈΠ½Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π° ΠΌΠΎΠ³ΡƒΡ‚ Π΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ Π°Π½Ρ‚Π΅Π½Π½Ρ‹, внося ΡˆΡƒΠΌ Π² видСосигнал. Если Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ ΡΠ°ΠΌΠΎΠ΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π½ΠΈΠΊ, ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ Π² надСТности ΠΏΠ°ΠΉΠΊΠΈ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠ².

πŸ’‘

Для ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ качСства изобраТСния Π½Π° VGA ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€Π°Ρ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ„Π΅Ρ€Ρ€ΠΈΡ‚ΠΎΠ²Ρ‹Π΅ ΠΊΠΎΠ»ΡŒΡ†Π° Π½Π° ΠΊΠ°Π±Π΅Π»Π΅ ΠΈΠ»ΠΈ экранированный ΠΏΡ€ΠΎΠ²ΠΎΠ΄ для ΡΠΈΠ³Π½Π°Π»ΡŒΠ½Ρ‹Ρ… Π»ΠΈΠ½ΠΈΠΉ.

Настройка Π²ΠΈΠ΄Π΅ΠΎΡ€Π΅ΠΆΠΈΠΌΠΎΠ² ΠΈ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ

Одной ΠΈΠ· ΡΠΈΠ»ΡŒΠ½Ρ‹Ρ… сторон fabgl являСтся Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ Π² Π²Ρ‹Π±ΠΎΡ€Π΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ. Π’Ρ‹ Π½Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Ρ‹ стандартными значСниями; Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° позволяСт Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ Ρ‚Π°ΠΉΠΌΠΈΠ½Π³ΠΈ. Однако, для Π½Π°Ρ‡Π°Π»Π° Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ прСдустановлСнныС Ρ€Π΅ΠΆΠΈΠΌΡ‹, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ VGA_640x480_60Hz ΠΈΠ»ΠΈ VGA_800x600_60Hz. Π­Ρ‚ΠΎ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ с Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎΠΌ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΎΠ².

ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ Π²ΠΈΠ΄Π΅ΠΎΡ€Π΅ΠΆΠΈΠΌΠ° происходит Π΄ΠΎ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π²ΠΈΠ΄Π΅ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°. Π’Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ VideoController ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π΅ΠΌΡƒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΆΠ΅Π»Π°Π΅ΠΌΠΎΠ³ΠΎ Ρ€Π΅ΠΆΠΈΠΌΠ°. Если Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ слишком ΠΌΠ½ΠΎΠ³ΠΎ памяти, компилятор ΠΈΠ»ΠΈ Ρ€Π°Π½Ρ‚Π°ΠΉΠΌ выдаст ΠΎΡˆΠΈΠ±ΠΊΡƒ, ΠΈ устройство ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠΉΡ‚ΠΈ Π² ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ.

#include "fabgl.h"

// Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° VGA

fabgl::VGAController VGAController;

// Установка Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ 640x480 с 60 Π“Ρ†

VGAController.begin(&fabgl::VGA_640x448_60Hz);

ΠŸΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°ΠΉΡ‚Π΅ доступный объСм RAM. КаТдоС ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ количСства пиксСлСй Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΡΠΊΡΠΏΠΎΠ½Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ роста памяти для Π±ΡƒΡ„Π΅Ρ€Π° ΠΊΠ°Π΄Ρ€Π°, особСнно Ссли ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π±ΠΎΠ»Π΅Π΅ 2 Ρ†Π²Π΅Ρ‚ΠΎΠ². Для Π³Π»ΡƒΠ±ΠΎΠΊΠΈΡ… Ρ†Π²Π΅Ρ‚ΠΎΠ² (16 ΠΈΠ»ΠΈ 256) трСбования ΠΊ памяти становятся критичСскими.

πŸ“Š КакоС Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π²Ρ‹ ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для своСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°?
  • 640x480 (VGA)
  • 800x600 (SVGA)
  • 1024x768 (XGA)
  • НСстандартноС

Π Π°Π±ΠΎΡ‚Π° с Canvas ΠΈ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π°ΠΌΠΈ рисования

ПослС ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠΉ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π²ΠΈΠ΄Π΅ΠΎΠ²Ρ‹Ρ…ΠΎΠ΄Π° ΠΏΠ΅Ρ€Π΅Π΄ Π²Π°ΠΌΠΈ открываСтся холст для творчСства. Основной класс для рисования β€” Canvas. Он прСдоставляСт ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ для рисования Ρ‚ΠΎΡ‡Π΅ΠΊ, Π»ΠΈΠ½ΠΈΠΉ, ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΎΠ², ΠΊΡ€ΡƒΠ³ΠΎΠ² ΠΈ тСкста. ВсС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ быстро благодаря ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ.

Π Π°Π±ΠΎΡ‚Π° с Canvas Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ с популярными графичСскими Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌΠΈ Π½Π° ПК. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ Ρ†Π²Π΅Ρ‚ ΠΏΠ΅Ρ€Π°, Ρ€Π΅ΠΆΠΈΠΌΡ‹ смСшивания ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с областями.

  • 🎨 ΠœΠ΅Ρ‚ΠΎΠ΄ setPenColor() устанавливаСт Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ Ρ†Π²Π΅Ρ‚ для всСх ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ рисования.
  • πŸ“ Ѐункция drawLine() ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ линию ΠΌΠ΅ΠΆΠ΄Ρƒ двумя Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Ρ‚ΠΎΡ‡ΠΊΠ°ΠΌΠΈ с использованиСм Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Π‘Ρ€Π΅Π·Π΅Π½Ρ…Π΅ΠΌΠ°.
  • πŸ“ Для Π²Ρ‹Π²ΠΎΠ΄Π° тСкста ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ drawText(), ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΡˆΡ€ΠΈΡ„Ρ‚Ρ‹.
  • 🧹 ΠžΡ‡ΠΈΡΡ‚ΠΊΠ° экрана производится ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ clear() ΠΈΠ»ΠΈ fillRectangle() Π½Π° всю ΠΎΠ±Π»Π°ΡΡ‚ΡŒ.

ΠŸΡ€ΠΈ частом ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ экрана (анимация) рСкомСндуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π²ΠΎΠΉΠ½ΡƒΡŽ Π±ΡƒΡ„Π΅Ρ€ΠΈΠ·Π°Ρ†ΠΈΡŽ, Ссли позволяСт ΠΏΠ°ΠΌΡΡ‚ΡŒ, ΠΈΠ»ΠΈ ΠΌΠΈΠ½ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ пСрСрисовки. Полная пСрСрисовка ΠΊΠ°Π΄Ρ€Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ врСмя процСссорного Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Частый Π²Ρ‹Π·ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ рисования Π² Ρ†ΠΈΠΊΠ»Π΅ loop() Π±Π΅Π· Π·Π°Π΄Π΅Ρ€ΠΆΠ΅ΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ΠΏΠ΅Ρ€Π΅Π³Ρ€Π΅Π²Ρƒ ESP32 ΠΈ Π½Π΅ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Π΅ Wi-Fi модуля.

Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ ΠΈ оптимизация

ESP32 ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΌ объСмом ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти, Ρ‡Ρ‚ΠΎ являСтся Π³Π»Π°Π²Π½Ρ‹ΠΌη“Άι’ˆ (ΡƒΠ·ΠΊΠΈΠΌ мСстом) ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠΉ. Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° fabgl esp32 vga ΡƒΠΌΠ΅Π»ΠΎ управляСт ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ, раздСляя Π΅Ρ‘ Π½Π° Π±Π»ΠΎΠΊΠΈ для Π²ΠΈΠ΄Π΅ΠΎΠ±ΡƒΡ„Π΅Ρ€Π°, стСка ΠΈ ΠΊΡƒΡ‡ΠΈ. ПониманиС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ распрСдСляСтся ΠΏΠ°ΠΌΡΡ‚ΡŒ, ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ошибок OutOfMemory.

ИспользованиС Ρ†Π²Π΅Ρ‚ΠΎΠ²ΠΎΠΉ ΠΏΠ°Π»ΠΈΡ‚Ρ€Ρ‹ вмСсто ΠΏΠΎΠ»Π½ΠΎΡ†Π²Π΅Ρ‚Π½ΠΎΠ³ΠΎ Ρ€Π΅ΠΆΠΈΠΌΠ° (RGB565) позволяСт Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ‚ΡŒ рСсурсы. НапримСр, Ρ€Π΅ΠΆΠΈΠΌ с 16 Ρ†Π²Π΅Ρ‚Π°ΠΌΠΈ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π² 4 Ρ€Π°Π·Π° мСньшС памяти, Ρ‡Π΅ΠΌ Ρ€Π΅ΠΆΠΈΠΌ с 65 тысячами Ρ†Π²Π΅Ρ‚ΠΎΠ². Π­Ρ‚ΠΎ компромисс ΠΌΠ΅ΠΆΠ΄Ρƒ качСством ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ систСмы.

Π Π΅ΠΆΠΈΠΌ Ρ†Π²Π΅Ρ‚Π° Π‘ΠΈΡ‚ Π½Π° пиксСль ΠŸΠ°ΠΌΡΡ‚ΡŒ для 640x480 РСкомСндация
ΠœΠΎΠ½ΠΎΡ…Ρ€ΠΎΠΌ 1 Π±ΠΈΡ‚ ~37.5 ΠšΠ‘ Π’Π΅Ρ€ΠΌΠΈΠ½Π°Π»Ρ‹, тСкст
16 Ρ†Π²Π΅Ρ‚ΠΎΠ² 4 Π±ΠΈΡ‚Π° ~150 ΠšΠ‘ Π Π΅Ρ‚Ρ€ΠΎ ΠΈΠ³Ρ€Ρ‹, мСню
256 Ρ†Π²Π΅Ρ‚ΠΎΠ² 8 Π±ΠΈΡ‚ ~300 ΠšΠ‘ БлоТная Π³Ρ€Π°Ρ„ΠΈΠΊΠ°
High Color 16 Π±ΠΈΡ‚ ~600 ΠšΠ‘ Волько для ESP32 с PSRAM

Для ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰ΠΈΡ… Π±ΠΎΠ»ΡŒΡˆΠΈΡ… объСмов Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ, Π½Π°ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ рСкомСндуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ»Π°Ρ‚Ρ‹ ESP32 с внСшнСй PSRAM (Pseudo Static RAM). Π­Ρ‚ΠΎ позволяСт Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ Π²ΠΈΠ΄Π΅ΠΎΠ±ΡƒΡ„Π΅Ρ€ Π²ΠΎ внСшнСй памяти, освобоТдая Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΡŽΡŽ RAM для выполнСния ΠΊΠΎΠ΄Π° ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ стСка.

Как Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ PSRAM Π² PlatformIO?

Π’ Ρ„Π°ΠΉΠ»Π΅ platformio.ini Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ строчку build_flags = -DBOARD_HAS_PSRAM ΠΈ ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹Π±Ρ€Π°Π½Π° ΠΏΠ»Π°Ρ‚Π° с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ внСшнСй памяти, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ esp32dev ΠΈΠ»ΠΈ спСцифичСская модСль с 4MB PSRAM.

Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ ошибки ΠΈ ΠΈΡ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅

ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с fabgl esp32 vga Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΈ часто ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°ΡŽΡ‚ΡΡ с рядом Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ. Бамая распространСнная β€” отсутствиС изобраТСния Π½Π° экранС. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹Π·Π²Π°Π½ΠΎ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΌ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠΈΠ½ΠΎΠ², Π½Π΅Π²Π΅Ρ€Π½ΠΎ Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΌ Π²ΠΈΠ΄Π΅ΠΎΡ€Π΅ΠΆΠΈΠΌΠΎΠΌ ΠΈΠ»ΠΈ отсутствиСм зазСмлСния. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ схСму ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π΅Ρ‰Π΅ Ρ€Π°Π·, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΌΠ΅Ρ‚Ρ€.

Другая частая ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° β€” Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚Ρ‹ Π½Π° экранС ΠΈΠ»ΠΈ "снСг". Π­Ρ‚ΠΎ ΡΠ²ΠΈΠ΄Π΅Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΡƒΠ΅Ρ‚ ΠΎ ΠΏΠ»ΠΎΡ…ΠΎΠΌ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π΅, слишком Π΄Π»ΠΈΠ½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π°Ρ… ΠΈΠ»ΠΈ ΠΏΠΎΠΌΠ΅Ρ…Π°Ρ… ΠΎΡ‚ Wi-Fi модуля. ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ ΡΠ½ΠΈΠ·ΠΈΡ‚ΡŒ частоту обновлСния экрана ΠΈΠ»ΠΈ ΡΠΊΡ€Π°Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π°. Π’Π°ΠΊΠΆΠ΅ ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ источник питания стабилСн ΠΈ Π²Ρ‹Π΄Π°Π΅Ρ‚ достаточный Ρ‚ΠΎΠΊ.

  • 🚫 Π­ΠΊΡ€Π°Π½ Ρ‡Π΅Ρ€Π½Ρ‹ΠΉ: ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ ΠΏΠΈΡ‚Π°Π½ΠΈΠ΅ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€Π° ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΏΠΈΠ½ΠΎΠ² синхронизации.
  • 🌈 Π¦Π²Π΅Ρ‚Π° искаТСны: ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Π½ΠΎΠΌΠΈΠ½Π°Π»Ρ‹ рСзисторов Π² схСмС согласования ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ.
  • πŸ“‰ Низкая ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ: ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚Π΅ Ρ†Π²Π΅Ρ‚ΠΎΠ²ΡƒΡŽ Π³Π»ΡƒΠ±ΠΈΠ½Ρƒ ΠΈΠ»ΠΈ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ экрана.
  • πŸ”Œ Устройство пСрСзагруТаСтся: Π½Π΅ Ρ…Π²Π°Ρ‚Π°Π΅Ρ‚ питания, ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ внСшний источник 5Π’/2А.

Если компилятор Π²Ρ‹Π΄Π°Π΅Ρ‚ ошибки, связанныС с ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ, ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ Π±ΡƒΡ„Π΅Ρ€Π° ΠΈΠ»ΠΈ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π½Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π² Ρ„Π°ΠΉΠ»Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ fabgl_conf.h. Π­Ρ‚ΠΎ Ρ„Π°ΠΉΠ» позволяСт Ρ‚ΠΎΠ½ΠΊΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΏΠΎΠ΄ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ Π½ΡƒΠΆΠ΄Ρ‹ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

β˜‘οΈ Диагностика ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ с ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ

Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ: 0 / 4

FAQ: Часто Π·Π°Π΄Π°Π²Π°Π΅ΠΌΡ‹Π΅ вопросы

МоТно Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ fabgl с TFT дисплСями Ρ‡Π΅Ρ€Π΅Π· SPI?

Π”Π°, Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° fabgl ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π²Ρ‹Π²ΠΎΠ΄ изобраТСния Π½Π° TFT дисплСи, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹Π΅ Ρ‡Π΅Ρ€Π΅Π· SPI. Однако, ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π² этом Ρ€Π΅ΠΆΠΈΠΌΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ Π½ΠΈΠΆΠ΅, Ρ‡Π΅ΠΌ ΠΏΡ€ΠΈ использовании Π½Π°Ρ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ VGA/HDMI Π²Ρ‹Ρ…ΠΎΠ΄Π°, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ SPI ΠΈΠΌΠ΅Π΅Ρ‚ ограничСния ΠΏΠΎ пропускной способности. Для TFT Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ спСциализированныС Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Ρ‹, Ссли VGA Π½Π΅ являСтся строго ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ.

ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π»ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° сСнсорный Π²Π²ΠΎΠ΄?

Π”Π°, fabgl esp32 vga ΠΈΠΌΠ΅Π΅Ρ‚ Π²ΡΡ‚Ρ€ΠΎΠ΅Π½Π½ΡƒΡŽ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ сСнсорных экранов (Touchscreen). Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΊΠ°Π»ΠΈΠ±Ρ€ΠΎΠ²Π°Ρ‚ΡŒ сСнсор ΠΈ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΡ‚Π°Ρ‡ ТСсты. Π­Ρ‚ΠΎ позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½Ρ‹Π΅ интСрфСйсы управлСния Π±Π΅Π· физичСской ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ ΠΈ ΠΌΡ‹ΡˆΠΈ.

Какой ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ FPS ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ?

Частота ΠΊΠ°Π΄Ρ€ΠΎΠ² зависит ΠΎΡ‚ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΈ цвСтности. Для Ρ€Π΅ΠΆΠΈΠΌΠ° 320x240 с 16 Ρ†Π²Π΅Ρ‚Π°ΠΌΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΡΡ‚ΠΈΡ‡ΡŒ 60 FPS ΠΈ Π²Ρ‹ΡˆΠ΅. ΠŸΡ€ΠΈ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠΈ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π΄ΠΎ 800x600 ΠΈ использовании слоТных Ρ†Π²Π΅Ρ‚ΠΎΠ² частота ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠΏΠ°ΡΡ‚ΡŒ Π΄ΠΎ 20-30 FPS, Ρ‡Ρ‚ΠΎ всС Π΅Ρ‰Π΅ ΠΏΡ€ΠΈΠ΅ΠΌΠ»Π΅ΠΌΠΎ для Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° интСрфСйсов.

НуТСн Π»ΠΈ внСшний ЦАП для VGA Π²Ρ‹Ρ…ΠΎΠ΄Π°?

Π’ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв внСшний ЦАП Π½Π΅ трСбуСтся. fabgl ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Ρ‚Π΅Ρ…Π½ΠΈΠΊΡƒ, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡƒΡŽ "рСзистивная лСстница" (R-2R ladder ΠΈΠ»ΠΈ просто Π½Π°Π±ΠΎΡ€ рСзисторов), Π²ΡΡ‚Ρ€ΠΎΠ΅Π½Π½ΡƒΡŽ прямо Π² схСму ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ. Π¦ΠΈΡ„Ρ€ΠΎΠ²Ρ‹Π΅ Π²Ρ‹Ρ…ΠΎΠ΄Ρ‹ ESP32 Ρ‡Π΅Ρ€Π΅Π· рСзисторы Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΡŽΡ‚ Π°Π½Π°Π»ΠΎΠ³ΠΎΠ²Ρ‹ΠΉ сигнал достаточного качСства для Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΎΠ².