بلوک EV3: منو، سنسورهای مشاهده، برنامه نویسی. LEGO Mindstorms Education EV3 - بررسی سازنده. آخرین اخبار از دنیای لگو را بخوانید - EduCube Lego mindstorms ev3 block توضیحات صدا

شرح ارائه برای اسلایدهای جداگانه:

1 اسلاید

توضیحات اسلاید:

2 اسلاید

توضیحات اسلاید:

رابط آجر EV3 آجر EV3 مرکز کنترلی است که ربات های شما را نیرو می دهد. صفحه نمایش، دکمه های کنترل آجری و رابط آجری EV3 که شامل چهار پنجره اصلی است، به شما امکان دسترسی به انواع شگفت انگیز ویژگی های منحصر به فرد EV3 Brick را می دهد. اینها می توانند توابع ساده، مانند شروع و توقف یک برنامه، یا توابع پیچیده مانند نوشتن خود برنامه باشند.

3 اسلاید

توضیحات اسلاید:

رابط: منوی EV3 دارای منویی است که از 4 قسمت تشکیل شده است: برنامه های اخیر پیمایش فایل برنامه های کاربردی آجر تنظیمات آجر

4 اسلاید

توضیحات اسلاید:

برنامه های اخیر برنامه هایی را که اخیراً از رایانه رومیزی خود دانلود کرده اید راه اندازی کنید. این پنجره تا زمانی که برنامه ها را دانلود و اجرا نکنید خالی می ماند. این پنجره برنامه هایی را که اخیرا راه اندازی کرده اید نمایش می دهد. برنامه پیش فرض در بالای لیست آخرین اجرای برنامه است.

5 اسلاید

توضیحات اسلاید:

مدیر فایل به تمامی فایل های ذخیره شده در حافظه میکروکامپیوتر و همچنین کارت حافظه دسترسی پیدا کرده و مدیریت کنید. از این پنجره، می‌توانید به تمام فایل‌های موجود در EV3 Brick، از جمله فایل‌های ذخیره‌شده در کارت SD خود دسترسی پیدا کرده و مدیریت کنید. فایل‌ها در پوشه‌های پروژه سازماندهی می‌شوند که علاوه بر فایل‌های برنامه واقعی، صداها و تصاویر مورد استفاده در هر پروژه را نیز شامل می‌شوند. فایل ها را می توان با استفاده از ناوبر فایل منتقل یا حذف کرد. برنامه های ایجاد شده با استفاده از محیط برنامه نویسی ماژول و برنامه های ثبت داده ماژول به طور جداگانه در پوشه های BrkProg_SAVE و BrkDL_SAVE ذخیره می شوند.

6 اسلاید

توضیحات اسلاید:

برنامه ها واحد کنترل EV3 دارای 4 برنامه از پیش نصب شده است: الف. نمای پورت. ب- کنترل موتور. ب. کنترل IR. د. محیط برنامه نویسی ماژول.

7 اسلاید

توضیحات اسلاید:

الف. نمای پورت در اولین پنجره اپلیکیشن پورت ویو، به سرعت می توانید ببینید که سنسورها یا موتورها به کدام پورت ها متصل هستند. با استفاده از دکمه های کنترل آجر EV3 به یکی از پورت های اشغال شده بروید و خوانش سنسور یا موتور فعلی را خواهید دید. چندین سنسور و موتور نصب کنید و تنظیمات مختلف را آزمایش کنید. برای مشاهده یا تغییر تنظیمات فعلی موتورها و سنسورهای نصب شده، دکمه مرکزی را فشار دهید. برای بازگشت به پنجره اصلی برنامه ماژول، دکمه "بازگشت" را فشار دهید.

8 اسلاید

توضیحات اسلاید:

ب. کنترل موتور حرکت رو به جلو یا معکوس هر موتور متصل به یکی از چهار پورت خروجی را کنترل کنید. دو حالت مختلف وجود دارد. در یک حالت، می‌توانید موتورهای متصل به پورت A (با استفاده از دکمه‌های بالا و پایین) و پورت D (با استفاده از دکمه‌های چپ و راست) را کنترل کنید. در حالت دیگر، موتورهای متصل به پورت B (با استفاده از دکمه های بالا و پایین) و پورت C (با استفاده از دکمه های چپ و راست) را کنترل می کنید. جابجایی بین این دو حالت با کمک دکمه مرکزی انجام می شود. برای بازگشت به پنجره اصلی برنامه ماژول، دکمه "بازگشت" را فشار دهید.

9 اسلاید

توضیحات اسلاید:

کنترل IR حرکت رو به جلو یا عقب هر موتور متصل به یکی از چهار پورت خروجی را با استفاده از Remote Infrared Beacon به عنوان کنترل از راه دور و سنسور مادون قرمز به عنوان گیرنده کنترل می کند (سنسور مادون قرمز باید به پورت 4 در آجر EV3 متصل شود). دو حالت مختلف وجود دارد. در یک حالت، از کانال های 1 و 2 روی چراغ مادون قرمز از راه دور استفاده خواهید کرد. در کانال 1، می‌توانید موتورهای متصل به پورت B (با استفاده از دکمه‌های 1 و 2 روی Remote Infrared Beacon) و پورت C (با استفاده از دکمه‌های 3 و 4 روی Remote Infrared Beacon) را کنترل کنید. در کانال 2 می توانید موتورهای متصل به پورت A (با استفاده از دکمه های 1 و 2) و پورت D (با استفاده از دکمه های 3 و 4) را کنترل کنید. در حالت دیگر، می توانید موتورها را به همان روش کنترل کنید، به جای آن از کانال های 3 و 4 روی چراغ مادون قرمز از راه دور استفاده کنید. جابجایی بین این دو حالت با کمک دکمه مرکزی انجام می شود. برای بازگشت به پنجره اصلی برنامه ماژول، دکمه "بازگشت" را فشار دهید.

10 اسلاید

توضیحات اسلاید:

EV3 Brick Programming Environment همراه با نرم افزار نصب شده روی آن ارائه می شود. برنامه مشابه نرم افزار نصب شده بر روی کامپیوتر شما است. این دستورالعمل ها حاوی اطلاعات اولیه ای است که برای شروع به آن نیاز دارید.

11 اسلاید

توضیحات اسلاید:

تنظیمات آجر EV3 این پنجره به شما امکان می دهد تنظیمات کلی مختلف روی آجر EV3 را مشاهده و تنظیم کنید.

12 اسلاید

توضیحات اسلاید:

تنظیم صدا می توانید در تب تنظیمات EV3 صدا را کم و زیاد کنید.

13 اسلاید

به طور سنتی روبات هایی که بر روی یک پلت فرم ساخته می شوند Lego Mindstorms EV3با استفاده از محیط گرافیکی LabVIEW برنامه ریزی می شوند. در این حالت، برنامه ها بر روی کنترلر EV3 اجرا می شوند و ربات به طور مستقل کار می کند. در اینجا من در مورد یک روش جایگزین برای کنترل ربات صحبت خواهم کرد - با استفاده از پلت فرم دات نت که روی رایانه اجرا می شود.

اما قبل از اینکه مستقیماً به برنامه نویسی بپردازیم، اجازه دهید به مواردی که می تواند مفید باشد نگاهی بیندازیم:

  • نیاز به کنترل از راه دور ربات از طریق لپ تاپ (به عنوان مثال، با فشار دادن دکمه ها)
  • جمع آوری داده ها از کنترلر EV3 و پردازش آن در یک سیستم خارجی (مثلاً برای سیستم های اینترنت اشیا) ضروری است.
  • هر موقعیت دیگری که می خواهید یک الگوریتم کنترل را در دات نت بنویسید و آن را از رایانه متصل به کنترلر EV3 اجرا کنید.

LEGO MINDSTORMS EV3 API برای دات نت

کنترلر EV3 از طریق یک سیستم خارجی با ارسال دستورات به پورت سریال کنترل می شود. خود فرمت فرمان در Communication Developer Kit توضیح داده شده است.

اما پیاده سازی دستی این پروتکل خسته کننده است. بنابراین، می توانید از یک بسته بندی دات نت آماده استفاده کنید که توسط برایان پیک به دقت نوشته شده است. کد منبع این کتابخانه در Github میزبانی می شود و بسته آماده برای استفاده را می توانید در Nuget پیدا کنید.

اتصال به کنترلر EV3

کلاس Brick برای برقراری ارتباط با کنترلر EV3 استفاده می شود. هنگام ایجاد این شی، باید اجرای رابط ICommunication را به سازنده منتقل کنید - یک شی که نحوه اتصال به کنترل کننده EV3 را توضیح می دهد. پیاده سازی های UsbCommunication، BluetoothCommunication و NetworkCommunication در دسترس هستند.

محبوب ترین راه برای اتصال از طریق بلوتوث است. بیایید نگاهی دقیق تر به این روش اتصال بیندازیم.

قبل از اینکه بتوانیم از طریق بلوتوث به کنترلر متصل شویم، کنترلر باید با استفاده از تنظیمات سیستم عامل به کامپیوتر متصل شود.

پس از اتصال کنترلر به تنظیمات بلوتوث رفته و تب COM ports را انتخاب کنید. ما کنترل کننده خود را پیدا می کنیم، نیاز داریم برونگرابندر. ما آن را هنگام ایجاد یک شئ BluetoothCommunication مشخص می کنیم.

کد اتصال به کنترلر به صورت زیر خواهد بود:

همگام عمومی Task Connect (ارتباط ICCommunication) (ارتباط var = ارتباط بلوتوث جدید ("COM9")؛ var brick = _brick = Brick جدید (ارتباط)؛ await _brick.ConnectAsync ()؛)

به صورت اختیاری، می توانید مدت زمان اتصال به کنترلر را مشخص کنید:

Await _brick.ConnectAsync (TimeSpan.FromSeconds (5));

اتصال به واحد از طریق USB یا WiFi به همین ترتیب انجام می شود، با این تفاوت که از اشیاء UsbCommunication و NetworkCommunication استفاده می شود.

تمام اقدامات بعدی انجام شده با کنترلر از طریق شی Brick انجام می شود.

بیایید موتورها را بچرخانیم

برای اجرای دستورات روی کنترلر EV3، به ویژگی DirectCommand شی Brick مراجعه کنید. ابتدا سعی می کنیم موتورها را راه اندازی کنیم.

فرض کنید موتور ما به پورت A کنترلر متصل است، سپس راه اندازی این موتور با قدرت 50 درصد به شکل زیر خواهد بود:

Await _brick.DirectCommand.TurnMotorAtPowerAsync (OutputPort.A, 50);

روش های دیگری برای کنترل موتور وجود دارد. برای مثال، می‌توانید با استفاده از روش‌های StepMotorAtPowerAsync () و StepMotorAtSpeedAsync () یک موتور را با یک زاویه مشخص بچرخانید. در مجموع، چندین روش در دسترس است، که تغییرات در حالت های روشن کردن موتورها - در زمان، سرعت، قدرت و غیره است.

توقف اجباری با روش StopMotorAsync () انجام می شود:

منتظر _brick.DirectCommand.StopMotorAsync (OutputPort.A، true);

پارامتر دوم نشان دهنده استفاده از ترمز است. اگر روی false تنظیم شود، موتور برای توقف حرکت می کند.

خواندن مقادیر از حسگرها

کنترلر EV3 دارای چهار پورت حسگر است. علاوه بر این، موتورها همچنین دارای رمزگذارهای داخلی هستند که به آنها امکان استفاده به عنوان سنسور را می دهد. در نتیجه، ما 8 پورت داریم که می توانید مقادیر را از آنها بخوانید.

از طریق ویژگی Ports شی 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 استفاده کنیم و دو دستور را به صورت متوالی به کنترلر ارسال کنیم، ممکن است بین اجرای آنها مدتی طول بکشد:

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

در این مثال دستور چرخاندن موتور A را با سرعت 50 ارسال می کنیم، پس از اتمام موفقیت آمیز ارسال این دستور، همین کار را با موتور متصل به پورت B تکرار می کنیم، مشکل این است که دستورات بلافاصله ارسال نمی شوند، بنابراین موتورها می توانند در زمان های مختلف شروع به چرخش کنند - در حالی که فرمان برای پورت B، موتور A منتقل می شود قبلا، پیش از اینشروع به چرخیدن خواهد کرد

اگر برای ما حیاتی است که موتورها را به صورت همزمان بچرخانیم، می‌توانیم دستورات را به صورت دسته‌ای به کنترل‌کننده ارسال کنیم. در این حالت باید به جای DirectCommand از ویژگی BatchCommand استفاده کنید:

Brick.BatchCommand.TurnMotorAtPower (OutputPort.A, 50); _brick.BatchCommand.TurnMotorAtPower (OutputPort.B, -50); await _brick.BatchCommand.SendCommandAsync ();

اکنون دو دستور به طور همزمان آماده می شود و پس از آن در یک بسته به کنترل کننده ارسال می شود. کنترلر با دریافت این دستورات، همزمان شروع به چرخش موتورها می کند.

شما چه کار دیگه ای میتوانید انجام دهید

علاوه بر چرخاندن موتورها و خواندن مقادیر سنسور، تعدادی کار دیگر نیز وجود دارد که می توانید در کنترلر EV3 انجام دهید. من در مورد هر یک از آنها با جزئیات صحبت نمی کنم، فقط لیستی از کارهایی که می توان انجام داد را فهرست می کنم:

  • CleanUIAsync ()، DrawTextAsync ()، DrawLineAsync () و غیره - دستکاری صفحه داخلی کنترلر EV3
  • PlayToneAsync () و PlaySoundAsync () - با استفاده از بلندگوی داخلی برای پخش صداها
  • WriteFileAsync ()، CopyFileAsync ()، DeleteFileAsync () (از SystemCommand) - کار با فایل ها

نتیجه

استفاده از دات نت برای کنترل ربات های Mindstorms EV3 نمونه خوبی از نحوه کار فناوری های "از دنیاهای مختلف" با یکدیگر است. در نتیجه تحقیق در مورد API EV3 برای دات نت، یک برنامه کوچک ایجاد شد که به شما امکان می دهد ربات EV3 را از طریق رایانه کنترل کنید. متأسفانه برنامه های مشابهی برای NXT وجود دارد و EV3 را دور زده اند. در عین حال، آنها در سرعت بخشیدن به ربات های کنترل شده، به عنوان مثال در فوتبال ربات، مفید هستند.

این اپلیکیشن را می توانید از این لینک دانلود و نصب کنید:

حالت صفحه نمایش را انتخاب کنید

انتخاب حالت
جعبه متن را مسدود کنید
ورودی ها
دکمه پیش نمایش

با استفاده از حالت انتخاب نوع متن یا گرافیکی را که می خواهید ببینید انتخاب کنید. پس از انتخاب حالت، می توانید مقادیر ورودی را انتخاب کنید. ورودی های موجود بسته به حالت متفاوت خواهد بود. حالت ها و ورودی ها در زیر توضیح داده شده است.

می‌توانید روی دکمه پیش‌نمایش کلیک کنید تا نمایشگر بلوک روی صفحه EV3 چه چیزی را نشان دهد. هنگام انتخاب مقادیر ورودی بلوک، می توانید پیش نمایش را باز بگذارید.

مختصات صفحه نمایش

بسیاری از حالت های بلوک نمایش از مختصات X و Y برای مکان یابی یک آیتم استفاده می کنند. مختصات موقعیت پیکسل ها را روی صفحه نمایش EV3 Brick تعیین می کند. موقعیت (0، 0) در گوشه سمت چپ بالای صفحه است، همانطور که در شکل زیر نشان داده شده است.

ابعاد صفحه نمایش: 178 پیکسل عرض در 128 پیکسل ارتفاع. محدوده مختصات X از 0 در سمت چپ صفحه تا 177 در سمت راست است. محدوده مختصات Y از 0 در بالا تا 127 در پایین است.

نکات و نکات

می‌توانید از دکمه پیش‌نمایش در گوشه سمت چپ بالای بلوک Display استفاده کنید تا به شما کمک کند مختصات صفحه نمایش صحیح را پیدا کنید.

متن - پیکسل

متن - حالت پیکسل به شما امکان می دهد متن را در هر نقطه از صفحه آجر EV3 نمایش دهید.

بازنشانی پنجره تنظیمات

حالت Reset Window صفحه EV3 Brick را به صفحه اطلاعات استانداردی که در حین اجرای برنامه نمایش داده می شود، برمی گرداند. این صفحه نام برنامه و سایر اطلاعات بازخورد را نشان می دهد. هنگامی که برنامه ای را روی آجر EV3 اجرا می کنید، این صفحه نمایش داده می شود تا زمانی که اولین بلوک صفحه برنامه اجرا شود.

قابل مشاهده کردن موارد نمایش داده شده

پس از اتمام برنامه EV3، صفحه آجر EV3 پاک می شود و به صفحه منوی آجر EV3 باز می گردد. هر متن یا گرافیک نمایش داده شده توسط برنامه پاک می شود. به عنوان مثال، اگر برنامه شما یک بلوک "صفحه" داشته باشد و نه چیز دیگری، پس از اتمام برنامه بلافاصله صفحه به سرعت پاک می شود که نتایج بلوک "صفحه نمایش" را نخواهید دید.

اگر می خواهید صفحه نمایش پس از اتمام برنامه نمایش داده شود، باید یک بلوک به انتهای برنامه اضافه کنید تا از پایان فوری برنامه جلوگیری کنید، همانطور که در مثال های زیر نشان داده شده است.

نمایش چندین آیتم

اگر می خواهید چندین عنصر متنی یا گرافیکی را همزمان روی صفحه نمایش دهید، مهم است که صفحه آجر EV3 را بین عناصر پاک نکنید. هر حالت بلوک "صفحه نمایش" دارای ورودی "پاک کردن صفحه" است. اگر Clear Screen درست باشد، کل صفحه قبل از نمایش آیتم پاک می شود. به این معنی که برای نمایش چندین آیتم، باید Clear Screen را برای هر بلوک Screen به غیر از اولی، روی False قرار دهید.

نمایش اعداد

برای نمایش یک مقدار عددی در برنامه خود، گذرگاه داده را به ورودی "Text" بلوک "Display Text" متصل کنید. گذرگاه داده های عددی با استفاده از تبدیل نوع گذرگاه داده به طور خودکار به متن تبدیل می شود (به بخش مراجعه کنید

ایده جایگزینی میکرو کامپیوتر در سازنده با Beaglebone یا دیگری جدید نیست. اما با انتشار EV3، نه تنها به دست آوردن 100٪ آنالوگ، بلکه افزایش عملکرد ربات سبک خود نیز امکان پذیر شد.

ارائه ویدئویی پروژه:

E VB به طور کامل از سیستم Lego Mindstorms Ev3 در هر دو سخت افزار و نرم افزار پشتیبانی می کند که 100% با تمام سنسورها و موتورهای لگو سازگار است. این بلوک مانند بلوک Lego Mindstorms EV3 عمل می کند:

مشکی بیگلبون- کامپیوتر لینوکس تک برد.رقیبی برای Raspberry Pi است. دارای پردازنده قدرتمند AM335x 720MHz پردازنده ARM®، بزرگ تعداد ورودی / خروجی، امکانات را می توان با تخته های اضافی گسترش داد.

Lego Mindstorms EV3 دارای پردازنده ARM9 (TI Sitara AM180x) 300 مگاهرتز است، بنابراین به پردازنده ARM Cortex-A8 (TI Sitara AM335x) 1GHz BeagleBone Black ارتقا داده می شود. بهره وری را افزایش می دهد، به علاوه اتصال کارت های توسعه اضافی امکان پذیر می شود!

مهمتر از همه، Lego Mindstorms EV3 توضیحاتی باز از تمام نرم افزارها و سخت افزارها دارد!

به عنوان مثال، مکعب روبیک معروف جمع آوری کننده ربات مونتاژ و نمایش داده می شود. فقط به جای EV3، یک EVB توسعه یافته نصب شد. پیشنهاد می کنیم ویدیو را تماشا کنید:

نویسندگان پروژه در حال حاضر در حال انتشار و فروش EVB هستند. آنها قصد دارند تا پایان آوریل 2015 تولید را به میزان قابل توجهی گسترش دهند. علاوه بر این، آنها چندین سنسور سازگار را توسعه داده و در حال تولید هستند.

اگر شما نیز مانند ما فاقد قابلیت‌های سنسورهای استاندارد EV3 هستید، 4 پورت برای سنسور در روبات‌هایتان کافی نیست، یا می‌خواهید برخی از لوازم جانبی عجیب و غریب را به ربات خود متصل کنید، این مقاله برای شما مناسب است. به من اعتماد کنید، سنسور EV3 DIY ساده تر از آن چیزی است که به نظر می رسد. یک "قطعه صدا" از یک رادیو قدیمی یا یک جفت میخ که در یک گلدان گل به عنوان حسگر رطوبت خاک به زمین چسبیده اند، برای آزمایش عالی است.

با کمال تعجب، هر پورت سنسور EV3 تعدادی پروتکل مختلف را پنهان می کند، که بیشتر برای سازگاری با NXT و حسگرهای شخص ثالث است. بیایید نگاهی به نحوه عملکرد کابل EV3 بیندازیم


عجیب است، اما سیم قرمز زمین است (GND)، سبز رنگ مثبت منبع تغذیه 4.3 ولت است. سیم آبی SDA برای گذرگاه I2C و TX برای پروتکل UART است. علاوه بر این، سیم آبی ورودی مبدل آنالوگ به دیجیتال برای EV3 است. سیم زرد هم SCL برای گذرگاه I2C و هم RX برای پروتکل UART است. سیم سفید - ورودی مبدل A/D برای سنسورهای NXT. سیاه - ورودی دیجیتال، برای حسگرهای سازگار NXT - GND را کپی می کند. آسان نیست، اینطور نیست؟ به ترتیب بریم

ورودی آنالوگ EV3

هر پورت حسگر دارای یک کانال مبدل آنالوگ به دیجیتال است. برای سنسورهایی مانند سنسور لمسی (دکمه فشاری)، حسگر نور NXT و سنسور رنگ در حالت بازتاب نور و نور محیط، سنسور صدای NXT و دماسنج NXT استفاده می شود.

مقاومت 910 اهم که مطابق نمودار متصل شده است، به کنترلر اطلاع می دهد که این پورت باید به حالت ورودی آنالوگ سوئیچ شود. در این حالت، می توانید هر سنسور آنالوگ را به EV3 متصل کنید، به عنوان مثال از یک آردوینو. در عین حال، نرخ ارز با چنین سنسوری می تواند به چندین هزار نظرسنجی در ثانیه برسد، این سریع ترین نوع سنسور است.

حسگر روشنایی

دماسنج

سنسور رطوبت خاک

همچنین می توانید به این موارد متصل شوید: میکروفون، دکمه، فاصله یاب IR و بسیاری از سنسورهای رایج دیگر. اگر سنسور شما برق 4.3 ولت کافی ندارد، می توانید آن را با 5 ولت از درگاه USB واقع در کنار کنترلر EV3 تغذیه کنید.

دکمه ولوم ذکر شده در بالا (مقاومت متغیر یا پتانسیومتر) یک نمونه عالی از یک سنسور آنالوگ است - می توان آن را به این صورت متصل کرد:

برای خواندن مقادیر از چنین سنسوری در یک محیط برنامه نویسی استاندارد LEGO، باید از بلوک RAW آبی استفاده کنید.

پروتکل I2C

این یک پروتکل دیجیتال است، به عنوان مثال حسگر اولتراسونیک NXT، بسیاری از سنسورهای Hitechnic، مانند IR Seeker یا Color Sensor V2. برای پلتفرم های دیگر، به عنوان مثال برای آردوینو، تعداد زیادی سنسور i2c وجود دارد، همچنین می توانید آنها را متصل کنید. این طرح به شرح زیر است:

امپدانس 82 اهم توسط گروه LEGO توصیه می شود، با این حال، منابع مختلف 43 اهم یا کمتر را ذکر کرده اند. در واقع ما سعی کردیم این مقاومت ها را به کلی کنار بگذاریم و همه چیز دست کم «روی میز» کار کند. در یک ربات واقعی که در شرایط انواع تداخل کار می کند، خطوط SCL و SDA همچنان باید از طریق مقاومت ها به منبع تغذیه کشیده شوند، همانطور که در نمودار بالا نشان داده شده است. سرعت i2c در EV3 بسیار کم است، حدود 10000 کیلوبیت در ثانیه، به همین دلیل است که سنسور رنگی Hitechnic V2 مورد علاقه همه بسیار کند است :)

متأسفانه برای LEGO EV3-G استاندارد بلوک کاملی برای ارتباط دو طرفه با سنسور 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 خود پیاده سازی کرده است، بنابراین هیچ سنسور شخص ثالثی وجود ندارد که در ابتدا برای این پلتفرم در نظر گرفته نشده باشد، بلکه با آن سازگار باشد. با این وجود، این پروتکل برای اتصال "خود ساخته" بسیار راحت است
سنسورهای مبتنی بر میکروکنترلر
یک کتابخانه فوق‌العاده برای آردوینو، EV3UARTEmulation، نوشته شده توسط توسعه‌دهنده مشهور LeJOS، Lawrie Griffiths، وجود دارد که به این برد اجازه می‌دهد وانمود کند که یک حسگر سازگار با UART-LEGO است. وبلاگ او LeJOS News نمونه های زیادی از اتصال سنسورهای گاز، حسگر IMU و قطب نما دیجیتال با استفاده از این کتابخانه دارد.

ویدئوی زیر نمونه ای از استفاده از سنسور خانگی است. ما تعداد کافی سنسور فاصله LEGO اصلی نداریم، بنابراین از یکی از سنسورهای خانگی روی ربات استفاده می کنیم:


وظیفه ربات این است که از سلول سبز شروع کند، راهی برای خروج از پیچ و خم (گلبول قرمز) پیدا کند و از کوتاه ترین مسیر بدون رانندگی به بن بست به نقطه شروع بازگردد.