عن المشروع
MOGWAI NANO هو محرك برمجة نصية للمتحكمات الدقيقة، مبني على .NET nanoFramework. يُوصف بأنه وقت تشغيل مصاحب وليس نسخة من محرك MOGWAI لسطح المكتب، مصمم حول قيود الأنظمة المدمجة. تكتب كود MOGWAI على جهاز كمبيوتر في MOGWAI NANO Studio، وتكتشف الأجهزة على الشبكة، وتشغّل هذا الكود عن بُعد على العتاد عبر WiFi.
كيف يعمل: الكود المكتوب بتركيبات مختصرة (if/then/else، while/do، for/do، forever do، مؤقتات، إلخ) يُبسَّط على سطح المكتب إلى صيغة RPN الأساسية قبل إرساله إلى الجهاز. يشغّل الجهاز هذا الشكل الأدنى فقط — محلل رموز، ومكدس، وموزع بدائي — مما يحافظ على صغر حجم البرنامج الثابت. يذكر ملف README أن البدائيات الأساسية خاصة وتُولَّد تلقائيًا، وليست مخصصة للكتابة اليدوية.
ميزات اللغة والعتاد المدرجة:
- العمليات الحسابية، المقارنات، التحكم في التدفق، الدوال المعرفة من قبل المستخدم، المراجع، المهارات والأعلام، معالجة الأخطاء المنظمة (trap/guard)
- GPIO، I2C، SPI، PWM، ADC، وبرنامج تشغيل شاشة SSD1306 OLED مخصص
- مهام للتنفيذ المتوازي، كل منها على خيط أصلي خاص مع مثيل وقت تشغيل معزول، تتواصل مع الأصل عبر الأحداث
- نموذج تنفيذ بتحليل كسول مع وضعين قابلين للتهيئة (mogwai.frugalMode)
- مكتبات كود قابلة لإعادة الاستخدام تسمى "وحدات"، مخزنة على الفلاش ويتم تحميلها عند الطلب
- مؤقتات لمرة واحدة ومتكررة، وساعات إيقاف مسماة
- أحداث، مع تسليم البيانات عبر MOGRecord
- اكتشاف UDP بالإضافة إلى اتصال TCP، مع اكتشاف انقطاع الاتصال
- تشغيل تلقائي مستمر للنشر المستقل
تتم مناقشة اعتبارات الذاكرة بالتفصيل. يترك ESP32 العادي حوالي 40 كيلوبايت من ذاكرة الوصول العشوائي الحرة، وهو ما يقول README إنه كافٍ للنصوص البسيطة ولكنه عرضة للتجزئة وفشل التخصيص تحت أعباء العمل طويلة الأمد أو متعددة الأنظمة الفرعية. تُقدَّم لوحة مزودة بـ PSRAM، مثل ESP32-S3، كمنصة مرجعية مُتحقق منها وموصى بها للمشاريع المركبة. تُوصف المهام بأنها تكلف حوالي 10 كيلوبايت لكل منها وعملية فقط مع PSRAM. يلاحظ README أن ESP32/WROVER الكلاسيكي مع هدف nanoFramework ممكّن بـ PSRAM يجب أن يعمل بشكل مماثل ولكن لم يتم اختباره من قبل المؤلفين.
جدول المنصات المدعومة: ESP32 مُختبر للنصوص الصغيرة أحادية الغرض؛ ESP32-S3 مع PSRAM مُختبر وموصى به؛ ESP32/WROVER الكلاسيكي مع PSRAM غير مُختبر؛ Raspberry Pi Pico W غير مدعوم حاليًا (تكوين دبابيس خاص بـ ESP32 كسر بناءات Pico، ومن المخطط العودة بعد إعادة الهيكلة)؛ STM32 وTI مدرجان على أنهما يجب أن يعملا ولكن غير مُختبرين.
MOGWAI NANO Studio هو تطبيق سطح مكتب مصاحب مبني على Avalonia مع محرر كود خاص به، وعلامات تبويب وحدة تحكم حية منفصلة للإخراج المحلي ولإخراج الجهاز، وإدارة ملفات، وسمات فاتحة/داكنة. كان هناك Studio قائم على وحدة التحكم حتى الإصدار 0.5 ولم يعد مدعومًا اعتبارًا من 0.6.
تتضمن الإصدارات البرنامج الثابت للجهاز (MogwaiNano.bin) وأرشيفات Studio ذاتية الاحتواء لكل منصة (win-x64، linux-x64، linux-arm64، osx-x64، osx-arm64). يغطي البدء السريع وميض البرنامج الثابت باستخدام nanoff، وإعادة تشغيل الطاقة، ونشر التطبيق، وتكوين WiFi عبر ملف wifi.json، وتشغيل أول برنامج يومض مؤشر LED. يوثق README خصائص محددة: على ESP32_REV3 يلزم عنوان صريح --address 0x1E0000 ويجب أن يكون أمرًا منفصلاً عن --update؛ يُوصى بـ --masserase عند أول وميض؛ يمكن أن يستغرق وميض ESP32-S3 عدة دقائق.
تشمل الوثائق دليل البدء، ومرجع بدائيات الجهاز، ومرجع بدائيات Studio لمجموعة أوامر nano.*، وجدول بحث لقيم ESP32 DeviceFunction. يسرد خارطة الطريق عناصر مكتملة مثل I2C، SSD1306، PWM/ADC، SPI (تم التحقق منه مع برنامج تشغيل RFID MFRC522 مكتوب بالكامل في سكربت MOGWAI NANO)، والتحقق من ESP32-S3/PSRAM، والمهام، ونظام مكتبات الوحدات، وواجهة Studio الرسومية؛ تشمل العناصر المعلقة دعم معالجة البتات/الثنائية، والتحقق من STM32 وTI، وBLE، وتحميل PE الديناميكي، وإعادة الهيكلة إلى نواة مشتركة مع أجزاء خاصة بكل منصة.
المشروع مرخص بموجب Apache 2.0. ينسب الفضل إلى Laurent Ellerbach، مساهم في nanoFramework، للمساعدة، ويربط بمشروع MOGWAI لسطح المكتب و.NET nanoFramework.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.