Maqueen Lab // المنافذ

المرجع · Maqueen Lite v4
🤖 تطبيق الروبوت 🗂️ Catalog 🧪 Labs 🏠 Hub

Maqueen Lite v4 — مرجع المنافذ

مصدر الحقيقة لكل منفذ يستخدمه firmware Maqueen Lab وامتداد pxt-maqueen الكامن وراءه.

المراجع

عن مكتبة pxt-maqueen

pxt-maqueen هو امتداد MakeCode الرسميّ من DFRobot لعائلة روبوتات Maqueen التعليميّة (بما فيها Maqueen Lite v4). أَضِفه في MakeCode عبر Extensions ← بحث « maqueen » أو الصق رابط GitHub. يُتيح namespace باسم maqueen يُغلِّف عمليّات المنافذ و I2C منخفضة المستوى خلف blocks ودودة للأطفال:

firmware v1 الخاصّ بـ Maqueen Lab (firmware/v1-maqueen-lib.ts) يستخدم استدعاءات maqueen.* هذه مباشرةً. firmware v2 المستقبليّ سيستبدلها باستدعاءات pins.* و I2C خامة — نفس البروتوكول السلكيّ، نفس تطبيق الويب، كود منخفض المستوى يُعرَض جنباً إلى جنب في كلّ Component Explorer للتقدّم التعليميّ.

مستخدم بواسطة عتاد Maqueen تعارض مع منفذ Gravity حرّ لإضافات المستخدم

استخدام منافذ micro:bit

المنفذمستخدم بواسطةالاتجاهملاحظات
P0صفّارةخرج (PWM)منفذ music الافتراضيّ ؛ كذلك منفذ Gravity — تعارض عند إعادة التخصيص
P1أمواج فوق صوتيّة TRIGخرجكذلك منفذ Gravity — تعارض مع حسّاس خارجيّ
P2أمواج فوق صوتيّة ECHOدخلكذلك منفذ Gravity — تعارض مع حسّاس خارجيّ
P3حرّمشترك مع col1 من مصفوفة LED (تجنّب استخدامه كخرج رقميّ)
P4حرّمصفوفة LED col2
P5الزرّ Aدخلمدمج في micro:bit
P6حرّمصفوفة LED col9
P7حرّمصفوفة LED col8
P8LED اليسار (بسيط)خرجرقميّ ON/OFF
P9حرّمصفوفة LED col7
P10حرّمصفوفة LED col3
P11الزرّ Bدخلمدمج في micro:bit
P12LED اليمين (بسيط)خرجرقميّ ON/OFF
P13حسّاس خط اليساردخلرقميّ 0/1
P14حسّاس خط اليميندخلرقميّ 0/1
P15حرّ
P16حرّ
P19I2C SCLمتحكّم المحرّك + 4× RGB + servos S1/S2 (العنوان 0x10)
P20I2C SDAنفس ناقل I2C

خريطة المكوّنات

المكوّنالمنفذ / العنوانملاحظات
متحكّم المحرّكI2C 0x10السجلّ 0x00 = M1، 0x02 = M2 (الاتجاه + السرعة)
4× RGB محيطيّةI2C 0x10، السجلّ 0x32ليست NeoPixel قياسيّة — مُتحكّم بها عبر شريحة متحكّم المحرّك
LED اليسار (بسيط)P8 رقميّON/OFF
LED اليمين (بسيط)P12 رقميّON/OFF
حسّاس خط اليسارP13 رقميّ0 / 1
حسّاس خط اليمينP14 رقميّ0 / 1
أمواج فوق صوتيّة TRIGP1SR04 / SR04P
أمواج فوق صوتيّة ECHOP2SR04 / SR04P
صفّارةP0الخرج الافتراضيّ لمكتبة music في micro:bit
servos S1 / S2I2C 0x10 (عبر الامتداد)استخدم maqueen.servoRun(S1|S2, angle)
مستقبل IRP16 (افتراضيّ Maqueen Lite v4)maqueenIR.initIR(Pins.P16) + onPressEvent(...) لكلّ زرّ

خريطة سجلّات I2C 0x10 (شريحة متحكّم المحرّك)

السجلّالوظيفة
0x00المحرّك M1 (يسار): الاتجاه + السرعة
0x02المحرّك M2 (يمين): الاتجاه + السرعة
0x14زاوية servo S1
0x15زاوية servo S2
0x32بيانات 4× LED RGB (16 مليون لون لكلّ منها)

حرّة لإضافات الأطفال

P3, P4, P6, P7, P9, P10, P15, P16

P3/P4/P6/P7/P9/P10 تشترك مع مصفوفة عرض LED — عطّل العرض أوّلاً قبل استخدامها كخروج رقميّ:

led.enable(false)

تحذيرات التعارض

P0 = صفّارة. توصيل أيّ شيء آخر بمنفذ Gravity P0 يُسكت الصفّارة (والعكس صحيح).

P1 / P2 = أمواج فوق صوتيّة. توصيل حسّاس Gravity على P1 أو P2 يعطّل الأمواج فوق الصوتيّة. التطبيق يُحذّر عند استخدام الاثنين معاً.

ناقل I2C (P19/P20) مشترك. الإضافات على عناوين غير 0x10 آمنة ؛ تصادم العناوين مميت.

كيف نعرف — تخصيصات المنافذ متتبَّعة إلى المصدر

كلّ تخصيص منفذ أدناه مستخرج من شفرة امتداد pxt-maqueen. أرقام السطور تشير إلى maqueen.ts وقت الكتابة.

المنفذ / العنوانالمكوّنالدليل
P1أمواج فوق صوتيّة TRIGmaqueen.ts:164pins.digitalWritePin(DigitalPin.P1, 1) داخل Ultrasonic()
P2أمواج فوق صوتيّة ECHOmaqueen.ts:172d = pins.pulseIn(DigitalPin.P2, PulseValue.High, 500 * 58)
P8LED اليسار (بسيط)maqueen.ts:287pins.digitalWritePin(DigitalPin.P8, ledswitch) داخل writeLED(LEDLeft, ...)
P12LED اليمين (بسيط)maqueen.ts:289pins.digitalWritePin(DigitalPin.P12, ledswitch) داخل writeLED(LEDRight, ...)
P13حسّاس خط اليسارmaqueen.ts:267return pins.digitalReadPin(DigitalPin.P13) داخل readPatrol(PatrolLeft)
P14حسّاس خط اليمينmaqueen.ts:269return pins.digitalReadPin(DigitalPin.P14) داخل readPatrol(PatrolRight)
I2C 0x10شريحة المحرّك + RGB + servosmaqueen.ts:19const MOTER_ADDRESSS = 0x10، تستخدمه pins.i2cWriteBuffer(0x10, buf) في كلّ مكان
I2C 0x10 reg 0x14زاوية servo S1maqueen.ts:308buf[0] = 0x14 ثم pins.i2cWriteBuffer(0x10, buf) داخل servoRun(S1, angle)
I2C 0x10 reg 0x15زاوية servo S2maqueen.ts:311buf[0] = 0x15 لـ S2
I2C 0x10 reg 0x00المحرّك M1maqueen.ts:202–205buf[0] = 0x00; ...; pins.i2cWriteBuffer(0x10, buf) داخل motorRun(M1, ...)
I2C 0x10 reg 0x02المحرّك M2maqueen.ts:208–211buf[0] = 0x02 لـ M2
I2C 0x10 reg 0x324× LEDs RGB محيطيّةmaqueen.ts:659pins.i2cWriteNumber(I2CADDR, 0x32, NumberFormat.Int8LE) داخل block كتابة RGB
مستقبل IR (P16)NEC IRmaqueenIR.cpp يُعرّف الـ API لكنّه لا يكتب منفذاً ثابتاً — على المستخدم استدعاء maqueenIR.initIR(maqueenIR.Pins.P16). P16 هو الاتفاق على Maqueen Lite v4.
P0صفّارةليست في pxt-maqueen. Maqueen Lite v4 توصل الصفّارة المدمجة بـ P0، الخرج الافتراضيّ لمكتبة music في micro:bit. مُؤكَّد عبر أمثلة DFRobot على الويكي، ومتوافق مع السمّاعة المدمجة في micro:bit V2.
P19 / P20I2C SCL / SDAليست في pxt-maqueen. منافذ I2C القياسيّة لموصل حافّة micro:bit حسب tech.microbit.org/hardware/edgeconnector ؛ استدعاءات pins.i2c* في pxt-maqueen تستخدمها افتراضيّاً.
P5 / P11الزرّ A / Bليست في pxt-maqueen. مدمجة في لوحة micro:bit نفسها، ليس في حامل Maqueen.
P3, P4, P6, P7, P9, P10أعمدة مصفوفة LEDليست في pxt-maqueen. تنتمي لعرض LED 5×5 المدمج في micro:bit ؛ صالحة كدخل/خرج رقميّ فقط بعد led.enable(false).

لإعادة التحقّق: استنسخ المستودع و grep عن DigitalPin.P و 0x10:

git clone https://github.com/DFRobot/pxt-maqueen
grep -nE "DigitalPin\.|0x10|0x14|0x15|0x32" pxt-maqueen/maqueen.ts

كيف يستخدمها firmware Maqueen Lab

الفعل (عبر BLE)كود micro:bit
M:L,Rmaqueen.motorRun(M1, dir, |L|) + كذلك لـ M2
STOPmaqueen.motorStop(All)
LED:i,smaqueen.writeLED(i, s)
SRV:i,amaqueen.servoRun(Si, a)
BUZZ:f,msmusic.playTone(f, ms)
LINE?maqueen.readPatrol(L/R)LINE:l,r
DIST?maqueen.Ultrasonic(cm)DIST:cm
IR?maqueen.IR_read()IR:code
RGB:i,r,g,bكتابة I2C على 0x10 reg 0x32
(تلقائي)input.acceleration(X/Y/Z)ACC:x,y,z

انظر firmware/v1-maqueen-lib.ts للتنفيذ الكامل.

المستقبل: firmware خام (v2)

المرحلة 2 من firmware (firmware/v2-raw-pins.ts) ستستبدل استدعاءات maqueen.* بعمليّات pins.* و pins.i2cWriteBuffer(...) مباشرة — نفس البروتوكول السلكيّ، كود منخفض المستوى للمتعلّمين المتقدّمين. Component Explorers ستعرض الإصدارَين جنباً إلى جنب في لوحة الكود.

← رجوع إلى تطبيق الروبوت