مجموعة EV3: القائمة ، حساسات الرؤية ، البرمجة. LEGO Mindstorms Education EV3 - مراجعة المنشئ. قراءة آخر الأخبار من عالم Lego - وصف صوت كتلة EduCube Lego mindstorms ev3

وصف العرض التقديمي على الشرائح الفردية:

شريحة واحدة

وصف الشريحة:

2 شريحة

وصف الشريحة:

واجهة وحدة البناء EV3 وحدة البناء EV3 هي مركز التحكم الذي يعمل على تشغيل الروبوتات لديك. بفضل الشاشة وأزرار التحكم في وحدة البناء وواجهة وحدة البناء EV3 التي تتميز بأربع نوافذ رئيسية ، يمكنك الوصول إلى مجموعة مذهلة من ميزات وحدة البناء EV3 الفريدة. يمكن أن تكون هذه وظائف بسيطة ، مثل بدء البرنامج وإيقافه ، أو معقدة ، مثل كتابة البرنامج نفسه.

3 شريحة

وصف الشريحة:

الواجهة: القائمة تحتوي EV3 على قائمة تتكون من 4 أجزاء: البرامج الحديثة التنقل في الملفات تطبيقات وحدة البناء إعدادات وحدة البناء

4 شريحة

وصف الشريحة:

البرامج الحديثة قم بتشغيل البرامج التي تم تنزيلها مؤخرًا من كمبيوتر سطح المكتب. ستبقى هذه النافذة فارغة حتى تبدأ في تنزيل البرامج وتشغيلها. ستعرض هذه النافذة البرامج التي قمت بتشغيلها مؤخرًا. البرنامج الموجود أعلى القائمة ، والذي يتم تحديده افتراضيًا ، هو البرنامج الذي تم تشغيله مؤخرًا.

5 شريحة

وصف الشريحة:

File Manager قم بالوصول إلى جميع الملفات المخزنة في ذاكرة الكمبيوتر المصغر وكذلك على بطاقة الذاكرة وإدارتها. من هذه النافذة ، ستصل إلى جميع الملفات الموجودة على وحدة البناء EV3 وتديرها ، بما في ذلك الملفات المخزنة على بطاقة SD. يتم تنظيم الملفات في مجلدات مشروع ، والتي ، بالإضافة إلى ملفات البرنامج الفعلية ، تحتوي أيضًا على الأصوات والصور المستخدمة في كل مشروع. يمكن نقل الملفات أو حذفها باستخدام متصفح الملفات. يتم تخزين البرامج التي تم إنشاؤها باستخدام بيئة برمجة الوحدة النمطية وتطبيقات تسجيل بيانات الوحدة النمطية بشكل منفصل في مجلدي BrkProg_SAVE و BrkDL_SAVE.

6 شريحة

وصف الشريحة:

تشتمل تطبيقات وحدة التحكم EV3 على 4 تطبيقات مثبتة مسبقًا: أ. عرض المنفذ. B. التحكم في المحركات. ب. مراقبة الأشعة تحت الحمراء. بيئة برمجة الوحدة النمطية.

7 شريحة

وصف الشريحة:

عرض المنفذ في النافذة الأولى لتطبيق Port View ، يمكنك أن ترى بسرعة المنافذ المتصلة بأجهزة الاستشعار أو المحركات. استخدم أزرار التحكم في وحدة البناء EV3 للتنقل إلى أحد المنافذ المزدحمة وسترى القراءات الحالية من المستشعر أو المحرك. قم بتثبيت بعض المستشعرات والمحركات وقم بتجربة إعدادات مختلفة. لعرض أو تغيير الإعدادات الحالية للمحركات وأجهزة الاستشعار المثبتة ، اضغط على زر الوسط. للعودة إلى نافذة التطبيق الرئيسية للوحدة النمطية ، انقر فوق الزر "رجوع".

8 شريحة

وصف الشريحة:

ب. التحكم في المحرك يتحكم في الحركة الأمامية أو العكسية لأي محرك متصل بأحد منافذ الإخراج الأربعة. هناك وضعان مختلفان. في وضع واحد ، ستتمكن من التحكم في المحركات المتصلة بالمنفذ A (باستخدام الزرين العلوي والسفلي) والمنفذ D (باستخدام الزرين الأيمن والأيسر). في الوضع الآخر ، يمكنك التحكم في المحركات المتصلة بالمنفذ B (باستخدام الزرين لأعلى ولأسفل) والمنفذ C (باستخدام الزرين الأيسر والأيمن). يتم التبديل بين هذين الوضعين باستخدام الزر المركزي. للعودة إلى نافذة التطبيق الرئيسية للوحدة النمطية ، انقر فوق الزر "رجوع".

9 شريحة

وصف الشريحة:

التحكم في الأشعة تحت الحمراء للتحكم في الحركة الأمامية أو العكسية لأي محرك متصل بأحد منافذ الإخراج الأربعة باستخدام منارة الأشعة تحت الحمراء البعيدة كوحدة التحكم عن بعد ومستشعر الأشعة تحت الحمراء كجهاز استقبال (يجب توصيل مستشعر الأشعة تحت الحمراء بالمنفذ 4 في وحدة البناء EV3) . هناك وضعان مختلفان. في وضع واحد ، ستستخدم القناتين 1 و 2 على منارة الأشعة تحت الحمراء البعيدة. في القناة 1 ، ستتمكن من التحكم في المحركات المتصلة بالمنفذ B (باستخدام الزرين 1 و 2 في منارة الأشعة تحت الحمراء عن بُعد) والمنفذ C (باستخدام الزرين 3 و 4 في منارة الأشعة تحت الحمراء عن بُعد). في القناة 2 ، ستتمكن من التحكم في المحركات المتصلة بالمنفذ A (باستخدام الزرين 1 و 2) والمنفذ D (باستخدام الزرين 3 و 4). في الوضع الآخر ، يمكنك التحكم في المحركات بنفس الطريقة ، باستخدام القناتين 3 و 4 على منارة الأشعة تحت الحمراء عن بُعد بدلاً من ذلك. يتم التبديل بين هذين الوضعين باستخدام الزر المركزي. للعودة إلى نافذة التطبيق الرئيسية للوحدة النمطية ، انقر فوق الزر "رجوع".

10 شريحة

وصف الشريحة:

بيئة برمجة وحدة البناء تأتي وحدة البناء EV3 مزودة ببرنامج مثبت عليها. يشبه التطبيق البرنامج المثبت على جهاز الكمبيوتر الخاص بك. تحتوي هذه التعليمات على المعلومات الأساسية التي تحتاجها للبدء.

11 شريحة

وصف الشريحة:

إعدادات وحدة البناء EV3 تتيح لك هذه النافذة عرض وضبط مختلف الإعدادات العامة على وحدة البناء EV3.

12 شريحة

وصف الشريحة:

ضبط مستوى الصوت يمكنك زيادة مستوى الصوت وخفضه في علامة التبويب الإعدادات في EV3.

13 شريحة

تقليديا ، الروبوتات مبنية على منصة ليجو مايندستورمز EV3، مبرمجة باستخدام بيئة LabVIEW الرسومية. في هذه الحالة ، يتم تشغيل البرامج على وحدة التحكم EV3 ويعمل الروبوت بشكل مستقل. سأتحدث هنا عن طريقة بديلة للتحكم في الروبوت - باستخدام منصة .NET التي تعمل على الكمبيوتر.

ولكن قبل أن ننتقل مباشرة إلى البرمجة ، دعنا نلقي نظرة على الحالات التي يمكن أن يكون فيها هذا مفيدًا:

  • يتطلب التحكم عن بعد في الروبوت من جهاز كمبيوتر محمول (على سبيل المثال ، عن طريق الضغط على الأزرار)
  • تحتاج إلى جمع البيانات من وحدة تحكم EV3 ومعالجتها على نظام خارجي (على سبيل المثال ، لأنظمة إنترنت الأشياء)
  • أي موقف آخر تريد فيه كتابة خوارزمية تحكم في .NET وتشغيلها من جهاز كمبيوتر متصل بوحدة التحكم EV3

واجهة برمجة تطبيقات LEGO MINDSTORMS EV3 لـ .NET

يتم التحكم في وحدة التحكم EV3 من نظام خارجي عن طريق إرسال أوامر إلى المنفذ التسلسلي. يتم وصف تنسيق الأمر نفسه في مجموعة مطوري الاتصالات.

لكن تنفيذ هذا البروتوكول يدويًا أمر ممل. لذلك ، يمكنك استخدام برنامج تضمين .NET الجاهز ، والذي تمت كتابته بعناية بواسطة Brian Peek. تتم استضافة الكود المصدري لهذه المكتبة على Github ويمكن العثور على الحزمة الجاهزة للاستخدام على Nuget.

التوصيل بوحدة تحكم EV3

تُستخدم فئة وحدة البناء للتواصل مع وحدة تحكم EV3. عند إنشاء هذا الكائن ، يحتاج المُنشئ إلى تمرير تنفيذ لواجهة IC Communication ، وهو كائن يصف كيفية الاتصال بوحدة التحكم EV3. تتوفر تطبيقات UsbCommunications و BluetoothC Communication وشبكات الاتصال (الاتصال عبر WiFi).

أكثر طرق الاتصال شيوعًا هي عبر البلوتوث. دعنا نلقي نظرة فاحصة على طريقة الاتصال هذه.

قبل أن نتمكن من الاتصال بوحدة التحكم برمجيًا عبر Bluetooth ، يجب توصيل وحدة التحكم بالكمبيوتر باستخدام إعدادات نظام التشغيل.

بعد توصيل جهاز التحكم ، انتقل إلى إعدادات Bluetooth وحدد علامة التبويب منافذ COM. نجد وحدة التحكم الخاصة بنا ، نحتاج منفتحميناء. سنحدده عند إنشاء كائن BluetoothC Communication.

سيبدو رمز الاتصال بوحدة التحكم كما يلي:

اتصال المهام العامة غير المتزامنة (اتصال IC) (اتصال var = اتصال Bluetooth جديد ("COM9") ؛ var brick = _brick = new Brick (اتصال) ؛ انتظار _brick.ConnectAsync () ؛)

اختياريًا ، يمكنك تحديد مهلة الاتصال بوحدة التحكم:

Await_brick.ConnectAsync (TimeSpan.FromSeconds (5)) ،

الاتصال بالوحدة عبر USB أو WiFi مشابه ، باستثناء استخدام كائنات UsbC Communication و NetworkC Communication.

يتم تنفيذ جميع الإجراءات الإضافية التي يتم إجراؤها باستخدام وحدة التحكم من خلال كائن Brick.

دعونا نلف المحركات

لتنفيذ الأوامر على وحدة تحكم EV3 ، دعنا نصل إلى خاصية DirectCommand لكائن Brick. أولاً ، لنحاول بدء تشغيل المحركات.

لنفترض أن محركنا متصل بالمنفذ A لوحدة التحكم ، ثم تشغيل هذا المحرك بقوة 50٪ سيبدو كما يلي:

Await _brick.DirectCommand.TurnMotorAtPowerAsync (OutputPort.A، 50) ،

هناك طرق أخرى للتحكم في المحرك. على سبيل المثال ، يمكنك تدوير محرك إلى زاوية معينة باستخدام أساليب StepMotorAtPowerAsync () و StepMotorAtSpeedAsync (). في المجموع ، تتوفر عدة طرق ، وهي اختلافات في أوضاع تشغيل المحركات - حسب الوقت والسرعة والطاقة وما إلى ذلك.

يتم تنفيذ الإيقاف القسري بواسطة طريقة StopMotorAsync ():

Await _brick.DirectCommand.StopMotorAsync (OutputPort.A، true) ،

المعلمة الثانية تشير إلى استخدام الفرامل. إذا تم ضبطه على خطأ ، فسوف يتوقف المحرك.

قراءة القيم من أجهزة الاستشعار

تحتوي وحدة التحكم EV3 على أربعة منافذ استشعار. بالإضافة إلى ذلك ، تحتوي المحركات أيضًا على أجهزة تشفير مدمجة ، مما يسمح باستخدامها كأجهزة استشعار. نتيجة لذلك ، لدينا 8 منافذ يمكن من خلالها قراءة القيم.

يمكن الوصول إلى منافذ قراءة القيم من خلال خاصية Ports لكائن Brick. المنافذ عبارة عن مجموعة من المنافذ المتوفرة على وحدة التحكم. لذلك ، للعمل مع منفذ معين ، تحتاج إلى تحديده. InputPort.One ... InputPort. أربعة هي منافذ المستشعر و InputPort.A ... InputPort.D هي ترميز المحرك.

Var port1 = _brick.Ports ؛

يمكن أن تعمل المستشعرات في EV3 في أوضاع مختلفة. على سبيل المثال ، يمكن استخدام مستشعر اللون EV3 لقياس الضوء المحيط أو قياس الضوء المنعكس أو اكتشاف اللون. لذلك ، من أجل "إخبار" المستشعر بالطريقة التي نريد استخدامها بالضبط ، نحتاج إلى ضبط وضعه:

Brick.Ports.SetMode (ColorMode.Reflective) ؛

الآن بعد أن تم توصيل المستشعر وتعيين وضع التشغيل الخاص به ، يمكنك قراءة البيانات منه. يمكنك الحصول على البيانات الأولية والقيمة المعالجة وقيمة النسبة المئوية.

Float si = _brick.Ports.SIValue؛ int raw = _brick.Ports.RawValue ؛ نسبة البايت = _brick.Ports.PercentValue ؛

تقوم خاصية SIValue بإرجاع البيانات التي تمت معالجتها. كل هذا يتوقف على المستشعر المستخدم وفي أي وضع. على سبيل المثال ، عند قياس الضوء المنعكس ، نحصل على قيم من 0 إلى 100 اعتمادًا على شدة الضوء المنعكس (أسود / أبيض).

إرجاع خاصية RawValue القيمة الأولية المتلقاة من ADC. في بعض الأحيان يكون استخدامه أكثر ملاءمة لمزيد من المعالجة والاستخدام. بالمناسبة ، يتمتع EV3 IDE أيضًا بالقدرة على الحصول على قيم "أولية" - لهذا تحتاج إلى استخدام الكتلة من اللوحة الزرقاء.

إذا كان جهاز القياس المستخدم يتوقع تلقي القيم كنسبة مئوية ، فيمكنك أيضًا استخدام خاصية PercentValue.

تنفيذ الأوامر دفعة واحدة

لنفترض أن لدينا عربة روبوت ذات عجلتين تحت تصرفنا ونريد نشرها على الفور. في هذه الحالة ، يجب أن تدور العجلتان في الاتجاه المعاكس. إذا استخدمنا DirectCommand وأرسلنا أمرين بالتتابع إلى وحدة التحكم ، فقد يكون هناك بعض الوقت بين تنفيذهما:

Await _brick.DirectCommand.TurnMotorAtPowerAsync (OutputPort.A، 50) ، await _brick.DirectCommand.TurnMotorAtPowerAsync (OutputPort.B، -50) ،

في هذا المثال ، نرسل أمرًا لتدوير المحرك A بسرعة 50 ، بعد إرسال هذا الأمر بنجاح ، نكرر الأمر نفسه مع المحرك المتصل بالمنفذ B. المشكلة هي أن إرسال الأوامر ليس فوريًا ، لذلك يمكن للمحركات البدء في الدوران في أوقات مختلفة - بينما يتم إرسال الأمر إلى المنفذ B ، المحرك A سابقاسيبدأ في الدوران.

إذا كان من الضروري بالنسبة لنا جعل المحركات تدور في نفس الوقت ، فيمكننا إرسال أوامر إلى وحدة التحكم في "حزمة". في هذه الحالة ، يجب عليك استخدام خاصية BatchCommand بدلاً من DirectCommand:

Brick.BatchCommand.TurnMotorAtPower (OutputPort.A، 50) ؛ _brick.BatchCommand.TurnMotorAtPower (OutputPort.B، -50) ، انتظار _brick.BatchCommand.SendCommandAsync () ،

الآن يتم إعداد أمرين في وقت واحد ، وبعد ذلك يتم إرسالهما إلى وحدة التحكم في حزمة واحدة. وحدة التحكم ، بعد تلقي هذه الأوامر ، ستبدأ دوران المحركات في نفس الوقت.

ما الذي يمكن عمله

بالإضافة إلى المحركات الدوارة وقراءة قيم أجهزة الاستشعار ، هناك عدد من الإجراءات الأخرى التي يمكنك تنفيذها على وحدة التحكم EV3. لن أسهب في الحديث عن كل منهم بالتفصيل ، وسأدرج فقط قائمة بما يمكن عمله:

  • CleanUIAsync () و DrawTextAsync () و DrawLineAsync () وما إلى ذلك - معالجة الشاشة المدمجة لوحدة التحكم EV3
  • PlayToneAsync () و PlaySoundAsync () - استخدام مكبر الصوت المدمج لتشغيل الأصوات
  • WriteFileAsync ()، CopyFileAsync ()، DeleteFileAsync () (من SystemCommand) - العمل مع الملفات

استنتاج

يعد استخدام .NET للتحكم في روبوتات Mindstorms EV3 عرضًا جيدًا لكيفية عمل التقنيات من عوالم مختلفة معًا. نتيجة للبحث في EV3 API for .NET ، تم إنشاء تطبيق صغير يسمح لك بالتحكم في EV3 Robot من جهاز الكمبيوتر الخاص بك. لسوء الحظ ، توجد تطبيقات مماثلة لـ NXT ، لكنها تجاوزت EV3. في الوقت نفسه ، فهي مفيدة في منافسات الروبوتات الخاضعة للرقابة ، مثل كرة القدم الآلية.

يمكن تنزيل التطبيق وتثبيته من هذا الرابط:

حدد وضع الشاشة

طريقة الاختيار
مربع نص كتلة
المدخلات
زر المعاينة

حدد نوع النص أو الرسومات التي تريد رؤيتها باستخدام محدد الوضع. بعد تحديد الوضع ، يمكنك تحديد قيم المدخلات. سوف تختلف المدخلات المتاحة حسب الوضع. يتم وصف الأوضاع والمدخلات أدناه.

يمكنك النقر فوق الزر "معاينة" لمعاينة ما ستعرضه كتلة "الشاشة" على شاشة EV3. يمكنك ترك العرض مفتوحًا أثناء تحديد قيم الإدخال للكتلة.

إحداثيات الشاشة

تستخدم العديد من أوضاع كتلة الشاشة إحداثيات X و Y لتحديد موقع العنصر. تحدد الإحداثيات موضع وحدات البكسل على شاشة وحدة البناء EV3. الموضع (0 ، 0) في الزاوية اليسرى العليا من الشاشة ، كما هو موضح في الشكل أدناه.

أبعاد الشاشة: 178 بكسل عرضًا في 128 بكسل ارتفاعًا. يتراوح نطاق قيم إحداثيات X من 0 على يسار الشاشة إلى 177 على اليمين. يتراوح نطاق قيم الإحداثي Y من 0 في الأعلى إلى 127 في الأسفل.

نصائح وخدع

يمكنك استخدام زر معاينة في الزاوية اليسرى العليا من كتلة الشاشة لمساعدتك في العثور على إحداثيات الشاشة الصحيحة.

نص - بكسل

يتيح لك وضع Text - Pixels عرض النص في أي مكان على شاشة وحدة البناء EV3.

إعادة النافذة

يعيد وضع إعادة ضبط النافذة شاشة وحدة البناء EV3 إلى شاشة المعلومات القياسية التي تظهر أثناء تشغيل البرنامج. تعرض هذه الشاشة اسم البرنامج ومعلومات الملاحظات الأخرى. عند تشغيل برنامج على وحدة البناء EV3 ، يتم عرض هذه الشاشة حتى يتم تنفيذ أول كتلة شاشة في البرنامج.

ضمان رؤية العناصر المعروضة

عند انتهاء برنامج EV3 ، يتم مسح شاشة وحدة البناء EV3 وتعود إلى شاشة قائمة وحدة البناء EV3. سيتم مسح أي نص أو رسومات معروضة بواسطة البرنامج. إذا كان برنامجك ، على سبيل المثال ، يحتوي على كتلة "شاشة" واحدة ولا شيء آخر ، فسيتم مسح الشاشة بهذه السرعة فور انتهاء البرنامج بحيث لن ترى نتائج كتلة "الشاشة".

إذا كنت تريد استمرار الشاشة بعد انتهاء البرنامج ، فيجب عليك إضافة كتلة إلى نهاية البرنامج لمنع البرنامج من الإنهاء فورًا ، كما هو موضح في الأمثلة التالية.

عرض عناصر متعددة

إذا كنت ترغب في عرض عناصر نصية أو رسومات متعددة على الشاشة في نفس الوقت ، فمن المهم عدم مسح شاشة وحدة البناء EV3 بين العناصر. يحتوي كل وضع من أوضاع كتلة الشاشة على إدخال Clear Screen. إذا كان Clear Screen هو true ، فسيتم مسح الشاشة بالكامل قبل عرض العنصر. هذا يعني أنه لعرض عناصر متعددة ، يجب عليك ضبط Clear Screen على False لكل كتلة شاشة باستثناء الأولى.

عرض الرقم

لعرض قيمة رقمية في برنامجك ، قم بتوصيل ناقل البيانات بإدخال النص في كتلة عرض النص. سيتم تحويل ناقل البيانات الرقمي تلقائيًا إلى نص باستخدام تحويل نوع ناقل البيانات (لمزيد من المعلومات ، راجع

إن فكرة استبدال الكمبيوتر الصغير في المُنشئ بعظمة Beaglebone أو أي شيء آخر ليست جديدة. ولكن مع إصدار EV3 ، أصبح من الممكن ليس فقط الحصول على نظير بنسبة 100٪ ، ولكن أيضًا لزيادة أداء روبوت LEGO الخاص بك.

عرض فيديو للمشروع:

يدعم E VB بشكل كامل نظام Lego Mindstorms Ev3 في كل من الأجهزة والبرامج ، وهو متوافق بنسبة 100٪ مع جميع أجهزة استشعار ومحركات Lego. تعمل الكتلة تمامًا مثل كتلة Lego Mindstorms EV3:

بيجل بون بلاككمبيوتر لينكس لوحة واحدة.إنه منافس لـ Raspberry Pi. يتميز بمعالج AM335x 720MHz ARM® قوي ، كبير عدد المدخلات / المخرجات ، يمكن توسيع الاحتمالات باستخدام لوحات إضافية.

يحتوي Lego Mindstorms EV3 على معالج ARM9 (TI Sitara AM180x) 300 ميجاهرتز ، لذلك التحول إلى معالج ARM Cortex-A8 (TI Sitara AM335x) بسرعة 1 جيجاهرتز BeagleBone Black يحسن الأداء، بالإضافة إلى أنه يصبح من الممكن توصيل بطاقات توسيع إضافية!

الأهم من ذلك ، أن Lego Mindstorms EV3 لديها وصف مفتوح لجميع البرامج والأجهزة!

على سبيل المثال ، تم تجميع وعرض روبوت مكعب روبيك الشهير. فقط بدلاً من EV3 قاموا بتركيب EVB المطور. نقترح مشاهدة الفيديو:

يقوم مؤلفو المشروع بالفعل بإصدار وبيع EVB. إنهم يخططون لتوسيع الإنتاج بشكل كبير بحلول نهاية أبريل 2015. بالإضافة إلى ذلك ، قاموا بتطوير وإنتاج العديد من أجهزة الاستشعار المتوافقة.

إذا كنت ، مثلنا ، تفتقر إلى إمكانات مستشعرات EV3 القياسية ، فإن 4 منافذ استشعار في الروبوتات لديك ليست كافية ، أو إذا كنت تريد توصيل بعض الأجهزة الطرفية الغريبة بالروبوت الخاص بك ، فهذه المقالة مناسبة لك. صدقوني ، جهاز استشعار محلي الصنع لـ EV3 أسهل مما يبدو. يعتبر "مقبض الصوت" من راديو قديم أو مسامير ملتصقة بالأرض في إناء للزهور كمستشعر لرطوبة التربة أمرًا رائعًا للتجربة.

من المثير للدهشة أن كل منفذ من منافذ مستشعر EV3 يخفي عددًا من البروتوكولات المختلفة ، وذلك أساسًا للتوافق مع مستشعرات NXT وأجهزة استشعار الطرف الثالث. لنلقِ نظرة على كيفية عمل كابل EV3


غريب ، لكن السلك الأحمر أرضي (GND) ، والسلك الأخضر هو 4.3 فولت زائد. السلك الأزرق هو SDA لحافلة I2C و TX لبروتوكول UART. بالإضافة إلى ذلك ، السلك الأزرق هو مدخل محول A / D لـ EV3. السلك الأصفر هو كلا من SCL لناقل I2C و RX لبروتوكول UART. سلك أبيض - إدخال محول A / D لأجهزة استشعار NXT. الأسود هو إدخال رقمي ، لأجهزة الاستشعار المتوافقة مع NXT - يكرر GND. ليس سهلا ، أليس كذلك؟ دعنا نذهب بالترتيب.

الإدخال التناظري EV3

يحتوي كل منفذ مستشعر على قناة محول A / D. يتم استخدامه لأجهزة الاستشعار مثل مستشعر اللمس (زر) ، ومستشعر الضوء NXT ومستشعر اللون في الضوء المنعكس ووضع الإضاءة المحيطة ، ومستشعر الصوت NXT ومقياس الحرارة NXT.

تخبر المقاومة 910 أوم المتصلة كما هو موضح في الرسم التخطيطي وحدة التحكم أن هذا المنفذ يحتاج إلى التبديل إلى وضع الإدخال التناظري. في هذا الوضع ، يمكن توصيل أي مستشعر تناظري بـ EV3 ، على سبيل المثال ، من Arduino. يمكن أن يصل سعر الصرف باستخدام هذا المستشعر إلى عدة آلاف من الاستطلاعات في الثانية ، وهذا هو أسرع نوع من أجهزة الاستشعار.

مستشعر الضوء

ميزان الحرارة

مستشعر رطوبة التربة

يمكنك أيضًا توصيل: ميكروفون وزر وجهاز تحديد مدى الأشعة تحت الحمراء والعديد من أجهزة الاستشعار الشائعة الأخرى. إذا لم يكن لدى المستشعر طاقة كافية 4.3 فولت ، فيمكنك تشغيله بجهد 5 فولت من منفذ USB الموجود على جانب وحدة التحكم EV3.

يُعد "مقبض الصوت" المذكور أعلاه (المعروف أيضًا باسم المقاوم المتغير أو مقياس الجهد) مثالًا رائعًا على المستشعر التناظري - يمكنك توصيله على النحو التالي:

لقراءة القيم من هذا المستشعر في بيئة برمجة LEGO القياسية ، يجب عليك استخدام كتلة RAW الزرقاء

بروتوكول I2C

هذا بروتوكول رقمي ، على سبيل المثال ، مستشعر الموجات فوق الصوتية NXT ، تعمل عليه العديد من مستشعرات Hitechnic ، مثل IR Seeker أو Color Sensor V2. بالنسبة للمنصات الأخرى ، على سبيل المثال بالنسبة لـ Arduino ، هناك الكثير من أجهزة استشعار i2c ، يمكنك أيضًا توصيلها. المخطط على النحو التالي:

توصي LEGO Group بمقاومة 82 أوم ، ولكن هناك إشارات إلى 43 أوم أو أقل في مصادر مختلفة. في الواقع ، حاولنا التخلي تمامًا عن هذه المقاومة وكل شيء يعمل ، على الأقل "على الطاولة". في الروبوت الحقيقي الذي يعمل في ظروف مختلفة من التداخل ، يجب أن تظل خطوط SCL و SDA متصلة بالطاقة من خلال المقاومة ، كما هو موضح في الرسم البياني أعلاه. سرعة i2c في EV3 منخفضة جدًا ، حوالي 10000 كيلوبت في الثانية ، وهذا هو السبب في أن مستشعر الألوان المفضل لدى الجميع Hitechnic Color Sensor V2 بطيء جدًا :)

لسوء الحظ بالنسبة لـ LEGO EV3-G القياسية ، لا توجد كتلة كاملة للاتصال ثنائي الاتجاه مع مستشعر i2c ، ولكن باستخدام بيئات برمجة تابعة لجهات خارجية مثل RobotC أو LeJOS أو EV3 Basic ، يمكنك التفاعل مع أي مستشعر i2c تقريبًا.

تفتح قدرة EV3 على العمل مع بروتوكول i2c إمكانية مثيرة للاهتمام لتوصيل أجهزة استشعار متعددة بمنفذ واحد. يتيح لك بروتوكول I2C توصيل ما يصل إلى 127 جهازًا تابعًا بحافلة واحدة. هل يمكنك أن تتخيل؟ 127 مستشعرًا لكل منفذ من منافذ EV3 :) علاوة على ذلك ، غالبًا ما يتم دمج مجموعة من مستشعرات i2c في جهاز واحد ، على سبيل المثال ، في الصورة أدناه ، مستشعر 10 في 1 (يحتوي على بوصلة وجيروسكوب ومقياس تسارع ومقياس ضغط جوي ، إلخ. )

UART

تعمل جميع المستشعرات القياسية غير EV3 تقريبًا ، باستثناء مستشعر اللمس ، باستخدام بروتوكول UART ، وهذا هو سبب عدم توافقها مع وحدة التحكم NXT ، والتي ، على الرغم من أنها تحتوي على نفس الموصلات ، إلا أنها لا تحتوي على UART مطبق على منافذ الاستشعار. ألق نظرة على الرسم التخطيطي ، فهو أبسط قليلاً من الحالات السابقة:

تنسق مستشعرات UART تلقائيًا مع EV3 لسرعتها. في البداية ، بعد الاتصال بسرعة 2400 كيلوبت في الثانية ، اتفقوا على أوضاع التشغيل وسعر الصرف ، ثم الانتقال إلى سرعة متزايدة. معدلات الصرف النموذجية لأجهزة الاستشعار المختلفة هي 38400 و 115200 كيلوبت في الثانية.
نفذت LEGO بروتوكولًا معقدًا إلى حد ما في مستشعرات UART الخاصة بها ، لذلك لا توجد أجهزة استشعار تابعة لجهات خارجية غير مصممة في الأصل لهذا النظام الأساسي ، ولكنها متوافقة معها. ومع ذلك ، فإن هذا البروتوكول مناسب جدًا للاتصال "محلي الصنع"
أجهزة استشعار تعتمد على ميكروكنترولر.
بالنسبة إلى Arduino ، توجد مكتبة محاكاة EV3UART رائعة كتبها مطور LeJOS الشهير Lawrie Griffiths والتي تسمح لهذه اللوحة بالتظاهر بأنها مستشعر متوافق مع UART-LEGO. تحتوي مدونته LeJOS News على الكثير من الأمثلة على توصيل مستشعرات الغاز ومستشعر IMU وبوصلة رقمية باستخدام هذه المكتبة.

الفيديو أدناه هو مثال على استخدام جهاز استشعار محلي الصنع. ليس لدينا ما يكفي من مستشعرات LEGO الأصلية للمسافات ، لذلك نستخدم أحد المستشعرات الموجودة على الروبوت الذي صنعناه:


تتمثل مهمة الروبوت في البدء من الخلية الخضراء ، وإيجاد مخرج من المتاهة (الخلية الحمراء) والعودة إلى نقطة البداية بأقصر طريقة ، دون التوقف عند طريق مسدود.