مسرد المصطلحات¶
- baremetal¶
نظام بلا نظام تشغيل (كامل)، على سبيل المثال نظام قائم على MCU. عند التشغيل على نظام baremetal، تعمل MicroPython فعليًا مثل نظام تشغيل صغير، فتشغّل برامج المستخدم وتوفّر مفسّر أوامر (REPL).
- buffer protocol¶
أي كائن Python يمكن تحويله تلقائيًا إلى بايتات، مثل كائنات
bytesوbytearrayوmemoryviewوstr، التي تطبّق جميعها "بروتوكول المخزن المؤقت".- board¶
يشير هذا عادةً إلى لوحة دارة مطبوعة (PCB) تحتوي على متحكم دقيق ومكونات داعمة. يُقدَّم برنامج MicroPython الثابت عادةً لكل لوحة على حدة، لأن البرنامج الثابت يحتوي على وظائف خاصة بالمتحكم الدقيق وكذلك وظائف على مستوى اللوحة مثل برامج التشغيل أو أسماء الدبابيس.
- bytecode¶
تمثيل مدمج لبرنامج Python يُولَّد بترجمة شيفرة Python المصدرية. وهذا ما تنفّذه آلة VM فعليًا. تُولَّد الشيفرة الثنائية (bytecode) عادةً تلقائيًا في وقت التشغيل وتكون غير مرئية للمستخدم. لاحظ أنه بينما تستخدم كل من CPython وMicroPython الشيفرة الثنائية، فإن صيغتها مختلفة. يمكنك أيضًا الترجمة المسبقة للشيفرة المصدرية دون اتصال باستخدام cross-compiler.
- callee-owned tuple¶
هذا بناء خاص بـ MicroPython حيث، لأسباب تتعلق بالكفاءة، قد تعيد بعض الدوال أو الطرق المدمجة استخدام كائن tuple الأساسي نفسه لإرجاع البيانات. وهذا يتجنب الحاجة إلى تخصيص tuple جديد لكل استدعاء، ويقلل من تجزئة heap. ينبغي ألا تحتفظ البرامج بمراجع إلى الـ tuples المملوكة من المستدعى، وأن تكتفي باستخراج البيانات منها (أو إنشاء نسخة).
- CircuitPython¶
نسخة مختلفة من MicroPython طوّرتها Adafruit Industries.
- CPython¶
إن CPython هو التطبيق المرجعي للغة البرمجة Python، والأشهر بينها. لكنه واحد من بين عدة تطبيقات (بما في ذلك Jython وIronPython وPyPy وMicroPython). وبينما يختلف تطبيق MicroPython اختلافًا كبيرًا عن CPython، فإنه يهدف إلى الحفاظ على أكبر قدر ممكن من التوافق.
- cross-compiler¶
يُعرف أيضًا باسم
mpy-cross. تعمل هذه الأداة على حاسوبك وتحوّل .py file يحتوي على شيفرة MicroPython إلى .mpy file يحتوي على bytecode الخاص بـ MicroPython. وهذا يعني أنه يُحمَّل بسرعة أكبر (لا تضطر اللوحة لترجمة الشيفرة)، ويستخدم مساحة أقل في ذاكرة الفلاش (الشيفرة الثنائية أكثر كفاءة من حيث المساحة).- driver¶
مكتبة MicroPython تطبّق دعمًا لمكوّن معين، مثل مستشعر أو شاشة عرض.
- FFI¶
اختصار لـ Foreign Function Interface (واجهة الدوال الخارجية). آلية يستخدمها MicroPython Unix port للوصول إلى وظائف نظام التشغيل. وهي غير متاحة على منافذ baremetal.
- filesystem¶
توفّر معظم منافذ وألواح MicroPython نظام ملفات مخزَّنًا في ذاكرة الفلاش يكون متاحًا لشيفرة المستخدم عبر واجهات ملفات Python القياسية مثل
open(). كما تتيح بعض الألواح الوصول إلى نظام الملفات الداخلي هذا للمضيف عبر تخزين USB الكتلي.- frozen module¶
وحدة Python خضعت لـ الترجمة المتقاطعة ودُمجت في صورة البرنامج الثابت. وهذا يقلل من متطلبات ذاكرة RAM لأن الشيفرة تُنفَّذ مباشرة من ذاكرة الفلاش.
- Garbage Collector¶
عملية تعمل في الخلفية في Python (وMicroPython) لاستعادة الذاكرة غير المستخدمة في heap.
- GPIO¶
إدخال/إخراج للأغراض العامة. أبسط وسيلة للتحكم في الإشارات الكهربائية (التي يُشار إليها عادةً بـ "الدبابيس") على متحكم دقيق. يتيح GPIO عادةً أن تكون الدبابيس إما إدخالًا أو إخراجًا، وأن تضبط أو تقرأ قيمتها الرقمية ("0" أو "1" المنطقية). تجرّد MicroPython الوصول إلى GPIO باستخدام الفئتين
machine.Pinوmachine.Signal.- GPIO port¶
مجموعة من دبابيس GPIO، تستند عادةً إلى خصائص عتادية لهذه الدبابيس (مثل إمكانية التحكم فيها بالسجل نفسه).
- heap¶
منطقة من ذاكرة RAM حيث تخزّن MicroPython البيانات الديناميكية. تُدار تلقائيًا بواسطة Garbage Collector. تختلف المتحكمات الدقيقة والألواح اختلافًا كبيرًا في كمية ذاكرة RAM المتاحة للـ heap، لذا سيؤثر هذا في مدى تعقيد برنامجك.
- interned string¶
تحسين تستخدمه MicroPython لتحسين كفاءة التعامل مع السلاسل النصية. يُشار إلى السلسلة المُدمجة (interned) بهويتها (الفريدة) بدلًا من عنوانها ويمكن بالتالي مقارنتها بسرعة بمجرد معرّفها. كما يعني ذلك أنه يمكن إزالة التكرار للسلاسل المتطابقة في الذاكرة. يكون دمج السلاسل غير مرئي للمستخدم في معظم الأحيان.
- MCU¶
متحكم دقيق. عادةً ما تكون لدى المتحكمات الدقيقة موارد أقل بكثير من الحواسيب المكتبية أو المحمولة أو الهواتف، لكنها أصغر وأرخص وتتطلب طاقة أقل بكثير. صُممت MicroPython لتكون صغيرة ومحسّنة بما يكفي للعمل على متحكم دقيق حديث متوسط.
- micropython-lib¶
تُوزَّع MicroPython (عادةً) كملف تنفيذي/ثنائي واحد مع عدد قليل فقط من الوحدات المدمجة. ولا توجد مكتبة قياسية واسعة قابلة للمقارنة بمكتبة CPython. بدلًا من ذلك، يوجد مشروع مرتبط ولكنه منفصل باسم micropython-lib يوفّر تطبيقات للعديد من الوحدات من المكتبة القياسية لـ CPython.
بعض الوحدات مطبَّقة بلغة Python خالصة وتعمل على أي منفذ؛ ويُجمّد برنامج OpenMV الثابت مجموعة مختارة منها (برامج تشغيل المستشعرات، والشبكات، والأدوات المساعدة) مباشرة في صورة البرنامج الثابت بحيث يمكن استيرادها دون تثبيت أي شيء. ويستخدم عدد أقل من وحدات micropython-lib واجهة FFI وتعمل فقط على MicroPython Unix port؛ وتلك غير متاحة على أجهزة OpenMV Cam.
بخلاف مكتبة CPython القياسية، فإن وحدات micropython-lib التي لم تُجمَّد تُثبَّت بشكل فردي - إما بنسخها على نظام الملفات أو، على الألواح القادرة على الاتصال بالشبكة، باستخدام mip.
- MicroPython port¶
تدعم MicroPython ألواحًا وأنظمة تشغيل في الوقت الحقيقي وأنظمة تشغيل مختلفة، ويمكن تكييفها بسهولة نسبية مع أنظمة جديدة. تُسمى MicroPython مع دعم لنظام معين "منفذًا" (port) إلى ذلك النظام. وقد تختلف المنافذ المختلفة اختلافًا كبيرًا في وظائفها. يُقصد بهذا التوثيق أن يكون مرجعًا لواجهات برمجة التطبيقات العامة المتاحة عبر المنافذ المختلفة ("نواة MicroPython"). لاحظ أن بعض المنافذ قد تظل تحذف بعض واجهات برمجة التطبيقات الموصوفة هنا (مثلًا بسبب قيود الموارد). وأي اختلافات من هذا القبيل، وأي امتدادات خاصة بالمنفذ تتجاوز وظائف نواة MicroPython، ستُوصف في التوثيق المنفصل الخاص بكل منفذ.
- MicroPython Unix port¶
إن منفذ Unix هو أحد منافذ MicroPython الرئيسية. وهو مصمم للعمل على أنظمة التشغيل المتوافقة مع POSIX، مثل Linux وMacOS وFreeBSD وSolaris وغيرها. كما يشكّل أساس منفذ Windows. منفذ Unix مفيد جدًا للتطوير والاختبار السريع للغة MicroPython والميزات المستقلة عن العتاد. كما يمكنه أن يعمل بطريقة مشابهة للملف التنفيذي
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 يحتوي على bytecode الخاص بـ MicroPython بدلًا من شيفرة Python المصدرية.
- native¶
يشير عادةً إلى "الشيفرة الأصلية"، أي شيفرة الآلة للمتحكم الدقيق الهدف (ARM Thumb على أجهزة OpenMV Cam المبنية على Cortex-M). يمكن تطبيق المزخرف
@micropython.nativeعلى دالة MicroPython لتوليد شيفرة أصلية بدلًا من bytecode لتلك الدالة، مما سيكون على الأرجح أسرع لكنه يستخدم ذاكرة RAM أكثر.- port¶
اختصار عادةً لـ MicroPython port، لكنه قد يشير أيضًا إلى GPIO port.
- .py file¶
ملف يحتوي على شيفرة Python المصدرية.
- pyboard.py¶
أداة على جانب المضيف، تجاوزها الزمن الآن، للتفاعل مع لوحة MicroPython — لتشغيل البرامج النصية والوصول إلى نظام الملفات عبر REPL الخام. راجع بديلها mpremote.
- REPL¶
اختصار لـ "Read, Eval, Print, Loop" (قراءة، تقييم، طباعة، تكرار). هذا هو موجّه Python التفاعلي، وهو مفيد لتصحيح الأخطاء أو اختبار مقتطفات شيفرة قصيرة. تتيح أجهزة OpenMV Cam الوصول إلى REPL لحاسوب مضيف عبر USB (جهاز USB CDC تسلسلي).
- small integer¶
تحسّن MicroPython التمثيل الداخلي للأعداد الصحيحة بحيث لا تشغل القيم "الصغيرة" مساحة في heap، ولا تتطلب الحسابات معها تخصيص heap. على معظم المنافذ ذات 32 بت، يتوافق هذا مع القيم في المجال
-2**30 <= x < 2**30، لكن ينبغي اعتبار هذا تفصيلًا تطبيقيًا وعدم الاعتماد عليه.- stream¶
يُعرف أيضًا بـ "كائن شبيه بالملف". كائن Python يوفّر وصولًا تسلسليًا للقراءة والكتابة إلى البيانات الأساسية. يطبّق كائن التدفق (stream) واجهة مقابلة، تتكون من طرق مثل
read()وwrite()وreadinto()وseek()وflush()وclose()وغيرها. التدفق مفهوم مهم في MicroPython؛ فالعديد من كائنات الإدخال/الإخراج تطبّق واجهة التدفق، وبالتالي يمكن استخدامها باتساق وبشكل قابل للتبادل في سياقات مختلفة. لمزيد من المعلومات حول التدفقات في MicroPython، راجع الوحدةio.- UART¶
اختصار لـ "Universal Asynchronous Receiver/Transmitter" (مرسِل/مستقبِل غير متزامن عالمي). هذه طرفية ترسل البيانات عبر زوج من الدبابيس (TX و RX). تتضمن العديد من الألواح وسيلة لإتاحة واحد على الأقل من منافذ UART لحاسوب مضيف كمنفذ تسلسلي عبر USB.
- upip¶
مدير حزم لـ MicroPython، أصبح الآن مهجورًا، مستوحى من pip الخاص بـ CPython، لكنه أصغر بكثير وبوظائف مخفّضة. راجع بديله mip.
- webrepl¶
طريقة للاتصال بـ REPL (ونقل الملفات) على جهاز عبر الإنترنت من متصفح. راجع https://micropython.org/webrepl