อภิธานศัพท์

baremetal

ระบบที่ไม่มีระบบปฏิบัติการ (เต็มรูปแบบ) เช่น ระบบบนพื้นฐาน MCU เมื่อทำงานบนระบบ baremetal MicroPython จะทำหน้าที่เหมือนระบบปฏิบัติการขนาดเล็ก โดยรันโปรแกรมผู้ใช้และจัดเตรียมตัวแปลคำสั่ง (REPL)

buffer protocol

ออบเจกต์ Python ใดก็ตามที่สามารถแปลงเป็น bytes ได้โดยอัตโนมัติ เช่น ออบเจกต์ bytes, bytearray, memoryview และ str ซึ่งทั้งหมดนำ "buffer protocol" มาใช้งาน

board

โดยทั่วไปหมายถึงแผงวงจรพิมพ์ (PCB) ที่มี microcontroller และส่วนประกอบสนับสนุน เฟิร์มแวร์ MicroPython มักจัดเตรียมต่อบอร์ด เนื่องจากเฟิร์มแวร์มีทั้งฟังก์ชันเฉพาะ MCU และฟังก์ชันระดับบอร์ด เช่น ไดรเวอร์หรือชื่อพิน

bytecode

การแสดงแบบกะทัดรัดของโปรแกรม Python ที่สร้างขึ้นโดยการคอมไพล์ซอร์สโค้ด Python นี่คือสิ่งที่ VM ประมวลผลจริงๆ bytecode มักถูกสร้างโดยอัตโนมัติในระหว่างรันไทม์และมองไม่เห็นสำหรับผู้ใช้ โปรดทราบว่าแม้ CPython และ MicroPython ทั้งคู่ใช้ bytecode แต่รูปแบบต่างกัน คุณยังสามารถคอมไพล์ซอร์สโค้ดล่วงหน้าแบบออฟไลน์โดยใช้ cross-compiler

callee-owned tuple

นี่คือโครงสร้างเฉพาะของ MicroPython ที่ฟังก์ชันหรือเมธอดภายในบางตัวอาจนำออบเจกต์ tuple เดิมมาใช้ซ้ำเพื่อส่งคืนข้อมูล เพื่อประสิทธิภาพ ซึ่งหลีกเลี่ยงการต้องจัดสรร tuple ใหม่ในทุกการเรียก และลดการแตกเป็นชิ้นๆ ของ heap โปรแกรมไม่ควรเก็บการอ้างอิงไปยัง callee-owned tuples แต่ควรดึงข้อมูลออกจาก tuple เหล่านั้น (หรือทำสำเนา) เท่านั้น

CircuitPython

ตัวแปรของ MicroPython ที่พัฒนาโดย Adafruit Industries

CPython

CPython เป็น implementation อ้างอิงของภาษาโปรแกรม Python และเป็นที่รู้จักมากที่สุด อย่างไรก็ตาม เป็นเพียงหนึ่งในหลาย implementation (รวมถึง Jython, IronPython, PyPy และ MicroPython) แม้ว่า implementation ของ MicroPython จะแตกต่างจาก CPython อย่างมาก แต่มุ่งหมายที่จะรักษาความเข้ากันได้ให้มากที่สุดเท่าที่จะเป็นไปได้

cross-compiler

หรือที่รู้จักในชื่อ mpy-cross เครื่องมือนี้ทำงานบน PC และแปลง .py file ที่มีโค้ด MicroPython เป็น .mpy file ที่มี MicroPython bytecode ซึ่งทำให้โหลดได้เร็วขึ้น (บอร์ดไม่ต้องคอมไพล์โค้ด) และใช้พื้นที่บนแฟลชน้อยลง (bytecode มีประสิทธิภาพพื้นที่มากกว่า)

driver

ไลบรารี MicroPython ที่ใช้งานการรองรับส่วนประกอบเฉพาะ เช่น เซนเซอร์หรือจอแสดงผล

FFI

ตัวย่อของ Foreign Function Interface กลไกที่ใช้โดย MicroPython Unix port เพื่อเข้าถึงฟังก์ชันของระบบปฏิบัติการ ไม่มีให้ใช้งานบนพอร์ต baremetal

filesystem

พอร์ตและบอร์ด MicroPython ส่วนใหญ่จัดเตรียมระบบไฟล์ที่จัดเก็บในแฟลช ซึ่งโค้ดผู้ใช้สามารถเข้าถึงได้ผ่าน Python file API มาตรฐาน เช่น open() บางบอร์ดยังทำให้ระบบไฟล์ภายในนี้เข้าถึงได้จากโฮสต์ผ่าน USB mass-storage

frozen module

โมดูล Python ที่ถูก cross compiled และรวมเข้าไปในอิมเมจเฟิร์มแวร์ ซึ่งช่วยลดความต้องการ RAM เนื่องจากโค้ดทำงานโดยตรงจากแฟลช

Garbage Collector

กระบวนการที่ทำงานอยู่เบื้องหลังใน Python (และ MicroPython) เพื่อเรียกคืนหน่วยความจำที่ไม่ได้ใช้งานใน heap

GPIO

General-purpose input/output วิธีที่ง่ายที่สุดในการควบคุมสัญญาณไฟฟ้า (มักเรียกว่า "pins") บน microcontroller GPIO โดยทั่วไปอนุญาตให้ตั้งค่าพินเป็น input หรือ output และตั้งค่าหรือรับค่า digital ของพิน (ค่าลอจิก "0" หรือ "1") MicroPython ทำให้การเข้าถึง GPIO เป็นนามธรรมโดยใช้คลาส machine.Pin และ machine.Signal

GPIO port

กลุ่มของพิน GPIO ที่โดยทั่วไปอ้างอิงจากคุณสมบัติของฮาร์ดแวร์ (เช่น สามารถควบคุมได้โดย รีจิสเตอร์เดียวกัน)

heap

พื้นที่ RAM ที่ MicroPython ใช้จัดเก็บข้อมูลแบบไดนามิก จัดการโดยอัตโนมัติด้วย Garbage Collector MCU และบอร์ดต่างๆ มีปริมาณ RAM ที่ใช้ได้สำหรับ heap แตกต่างกันมาก ซึ่งจะส่งผลต่อความซับซ้อนของโปรแกรมที่สามารถรันได้

interned string

การปรับให้เหมาะสมที่ MicroPython ใช้เพื่อเพิ่มประสิทธิภาพการทำงานกับสตริง สตริงที่ intern แล้วจะถูกอ้างอิงโดย identity (ที่ไม่ซ้ำกัน) แทนที่อยู่ และสามารถเปรียบเทียบได้รวดเร็วเพียงแค่ใช้ตัวระบุ ยังหมายความว่าสตริงที่เหมือนกันสามารถนำมาใช้ร่วมกันในหน่วยความจำได้ การ intern สตริงแทบจะมองไม่เห็นสำหรับผู้ใช้เสมอ

MCU

Microcontroller โดยทั่วไป microcontroller มีทรัพยากรน้อยกว่า desktop, laptop หรือโทรศัพท์มาก แต่มีขนาดเล็กกว่า ราคาถูกกว่า และต้องการพลังงานน้อยกว่า MicroPython ได้รับการออกแบบให้มีขนาดเล็กและเพิ่มประสิทธิภาพพอที่จะทำงานบน microcontroller สมัยใหม่ทั่วไป

micropython-lib

MicroPython (โดยทั่วไป) จะถูกแจกจ่ายเป็นไฟล์ executable/binary เดียวที่มีเพียงไม่กี่โมดูลในตัว ไม่มีไลบรารีมาตรฐานที่ครอบคลุมเทียบเท่ากับของ CPython แต่มีโปรเจกต์ที่เกี่ยวข้องแต่แยกต่างหาก micropython-lib ซึ่งจัดเตรียม implementation สำหรับโมดูลจำนวนมากจากไลบรารีมาตรฐานของ CPython

โมดูลบางส่วนถูก implement ใน Python บริสุทธิ์และทำงานบนพอร์ตใดก็ได้ เฟิร์มแวร์ OpenMV จะ freeze การเลือกเหล่านี้ (ไดรเวอร์ sensor, เครือข่าย และตัวช่วยยูทิลิตี) ไว้ในอิมเมจเฟิร์มแวร์โดยตรง เพื่อให้สามารถ import ได้โดยไม่ต้องติดตั้งอะไร โมดูล micropython-lib จำนวนน้อยกว่าใช้ FFI และทำงานได้เฉพาะบน MicroPython Unix port เท่านั้น ซึ่งโมดูลเหล่านั้นไม่มีให้ใช้งานบน OpenMV Cams

ต่างจาก stdlib ของ CPython โมดูล micropython-lib ที่ไม่ได้ถูก freeze จะถูกติดตั้งทีละโมดูล ไม่ว่าจะโดยการคัดลอกลงในระบบไฟล์ หรือบนบอร์ดที่รองรับเครือข่าย โดยใช้ mip

MicroPython port

MicroPython รองรับ boards RTOS และ OS ที่แตกต่างกัน และสามารถปรับตัวเข้ากับระบบใหม่ได้ค่อนข้างง่าย MicroPython ที่รองรับระบบเฉพาะเรียกว่า "port" สำหรับระบบนั้น พอร์ตต่างๆ อาจมีฟังก์ชันที่แตกต่างกันอย่างมาก เอกสารนี้มีจุดประสงค์เป็นข้อมูลอ้างอิงของ API ทั่วไปที่ใช้งานได้ในพอร์ตต่างๆ ("MicroPython core") โปรดทราบว่าบางพอร์ตอาจยังคงละเว้น API บางส่วนที่อธิบายไว้ที่นี่ (เช่น เนื่องจากข้อจำกัดทรัพยากร) ความแตกต่างดังกล่าวและส่วนขยายเฉพาะพอร์ตที่เกินกว่าฟังก์ชัน MicroPython core จะอธิบายไว้ในเอกสารเฉพาะพอร์ตแยกต่างหาก

MicroPython Unix port

unix port เป็นหนึ่งใน MicroPython ports หลัก ออกแบบให้ทำงานบนระบบปฏิบัติการที่เข้ากันได้กับ POSIX เช่น Linux, MacOS, FreeBSD, Solaris เป็นต้น และยังเป็นพื้นฐานของ Windows port ด้วย Unix port มีประโยชน์มากสำหรับการพัฒนาและทดสอบภาษา MicroPython และฟีเจอร์ที่ไม่ขึ้นกับเครื่องอย่างรวดเร็ว ยังสามารถทำงานในลักษณะเดียวกับ executable python ของ CPython

mip

ตัวติดตั้งแพ็กเกจสำหรับ MicroPython (mip - "mip installs packages") ติดตั้งแพ็กเกจ MicroPython จาก micropython-lib, GitHub หรือ URL ใดก็ได้ mip สามารถใช้งานบนอุปกรณ์บนบอร์ดที่รองรับเครือข่าย และภายในโดยเครื่องมืออย่าง mpremote

ดู การจัดการแพ็กเกจ สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการใช้ mip

mpremote

เครื่องมือสำหรับโต้ตอบกับอุปกรณ์ MicroPython ดู MicroPython การควบคุมระยะไกล: mpremote

.mpy file

ผลลัพธ์จาก cross-compiler เป็นรูปแบบที่คอมไพล์แล้วของ .py file ที่มี MicroPython bytecode แทนที่ซอร์สโค้ด Python

native

โดยทั่วไปหมายถึง "native code" คือ machine code สำหรับ microcontroller เป้าหมาย (ARM Thumb บน OpenMV Cams ที่ใช้ Cortex-M) decorator @micropython.native สามารถนำไปใช้กับฟังก์ชัน MicroPython เพื่อสร้าง native code แทน bytecode สำหรับฟังก์ชันนั้น ซึ่งน่าจะเร็วกว่าแต่ใช้ RAM มากกว่า

port

โดยทั่วไปเป็นคำย่อของ MicroPython port แต่อาจหมายถึง GPIO port ด้วย

.py file

ไฟล์ที่มีซอร์สโค้ด Python

pyboard.py

เครื่องมือฝั่งโฮสต์ที่ถูกแทนที่แล้วสำหรับโต้ตอบกับบอร์ด MicroPython ซึ่งรันสคริปต์และเข้าถึงระบบไฟล์ผ่าน raw REPL ดูตัวแทนที่ mpremote

REPL

ตัวย่อของ "Read, Eval, Print, Loop" นี่คือ Python prompt แบบโต้ตอบ มีประโยชน์สำหรับการดีบักหรือทดสอบโค้ดสั้นๆ OpenMV Cams ทำให้ REPL พร้อมใช้งานสำหรับ PC โฮสต์ผ่าน USB (อุปกรณ์ serial USB CDC)

small integer

MicroPython ปรับปรุงการแสดงภายในของจำนวนเต็มเพื่อให้ค่า "เล็ก" ไม่ใช้พื้นที่บน heap และการคำนวณกับค่าเหล่านั้นไม่ต้องการการจัดสรร heap บนพอร์ต 32-bit ส่วนใหญ่ สอดคล้องกับค่าในช่วง -2**30 <= x < 2**30 แต่ควรถือเป็นรายละเอียดการ implement และไม่ควรพึ่งพา

stream

หรือที่รู้จักในชื่อ "file-like object" ออบเจกต์ Python ที่ให้การเข้าถึงข้อมูลพื้นฐานแบบอ่านเขียนตามลำดับ ออบเจกต์ stream ใช้งาน interface ที่สอดคล้อง ซึ่งประกอบด้วยเมธอดเช่น read(), write(), readinto(), seek(), flush(), close() เป็นต้น stream เป็นแนวคิดสำคัญใน MicroPython ออบเจกต์ I/O จำนวนมากนำ stream interface มาใช้งาน และสามารถใช้งานอย่างสอดคล้องและแทนกันได้ในบริบทที่แตกต่างกัน สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ stream ใน MicroPython ดูที่โมดูล io

UART

ตัวย่อของ "Universal Asynchronous Receiver/Transmitter" นี่คืออุปกรณ์ต่อพ่วงที่ส่งข้อมูลผ่านคู่พิน (TX & RX) บอร์ดจำนวนมากมีวิธีทำให้ UART อย่างน้อยหนึ่งตัวพร้อมใช้งานสำหรับ PC โฮสต์เป็น serial port ผ่าน USB

upip

ตัวจัดการแพ็กเกจที่ล้าสมัยแล้วสำหรับ MicroPython ที่ได้รับแรงบันดาลใจจาก pip ของ CPython แต่มีขนาดเล็กกว่ามากและมีฟังก์ชันจำกัดกว่า ดูตัวแทนที่ mip

webrepl

วิธีเชื่อมต่อกับ REPL (และถ่ายโอนไฟล์) บนอุปกรณ์ผ่านอินเทอร์เน็ตจากเบราว์เซอร์ ดู https://micropython.org/webrepl