๋งˆ์ดํฌ๋กœ์ปจํŠธ๋กค๋Ÿฌ์šฉ Python ์–ธ์–ด์˜ ๋ณ€ํ˜•์ธ PikaScript 1.8์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Python์—์„œ ๋งˆ์ดํฌ๋กœ์ปจํŠธ๋กค๋Ÿฌ์šฉ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ž‘์„ฑํ•˜๊ธฐ ์œ„ํ•œ ์†Œํ˜• ์—”์ง„์„ ๊ฐœ๋ฐœํ•˜๋Š” PikaScript 1.8 ํ”„๋กœ์ ํŠธ์˜ ๋ฆด๋ฆฌ์Šค๊ฐ€ ๋ฐœํ‘œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. PikaScript๋Š” ์™ธ๋ถ€ ์ข…์†์„ฑ์— ๋ฌถ์ด์ง€ ์•Š์œผ๋ฉฐ STM4G32C32 ๋ฐ STM030F8C32๊ณผ ๊ฐ™์€ 103KB RAM ๋ฐ 8KB ํ”Œ๋ž˜์‹œ๊ฐ€ ์žˆ๋Š” ๋งˆ์ดํฌ๋กœ ์ปจํŠธ๋กค๋Ÿฌ์—์„œ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์— ๋น„ํ•ด MicroPython์—๋Š” 16KB์˜ RAM๊ณผ 256KB์˜ ํ”Œ๋ž˜์‹œ๊ฐ€ ํ•„์š”ํ•œ ๋ฐ˜๋ฉด Snek์—๋Š” 2KB์˜ RAM๊ณผ 32KB์˜ ํ”Œ๋ž˜์‹œ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ ์ฝ”๋“œ๋Š” C๋กœ ์ž‘์„ฑ๋˜์—ˆ์œผ๋ฉฐ MIT ๋ผ์ด์„ ์Šค์— ๋”ฐ๋ผ ๋ฐฐํฌ๋ฉ๋‹ˆ๋‹ค.

PikaScript๋Š” ๋ถ„๊ธฐ ๋ฐ ๋ฃจํ”„ ๋ฌธ(if, while, for, else, elif, break, continue), ๊ธฐ๋ณธ ๋ฌธ(+ - * / < == >), ๋ชจ๋“ˆ, ์บก์Šํ™”, ์ƒ์†, ๋‹คํ˜•์„ฑ, ํด๋ž˜์Šค ๋ฐ ๋ฉ”์„œ๋“œ. Python ์Šคํฌ๋ฆฝํŠธ๋Š” ์‚ฌ์ „ ์ปดํŒŒ์ผ ํ›„ ์žฅ์น˜์—์„œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. PikaScript๋Š” ๋จผ์ € Python ์ฝ”๋“œ๋ฅผ ํŠน์ˆ˜ Pika Runtime ๊ฐ€์ƒ ๋จธ์‹ ์˜ ์ตœ์ข… ์žฅ์น˜์—์„œ ์‹คํ–‰๋˜๋Š” ๋‚ด๋ถ€ Pika Asm ๋ฐ”์ดํŠธ์ฝ”๋“œ๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ํ•˜๋“œ์›จ์–ด ์œ„์—์„œ ๋˜๋Š” RT-Thread, VSF(Versaloon Software Framework) ๋ฐ Linux ํ™˜๊ฒฝ์—์„œ ์ง์ ‘ ์ž‘์—…์ด ์ง€์›๋ฉ๋‹ˆ๋‹ค.

๋งˆ์ดํฌ๋กœ์ปจํŠธ๋กค๋Ÿฌ์šฉ Python ์–ธ์–ด์˜ ๋ณ€ํ˜•์ธ PikaScript 1.8์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด์™€๋Š” ๋ณ„๋„๋กœ PikaScript ์Šคํฌ๋ฆฝํŠธ์™€ C ์–ธ์–ด ์ฝ”๋“œ์˜ ํ†ตํ•ฉ ์šฉ์ด์„ฑ์— ์ฃผ๋ชฉํ•ฉ๋‹ˆ๋‹ค. C ์–ธ์–ด๋กœ ์ž‘์„ฑ๋œ ๊ธฐ๋Šฅ์„ ์ฝ”๋“œ์— ์ฒจ๋ถ€ํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ PikaScript๋ฅผ ๊ตฌํ˜„ํ•  ๋•Œ C ์–ธ์–ด๋กœ ์ž‘์„ฑ๋œ ์ด์ „ ํ”„๋กœ์ ํŠธ์˜ ๊ฐœ๋ฐœ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. C ๋ชจ๋“ˆ์€ Keil, IAR, RT-Thread Studio ๋ฐ Segger Embedded Studio์™€ ๊ฐ™์€ ๊ธฐ์กด ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ”์ธ๋”ฉ์€ ์ปดํŒŒ์ผ ๋‹จ๊ณ„์—์„œ ์ž๋™์œผ๋กœ ์ƒ์„ฑ๋˜๋ฉฐ, Python ์ฝ”๋“œ๋กœ ํŒŒ์ผ์— API๋ฅผ ์ •์˜ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ์ถฉ๋ถ„ํ•˜๋ฉฐ C ํ•จ์ˆ˜๋ฅผ Python ๋ชจ๋“ˆ์— ๋ฐ”์ธ๋”ฉํ•˜๋Š” ๊ฒƒ์€ Pika Pre-compiler ์ปดํŒŒ์ผ๋Ÿฌ ์‹คํ–‰ ์ค‘์— ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค.

๋งˆ์ดํฌ๋กœ์ปจํŠธ๋กค๋Ÿฌ์šฉ Python ์–ธ์–ด์˜ ๋ณ€ํ˜•์ธ PikaScript 1.8์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

PikaScript๋Š” stm24g*, stm32f*, stm32h*, WCH ch32, ch582*, WinnerMicro w32*, Geehy apm80*, Bouffalo Lab bl-32, Raspberry Pico, ESP706C32 ๋ฐ Infineon TC3D์˜ ๋‹ค์–‘ํ•œ ๋ชจ๋ธ์„ ํฌํ•จํ•˜์—ฌ 264๊ฐœ์˜ ๋งˆ์ดํฌ๋กœ ์ปจํŠธ๋กค๋Ÿฌ์— ๋Œ€ํ•œ ์ง€์›์„ ์ฃผ์žฅํ•ฉ๋‹ˆ๋‹ค. ํ•˜๋“œ์›จ์–ด ์—†์ด ๋น ๋ฅด๊ฒŒ ๊ฐœ๋ฐœ์„ ์‹œ์ž‘ํ•˜๊ธฐ ์œ„ํ•ด ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ๊ฐ€ ์ œ๊ณต๋˜๊ฑฐ๋‚˜ 32KB ํ”Œ๋ž˜์‹œ ๋ฐ 030KB RAM์ด ์žˆ๋Š” STM8G6C64T8 ๋งˆ์ดํฌ๋กœ ์ปจํŠธ๋กค๋Ÿฌ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” Pika-Pi-Zero ๊ฐœ๋ฐœ ๋ณด๋“œ๊ฐ€ ์ œ๊ณต๋˜๋ฉฐ ๊ณตํ†ต ์ฃผ๋ณ€ ์žฅ์น˜ ์ธํ„ฐํŽ˜์ด์Šค(GPIO, TIME, IIC, RGB, KEY)๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. , LCD, RGB) . ๊ฐœ๋ฐœ์ž๋Š” ์˜จ๋ผ์ธ ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ๊ธฐ์™€ PikaPackage ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž๋„ ์ค€๋น„ํ–ˆ์Šต๋‹ˆ๋‹ค.

์ƒˆ ๋ฒ„์ „์€ ์ฐธ์กฐ ํšŸ์ˆ˜ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ๋ฅผ ๊ตฌํ˜„ํ•˜๊ณ  ๊ฐ€์ƒ ์ƒ์„ฑ์ž(ํŒฉํ† ๋ฆฌ ๋ฉ”์„œ๋“œ)์— ๋Œ€ํ•œ ์ง€์›์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ๋ฉ”๋ชจ๋ฆฌ ๋ฌธ์ œ ์ง„๋‹จ์€ valgrind ํˆดํ‚ท์„ ์‚ฌ์šฉํ•˜์—ฌ ์ˆ˜ํ–‰๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Python pc ํŒŒ์ผ์„ ๋ฐ”์ดํŠธ์ฝ”๋“œ๋กœ ์ปดํŒŒ์ผํ•˜๊ณ  ํŽŒ์›จ์–ด๋กœ ํŒจํ‚ค์ง•ํ•˜๊ธฐ ์œ„ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํŒŒ์ผ ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉํ•  ํ•„์š” ์—†์ด ํŽŒ์›จ์–ด์—์„œ ์—ฌ๋Ÿฌ Python ํŒŒ์ผ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

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