ΠΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ Π²ΡΠΏΡΡΠΊ ΠΏΡΠΎΠ΅ΠΊΡΠ° PikaScript 1.8, ΡΠ°Π·Π²ΠΈΠ²Π°ΡΡΠ΅Π³ΠΎ ΠΊΠΎΠΌΠΏΠ°ΠΊΡΠ½ΡΠΉ Π΄Π²ΠΈΠΆΠΎΠΊ Π΄Π»Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π΄Π»Ρ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠ² Π½Π° ΡΠ·ΡΠΊΠ΅ Python. PikaScript Π½Π΅ ΠΏΡΠΈΠ²ΡΠ·Π°Π½ ΠΊ Π²Π½Π΅ΡΠ½ΠΈΠΌ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡΠΌ ΠΈ ΠΌΠΎΠΆΠ΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π° ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ°Ρ Ρ 4 ΠΠ ΠΠΠ£ ΠΈ 32 ΠΠ Flash, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ STM32G030C8 ΠΈ STM32F103C8. ΠΠ»Ρ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ MicroPython ΡΡΠ΅Π±ΡΠ΅ΡΡΡ 16 ΠΠ ΠΠΠ£ ΠΈ 256ΠΠ Flash, Π° Π΄Π»Ρ Snek — 2 ΠΠ ΠΠΠ£ ΠΈ 32 ΠΠ Flash. ΠΠΎΠ΄ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° ΡΠ·ΡΠΊΠ΅ Π‘ΠΈ ΠΈ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ΅ΡΡΡ ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π·ΠΈΠ΅ΠΉ MIT.
PikaScript ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΠΎΠ΄ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠ·ΡΠΊΠ° Python 3, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΠ΅Π΅ ΡΠ°ΠΊΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ°, ΠΊΠ°ΠΊ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ Π²Π΅ΡΠ²Π»Π΅Π½ΠΈΡ ΠΈ ΡΠΈΠΊΠ»ΠΎΠ² (if, while, for, else, elif, break, continue), Π±Π°Π·ΠΎΠ²ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ (+ — * / < == >), ΠΌΠΎΠ΄ΡΠ»ΠΈ, ΠΈΠ½ΠΊΠ°ΠΏΡΡΠ»ΡΡΠΈΡ, Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅, ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌ, ΠΊΠ»Π°ΡΡΡ ΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ. Python-ΡΠΊΡΠΈΠΏΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π½Π° ΡΡΡΡΠΎΠΉΡΡΠ²Π°Ρ ΠΏΠΎΡΠ»Π΅ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ — PikaScript Π²Π½Π°ΡΠ°Π»Π΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ΅Ρ Python-ΠΊΠΎΠ΄ Π²ΠΎ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠΉ Π±Π°ΠΉΡΠΊΠΎΠ΄ Pika Asm, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π° ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΌ ΡΡΡΡΠΎΠΉΡΡΠ²Π΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π² ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Π΅ Pika Runtime. ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ ΡΠ°Π±ΠΎΡΠ° Π½Π°ΠΏΡΡΠΌΡΡ ΠΏΠΎΠ²Π΅ΡΡ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΡ ΠΈΠ»ΠΈ Π² ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡΡ RT-Thread, VSF (Versaloon Software Framework) ΠΈ Linux.
ΠΡΠ΄Π΅Π»ΡΠ½ΠΎ ΠΎΡΠΌΠ΅ΡΠ°Π΅ΡΡΡ ΠΏΡΠΎΡΡΠΎΡΠ° ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ ΡΠΊΡΠΈΠΏΡΠΎΠ² PikaScript Ρ ΠΊΠΎΠ΄ΠΎΠΌ Π½Π° ΡΠ·ΡΠΊΠ΅ Π‘ΠΈ — ΠΊ ΠΊΠΎΠ΄Ρ ΠΌΠΎΠ³ΡΡ ΠΏΡΠΈΠ²ΡΠ·ΡΠ²Π°ΡΡΡΡ Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΠ΅ Π½Π° ΡΠ·ΡΠΊΠ΅ Π‘ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΡΠΈ Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΠΈ PikaScript ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π½Π°ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΡΠ°ΡΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ², Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΡ Π½Π° ΡΠ·ΡΠΊΠ΅ Π‘ΠΈ. ΠΠ»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π‘ΠΈ-ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠ΅ ΡΡΠ΅Π΄Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Keil, IAR, RT-Thread Studio ΠΈ Segger Embedded Studio. ΠΡΠΈΠ²ΡΠ·ΠΊΠΈ Π³Π΅Π½Π΅ΡΠΈΡΡΡΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π½Π° ΡΡΠ°ΠΏΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ, Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ API Π² ΡΠ°ΠΉΠ»Π΅ Ρ Python-ΠΊΠΎΠ΄ΠΎΠΌ ΠΈ ΠΏΡΠΈΠ²ΡΠ·ΠΊΠ° Π‘ΠΈ-ΡΡΠ½ΠΊΡΠΈΠΉ ΠΊ ΠΌΠΎΠ΄ΡΠ»ΡΠΌ Python Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π° Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π·Π°ΠΏΡΡΠΊΠ° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° Pika Pre-compiler.
Π PikaScript Π·Π°ΡΠ²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° 24 ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠ², Π²ΠΊΠ»ΡΡΠ°Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ stm32g*, stm32f*, stm32h*, WCH ch582, ch32*, WinnerMicro w80*, Geehy apm32*, Bouffalo Lab bl-706, Raspberry Pico, ESP32C3 ΠΈ Infineon TC264D. ΠΠ»Ρ Π±ΡΡΡΡΠΎΠ³ΠΎ Π½Π°ΡΠ°Π»Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π±Π΅Π· ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ ΡΠΈΠΌΡΠ»ΡΡΠΎΡ ΠΈΠ»ΠΈ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅ΡΡΡ ΠΏΠ»Π°ΡΠ° Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² Pika-Pi-Zero Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ° STM32G030C8T6 Ρ 64 ΠΠ Flash ΠΈ 8 ΠΠ ΠΠΠ£, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΠ°Ρ ΡΠΈΠΏΠΎΠ²ΡΠ΅ ΠΏΠ΅ΡΠΈΡΠ΅ΡΠΈΠΉΠ½ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ (GPIO, TIME, IIC, RGB, KEY, LCD, RGB). Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΈΠ»ΠΈ online-Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² ΠΈ ΠΏΠ°ΠΊΠ΅ΡΠ½ΡΠΉ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ PikaPackage.
Π Π½ΠΎΠ²ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΡΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΏΠΎΠ΄ΡΡΡΡΠ° ΡΡΡΠ»ΠΎΠΊ ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ
ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠΎΠ² (factory method). ΠΡΠΎΠ²Π΅Π΄Π΅Π½Π° Π΄ΠΈΠ°Π³Π½ΠΎΡΡΠΈΠΊΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌ Ρ ΠΏΠ°ΠΌΡΡΡΡ, Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π½Π°Ρ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ valgrind. ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ pc-ΡΠ°ΠΉΠ»ΠΎΠ² Python Π² Π±Π°ΠΉΡΠΊΠΎΠ΄ ΠΈ ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΠΈ Π² ΠΏΡΠΎΡΠΈΠ²ΠΊΡ. Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π² ΠΏΡΠΎΡΠΈΠ²ΠΊΠ°Ρ
Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ
Python-ΡΠ°ΠΉΠ»ΠΎΠ² Π±Π΅Π· Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru