ДоступСн Snek 1.5, Python-ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΉ язык программирования для встраиваСмых систСм

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

ΠŸΠΎΡ‚Ρ€Π΅Π±Π½ΠΎΡΡ‚ΡŒ Π² Π½ΠΎΠ²ΠΎΠΌ языкС Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° Π² Ρ…ΠΎΠ΄Π΅ ΠΏΡ€Π΅ΠΏΠΎΠ΄Π°Π²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΉ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ ΠšΠΈΡ‚Π° ΠŸΠ°ΠΊΠΊΠ°Ρ€Π΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ…ΠΎΡ‚Π΅Π» Π±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для обучСния студСнтов язык, ΠΏΡ€ΠΈΠ³ΠΎΠ΄Π½Ρ‹ΠΉ для примСнСния Π½Π° ΠΏΠ»Π°Ρ‚Π°Ρ… Arduino ΠΈ Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°ΡŽΡ‰ΠΈΠΉ ΠΏΠΎ своим Π·Π°Π΄Π°Ρ‡Π°ΠΌ Lego Logo, Π½ΠΎ способный ΡΡ‚Π°Ρ‚ΡŒ базисом для дальнСйшСго обучСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ. ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌΠΈ трСбованиями ΠΊ Π½ΠΎΠ²ΠΎΠΌΡƒ языку Π±Ρ‹Π»ΠΈ тСкстовый Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€ (дСмонстрация Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² программирования, Π½Π΅ завязанных Π½Π° графичСский интСрфСйс ΠΈ ΠΌΡ‹ΡˆΡŒ),
прСдоставлСниС базиса для ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½ΠΎΠ³ΠΎ обучСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ ΠΈ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½ΠΎΡΡ‚ΡŒ языка (ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ Π²Ρ‹ΡƒΡ‡ΠΈΡ‚ΡŒ язык Π·Π° нСсколько часов).

Π’ языкС Snek ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ сСмантика ΠΈ синтаксис Python, Π½ΠΎ поддСрТиваСтся лишь ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠ΅ подмноТСство возмоТностСй. Одной ΠΈΠ· Ρ†Π΅Π»Π΅ΠΉ, которая учитываСтся ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅, являСтся сохранСниС ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ совмСстимости — ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° Snek ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ с использованиСм ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½Ρ‹Ρ… Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΉ Python 3. Π’.Π΅. студСнты, Π·Π½Π°ΠΊΠΎΠΌΡ‹Π΅ с Snek, ΠΌΠΎΠ³ΡƒΡ‚ сразу ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΡŽ изучСния ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½ΠΎΠ³ΠΎ Python ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡƒΠΆΠ΅ ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠ΅ΡΡ свои Π½Π°Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Python.

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 устройства ΠΈ Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄ с устройства).

ДоступСн Snek 1.5, Python-ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΉ язык программирования для встраиваСмых систСм

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

  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΏΠΎΡ€Ρ‚ для ΠΏΠ»Π°Ρ‚Ρ‹ Arduino Uno, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΡ…ΠΎΠΆ Π½Π° ΠΏΠΎΡ€Ρ‚ для ΠΏΠ»Π°Ρ‚Ρ‹ Duemilanove, Π½ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π·Π°ΠΌΠ΅Π½Ρƒ ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ для Atmega 16u2.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° коррСктная ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ†Π΅ΠΏΠΎΡ‡Π΅ΠΊ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ сравнСния (a < b < c).
  • Для ΠΏΠ»Π°Ρ‚ Adafruit Circuit Playground Express обСспСчСна Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄Π° Π·Π²ΡƒΠΊΠ°.
  • Для ΠΏΠ»Π°Ρ‚ Duemilanove задСйствован Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊ Optiboot, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Snek, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±ΠΎΠΉΡ‚ΠΈΡΡŒ Π±Π΅Π· примСнСния ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ устройства для программирования.

Помимо Snek ΠšΠΈΡ‚ ΠŸΠ°ΠΊΠΊΠ°Ρ€Π΄ Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π°Π·Π²ΠΈΠ²Π°Π΅Ρ‚ ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½ΡƒΡŽ Π‘ΠΈ-Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ PicoLibc, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° встраиваСмых устройствах с нСбольшим ΠžΠ—Π£.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ