Выпуск Snek 1.6, Python-ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ языка программирования для встраиваСмых систСм

ΠšΠΈΡ‚ ΠŸΠ°ΠΊΠΊΠ°Ρ€Π΄ (Keith Packard), Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Debian, Π»ΠΈΠ΄Π΅Ρ€ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° X.Org ΠΈ ΡΠΎΠ·Π΄Π°Ρ‚Π΅Π»ΡŒ мноТСства X-Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ XRender, XComposite ΠΈ XRandR, ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π» Π½ΠΎΠ²Ρ‹ΠΉ выпуск языка программирования Snek 1.6, ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠ³ΠΎ ΠΊΠ°ΠΊ ΡƒΠΏΡ€ΠΎΡ‰Ρ‘Π½Π½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ языка Python, Π°Π΄Π°ΠΏΡ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ для использования Π½Π° встраиваСмых систСмах, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… нСдостаточно рСсурсов для использования MicroPython ΠΈ CircuitPython. Snek Π½Π΅ ΠΏΡ€Π΅Ρ‚Π΅Π½Π΄ΡƒΠ΅Ρ‚ Π½Π° ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½ΡƒΡŽ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ языка Python, Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π½Π° Ρ‡ΠΈΠΏΠ°Ρ…, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ… всСго 2ΠšΠ‘ ΠžΠ—Π£, 32 ΠšΠ‘ Flash-памяти ΠΈ 1ΠšΠ‘ EEPROM. Код ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° распространяСтся ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ GPLv3. Π‘Π±ΠΎΡ€ΠΊΠΈ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Ρ‹ для Linux, Windows ΠΈ macOS.

Π’ языкС Snek ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ сСмантика ΠΈ синтаксис Python, Π½ΠΎ поддСрТиваСтся лишь ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠ΅ подмноТСство возмоТностСй. Одной ΠΈΠ· Ρ†Π΅Π»Π΅ΠΉ, которая учитываСтся ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅, являСтся сохранСниС ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ совмСстимости — ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° Snek ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ с использованиСм ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½Ρ‹Ρ… Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΉ Python 3. Snek ΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ для ΡˆΠΈΡ€ΠΎΠΊΠΎΠ³ΠΎ спСктра встраиваСмых устройств, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΏΠ»Π°Ρ‚Ρ‹ Arduino, Feather/Metro M0 Express, Adafruit Crickit, Adafruit ItsyBitsy, Lego EV3 ΠΈ µduino, прСдоставляСт доступ ΠΊ GPIO ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌ ΠΏΠ΅Ρ€ΠΈΡ„Π΅Ρ€ΠΈΠΉΠ½Ρ‹ΠΌ устройствам.

ΠŸΡ€ΠΈ этом ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π°Π·Π²ΠΈΠ²Π°Π΅Ρ‚ собствСнный ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ Snekboard (ARM Cortex M0 с 256ΠšΠ‘ Flash ΠΈ 32ΠšΠ‘ ΠžΠ—Π£), рассчитанный Π½Π° использованиС со Snek ΠΈΠ»ΠΈ CircuitPython, ΠΈ Π½Π°Ρ†Π΅Π»Π΅Π½Π½Ρ‹ΠΉ Π½Π° ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΈ созданиС Ρ€ΠΎΠ±ΠΎΡ‚ΠΎΠ² с использованиСм Π΄Π΅Ρ‚Π°Π»Π΅ΠΉ LEGO. БрСдства для создания Snekboard собраны Π² Ρ…ΠΎΠ΄Π΅ ΠΊΡ€aΡƒΠ΄Ρ„Π°Π½Π΄ΠΈΠ½Π³Π°.

Для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° Snek ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ ΠΊΠΎΠ΄Π° Mu (ΠΏΠ°Ρ‚Ρ‡ΠΈ для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ) ΠΈΠ»ΠΈ собствСнная консольная интСгрированная срСда Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Snekde, которая написана с использованиСм Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Curses ΠΈ прСдоставляСт интСрфСйс для рСдактирования ΠΊΠΎΠ΄Π° ΠΈ взаимодСйствия с устройством Ρ‡Π΅Ρ€Π΅Π· USB-ΠΏΠΎΡ€Ρ‚ (ΠΌΠΎΠΆΠ½ΠΎ сразу ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π² eeprom устройства ΠΈ Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄ с устройства).

Π’ Π½ΠΎΠ²ΠΎΠΌ выпускС:

  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° явной синхронизации Π½Π° Π±Π°Π·Π΅ ENQ/ACK, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅ΠΉ прилоТСниям ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ большиС ΠΎΠ±ΡŠΡ‘ΠΌΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π±Π΅Π· нСобходимости ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈ управлСния ΠΏΠΎΡ‚ΠΎΠΊΠΎΠΌ Π½Π° сторонС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы, Π² Ρ‚ΠΎΠΌ числС ΠΏΡ€ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ большого числа устройств ΠΊ USB ΠΈΠ»ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΌΡƒ ΠΏΠΎΡ€Ρ‚Ρƒ, Π½Π΅ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… управлСния ΠΏΠΎΡ‚ΠΎΠΊΠΎΠΌ.
  • Π—Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ ΠΏΠΎΡ€Ρ‚ для ΠΏΠ»Π°Ρ‚Ρ‹ Lego EV3, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π΄ΠΎΠ²Π΅Π΄Π΅Π½Π° Π΄ΠΎ уровня Π΄Ρ€ΡƒΠ³ΠΈΡ… устройств.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΏΠΎΡ€Ρ‚ для ΠΏΠ»Π°Ρ‚Ρ‹ Narrow 1284 Π½Π° Π±Π°Π·Π΅ SoC ATmega1284.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΏΠΎΡ€Ρ‚ для ΠΏΠ»Π°Ρ‚Ρ‹ Seeed Grove Beginner Kit Π½Π° Π±Π°Π·Π΅ ATmega328p.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΏΠΎΡ€Ρ‚ для ΠΏΠ»Π°Ρ‚Ρ‹ Seeeduino XIAO Π½Π° Π±Π°Π·Π΅ SAMD21, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΠΎΠΉ Ρ‡Π΅Ρ€Π΅Π· USB-C.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΏΠΎΡ€Ρ‚ для ΠΏΠ»Π°Ρ‚Ρ‹ Arduino Nano Every Π½Π° Π±Π°Π·Π΅ ATmega4809, оснащённой 6 ΠšΠ‘ ΠžΠ—Π£.