نحن نعمل مع Lego Mindstorms EV3 من .NET. استبدل عقلك في Lego Mindstorms

بيت / لا يتم تشغيله

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

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


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

المدخلات التناظرية EV3

يحتوي كل منفذ مستشعر على قناة تحويل تناظرية إلى رقمية. يتم استخدامه لأجهزة الاستشعار مثل مستشعر اللمس (زر)، ومستشعر الضوء 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 المفضل لدى الجميع بطيء جدًا :)

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

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

UART

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

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

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


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

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

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

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

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

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

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

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

يتم استخدام فئة Brick للتواصل مع وحدة التحكم EV3. عند إنشاء هذا الكائن، تحتاج إلى تمرير تطبيق واجهة ICommunication إلى المُنشئ - وهو كائن يصف كيفية الاتصال بوحدة التحكم EV3. تتوفر تطبيقات UsbCommunication وBluetoothCommunication وNetworkCommunication (اتصال WiFi).

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

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

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

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

اتصال المهام العام غير المتزامن (ICommunication communication) ( var communication = new BluetoothCommunication("COM9"); var brick = _brick = new Brick(communication); انتظار _brick.ConnectAsync(); )

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

في انتظار _brick.ConnectAsync(TimeSpan.FromSeconds(5));

يتم الاتصال بالوحدة عبر USB أو WiFi بنفس الطريقة، باستثناء استخدام كائنات UsbCommunication وNetworkCommunication.

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

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

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

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

في انتظار _brick.DirectCommand.TurnMotorAtPowerAsync(OutputPort.A, 50);

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

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

في انتظار _brick.DirectCommand.StopMotorAsync(OutputPort.A, true);

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

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

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

يمكن الوصول إلى منافذ قراءة القيم من خلال خاصية المنافذ الخاصة بكائن Brick. المنافذ عبارة عن مجموعة من المنافذ المتوفرة على وحدة التحكم. لذلك، للعمل مع منفذ معين، تحتاج إلى تحديده. InputPort.One... InputPort.Four هي منافذ الاستشعار، و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، من الممكن أيضًا الحصول على قيم "أولية" - ولهذا تحتاج إلى استخدام الكتلة من اللوحة الزرقاء.

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

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

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

في انتظار _brick.DirectCommand.TurnMotorAtPowerAsync(OutputPort.A, 50); انتظر _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 للإدارة الروبوتات العواصف الذهنيةتوضح EV3 جيدًا كيف يمكن للتقنيات من عوالم مختلفة أن تعمل معًا. نتيجة للبحث في واجهة برمجة تطبيقات EV3 لـ .NET، تم إنشاء تطبيق صغير يسمح لك بالتحكم في روبوت EV3 من جهاز كمبيوتر. لسوء الحظ، توجد تطبيقات مماثلة لـ NXT، لكن EV3 تجاوزتها. وفي الوقت نفسه، فهي مفيدة في مسابقات الروبوتات التي يتم التحكم فيها، مثل كرة القدم الروبوتية.

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

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

الآن يبدأ كل شيء بالمراجعة برمجةكتلة EV3 (البرامج الثابتة EV3).

إحدى ميزات الكتلة الجديدة هي التبديل لفترة طويلةوالإغلاق. من حيث الوقت، فإن العملية قابلة للمقارنة بالإدراج الهاتف الخلويأو جهاز التوجيه المنزلي، على سبيل المثال. 20-30 ثانية. بعد التشغيل تظهر القائمة التالية:


كما ترون، بالمقارنة مع كتلة NXT، فقد تغير الكثير: لقد تحسنت جودة الخطوط، وتم رسم العناصر الرسومية بشكل أكبر، وتحسنت واجهة النافذة. بادئ ذي بدء، يرجع ذلك إلى حقيقة أن حجم الشاشة قد زاد الآن - فقد أصبح 178 × 128 بكسل، بدلا من 100 × 64، مثل كتلة NXT. استنادا إلى وجود واجهة نافذة مع أزرار متكاملة وأشرطة التمرير، يمكن افتراض أن الأجهزة مثل الخارجية لوحة اللمسبل سيكون أكثر منطقية الآن.


من النافذة الأولى، من الممكن استدعاء البرامج المحملة على الكتلة، بالإضافة إلى البرامج التي تم إنشاؤها مباشرة على الكتلة. أولئك. لبدء البرنامج، تحتاج الآن إلى إجراء نقرات أقل من تلك التي تقوم بها على كتلة NXT.

يتم التنقل عبر البرامج المحملة، وكذلك إلى الشاشات الثانية والشاشات اللاحقة (عناصر القائمة)، باستخدام أزرار التحكم، والتي يوجد منها الآن 4.


الشاشة الثانية - تتيح لك التنقل عبر كائنات نظام الملفات الموجودة على الكتلة. نظام الملفاتيدعم الآن التسلسل الهرمي التقليدي: الملفات والدلائل.


تحتوي الشاشة الثالثة على قائمة فرعية - التطبيقات التي تتيح لك تنفيذ إجراءات مختلفة باستخدام الكتلة:


يوجد في الإصدار الحالي من برنامج الكتلة أربعة تطبيقات من هذا القبيل:

  • عرض أجهزة الاستشعار
  • التحكم في المحركات
  • التحكم عن بعد
  • البرمجة على الكتلة
الشاشة الرابعة هي التكوين. بالإضافة إلى الإعدادات الأساسية: مستوى الصوت، ومؤقت عدم النشاط، تشغيل البلوتوثوWiFi، يتيح لك معرفة معلومات حول برنامج الوحدة:



يتم تحديد عنصر/تطبيق قائمة معين باستخدام الزر الأوسط على لوحة المفاتيح. وللخروج من أي عنصر قائمة أو تطبيق، تحتاج إلى الضغط على زر "الخروج"، الموجود الآن بشكل منفصل عن الأزرار الرئيسية - على الجانب الأيسر أسفل الشاشة.

الآن يجب عليك العودة إلى الشاشة الثالثة والبدء في التعرف على التطبيقات. لذلك، تطبيق "عرض أجهزة الاستشعار" (عرض المنفذ).

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

يتم عرض المعلومات الواردة من أجهزة تشفير المحركات في الأعلى، ويتم عرض المعلومات من أجهزة الاستشعار في الأسفل. في وسط الشاشة توجد معلومات عنه جهاز معين(في منفذ معين)، والتي يمكن تحديدها عن طريق الضغط على أزرار التحكم الموجودة في لوحة المفاتيح. تتضمن المعلومات تمثيلاً رسوميًا للمستشعر واسمه والقراءات الحالية:

مستشعر اللمس:


مستشعر الدوران:


مستشعر اللون في وضع الضوء المنعكس:


مستشعر المسافة بالموجات فوق الصوتية:

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

المعلومات من التشفير المحرك الأيسر.


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


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


بالطبع، الأكثر تطبيق مثير للاهتماميتم البرمجة على كتلة. لقد تم إعادة تصميمه بشكل كبير: يمكن أن يحتوي البرنامج الآن على ما يصل إلى 16 عنصرًا (كتل) برنامجية، ويمكن حفظ البرامج التي تم إنشاؤها وبالطبع إعادة فتحها للتعديل.


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


في نافذة اختيار الكتلة التي تظهر، تتوفر 17 كتلة (6 كتل إجراءات و11 كتلة انتظار) بالإضافة إلى إجراء حذف الكتلة الحالية.



يتم تحديد ترتيب الاختيار وتسلسل الكتل بواسطة المبرمج. هذا لا يعني أنه بعد كل كتلة إجراء يجب أن تكون هناك كتلة انتظار، كما كان الحال سابقًا مع كتلة NXT.

تبدو الكتلة المحددة في البرنامج كما يلي:


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


عن طريق تحريك "المؤشر" إلى اليسار أو اليمين، يمكنك إدراج كتلة أخرى:


على سبيل المثال، كتلة انتظار الحدث على مستشعر المسافة:


وتغيير سلوكه (سيحدث الحدث إذا أصبحت المسافة أكثر من 60 سم):


يمكن إدراج الكتل بين الكتل الموجودة أو حتى في بداية البرنامج.


فيما يلي المزيد من الأمثلة على كتل الانتظار:

كتلة وقت الانتظار (يمكنك تحديد مدة الانتظار بالضبط):


أو كتلة لانتظار حدث ما من مستشعر جيروسكوبي (يمكنك ضبط زاوية دوران المستشعر).


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

إذا كان يجب تنفيذ البرنامج عدة مرات، فيمكن تغيير عدد تكرارات حلقة التحكم:


يتم تشغيل البرنامج عن طريق اختيار الكتلة الأولى:


عند بدء تشغيل البرنامج سيظهر على الشاشة ما يلي:


يمكن حفظ البرنامج، ويمكنك تحديد اسم ملف للبحث لاحقا:



يتم تحديد الحروف باستخدام لوحة المفاتيح (مرحبا، لوحة اللمس!)

إذا حاولت إغلاق برنامج غير محفوظ، فسيتم عرض الرسالة التالية غير الواضحة تمامًا وسيصدر صوتًا مزعجًا:


يمكنك لاحقًا فتح البرنامج الذي تم إنشاؤه وإجراء تغييرات عليه.


وبطبيعة الحال، يتم فتح البرامج التي تم إنشاؤها على الكتلة فقط.

في الختام، أود أن أوضح كيف يبدو إيقاف تشغيل الكتلة:


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

فيديو تقديمي للمشروع:

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

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

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

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

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

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

اتصال USB

يمكن لـ LEGO Mindstorms EV3 الاتصال بجهاز كمبيوتر أو جهاز EV3 آخر عبر اتصال USB. سرعة الاتصال والاستقرار في في هذه الحالةأفضل من أي وسيلة أخرى، بما في ذلك البلوتوث.

يحتوي LEGO Mindstorms EV3 على منفذي USB.

الاتصال بين LEGO EV3 وكتل LEGO EV3 الأخرى في وضع السلسلة التعاقبية.

يتم استخدام وضع السلسلة التعاقبية لتوصيل كتلتين أو أكثر من كتل LEGO EV3.

هذا الوضع:

  • مصممة لتوصيل أكثر من LEGO Mindstorms EV3؛
  • يعمل على توصيل المزيد من أجهزة الاستشعار والمحركات والأجهزة الأخرى؛
  • يسمح بالاتصال بين عدة LEGO Mindstorms EV3 (حتى 4)، مما يمنحنا ما يصل إلى 16 منفذًا خارجيًا ونفس عدد المنافذ الداخلية؛
  • يجعل من الممكن التحكم في السلسلة بأكملها من LEGO Mindstorms EV3 الرئيسية؛
  • لا يمكن أن تعمل مع اتصال نشطواي فاي أو بلوتوث.

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

عند تحديد هذا الوضع، يمكننا تحديد كتلة EV3 لأي محرك والتي سيتم استخدامها وأجهزة الاستشعار اللازمة.

يوضح الجدول خيارات استخدام كتل EV3:

فعل

محرك متوسط

محرك كبير

توجيه

إدارة مستقلة

الجيروسكوب

الأشعة تحت الحمراء

بالموجات فوق الصوتية

دوران المحرك

درجات الحرارة

مقياس الطاقة

صوت

الاتصال عبر البلوتوث

تتيح تقنية Bluetooth لـ LEGO Mindstorms EV3 الاتصال بجهاز كمبيوتر وأجهزة LEGO Mindstorms EV3 الأخرى والهواتف الذكية وأجهزة Bluetooth الأخرى. نطاق الاتصالات حسب قناة بلوتوث- ما يصل إلى 25 م.

يمكنك توصيل ما يصل إلى 7 كتل بجهاز LEGO Mindstorms EV3 واحد. تسمح لك وحدة البناء الرئيسية EV3 بإرسال واستقبال الرسائل إلى كل تابع لـ EV3. يمكن لعبيد EV3 فقط إرسال الرسائل إلى وحدة البناء الرئيسية EV3، وليس لبعضهم البعض.

تسلسل اتصال EV3 عبر البلوتوث

لتوصيل مجموعتين أو أكثر من كتل EV3 ببعضها البعض عبر البلوتوث، يتعين عليك تنفيذ الخطوات التالية:

1. افتح علامة تبويب إعدادات.

2. اختر بلوتوثواضغط على الزر الأوسط.

3. نضع خانة الاختيار الرؤيةبلوتوث.

4. تأكد من أن علامة البلوتوث ("<") виден на верхней левой стороне.

5. قم بتنفيذ الإجراء المذكور أعلاه مع العدد المطلوب من وحدات الطوب EV3.

6. انتقل إلى علامة التبويب الاتصال:

7. اضغط على زر البحث:

8. حدد EV3 الذي تريد الاتصال به (أو الذي تريد الاتصال به) واضغط على الزر الأوسط.

9. نقوم بتوصيل الكتلتين الأولى والثانية بمفتاح الوصول.

إذا قمت بكل شيء بشكل صحيح، فستظهر الأيقونة " في الزاوية اليسرى العليا<>"، قم بتوصيل كتل EV3 الأخرى بنفس الطريقة إذا كان هناك أكثر من اثنين منها.

إذا قمت بإيقاف تشغيل LEGO EV3، فسيتم فقدان الاتصال وستحتاج إلى تكرار جميع الخطوات.

هام: يجب أن يكون لكل كتلة برنامجها الخاص المكتوب.

برنامج مثال:

الكتلة الأولى: عند الضغط على مستشعر اللمس، تقوم كتلة EV3 الأولى بإرسال النص إلى الكتلة الثانية مع تأخير قدره 3 ثوانٍ (الكتلة الرئيسية).

برنامج مثال للكتلة 2:

تنتظر الكتلة الثانية استلام النص من الكتلة الأولى، وبمجرد استلامها، ستعرض كلمة (في مثالنا، كلمة "Hello") لمدة 10 ثوانٍ (الكتلة التابعة).

الاتصال عبر شبكة Wi-Fi

التواصل الأطول ممكن مع اتصال واي فايدونجل إلى منفذ USB على EV3.

لاستخدام Wi-Fi، تحتاج إلى تثبيت وحدة نمطية خاصة على كتلة EV3 باستخدام موصل USB (محول Wi-Fi (محول Netgear N150 اللاسلكي (WNA1100)، أو يمكنك توصيل Wi-Fi Dongle.

© 2024 ermake.ru - حول إصلاح أجهزة الكمبيوتر - بوابة المعلومات