اللوحة

ESP32 simulator, the classic one, on an Xtensa core

يحاكي Mokxi لوحة DOIT ESP32 DevKit V1 بثلاثين طرفاً: ESP32-WROOM-32 بنواة Xtensa LX6 عند 240 MHz، ومصفوفة GPIO وIO_MUX وكل UART الثلاثة ومجموعة المؤقت 0 وADC1 ووحدة تحكم LEDC PWM، عند العناوين الحقيقية. نواة واحدة لا اثنتان، وبلا راديو (WiFi هنا محاكى، ويقول ذلك)، ويبيّن العقد بدقة أين تقع كل حافة.

  • 10منطقة طرفية محاكاة
  • 24مشروع جاهز للتشغيل
  • زمن حقيقيعلى جهازك أنت
ESP32 DevKit V1: وميضlive0.000 s 0.00x
انقر لفتحه في المحرر
اللوحة تشغّل برنامجاً ثابتاً حقيقياً الآن. اضغط عليها لفتح الدائرة في المحرر.
النموذج

ما الذي يُحاكى

مأخوذ من وثيقة العقد الخاصة باللوحة ومكتوب بكلمات بسيطة، مع ما هو ناقص بجانبه.

مُحاكى

النواة
Xtensa LX6 بنظام النوافذ ABI، وأربعة وستون سجل عناوين، ومعالجات فيض النافذة ونقصها، وتعليمة واحدة في الدورة عند 240 MHz
الذاكرة
128 KB من ذاكرة التعليمات عند 0x4008_0000 و192 KB من ذاكرة البيانات عند 0x3FFB_0000، منفصلتان كما يفصلهما ESP-IDF
مصفوفة GPIO وIO_MUX
أربعون طرفاً بالتقسيم الحقيقي إلى سجلين، مع مقاومات الرفع والخفض وتمكين الدخل لكل وسادة، ورفض GPIO من 34 إلى 39 كمخارج لأن الرقاقة لا تملك مشغّلاً عليها
UART0
بسرعة الباود المضبوطة، ومتصل بالشاشة التسلسلية
UART1 وUART2
Serial1 وSerial2 على أي أطراف يسمّيها begin()، عبر مصفوفة GPIO: إطارات حقيقية على السلك، بتاً ببت، بالمعدل الذي يعطيه المقسِّم فعلاً، مع مخزن الاستقبال الخاص بمشغّل النواة
مجموعة المؤقت 0
المؤقت 0 بنبضة ميكروثانية خلف millis() وmicros()؛ وdelay() توقف النواة على CCOMPARE0 بدل أن تشغلها بالدوران
ADC1
اثنا عشر بتاً على القنوات الثماني الحقيقية (GPIO 36 و37 و38 و39 و32 و33 و34 و35) مع التوهينات الأربعة، و11 dB وفق منحنى قطعة حقيقية حتى 4095 عند نحو 3.1 V
LEDC
المجموعة عالية السرعة: أربعة مؤقتات وثماني قنوات على أي طرف له مشغّل خرج، خلف analogWrite وledcAttach وledcWrite
مصفوفة المقاطعات
مصادرها موجّهة كما يوجّهها العتاد، فتكون attachInterrupt ثلاث كتابات لا واحدة
WiFi محاكى
WiFi.h وHTTPClient.h وWebServer.h على شبكة مكتوبة بالبرمجيات: بلا راديو ولا 802.11، وإنترنت حقيقي فقط عند تسجيل الدخول وتفعيله

غير مُحاكى

  • أي راديو. لا يوجد 802.11 ولا راديو Bluetooth في النموذج. WiFi وBluetooth يُحاكيان بدلاً من ذلك (واجهة Arduino على شبكة من تطويرنا لا تصل إلى الإنترنت الحقيقي إلا عند تسجيل الدخول وتفعيله، وهاتف في لوحة Bluetooth بالمحرر)، وكل صفحة تذكرهما تقول ذلك.
  • النواة الثانية. في ESP32 الحقيقية نواتا LX6؛ وهذا النموذج يشغّل نواة PRO، فأي شيء يبدأ مهمة على النواة 1 لن يعمل.
  • FPU: ملف ثنائي بفاصلة عائمة عتادية مبني في مكان آخر يفشل عند أول تعليمة فاصلة عائمة. الأكواد المبنية هنا برمجية الفاصلة العائمة، فتعمل حسابات float.
  • الذاكرة المخبئية والفلاش وPSRAM، وRTC وULP، والنوم العميق، وADC2، وحساسا اللمس وهول، وI2C وSPI وI2S وRMT.
  • عدة عناوين (ترتيب وسادات IO_MUX، وتخطيطات مجموعة المؤقت وLEDC، وإزاحات SENS، وأرقام مصفوفة المقاطعات، ومؤشرات إشارات مصفوفة GPIO التي تستخدمها LEDC) هي اعتقاد هذا النموذج لا شيء يستطيع الدفاع عنه. ويسمّيها القسم 6 من العقد واحداً واحداً.
ابدأ من هنا

افتح واحدة واضغط «تشغيل»

كل واحد منها يفتح في المحرر تماماً كما هو مرسوم هنا.

الأسئلة

هل هو مجاني؟

نعم. كل لوحة وكل قطعة في الباقة المجانية، بلا حاجة إلى حساب.

هل أستطيع ترجمة كودي الخاص لها؟

نعم. عدّل الكود واضغط «تشغيل»: يُترجم في التبويب بـ clang لـ Xtensa، وتعرض لوحة البناء كل خطوة. لا يُرفع شيء. وحسابات الفاصلة العائمة تعمل: يبنيها المتصفح برمجياً، كما في كل لوحة أخرى هنا.

هل يحاكي WiFi أو Bluetooth؟

كليهما، محاكيين، ويقول بوضوح إنهما كذلك. Bluetooth هاتف في لوحة Bluetooth بالمحرر لا راديو. يستخدم كودك نداءات Arduino الحقيقية (WiFi.begin وWiFi.status وHTTPClient وWebServer)، وتنضم اللوحة إلى شبكة وتجلب صفحة وتقدّم صفحة. وتحت ذلك لا راديو ولا 802.11. أربعة عناوين مختلقة تحت .mokxi تجيب داخل هذا التبويب. وعند تسجيل الدخول تستطيع تفعيل «الإنترنت الحقيقي» في لوحة السحابة، فتخرج طلبات HTTP وHTTPS إلى مضيفين حقيقيين عبر بوابة Mokxi.

لماذا لا يعمل pinMode(34, OUTPUT)؟

لأنه لا يعمل على الرقاقة أيضاً. لدى GPIO من 34 إلى 39 مخزن دخل ولا مشغّل خرج إطلاقاً. يرفض Mokxi الكتابة كما يفعل السيليكون، ويعدّها، ويضع علامة كهرمانية صغيرة على اللوحة بدل أن يدعك تظن أن الطرف يقود شيئاً.

لماذا تصل مقاومتي المتغيرة إلى 4095 قبل نهاية مجراها؟

لأن القراءة الخام في ESP32 حقيقية عند التوهين الافتراضي 11 dB تشبع عند نحو 3.1 V، قبل سكة 3.3 V، وتنحني في الطريق: منتصف المقاومة يقرأ نحو 1890 لا 2048. يحاكي Mokxi هذا المنحنى، ويطبع مثال المقبض الرقم الخام فلا يبقى لغزاً.

هل هذه لوحة 30 طرفاً أم 38؟

لوحة DOIT DevKit V1 بثلاثين طرفاً. أما Espressif DevKitC بـ 38 طرفاً فبوصة كاملة بين صفّيها وتُخرج ستة أطراف إضافية: أرقام GPIO هي أرقام الرقاقة نفسها، لكن المواضع مختلفة.

هل يشغّل النواتين؟

واحدة. تعمل نواة PRO؛ ولا يوجد APP CPU ولا FreeRTOS للجدولة بينهما، فكود setup()/loop() لا بأس به لكن xTaskCreatePinnedToCore لا.

جرّبه على برنامجك الثابت

ما تبنيه هنا يعمل على اللوحة التي على مكتبك دون تغيير. بلا تثبيت ولا حاجة إلى حساب.