دوره برنامه نویسی ربات EV3 در محیط Lego Mindstorms EV3. رباتیک قفسه کتاب دوره برنامه نویسی ربات lego mindstorms ev3

L.Yu. اوسیانیتسکایا، D.N. اووسیانیتسکی، A.D. اووسیانیتسکی

دوره برنامه نویسی ربات EV3

در محیط زیست لگو Mindstorms EV3

چاپ دوم، بازنگری و گسترش یافته است

UDC 004.42+004.896

Ovsyanitskaya، L.Yu. دوره برنامه نویسی ربات لگو

طوفان ذهنی EV3 در محیط EV3: ویرایش. دوم، تجدید نظر شده است و اضافی /

L.Yu. اوسیانیتسکایا، D.N. اووسیانیتسکی، A.D. اووسیانیتسکی. - م.:

«پرو»، 2016. – 296 ص.

شابک 978-5-906862-76-1

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

این کتاب برای معلمان ابتدایی، متوسطه، عالی و آموزش اضافی، دانش آموزان، دانش آموزان و همه علاقه مندان به مسائل رباتیک.

بازبین:

دکترای علوم فیزیک و ریاضی، پروفسور ع.ف. شوریکوف.

ISBN 978-5-906862-76-1 © L.Yu. اوسیانیتسکایا، D.N. اووسیانیتسکی، A.D. Ovsyanitsky، 2016 مقدمه مطالب

فصل 1. ویژگی های ربات.

ایجاد و راه اندازی اولین پروژه 7

1.1. شرح مختصری ازپلت فرم های رباتیک مروری بر محیط برنامه نویسی Lego Mindstorms EV3

1.2. راه های اتصال ربات به کامپیوتر به روز رسانی سیستم عامل EV3 Brick. بارگذاری برنامه ها در آجر EV3



فصل 2. برنامه نویسی ربات

2.1. موتورها برنامه ریزی حرکات در مسیرهای مختلف

2.2. کار با نور پس زمینه، صفحه نمایش و صدا

2.2.1. کار با صفحه نمایش

2.2.2. کار با دکمه های دارای نور پس زمینه در آجر EV3

2.2.3. کار با صدا

2.3. ساختارهای برنامه

2.3.1. انتظارات ساختاری

2.3.2. چرخه ساختار

2.3.3. ساختار سوئیچ

2.4. کار با داده ها

2.4.1. انواع داده ها هادی ها

2.4.2. متغیرها و ثابت ها

2.4.3. عملیات ریاضی با داده ها

2.4.5. کار با آرایه ها

2.4.6. عملیات منطقی با داده ها

2.5. کار با سنسورها

2.5.1. حسگر لمسی

2.5.2. سنسور رنگ

2.5.3 سنسور ژیروسکوپ

2.5.4. سنسور اولتراسونیک

2.5.5. سنسور و چراغ مادون قرمز

2.5.6. سنسور چرخش موتور (تعیین زاویه/تعداد دور و توان موتور)

2.5.7. دکمه های کنترل ماژول

2.6. کار با فایل ها

دوره برنامه نویسی ربات Lego Mindstorms EV3 در محیط EV3

2.7. همکاری چند ربات

2.7.1. اتصال ربات ها با کابل USB

2.7.2. ارتباط ربات با استفاده از اتصال بلوتوث................................ 207

2.8. بلوک ها و ابزارهای مفید

2.8.1. مسدود کردن "فعال نگه داشتن"

2.8.2. مسدود کردن «برنامه توقف»

2.8.3. ایجاد روال

2.8.4. ثبت نظرات

2.8.5. استفاده از پورت ورودی سیمی

فصل 3. انواع اصلی مسابقات و عناصر وظایف.

3.1. مسابقه سومو

3.2. کگلرینگ

3.3. اسلالوم (اجتناب از موانع)

3.4. برنامه نویسی حرکت خط

3.4.1. الگوریتم حرکت در امتداد خط زیگزاگ با سنسورهای یک و دو رنگ

3.4.2. الگوریتم "موج"

3.4.3. الگوریتم کالیبراسیون خودکار سنسور رنگ ..... 258

3.5. کنترل خطی متناسب

3.5.1. حرکت خط بر اساس کنترل متناسب

3.5.2. یافتن و شمارش تقاطع ها با کنترل خط متناسب

3.5.3. وارونگی سفر

3.5.4. حرکت ربات در امتداد دیوار

3.6. یافتن هدف در پیچ و خم

فصل 4: به روز رسانی سیستم عامل و راه اندازی مجدد آجر EV3.

286 فصل 5. استفاده از حسگرهای شخص ثالث

5.1. کار با سنسور رنگ HiTech

5.2. استفاده از سنسورهای دیگر

نتیجه

لیست پروژه ها پروژه «سگ وفادار» 90 پروژه «اسکوربرد ورزشی» 98 پروژه «پایان خودکار» 102 پروژه «60 ثانیه» 109 پروژه «ضبط و خواندن بارکد رنگی» 120 پروژه «مرتب سازی آرایه با استفاده از روش حباب» 12 خانه هوشمند» 153 پروژه “ربات سرسخت” 160 پروژه “ربات با کنترل از راه دور» 182 پروژه بازی متحرک روی صفحه نمایش بلوک EV3 "Catch a snowball" 191 پروژه "ساخت نقشه سطح سه بعدی" 197 پروژه "EV3 - سینت سایزر موسیقی" 203 دوره برنامه نویسی ربات Lego Mindstorms EV3 در تصویر محیط EV3 از یک سیم پیچ (شکل 1.1.11b). بلوک فعال (روشن) می شود (شکل 1.1.11c).

–  –  –

شکل 1.1.

12. برنامه های موازی برای مقیاس بندی تصاویر (شکل 1.1.13 a, b)، از ترکیبات استاندارد MSWindows استفاده می شود. کلیدهای Ctrlو چرخ های اسکرول ماوس یا نمادها در گوشه سمت راست بالای پنجره:. مقیاس گذاری هنگام پیمایش برنامه های بزرگ، کپی کردن بلوک های خاص و موارد دیگر استفاده می شود.

دوره برنامه نویسی ربات Lego Mindstorms EV3 در محیط EV3 Blocks Large motor and Medium motor بلوک اول پالت Medium motor و دومی Large motor نام دارد. بلوک ها برای کنترل یک موتور استفاده می شوند و عملکرد یکسانی دارند.

بیایید ساختار بلوک ها را با استفاده از مثال یک بلوک موتور بزرگ در نظر بگیریم (شکل 2.1.4).

–  –  –

شکل 2.1.

4. Large Motor Control Unit اول از همه، روی حرف نشان دهنده نام پورت کلیک کنید و نام پورتی که موتور به آن متصل است را انتخاب کنید.

بیایید نگاهی دقیق تر به هر عنصر کنترلی بیندازیم.

1. حالت عملکرد را انتخاب کنید:

الف) روشن (شکل 2.1.5)؛

–  –  –

شکل 2.4.

3.4. برنامه اجرای پروژه "60 ثانیه".

فعالیت های DIY تصویری از صفحه ساعت را به صفحه اضافه کنید.

عقربه های دقیقه و ساعت را با قیاس اضافه کنید.

2.4.4. سایر بلوک های پردازش داده

–  –  –

قبل از شروع کار با آرایه ها، باید آنها را مقداردهی اولیه کنید، به عنوان مثال. نوع (عددی یا منطقی) را مشخص کرده و یک نام اختصاص دهید.

داده ها را می توان به صورت دستی یا به آرایه وارد کرد حالت خودکار(خواندن قرائت از حسگرها). برای ایجاد آرایه باید از بلوک Variable استفاده کنید.

ایجاد یک آرایه نوشتن یک آرایه روی یک متغیر

برای ایجاد و پر کردن یک آرایه، باید:

(الف) بلوک متغیر را به فضای کاری منتقل کنید و حالت (Write) و نوع آن (آرایه عددی یا منطقی) را تعیین کنید.

شکل گیری تشکیل یک آرایه عددی از یک آرایه منطقی

–  –  –

شکل 2.5.

3.3. حالت های عملکرد سنسور ژیروسکوپی مهم است!

گاهی اوقات (اغلب!) هنگام کار با یک سنسور ژیروسکوپی، می توانید موارد زیر را رعایت کنید: چه زمانی برنامه در حال اجراربات ثابت است و مقدار زاویه به طور مداوم در حال افزایش است (دریفت)، سرعت افزایش می تواند بیش از 1 درجه در ثانیه باشد!

افزایش مقادیر سنسور فصل 2. برنامه ریزی ربات 177 اگر چراغ بسیار دور (بیشتر از 1 متر) باشد، مقدار اندازه گیری 100 خواهد بود، اگر خیلی نزدیک باشد (حداقل 1 سانتی متر) - 0. نتایج میانی نیز مطابقت ندارند. به سانتی متر

در موردی که چراغ مستقیماً در مقابل سنسور قرار دارد، نتیجه نسبی اندازه گیری زاویه برابر با 0 خواهد بود، حداکثر مکان چراغ در سمت چپ، خلاف جهت عقربه های ساعت 25- (حداکثر زاویه انحراف قابل تشخیص تقریباً است. 100 درجه)، در سمت راست، 25 در جهت عقربه های ساعت (شکل 2.5. 5.5).

شکل 2.5.

5.5. موقعیت چراغ مادون قرمز نسبت به حسگر IR بیایید به نمونه برنامه ها نگاه کنیم. چراغ را در مقابل ربات قرار دهید، آن را روشن کرده و به سمت ربات بگیرید.

نشانگر LED روشن می شود و روشن می ماند. چراغ به طور مداوم سیگنالی را ارسال می کند. روی واحد حسگر مادون قرمز، همان کانالی را که روی بیکن نصب شده بود، نصب کنید. سنسور فقط چراغ را در کانالی که در برنامه خود مشخص کرده اید شناسایی می کند.

اگر یک ساعت استفاده نشود، چراغ خاموش می شود.

در شکل 2.5.5.6 انتخاب حالت کار با چراغ را نشان می دهد.

دوره برنامه نویسی ربات Lego Mindstorms EV3 در محیط EV3 با استفاده از MS Excel.

ربات می چرخد ​​و در هر لحظه از زمان مقدار زاویه چرخش و فاصله تا سطح را ثبت می کند.

راه حل:

1. مقادیر سنسور ژیروسکوپ را بازنشانی کنید.

چرخه 01 را وارد می کنیم، شرط پایان زمان (3 ثانیه) است.

2. در طول چرخه، ربات می چرخد ​​و اطلاعات را از حسگرهای اولتراسونیک و ژیروسکوپی می خواند. قرائت ها در بلوک برنامه Text با کاما از هم جدا می شوند.

3. نتیجه اندازه گیری در هر مرحله از چرخه در فایل Map نوشته می شود.

4. یک مکث 0.25 ثانیه تنظیم کنید. پس از پایان چرخه، فایل را ببندید.

توجه! هنگام استفاده از سنسور ژیروسکوپی، هنگام روشن کردن آن به وجود دریفت خواندن توجه کنید (نگاه کنید به.

بخش 2.5.3 برای حذف رانش).

فصل 2. برنامه نویسی حرکت ربات 213 و توقف، تغذیه هر تریلر به صورت متوالی.

2. "گروه آواز و ساز"

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

3. "گروه رقص"

وظیفه ایجاد یک گروه روباتیک است. اولین روباتی که از طریق بلوتوث دستورات را صادر می کند، سولیست است. بقیه ربات ها از دستورات پیروی می کنند. انواع مختلف رقص را برنامه ریزی کنید - رقص دور روبات ها ("لوکوموتیو")، رقص های آهسته و سریع.

4. "تمرینات صبحگاهی"

وظیفه این است که به طور همزمان تمرینات ژیمناستیک را به دستور اولین ربات انجام دهید.

2.8. بلوک ها و ابزارهای مفید 2.8.1. مسدود کردن "فعال نگه داشتن"

بعد از گذشت مدت زمان مشخصی و در صورتی که با ربات تماس نگیریم و ربات هیچ عملیاتی انجام ندهد خاموش می شود (در اصطلاح EV3 به حالت خواب می رود). این باعث ایجاد ناراحتی در هنگام کار با برنامه هایی می شود که برای مدت طولانی برای برخی از فرآیندها طراحی شده اند. می‌توانیم زمان تغییر حالت خواب را مستقیماً روی بلوک تنظیم کنیم (می‌توان زمان قبل از خاموش شدن را تنظیم کرد: 2 دقیقه، دوره برنامه‌نویسی ربات Lego Mindstorms EV3 در محیط EV3، چندین گزینه برنامه ایجاد کرده و تاکتیک‌های رزمی را انتخاب کنیم. به عنوان مثال، اگر یک ربات قدرتمند اما کند داشته باشیم، می توانیم برنامه ای را اجرا کنیم که در آن ربات ما به سرعت به حریف حمله کند و اگر ربات حریف همیشه در جستجوی ربات ما به سمت راست بچرخد، باید a را اجرا کنیم برنامه ای که دور می زند و از سمت چپ به آن حمله می کند.

این ربات می تواند یک یا دو حسگر اولتراسونیک برای تعیین موقعیت دشمن بدون چرخش های غیر ضروری داشته باشد. به خصوص راندهایی که در آن روبات‌هایی با قدرت یا سرعت تقریباً برابر با هم رقابت می‌کنند بسیار جالب هستند، در این مورد نتیجه با میلی‌متر و ثانیه تعیین می‌شود!

برنده شرکت کننده ای است که توانسته یک ساختار قوی و قابل اعتماد جمع کند، یک برنامه (یا برنامه) شایسته نوشته و استراتژی مناسب را انتخاب کند. مجموعه این عوامل است که روند آمادگی برای مسابقات را هیجان انگیز می کند و خود مسابقات نیز بسیار سرگرم کننده و هیجان انگیز است!

بیایید مثالی از یک الگوریتم برنامه برای یک ربات کشتی گیر سومو ارائه دهیم.

توقف ربات

2. ربات می چرخد ​​تا زمانی که ربات حریف را با سنسور اولتراسوند ببیند (تا زمانی که مقدار سنسور کمتر از 100 سانتی متر شود) که مطابق با زاویه چرخش 120-180 درجه است. توقف ربات

3. ایجاد یک چرخه با شرط پایان 01، - نامحدود.

4. در چرخه 01 ما چرخه 02 را وارد می کنیم که شرط پایان آن یک مقدار منطقی است: چرخه تا زمانی که مقدار True به ورودی Termination Condition ارائه شود اجرا می شود.

فصل 3. انواع اصلی مسابقات و عناصر وظایف 245 100 25 + 18 =.

بیایید سرعت چرخ چپ را پیدا کنیم: V1=58.

برای پیاده سازی الگوریتم، یک سنسور اولتراسونیک در جلوی ربات در مرکز نصب کنید و آن را به پورت 4 متصل کنید.

سنسور رنگ را به سمت پایین بگیرید، آن را در سمت چپ خط قرار دهید و آن را به پورت 2 وصل کنید. در شکل. 3.3.3 برنامه ای برای اجتناب از موانع ارائه می دهد. لطفا توجه داشته باشید که پس از تشخیص یک مانع، ربات می ایستد و به شدت به سمت راست می چرخد ​​تا از یک خط عمود بر مانع خارج شود و جسم را در امتداد شعاع معین دور بزند.

وظایف برای کار مستقل

مسیرها را برنامه ریزی کنید:

الف) اجتناب از چندین مانع با شعاع یکسان؛

ب) اجتناب از موانع با شعاع های مختلف.

ج) سوار شدن بر شکل هشت.

فصل 3. انواع اصلی مسابقات و عناصر وظایف 275 شکل 3.

5.3.2. برنامه برای راندن مسیر معکوس حرکت فصل 3. انواع اصلی مسابقات و عناصر وظایف 285 شکل 3.6.5. برنامه ای برای یافتن هدف در پیچ و خم دوره برنامه نویسی ربات Lego Mindstorms EV3 در محیط EV3.

فصل 5. استفاده از شخص ثالث

حسگرها

علاوه بر سنسورهای موجود در کیت های خانگی یا آموزشی Lego Mindstorms EV3، این امکان وجود دارد کسب اضافیسنسورهای لگو و سنسورهای دارای گواهینامه لگو از HiTechnic.

HiTechnic تعداد زیادی سنسور برای LEGO Mindstorms تولید می کند که اکثر آنها توسط LEGO تایید شده اند و سازگاری کامل، کیفیت بالا و استانداردهای ایمنی را تایید می کنند.

همچنین یکی از عوامل مهمی که امکان استفاده از این سنسورها را در هنگام کار با کودکان فراهم می کند، وجود گواهی RoHS (محدودیت مواد خطرناک) است که عدم استفاده از مواد در تجهیزات الکتریکی و الکترونیکی را تأیید می کند: سرب، جیوه، کادمیوم، قلع، کروم شش ظرفیتی و برخی ترکیبات برمید. برای لیست فعلی سنسورهای دارای گواهینامه Lego، به www.hitechnic.com/sensors مراجعه کنید.

در حال حاضر موجود: سنسور زاویه چرخش.

نیروی اعمال شده به صورت عرضی به محور؛ قطب نما; شتاب سنج؛

ژیروسکوپ; آشکارساز میدان مغناطیسی؛ سنسور مادون قرمز؛

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

یک سنسور فاصله الکترواپتیکی که به دقت اجسام کوچک و تغییرات کوچک در فاصله آنها را تشخیص می دهد، اما در فاصله بیش از 20 سانتی متر. سنسور رنگ

در درس دوم، با محیط برنامه نویسی بیشتر آشنا می شویم و دستوراتی را که در درس اول مونتاژ شده است، حرکت چرخ دستی ربات ما را تنظیم می کنند. بنابراین، بیایید محیط برنامه نویسی Lego mindstorms EV3 را راه اندازی کنیم، پروژه lessons.ev3 خود را که قبلا ایجاد شده بود بارگذاری کنیم و آن را به پروژه اضافه کنیم. برنامه جدید- درس 2-1. شما می توانید یک برنامه را به دو روش اضافه کنید:

  • تیم را انتخاب کنید "فایل" - "افزودن برنامه" (Ctrl+N).
  • کلیک "+" در برگه برنامه ها

برنج. 1

2.1. پالت های برنامه نویسی و بلوک های برنامه

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

پالت سبز نامیده می شود: "عمل":

برنج. 2

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

2.2. پالت سبز - بلوک های اکشن

اولین بلوک برنامه پالت سبز برای کنترل موتور متوسط ​​طراحی شده است، بلوک دوم برای کنترل موتور بزرگ است. از آنجایی که پارامترهای این بلوک ها یکسان است، اجازه دهید تنظیمات را با استفاده از مثال یک بلوک - یک موتور بزرگ در نظر بگیریم.

برنج. 3

برای تنظیمات صحیحواحد کنترل برای یک موتور بزرگ باید:

  1. پورتی که موتور به آن متصل است را انتخاب کنید (الف، ب، ج یا د) (شکل 3 مورد 1)
  2. حالت کار موتور را انتخاب کنید (شکل 3 مورد 2)
  3. پارامترهای حالت انتخاب شده را پیکربندی کنید (شکل 3 مورد 3)

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

پارامتر قدرت (در شکل 3 قدرت روی 75 تنظیم شده است) می تواند مقادیری از 100- تا 100 داشته باشد. مقادیر مثبت توان موتور را برای چرخش در جهت عقربه های ساعت تنظیم می کند، مقادیر منفی موتور را برای چرخش در خلاف جهت عقربه های ساعت تنظیم می کند. در مقدار توان 0، موتور نمی‌چرخد، هر چه مقدار توان «بالاتر» باشد، موتور سریع‌تر می‌چرخد.

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

در مورد پارامتر باید اشاره ویژه ای شود "ترمز در پایان". این پارامتر، اگر روی "ترمز کردن"باعث کند شدن موتور پس از اجرای فرمان و در صورت تنظیم روی "سرکوب"، سپس موتور با اینرسی می چرخد ​​تا زمانی که متوقف شود.

دو بلوک برنامه بعدی "فرمان"و کنترل یک جفت موتور بزرگ را اجرا کنید. به طور پیش فرض، موتور بزرگ سمت چپ به پورت متصل است "که در"، و سمت راست - به بندر "با". اما می توانید پورت های اتصال را در تنظیمات واحد مطابق با نیازهای طراحی خود تغییر دهید ( برنج. 4 پوز 1).

برنج. 4

پارامتر "فرمان" (برنج. 4 پوز 2) می تواند مقادیری از 100- تا 100 بگیرد. مقادیر منفی پارامتر باعث می شود ربات به چپ بچرخد، مقدار 0 باعث حرکت مستقیم ربات و مقادیر مثبت باعث چرخش ربات به راست می شود. فلش بالای پارامتر عددی جهت خود را بسته به مقدار تغییر می دهد و در نتیجه جهت حرکت ربات را نشان می دهد ( برنج. 5).

برنج. 5

بلوک برنامه "کنترل موتور مستقل"شبیه یک بلوک نرم افزاری است "فرمان". همچنین دو موتور بزرگ را کنترل می کند، اما به جای "فرمان"کنترل مستقل قدرت هر موتور امکان پذیر می شود. با مقدار پارامتر برابر "قدرت"برای موتور چپ و راست، ربات در یک خط مستقیم حرکت می کند. اگر یک مقدار توان منفی را به یک موتور (مثلا 50-) و مقدار مثبت را برای دومی (مثلا 50) اعمال کنید، ربات در جای خود می چرخد ​​( برنج. 6).

برنج. 6

بنابراین حالت های عملکرد این واحدها مشابه حالت های یک واحد کنترل موتور است توضیحات اضافیلازم نیست...

2.3. حرکت مستقیم، چرخش، چرخش و توقف

بنابراین، اکنون می توانیم برنامه ای بنویسیم تا ربات در هر مسیری حرکت کند.

وظیفه 1:برای 4 دور موتور مستقیم به جلو برانید. بچرخ. 720 درجه رانندگی کنید.

راه حل ( برنج. 7):

  1. با استفاده از بلوک نرم افزار "Steering"، 4 دور به جلو برانید.
  2. با استفاده از بلوک نرم افزار "کنترل موتور مستقل"، در محل بچرخید (مقدار درجه باید به صورت آزمایشی انتخاب شود).
  3. با استفاده از بلوک نرم افزاری "Steering"، 720 درجه به جلو برانید.

توجه: چرا هنگام چرخش باید مقدار درجه را انتخاب کنم؟ بلوک 2?. نیست 360 درجه - مقدار مورد نظر؟ اگر مقدار پارامتر را تنظیم کنیم نه "درجه"برابر 360 ، سپس شفت موتورهای چپ و راست ربات خود را مجبور می کنیم تا به میزان لازم بچرخند. زاویه چرخش ربات به دور محور خود به اندازه (قطر) چرخ ها و فاصله بین آنها بستگی دارد. بر برنج. 7مقدار پارامتر "درجه"برابر است 385 . این مقداراجازه می دهد تا یک ربات مطابق دستورالعمل مونتاژ شود ربات کوچک 45544دور محورش بچرخه اگر ربات متفاوتی دارید، باید مقدار متفاوتی را انتخاب کنید. آیا می توان این مقدار را به صورت ریاضی یافت؟ ممکن است، اما در ادامه در مورد آن صحبت خواهیم کرد.


برنج. 7

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

از چند بلوک نرم افزاری استفاده کرده اید؟ موفقیت خود را در نظرات مربوط به درس به اشتراک بگذارید...

2.4. صفحه نمایش، صدا، نشانگر وضعیت ماژول

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

برنج. 8

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

برنج. 9

بیایید پارامترهای بلوک برنامه را در نظر بگیریم "صفحه نمایش"در حالت "متن" (شکل 9 مورد 1). رشته ای که قرار است روی صفحه نمایش داده شود در یک فیلد خاص وارد می شود (شکل 9 مورد 2). متأسفانه فقط می توانید حروف لاتین، اعداد و علائم نگارشی را در قسمت ورودی متن وارد کنید. اگر حالت "پاک کردن صفحه"مقدار را تنظیم کنید "درست است، واقعی"، صفحه قبل از نمایش اطلاعات پاک می شود. بنابراین، اگر نیاز دارید خروجی فعلی را با اطلاعات موجود در صفحه ترکیب کنید، این حالت را روی آن تنظیم کنید "دروغ". حالت ها "ایکس"و "Y"نقطه ای را روی صفحه که خروجی اطلاعات از آن شروع می شود، تعیین کنید. صفحه نمایش آجر EV3 178 پیکسل (نقطه) عرض و 128 پیکسل ارتفاع دارد. حالت "ایکس"می تواند مقادیر را از 0 تا 177، حالت بگیرد "Y"می تواند مقادیر از 0 تا 127 را بگیرد. نقطه بالا سمت چپ دارای مختصات (0، 0)، پایین سمت راست (177، 127) است.

برنج. 10

هنگام تنظیم یک بلوک برنامه "صفحه نمایش"می توانید حالت را روشن کنید پیش نمایش (شکل 9 مورد 3)و نتیجه تنظیمات خروجی اطلاعات را به صورت بصری ارزیابی کنید.

در حالت "شکل ها" (شکل 11 مورد 1) تنظیمات بلوک برنامه بسته به نوع شکل متفاوت است. بنابراین، هنگام نمایش یک دایره، باید مختصات را مشخص کنید "ایکس"و "Y"مرکز دایره، و همچنین مقدار "شعاع". پارامتر "پر کردن" (شکل 11 مورد 2)مسئول این واقعیت است که یا طرح کلی شکل نمایش داده می شود، یا ناحیه داخلی شکل با رنگ مشخص شده در پارامتر پر می شود. "رنگ" (شکل 11 مورد 3).

برنج. یازده

برای نمایش یک خط مستقیم، باید مختصات دو نقطه انتهایی که خط مستقیم بین آنها قرار دارد را مشخص کنید.

برنج. 12

برای نمایش یک مستطیل، باید مختصات را مشخص کنید "ایکس"و "Y"گوشه سمت چپ بالای مستطیل و همچنین آن "عرض"و "ارتفاع".

برنج. 13

نمایش یک نقطه ساده ترین راه است! فقط مختصات آن را نشان دهید "ایکس"و "Y".

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

برنج. 14

همانطور که می بینید، محیط برنامه نویسی اهمیت زیادی به نمایش اطلاعات روی صفحه نمایش EV3 Main Brick می دهد. بیایید به بلوک برنامه مهم زیر نگاه کنیم "صدا". با استفاده از این بلوک می‌توانیم فایل‌های صوتی، آهنگ‌هایی با مدت زمان و فرکانس دلخواه و همچنین نت‌های موسیقی را به بلندگوی داخلی بلوک EV3 خروجی دهیم. بیایید به تنظیمات بلوک برنامه در حالت نگاه کنیم "تن بازی" (شکل 15). در این حالت باید تنظیم کنید "فرکانس"تن (شکل 15 مورد 1), "مدت زمان"صدا در چند ثانیه (شکل 15 مورد 2)و همچنین حجم صدا (شکل 15 مورد 3).

برنج. 15

در حالت "نت بازی"به جای فرکانس تن، باید یک یادداشت را انتخاب کنید صفحه کلید مجازیو همچنین مدت و میزان صدا را تنظیم کنید (شکل 16).

برنج. 16

در حالت "فایل پخش"می توانید یکی از فایل های صوتی را از کتابخانه انتخاب کنید (شکل 17 مورد 1)، یا با اتصال میکروفون به رایانه خود با استفاده از ویرایشگر صدا ("منوی اصلی محیط برنامه نویسی" - "ابزار" - "ویرایشگر صدا")خودت را ضبط کن فایل صوتیو در پروژه گنجانده شود.

برنج. 17

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

فقط باید با آخرین بلوک برنامه پالت سبز - بلوک آشنا شویم. یک نشانگر رنگ در اطراف دکمه های کنترل ماژول EV3 نصب شده است که می تواند در یکی از سه رنگ بدرخشد: سبز, نارنجییا قرمز. حالت مربوطه مسئول روشن و خاموش کردن نشان رنگ است (شکل 18 مورد 1). پارامتر "رنگ"طرح رنگ نشانه را تنظیم می کند (شکل 18 مورد 2). پارامتر "تکانه"مسئول روشن/خاموش کردن حالت سوسو زدن نشانگر رنگ است (شکل 18 مورد 3). چگونه می توانید از نشانگر رنگ استفاده کنید؟ به عنوان مثال، می توانید از سیگنال های رنگی مختلف در طول حالت های مختلف عملکرد ربات استفاده کنید. این به ما کمک می کند بفهمیم که آیا برنامه همانطور که برنامه ریزی کرده ایم اجرا می شود یا خیر.

برنج. 18

بیایید این دانش را عملی کنیم و برنامه خود را از Task 1 کمی رنگ آمیزی کنیم.

وظیفه 3:

  1. پخش سیگنال "شروع"
  2. نشانگر رنگ سبز بدون چشمک زن را فعال کنید
  3. "رو به جلو"
  4. برای 4 دور موتور مستقیم به جلو برانید.
  5. نمایش رنگ چشمک زن نارنجی را فعال کنید
  6. بچرخ
  7. نشانگر رنگ سبز چشمک زن را فعال کنید
  8. یک تصویر را روی صفحه نمایش دهید "به عقب"
  9. 720 درجه رانندگی کنید
  10. پخش سیگنال "متوقف کردن"

سعی کنید مشکل 3 را خودتان بدون نگاه کردن به راه حل حل کنید! موفق باشید!

بلوک های برنامه پانل "اقدامات" در قسمت های قبلی بررسی مورد بحث قرار گرفت و در این مقاله در مورد بلوک ها از تب "مدیریت اپراتور" صحبت خواهم کرد.

این بلوک ها را می توان به عنوان "تنظیم کننده" برنامه نشان داد: آنها دستور توقف و ادامه حرکت برنامه، حرکت به شاخه بعدی یا رفتن در یک دایره را می دهند.

در مقایسه با NXT، 2 بلوک جدید اضافه شد:

  • شروع - در NXT، شروع برنامه یکنواخت بود و بلافاصله با باز شدن برنامه تنظیم می شد.
  • قطع کردن چرخه - در NXT به سادگی چنین بلوکی وجود نداشت. اگر لازم بود عملکرد مشابهی را پیاده سازی کنیم، باید از متغیرها استفاده می کردیم.
لیست کلی بلوک های کنترل اپراتور به صورت زیر است:
  • شروع کنید
  • انتظار
  • تعویض
  • قطع کردن یک چرخه


مسدود کردن "شروع"

شاید متوجه شده باشید که اولین بلوک همه برنامه های EV3 بلوک با فلش سبز است. این بلوک "شروع" است. هیچ برنامه ای نمی تواند بدون آن کار کند - اینجاست که اجرای دستور شروع می شود. اگر "شروع" را در مقابل توالی بلوک ها قرار ندهید، چنین برنامه ای اجرا نمی شود.
به عنوان مثال، طبق برنامه ارائه شده در زیر، ربات حول یک محور می چرخد ​​(توالی بالایی از اقدامات انجام می شود)، اما فایل های صوتی را پخش نمی کند و دکمه ها را روشن نمی کند (دنباله پایین بدون بلوک "شروع" است. غیر فعال):

EV3 از مالتی تسکینگ پشتیبانی می کند، یعنی. یک برنامه می تواند شامل بیش از یک دنباله از دستورات باشد. علاوه بر این، این دنباله ها می توانند بلوک "شروع" خود را داشته باشند یا از یک "شروع" خارج شوند:


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

لطفا توجه داشته باشید که فلش سبز روی بلوک یک عنصر تزئینی نیست. اگر دستگاه به رایانه متصل باشد (بدون توجه به اینکه چگونه: از طریق usb، wi-fi یا بلوتوث)، با کلیک بر روی فلش، این دنباله برای اجرا اجرا می شود.

مسدود کردن "در انتظار"

این بلوک نیز یکی از پرکاربردترین هاست. برنامه روی آن "یخ می زند" - بلوک های بعدی برنامه اجرا نمی شوند - و مدت زمان مشخصی یا مقدار سنسور خاصی منتظر می ماند.
"انتظار" دارای تعداد زیادی حالت است که می تواند ترسناک باشد:


اما، در واقع، همه چیز بسیار ساده است. همه حالت ها را می توان به دسته های زیر تقسیم کرد:
  • بر اساس زمان - بلوک قبل از شروع اجرای بلوک های بعدی، تعداد ثانیه های مشخص شده را منتظر می ماند
  • با توجه به سنسور:
    • مقایسه - بلوک انتظار قرائت حسگر خاصی را دارد که در بلوک مشخص شده است
    • تغییر - بلوک منتظر می ماند تا قرائت سنسور با مقدار مشخصی نسبت به مقدار اولیه تغییر کند. علاوه بر این، شما می توانید نه تنها اندازه مقدار، بلکه جهت آن را نیز انتخاب کنید - کاهش مقدار، افزایش آن، یا در هر جهت.
بیایید به نمونه هایی از برنامه ها با هر حالت بلوک نگاه کنیم.
در برنامه اول نور پس زمینه دکمه ها تغییر می کند. نور پس زمینه به مدت یک ثانیه سبز، سپس به مدت 1 ثانیه قرمز می شود و سپس به حالت استاندارد تغییر می کند - سبز چشمک زن:

برنامه دوم شروع یک راه حل کلاسیک در رقابت کگلرینگ است: ربات به دور محور خود می چرخد ​​تا زمانی که قوطی را در مقابل خود ببیند:

برنامه زیر موتور A را روشن می کند و پس از 5 دور چرخش آن را خاموش می کند:

عملکرد این واحد با بلوتوث هیچ تفاوتی با کار با هر سنسوری ندارد. به عنوان مثال، برنامه زیر منتظر پیام "HI" می شود و سپس نور پس زمینه را سبز می کند و یک فایل صوتی را پخش می کند:

مسدود کردن "چرخه"

این یک بلوک خاص است - بلوک های دیگری را می توان در داخل آن قرار داد. بلوک های داخل تکرار خواهند شد. حالت های بلوک حلقه روشی را مشخص می کند که تعیین می کند چه زمانی حلقه باید پایان یابد. ما در حال حاضر اکثر این حالت ها را از بلوک انتظار قبلی می شناسیم، اما چندین حالت جدید اضافه شده است:

  • نامحدود - این حلقه تا زمانی که برنامه مجبور به خاتمه شود اجرا می شود
  • شمارش - حلقه به تعداد مشخصی بار تکرار می شود
  • مقدار بولی - حلقه تا زمانی که مقدار داده شده درست باشد تکرار می شود
  • زمان - چرخه برای زمان مشخص شده تکرار می شود
  • خواندن سنسور:
    • مقایسه - چرخه تا زمانی که سنسور مقدار مشخص شده را بپذیرد تکرار می شود
    • تغییر - چرخه تکرار می شود تا زمانی که قرائت سنسور نسبت به مقدار اولیه مقدار مشخص شده تغییر کند.
نام حلقه در بالای بلوک نوشته شده است - 01، 02، .... این نام را می توان در بلوک وقفه حلقه استفاده کرد که در ادامه توضیح داده خواهد شد.
بیایید به نمونه هایی نگاه کنیم. طبق این برنامه، ربات مستقیم رانندگی می کند و تا زمانی که برنامه متوقف شود بچرخد (از یک حلقه بی پایان استفاده می شود):

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

یک حلقه شمارنده به شما امکان می دهد نت را 10 بار پخش کنید:

با حالت ارزش منطقی، باید از بلوک‌های نظرسنجی حسگر هنوز کشف نشده استفاده کنید. این برنامهربات را مجبور می کند به جلو حرکت کند تا زمانی که جسمی را در فاصله کمتر از 20 سانتی متر ببیند (نخستین بلوک چرخه) یا با حسگر لمسی به مانعی برخورد کند (بلوک دوم چرخه). نتیجه عملیات منطقی"OR" بلوک سوم حلقه را می دهد:


بلوک "سوئیچ".

یک بلوک مشابه در NXT وجود دارد که بسته به مقدار یک متغیر یا سنسور، امکان انجام آن را فراهم می کند توالی های مختلفاقدامات.
پس از تکمیل این دنباله از اقدامات، برنامه بلوک های زیر "Switch" را اجرا می کند.
حالت این بلوک تعیین می کند که کدام سنسور یا مقدار متغیر استفاده شود. همه حالت های مشابه به عنوان بلوک "چرخه" استفاده می شود: می توانید از هر سنسور (رنگی، ژیروسکوپی، مادون قرمز، اولتراسونیک، چرخش موتور و موارد دیگر)، عددی یا مقدار متن، پیام بلوتوث.
به عنوان مثال، طبق این برنامه، ربات ابتدا به مدت 5 دور موتور به دور محور خود می چرخد ​​و سپس بسته به قرائت سنسور ژیروسکوپ، به جلو یا عقب حرکت می کند. اگر زاویه تشخیص داده شده توسط ژیروسکوپ کمتر از 90 درجه باشد، ربات به جلو حرکت می کند. اگر زاویه کمتر از 90 درجه باشد، ربات به عقب می رود.

برنامه زیر اجرای یک کنترلر رله ساده برای رانندگی در امتداد یک خط سیاه است:

در هر دو مثال قبلی، بلوک "Switch" فقط شامل 2 گزینه برای توسعه رویدادها بود. اما در واقع این بلوک ممکن است گزینه های بیشتری داشته باشد. به عنوان مثال، اگر یک ربات رنگ یک شی را تعیین کند، می تواند از بین تعداد بسیار بیشتری گزینه انتخاب کند:


در این برنامه ربات قرمز، آبی، سبز و بدون رنگ را تشخیص می دهد. رنگ ها را نام گذاری می کند و همچنین نور پس زمینه دکمه ها را برای رنگ های قرمز و سبز روشن می کند و در رنگ آبی جلو می رود. می‌توانید رنگ‌های باقی‌مانده‌ای را که حسگر می‌تواند تشخیص دهد - سیاه، زرد، سفید، قهوه‌ای - با استفاده از دکمه کوچک "+" واقع در گزینه بالا (به رنگ قرمز دایره شده) اضافه کنید.
با تعداد زیادی گزینه (مانند مثال بالا)، بلوک "Switch" برای کار با آن بسیار دست و پا گیر و ناخوشایند می شود. در این مورد، بلوک را می توان به "حالت مسطح" تغییر داد:

دکمه ای که بین حالت های تخت/جزئیات جابه جا می شود به رنگ قرمز دایره شده است.

مسدود کردن "وقفه چرخه"

این بلوک جدید است، بلوک مشابهی در NXT وجود نداشت. این به شما امکان می دهد از حلقه خارج شوید - بلوک های باقی مانده از حلقه اجرا نمی شوند و برنامه به بلوک های بعد از حلقه منتقل می شود. "هدر" بلوک نام چرخه ای را که باید تکمیل شود را مشخص می کند.
به عنوان مثال، چرخه در برنامه باید 5 بار تکرار شود، اما اگر فاصله تا جسم بیش از 50 سانتی متر شود، چرخه زودتر خارج می شود و ربات یک آهنگ صدا را پخش می کند:

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

سلام. در مقاله‌هایم می‌خواهم شما را با اصول برنامه‌نویسی میکروکامپیوتر LEGO NXT Mindstorms 2.0 آشنا کنم. برای توسعه برنامه استفاده خواهم کرد پلتفرم های مایکروسافت Robotics Developer Studio 4 (MRDS 4) و National Instruments LabVIEW (NI LabVIEW). وظایف کنترل خودکار و خودکار ربات های متحرک در نظر گرفته و اجرا خواهد شد. ما از ساده به پیچیده حرکت خواهیم کرد.

پیش بینی برخی سوالات و نظرات خوانندگان.

چرا NXT Mindstorms 2.0؟زیرا برای پروژه های خود این مجموعهبه نظر من مناسب ترین بود، زیرا میکروکامپیوتر NXT با پلتفرم های MRDS 4 و NI LabVIEW کاملاً سازگار است و این کیت از نظر مونتاژ تنظیمات مختلف ربات نیز بسیار انعطاف پذیر است - حداقل زمان صرف مونتاژ ربات می شود.

چرا پلتفرم های MRDS 4 و NI LabVIEW؟از نظر تاریخی اینگونه بود. در حین تحصیل در سال های آخر در دانشگاه، وظیفه توسعه بود دوره های آموزشیبا استفاده از این پلتفرم ها علاوه بر این، یادگیری پلتفرم ها بسیار آسان است و با استفاده از آنها می توانید برنامه ای را مستقیماً برای کنترل ربات، توسعه یک رابط کاربری و انجام آزمایش در یک محیط مجازی بنویسید (در مورد MRDS 4).

به هر حال چه کسی به این درس های شما نیاز دارد، در حال حاضر پروژه های رباتیک زیادی در اینترنت وجود دارد!عملاً هیچ مقاله آموزشی با استفاده از این ترکیب (NXT+MRDS 4/NI LabVIEW) وجود ندارد، بیشتر از محیط برنامه نویسی بومی استفاده می شود و همه چیز در آن کاملاً بی اهمیت است. هر کسی که به رباتیک، برنامه نویسی علاقه مند است و دارای مجموعه NXT است (و تعداد کمی از آنها وجود دارد)، مخاطبان سنی.

زبان های برنامه نویسی گرافیکی شیطانی هستند و کسانی که در آنها برنامه نویسی می کنند بدعت گذار هستند!زبان های برنامه نویسی گرافیکی که MRDS 4 و NI LabVIEW هستند، بدون شک دارای معایبی هستند، به عنوان مثال تمرکز بر روی وظایف محدود است، اما باز هم از نظر عملکرد چندان پایین تر نیستند. زبان های متن، به ویژه از آنجایی که NI LabVIEW در ابتدا به عنوان توسعه داده شد زبان آساندر تسلط برای حل مسائل علمی و مهندسی، برای این کار شامل بسیاری از کتابخانه ها و ابزار لازم است. بنابراین، این زبان های گرافیکی مناسب ترین برای حل مشکلات ما هستند. و برای این کار نیازی نیست ما را در آتش بسوزانید.

همه اینها بچگانه به نظر می رسد و اصلا جدی نیست!هنگامی که وظیفه پیاده سازی الگوریتم ها، آموزش اصول و مبانی برنامه نویسی، رباتیک، سیستم های بلادرنگ بدون پرداختن به مدارها و پروتکل ها است، پس این ابزار بسیار مناسبی است، اگرچه ارزان نیست (در رابطه با مجموعه NXT). اگر چه برای همان اهداف، کیت برای مبتنی بر آردوینو، اما این کنترلر تقریبا هیچ سازگاری با MRDS 4 و NI LabVIEW ندارد و این پلتفرم ها جذابیت های خاص خود را دارند.

فناوری هایی که استفاده می شود محصول کشورهای سرمایه داری در حال زوال است و نویسنده دشمن مردم و همدست توطئه گران غربی! متأسفانه بیشتر فناوری ها در زمینه الکترونیک و فناوری رایانهمن از غرب آمده ام، بسیار خوشحال خواهم شد اگر فناوری های مشابه تولید داخلی اصلی را به من نشان دهند. در این بین از آنچه در اختیار داریم استفاده خواهیم کرد. و نیازی به گزارش این موضوع به سرویس های ویژه و کینه توزی از من نیست.

مروری کوتاه بر پلتفرم های MRDS 4 و NI LabVIEW.

بگذارید برخی از اصطلاحات را توضیح دهم. زیر سکو، در در این مورد، منظور ما مجموعه ای از ابزارهای مختلف است، به عنوان مثال زبان VPL در MRDS و همچنین محیط اجرای برنامه، i.e. هیچ کامپایل مستقیمی از برنامه ها در فایل های اجرایی (*.exe) وجود ندارد.

در سال 2006، مایکروسافت ایجاد یک پلتفرم را اعلام کرد Microsoft Robotics Developer Studio(جزئیات بیشتر در مقاله ویکی پدیا). MRDS یک محیط توسعه اپلیکیشن مبتنی بر ویندوز برای رباتیک و شبیه سازی است. در حال حاضر مرتبط است نسخه مایکروسافت Robotics Developer Studio 4. امکانات عبارتند از: زبان برنامه نویسی گرافیکی VPL، رابط های مبتنی بر وب و ویندوز، محیط شبیه سازی VSE، دسترسی ساده به حسگرها، میکروکنترلر و محرک ربات، پشتیبانی از زبان برنامه نویسی C#، کتابخانه ها برای برنامه نویسی چند رشته ای و اجرای توزیع شده از برنامه های CCR و DSS، پشتیبانی از بسیاری از پلتفرم های رباتیک (Eddie، Boe - Bot، CoroBot، iRobot، LEGO NXT، و غیره).

LabVIEW (میز کار مهندسی ابزار مجازی آزمایشگاهی)یک محیط توسعه و پلت فرم برای اجرای برنامه ها است که به زبان برنامه نویسی گرافیکی "G" از National Instruments ایجاد شده است (برای جزئیات بیشتر به مقاله ویکی پدیا مراجعه کنید). LabVIEW در سیستم های اکتساب و پردازش داده ها و همچنین برای مدیریت اشیاء فنی و فرآیندهای تکنولوژیکی استفاده می شود. از نظر ایدئولوژیک، LabVIEW بسیار نزدیک به سیستم های SCADA است، اما بر خلاف آنها، بیشتر بر حل مشکلات نه چندان در زمینه سیستم های کنترل فرآیند خودکار (سیستم های کنترل خودکار) متمرکز است. فرآیند تکنولوژیکیتعداد در منطقه ASNI ( سیستم های خودکارتحقیق علمی). زبان برنامه نویسی گرافیکی "G" مورد استفاده در LabVIEW بر اساس معماری جریان داده است. دنباله اجرای عملگرها در چنین زبان هایی نه با ترتیب ظاهر شدن آنها (مانند زبان های برنامه نویسی ضروری) بلکه با وجود داده ها در ورودی این اپراتورها تعیین می شود. اپراتورهایی که مرتبط با داده نیستند به صورت موازی به ترتیب تصادفی اجرا می شوند. برنامه LabVIEW نامیده می شود و یک ابزار مجازی (به انگلیسی: Virtual Instrument) است و از دو بخش تشکیل شده است:

  • یک بلوک دیاگرام که منطق ابزار مجازی را توصیف می کند.
  • پانل جلویی که رابط کاربری ابزار مجازی را توصیف می کند.

نگاهی گذرا به مجموعه LEGO NXT Mindstorms 2.0.

کیت NXT از یک واحد کنترل، چهار سنسور و سه سروو تشکیل شده است. بلوک کنترل شامل:
  • 32 بیتی میکروکنترلر AVR 7 با 256 KB حافظه FLASH و 64 KB حافظه RAM.
  • میکروکنترلر AVR 8 بیتی با حافظه FLASH 4 کیلوبایتی و حافظه رم 512 بایتی.
  • ماژول رادیویی Bluetooth V 2.0;
  • پورت USB؛
  • 3 کانکتور برای اتصال سرووها؛
  • 4 کانکتور برای اتصال سنسورها؛
  • صفحه نمایش LCD با وضوح 99x63 پیکسل؛
  • بلندگو؛
  • کانکتور برای 6 باتری AA.
سنسورها (مجموعه های مختلف سنسور موجود در پیکربندی های مختلف):
  • سنسور اولتراسونیک؛
  • دو سنسور لمسی (سنسورهای لمسی)؛
  • سنسور تشخیص رنگ


شکل 1 - میکرو کامپیوتر NXT با سنسورها و محرک های متصل

و البته این مجموعه شامل انواع قطعات لگو در فرم فاکتور LEGO Technic است که محرک ها و سازه پشتیبانی از آنها مونتاژ می شود.


شکل 2 - قطعات در فرم فاکتور LEGO Technic

ما در حال نوشتن اولین برنامه هستیم.

بیایید اولین برنامه را بنویسیم. اجازه دهید، به طور کلاسیک، این نرم افزارمتن "Hello, World!" را نمایش می دهد. پیاده سازی به طور متناوب در MRDS 4 و NI LabVIEW انجام می شود، در این فرآیند ما ویژگی های هر پلت فرم را در نظر خواهیم گرفت.

ما ابتدا پلتفرم های MRDS 4 و NI LabVIEW را در مورد MRDS 4 نصب می کنیم، نصب باید در پوشه ای انجام شود که مسیر آن از حروف سیریلیک (حروف روسی) تشکیل نشده باشد. حسابنام کاربر نیز باید فقط از حروف لاتین باشد.

1. پلت فرم MRDS 4.
محیط VPL را راه اندازی کنید (منو شروع - همه برنامه ها - Microsoft Robotics Developer Studio 4 - زبان برنامه نویسی ویژوال). این محیطبه شما امکان می دهد برنامه های کاربردی را به زبان VPL توسعه دهید و در محیط مجازی VSE آزمایش انجام دهید. برنامه VPL نموداری است که از بلوک های به هم پیوسته تشکیل شده است. در پنجره ای که باز می شود، علاوه بر نوار فرمان و منوی استاندارد، 5 پنجره اصلی وجود دارد:
  1. فعالیت های پایه – شامل بلوک های اساسی است که عملگرهایی مانند ثابت، متغیر، شرط و غیره را پیاده سازی می کند.
  2. خدمات - شامل بلوک هایی است که دسترسی به عملکرد پلت فرم MRDS را فراهم می کند، به عنوان مثال، بلوک هایی برای تعامل با هر جزء سخت افزاری ربات، یا بلوک هایی برای فراخوانی کادر محاوره ای؛
  3. پروژه - نمودارهای موجود در پروژه و همچنین فایل های پیکربندی مختلف را ترکیب می کند.
  4. Properties - شامل ویژگی های بلوک انتخاب شده است.
  5. پنجره نمودارها - شامل مستقیم نمودار ( منبع) برنامه های کاربردی.

شکل 3 - محیط برنامه نویسی VPL

بیایید دنباله اقدامات زیر را انجام دهیم:

2. پلت فرم NI LabVIEW.
در این پلتفرم، همه چیز تقریباً یکسان اجرا می شود. بیایید محیط LabVIEW را راه اندازی کنیم. دو پنجره در مقابل ما ظاهر می شود، اولین پنل جلویی است که برای پیاده سازی رابط کاربری طراحی شده است ( ظاهردستگاه مجازی)، دومین بلوک دیاگرام برای پیاده سازی منطق برنامه است.


شکل 8 - Windows Environment LabVIEW

ما از پنجره Block Diagram استفاده خواهیم کرد. بیایید مراحل زیر را انجام دهیم:

خلاصه

  • ما یک بررسی انجام دادیم پلتفرم های نرم افزاریبرای توسعه برنامه های کاربردی میکرو کامپیوتر NXT.
  • ما به اصول اولیه توسعه اپلیکیشن در پلتفرم های MRDS 4 و NI LabVIEW نگاه کردیم.
  • با رابط کاربری محیط آشنا شدیم.
در مقالات بعدی به طور مستقیم به برنامه نویسی NXT خواهیم پرداخت. مطالب آموزشی زیادی به صورت آنلاین برای محیط LabVIEW وجود دارد، اما برای VPL بسیار کمتر. مطالعه راهنمای مرجع هر دو پلتفرم را به شدت توصیه می کنم (دانش زبان انگلیسی الزامی است)، در این راهنماها نمونه های زیادی وجود دارد که بدون داشتن NXT قابل پیاده سازی هستند و همچنین کتاب های زیر:
  • برنامه نویسی میکرو کامپیوتر NXT در LabVIEW - Lidiya Beliovskaya، Alexander Beliovsky،
  • Microsoft Robotics Developer Studio. الگوریتم های کنترل ربات برنامه نویس - واسیلی گای.
در مقالاتم فقط پروژه هایم را شرح خواهم داد، زیرا... من اهمیتی در بازنویسی اطلاعات از یک منبع به منبع دیگر نمی بینم. من هر گونه انتقاد سازنده را می پذیرم و به هر سؤالی در مورد پلتفرم های بررسی شده پاسخ می دهم. پیشاپیش از شما متشکرم!

اوج ایجاد لگو، انتشار مجموعه های قابل برنامه ریزی ساخت و ساز LEGO Mindstorms Ev3 بود. این اسباب بازی برای کودکان بالای ده سال در نظر گرفته شده است.

اکنون mindstorms ev3 را می توان بدون هیچ مشکلی در فروشگاه های خاص یا از طریق اینترنت خریداری کرد. آنها به راحتی برنامه ریزی می شوند تا اقدامات خاصی را انجام دهند.

راه اندازی محیط برنامه نویسی

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

سیستم مورد نیاز رایانه شخصی برای کار با lego mindstorms ev3:

  • سیستم عامل Windows XP، 7، 8 یا MacOs (10.6-10.8)؛
  • 2 گیگابایت رم و 750 مگابایت فضای دیسک.

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

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

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

یک منو روی صفحه وجود دارد که شامل برگه ها می شود:

  • عمل؛
  • مدیریت اپراتور؛
  • سنسور؛
  • عملیات داده؛
  • بلوک های من و غیره

با استفاده از این منو می توانید ربات را برای انجام اعمال مختلف برنامه ریزی کنید. به عنوان مثال، در زبانه ای که وظیفه عملکرد مکانیسم های مختلف را بر عهده دارد، می توانید حالت موتور را برای حرکت، توقف یا استارت تنظیم کنید. در آنجا می توانید زمان، کمیت و زاویه چرخش را تنظیم کنید.

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

در اینجا می توانید دستورات زیر را به برنامه بدهید:

  • شروع به انتظار
  • تکرار چرخه؛
  • سوئیچ بین بلوک ها؛
  • چرخه را پایان دهید

Lego mindstorms ev3 چندوظیفه ای است، توالی دستورات متعددی را در خود جای می دهد. شما می توانید نه تنها اقدامات خود را در برنامه، بلکه دنباله اجرای آنها را نیز برنامه ریزی کنید.

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

لگو طوفان های ذهنی آموزش و پرورش EV3: برنامه نویسی Robohand (Robohand H25):