Python๊ณผ ์œ ์‚ฌํ•œ ์ž„๋ฒ ๋””๋“œ ์‹œ์Šคํ…œ์šฉ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์ธ Snek 1.5๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ‚ค์Šค ํŒจ์ปค๋“œ(ํ‚ค์Šค ํŒจ์ปค๋“œ), ํ™œ๋™์ ์ธ Debian ๊ฐœ๋ฐœ์ž, X.Org ํ”„๋กœ์ ํŠธ์˜ ๋ฆฌ๋”์ด์ž XRender, XComposite ๋ฐ XRandR์„ ํฌํ•จํ•œ ๋งŽ์€ X ํ™•์žฅ์˜ ์ฐฝ์‹œ์ž์ž…๋‹ˆ๋‹ค. ์ถœํŒ ์ƒˆ๋กœ์šด ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ์ถœ์‹œ ์Šค๋„คํฌ 1.5, Python ์–ธ์–ด์˜ ๋‹จ์ˆœํ™”๋œ ๋ฒ„์ „์œผ๋กœ ๊ฐ„์ฃผ๋  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์‚ฌ์šฉํ•  ๋ฆฌ์†Œ์Šค๊ฐ€ ์ถฉ๋ถ„ํ•˜์ง€ ์•Š์€ ์ž„๋ฒ ๋””๋“œ ์‹œ์Šคํ…œ์—์„œ ์‚ฌ์šฉํ•˜๋„๋ก ์กฐ์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋งˆ์ดํฌ๋กœํŒŒ์ด์ฌ ะธ ์„œํ‚ทํŒŒ์ด์ฌ. Snek์€ Python ์–ธ์–ด์— ๋Œ€ํ•œ ์™„์ „ํ•œ ์ง€์›์„ ์ฃผ์žฅํ•˜์ง€๋Š” ์•Š์ง€๋งŒ 2KB์˜ RAM, 32KB์˜ ํ”Œ๋ž˜์‹œ ๋ฉ”๋ชจ๋ฆฌ ๋ฐ 1KB์˜ EEPROM์„ ๊ฐ–์ถ˜ ์นฉ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ ์ฝ”๋“œ ๋ฐฐํฌ์ž GPLv3์— ๋”ฐ๋ผ ๋ผ์ด์„ผ์Šค๊ฐ€ ๋ถ€์—ฌ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์–ด์…ˆ๋ธ”๋ฆฌ ์ค€๋น„๋œ ๋ฆฌ๋ˆ…์Šค, ์œˆ๋„์šฐ, ๋งฅOS์šฉ.

Keith Packard์˜ ๊ต์œก ์‹ค์Šต ์ค‘์— ์ƒˆ๋กœ์šด ์–ธ์–ด์— ๋Œ€ํ•œ ํ•„์š”์„ฑ์ด ๋Œ€๋‘๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Keith Packard๋Š” Arduino ๋ณด๋“œ์—์„œ ์‚ฌ์šฉํ•˜๊ธฐ์— ์ ํ•ฉํ•˜๊ณ  ์ž‘์—…์—์„œ ๋ ˆ๊ณ  ๋กœ๊ณ ์™€ ์œ ์‚ฌํ•˜์ง€๋งŒ ์ถ”๊ฐ€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ต์œก์˜ ๊ธฐ์ดˆ๊ฐ€ ๋  ์ˆ˜ ์žˆ๋Š” ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•™์ƒ๋“ค์„ ๊ฐ€๋ฅด์น˜๊ธฐ๋ฅผ ์›ํ–ˆ์Šต๋‹ˆ๋‹ค. . ์ƒˆ๋กœ์šด ์–ธ์–ด์˜ ํ•ต์‹ฌ ์š”๊ตฌ ์‚ฌํ•ญ์€ ๋ณธ์งˆ์ ์œผ๋กœ ํ…์ŠคํŠธ(๊ทธ๋ž˜ํ”ฝ ์ธํ„ฐํŽ˜์ด์Šค์™€ ๋งˆ์šฐ์Šค์— ์˜์กดํ•˜์ง€ ์•Š๋Š” ์‹ค์ œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฐฉ๋ฒ• ์‹œ์—ฐ)์˜€์Šต๋‹ˆ๋‹ค.
์™„์ „ํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ต์œก๊ณผ ์–ธ์–ด์˜ ๊ฐ„๊ฒฐ์„ฑ(๋ช‡ ์‹œ๊ฐ„ ์•ˆ์— ์–ธ์–ด๋ฅผ ๋ฐฐ์šธ ์ˆ˜ ์žˆ๋Š” ๋Šฅ๋ ฅ)์„ ์œ„ํ•œ ๊ธฐ์ดˆ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

Snek์€ Python์˜ ์˜๋ฏธ์™€ ๊ตฌ๋ฌธ์„ ์‚ฌ์šฉํ•˜์ง€๋งŒ ์ œํ•œ๋œ ๊ธฐ๋Šฅ ํ•˜์œ„ ์ง‘ํ•ฉ๋งŒ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ ์ค‘์— ๊ณ ๋ ค๋˜๋Š” ๋ชฉํ‘œ ์ค‘ ํ•˜๋‚˜๋Š” ์ด์ „ ๋ฒ„์ „๊ณผ์˜ ํ˜ธํ™˜์„ฑ์„ ์œ ์ง€ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. Snek์˜ ํ”„๋กœ๊ทธ๋žจ์€ ์™„์ „ํ•œ Python 3 ๊ตฌํ˜„์„ ์‚ฌ์šฉํ•˜์—ฌ ์‹คํ–‰๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Snek์— ์ต์ˆ™ํ•œ ํ•™์ƒ๋“ค์€ ์ฆ‰์‹œ ๋ณธ๊ฒฉ์ ์ธ Python ํ•™์Šต์„ ๊ณ„์†ํ•˜๊ณ  Python ์ž‘์—… ์‹œ ๊ธฐ์กด ์ง€์‹์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Snek์€ Arduino, Feather/Metro M0 Express, Adafruit Crickit, Adafruit ItsyBitsy, Lego EV3 ๋ฐ ยตduino ๋ณด๋“œ๋ฅผ ํฌํ•จํ•œ ๊ด‘๋ฒ”์œ„ํ•œ ์ž„๋ฒ ๋””๋“œ ์žฅ์น˜์— ํฌํŒ…๋˜์–ด GPIO ๋ฐ ๋‹ค์–‘ํ•œ ์ฃผ๋ณ€ ์žฅ์น˜์— ๋Œ€ํ•œ ์•ก์„ธ์Šค๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋™์‹œ์— ์ด ํ”„๋กœ์ ํŠธ๋Š” ์ž์ฒด ๊ฐœ๋ฐฉํ˜• ๋งˆ์ดํฌ๋กœ์ปจํŠธ๋กค๋Ÿฌ๋„ ๊ฐœ๋ฐœํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์Šค๋„ฅ๋ณด๋“œ (0KB ํ”Œ๋ž˜์‹œ ๋ฐ 256KB RAM์„ ๊ฐ–์ถ˜ ARM Cortex M32)์€ Snek ๋˜๋Š” CircuitPython๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๋„๋ก ์„ค๊ณ„๋˜์—ˆ์œผ๋ฉฐ LEGO ๋ถ€ํ’ˆ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋กœ๋ด‡์„ ๊ฐ€๋ฅด์น˜๊ณ  ๊ตฌ์ถ•ํ•˜๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•ฉ๋‹ˆ๋‹ค. Snekboard ์ œ์ž‘ ๋„๊ตฌ ๋ชจ์€ ํฌ๋ผ์šฐ๋“œ ํŽ€๋”ฉ ์ค‘.

Snek์—์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•˜๋Š” ๋ฐ ์ฝ”๋“œ ํŽธ์ง‘๊ธฐ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Mu (์ง€์› ํŒจ์น˜) ๋˜๋Š” ์ž์ฒด ์ฝ˜์†” IDE ์Šค๋„คํฌ๋ฐCurses ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ž‘์„ฑ๋˜์—ˆ์œผ๋ฉฐ ์ฝ”๋“œ๋ฅผ ํŽธ์ง‘ํ•˜๊ณ  USB ํฌํŠธ๋ฅผ ํ†ตํ•ด ์žฅ์น˜์™€ ์ƒํ˜ธ ์ž‘์šฉํ•˜๊ธฐ ์œ„ํ•œ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค(ํ”„๋กœ๊ทธ๋žจ์„ ์žฅ์น˜์˜ eeprom์— ์ฆ‰์‹œ ์ €์žฅํ•˜๊ณ  ์žฅ์น˜์—์„œ ์ฝ”๋“œ๋ฅผ ๋กœ๋“œํ•  ์ˆ˜ ์žˆ์Œ).

Python๊ณผ ์œ ์‚ฌํ•œ ์ž„๋ฒ ๋””๋“œ ์‹œ์Šคํ…œ์šฉ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์ธ Snek 1.5๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ƒˆ ๋ฆด๋ฆฌ์Šค์—์„œ:

  • Duemilanove ๋ณด๋“œ์šฉ ํฌํŠธ์™€ ์œ ์‚ฌํ•˜์ง€๋งŒ Atmega 16u2์šฉ ํŽŒ์›จ์–ด ๊ต์ฒด๊ฐ€ ํฌํ•จ๋œ Arduino Uno ๋ณด๋“œ์šฉ ํฌํŠธ๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ๋น„๊ต ์ฒด์ธ(a < b < c)์— ๋Œ€ํ•œ ์˜ฌ๋ฐ”๋ฅธ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • Adafruit Circuit Playground Express ๋ณด๋“œ๋Š” ์˜ค๋””์˜ค ์ถœ๋ ฅ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  • Duemilanove ๋ณด๋“œ์˜ ๊ฒฝ์šฐ ๋ถ€ํŠธ๋กœ๋”๊ฐ€ ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค. Optiboot, ๋ณ„๋„์˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์žฅ์น˜๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ ๋„ Snek์„ ๊ต์ฒดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Snek ์™ธ์—๋„ Keith Packard๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐœ์ „ํ•˜๋‹ค ํ‘œ์ค€ C ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ PicoLibc, RAM์ด ๊ฑฐ์˜ ์—†๋Š” ์ž„๋ฒ ๋””๋“œ ์žฅ์น˜์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€