อภิธานศัพท์¶
- 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