نحوه راه اندازی گوشی های هوشمند و رایانه های شخصی. پرتال اطلاعاتی

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

چگونه مانند یک ربات برقصیم؟



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

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

تکنیک رقص ربات

  1. قبل از یادگیری رقص، موسیقی ریتمیک را انتخاب کنید.
  2. ربات یک ماشین است. حالات چهره را از خود دور کنید، به صورت خود نگاهی سرد و معطوف به یک نقطه بدهید.
  3. بدن خود را سفت کنید و بالای سر خود را به سمت بالا بکشید، پاها را به اندازه عرض شانه باز کنید، انگشتان پا به طرفین باشد، دست ها پایین باشد.
  4. حرکت سر را در نظر بگیرید. تصور کنید که در یک عکس هستید و باید به گوشه های آن نگاه کنید. با یک حرکت صاف، شروع به چرخاندن سر خود به سمت راست کنید، سپس وضعیت را ثابت کنید، به سمت پایین ثابت کنید، به سمت چپ ثابت کنید و با بالا بردن سر خود حرکت را به پایان برسانید.
  5. یادگیری توقف با تنفس عمیق از بینی، ریه های خود را با هوا پر کنید و هنگامی که قفسه سینه شما بالا آمد، منجمد شوید و پس از چند ثانیه هوا را بیرون دهید. این حرکت را چندین بار تکرار کنید.
  6. بعد، تصور کنید که شما بالونی هستید که با هوا پر می شود. در مرحله 5 دستورالعمل، دستان خود را به هم وصل کنید. تصور کنید که شما یک عروسک خیمه شب بازی هستید و رشته های شما در حال کشیده شدن است. موقعیت دست های خود را تغییر دهید، بدن خود را به داخل بچرخانید طرف های مختلف. حرکات را به آرامی و با مکث انجام دهید. حرکت را با صاف ایستادن و قلاب کردن دست ها به هم به پایان برسانید، انگار پشت میز نشسته اید.
  7. بدون برداشتن حالتی که دست های خود را به هم گره کرده اید، به سمت چپ بچرخید و بدن خود را خم کنید. می توانید به آرامی بدن خود را به سمت ضربان حرکت دهید، سپس بازوهای خود را به طرفین صاف کنید و آنها را به عقب تا کنید.
  8. بعد، قفسه سینه خود را کار کنید. سر خود را در جای خود ثابت کنید و بدن خود را بالا و پایین خم کنید.
  9. حرکت بعدی یک چرخش است. هنگام چرخش به راست، روی پنجه پای چپ خود بایستید و زانوی خود را کمی خم کنید. هنگام چرخش به چپ، همین کار را با پای راست خود انجام دهید. شانه های خود را همراه با پاهای خود بچرخانید.
  10. بیایید نوبت های نیمه نشسته را تمرین کنیم. زانوهای خود را خم کنید و بدن خود را به چپ و راست بچرخانید، انگار روی یک دایره چرخان قرار دارید.
  11. عنصر بعدیشامل حرکت بازوها و بدن است. به سمت چپ بپیچید و تصور کنید که می خواهید جعبه را بلند کنید. با استفاده از بازوهای مستقیم، یک جعبه خیالی را بگیرید، صاف بچرخید، موقعیت را ثابت کنید، سپس به سمت چپ بچرخید و جعبه را پایین قرار دهید.
  12. بیا موج بزنیم در این حرکت پلاستیسیته و انعطاف پذیری بدن مهم است. موج را با دست راست، سپس شانه، هسته بدن خود را درگیر کرده و با یک موج روی بازوی چپ خود پایان دهید. همچنین انجام یک موج معمولی با استفاده از شکم خود را تمرین کنید.
  13. حرکات توصیف شده را چندین بار با موسیقی جلوی آینه تمرین کنید. با ترکیب عناصر به یک رقص می رسید. پس از تمرین حرکات می توانید آنها را به ترتیب زمانی به سلیقه خود بچینید. با عناصر رقص خود بیایید.

نکته برای مبتدیان

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

درس آزمایشگاهشماره 1 "برنامه نویسی"

میکروکنترلر NXT Brick"

معرفی

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

یکی از محبوب ترین کیت های رباتیک در جهان LEGO Mindstorms NXT است. به طور مشترک با کارمندان موسسه فناوری ماساچوست توسعه یافته است و از مجموعه بزرگی از قطعات ساختاری (بیش از 600 قطعه)، 3 سروو، مجموعه ای از سنسورها و یک میکرو کامپیوتر NXT Brick تشکیل شده است. این کیت برای بسیاری از رویدادهای روباتیک در جهان، از جمله مسابقات WRO (المپیاد جهانی رباتیک) اساسی است. محیط ارائه شده با کیت برنامه نویسی بصری NXT-G که توسط National Instruments بر اساس محصول LabView آن ایجاد شده است.

بنابراین، کیت NXT یک زمین آزمایش عالی برای اجرای مجموعه ای از کارهای آزمایشگاهی بر اساس آن هنگام مطالعه رباتیک است.

هدف درس

آشنایی با قابلیت های اصلی میکروکامپیوتر رباتیک NXT Brick، واحدهای کنترل آن، سیستم منو، آشنایی با محیط برنامه نویسی بصری NXT-G، انجام برنامه نویسی توابع اساسی: نمایش روی صفحه، پخش صداها.

ورزش

کنترل‌های NXT Brick را کاوش کنید سیستم منوی NXT Brick را کاوش کنید

هدف پورت های NXT Brick را کاوش کنید

محیط برنامه نویسی NXT-G را راه اندازی کنید

با پالت اولیه ابزار NXT-G آشنا شوید

با پالت توسعه یافته ابزار NXT-G آشنا شوید برنامه های زیر را بنویسید:

    • یک قطعه صدا را از یک فایل منتشر می کند

      یک صدای واحد از یک زمین خاص تولید می کند

    • یک بار یک سری صدا از فایل ها منتشر می کند

      یکبار یک سری صداهایی با تن های مختلف منتشر می کند (ملودی را برنامه ریزی می کنیم)

      یک سری صداهای پیوسته با تن های مختلف تولید می کند (بلوک "چرخه")

      تصویری را از یک فایل نمایش می دهد

      متن را در یک خط نمایش می دهد

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

پیشرفت کار

ظاهرمیکرو کامپیوتر NXT Brick در شکل نشان داده شده است. 1. تغذیه توسط 6 باتری AA. این دستگاه مجهز به نمایشگر LCD با قابلیت نمایش متن و گرافیک می باشد. برای پیمایش در بخش‌های منو، از کلیدهای روشن استفاده کنید پنل جلویی: نارنجی خوب، خاکستری تیره - لغو. بلوک می تواند صداها را هم از فایل های از پیش ضبط شده و هم از صداهای مختلف پخش کند. اتصال به کامپیوتر از طریق انجام می شود رابط USB. یک ماژول وجود دارد اتصال بلوتوث، که به شما امکان می دهد هم بلوک را از طریق رایانه کنترل کنید و هم بلوک ها را به یکدیگر متصل کنید. NXT Brick دارای سه پورت برای محرک‌ها با برچسب A، B و C (معمولاً B و C برای حرکت، A برای دستکاری‌کننده)، و چهار پورت برای سنسورها با برچسب اعداد است.

برنج. 1. آجر NXT

NXT Brick را می توان با استفاده از محیط برنامه نویسی بصری NXT-G برنامه ریزی کرد. ظاهر محیط با یک پالت استاندارد ابزار در شکل 1 نشان داده شده است. 2. در اینجا برنامه از بلوک هایی که روی پرتوهای LEGO قرار گرفته اند ساخته شده است. استفاده از حلقه ها، پرش های شرطی، تعامل با سنسورها، محرک ها، کنترل فرستنده گیرنده بلوتوث، نمایش خروجی و پخش صداها مجاز است.



برنج. 2. رابط محیط برنامه نویسی بصری NXT-G

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

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

دانش آموزان باید تکالیف آزمایشگاهی را تکمیل و گزارش تهیه کنند.

درس آزمایشگاه شماره 2 "تکنیک های اساسی برای کنترل حرکت ربات متحرک"

هدف درس

تسلط بر مهارت های عملی در ساخت ربات متحرک، مهارت های برنامه نویسی عملی انواع مختلفحرکات ربات متحرک

ورزش

بر اساس طرح پیشنهادی، طرح یک ربات متحرک را جمع آوری کنید برنامه های زیر را بنویسید:

    • حرکت مستقیم 1 متر جلو

      حرکت در "میدان"

      حرکت دایره ای

      حرکت شکل 8

پیشرفت کار

طراحی یک ربات متحرک را جمع آوری کنید. طرح نهایی در شکل 3 نشان داده شده است. این طرح یک طرح بندی معمولی برای روبات های متحرک است. دو چرخ محرک حرکت را فراهم می کند، یک چرخ گردان چرخش را ممکن می کند. ربات با تغذیه می چرخد ظرفیت های مختلفدر موتورهای راست و چپ


برنج. 3. گاری ربات متحرک با چرخ دوار

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



برنج. 4. نمای پایین. روش نصب موتور

موتورهای این گاری با استفاده از پرتوهای مستقیم به پایین میکروکامپیوتر متصل می شوند (شکل 4).

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

پس از مونتاژ ربات متحرک، باید تمامی کارها را انجام دهید و گزارش تهیه کنید.



درس آزمایشگاه شماره 3 "مطالعه سنسورهای لمسی Mindstroms NXT"

هدف درس

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

ورزش

ربات را به ضربه گیر بر اساس حسگرهای لمسی مجهز کنید برنامه های زیر را بنویسید:

    • حرکت مستقیم به جلو تا لحظه برخورد با دیوار، سپس حرکت به عقب، چرخش تصادفیراست یا چپ، به حرکت ادامه دهید

ربات را با سنسور فاصله تقویت کنید برنامه های زیر را بنویسید:

    • حرکت پیش خطی به جلو یا تا لحظه برخورد با مانع، یا زمانی که کمتر از 20 سانتی متر تا مانع باقی مانده است، پس از آن حرکت به عقب، چرخش تصادفی به راست یا چپ، ادامه حرکت

گزارشی با اسکرین شات از برنامه های نوشته شده تهیه کنید

کیت LEGO Mindstorms NXT دارای مجموعه حسگرهای زیر است: دو حسگر لمسی، یک سنسور فاصله اولتراسونیک و یک سنسور رنگ. همه آنها دارند نمای استانداردبست ها


برنج. 6. حسگر لمسی NXT

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


برنج. 7. "خالی" برای سپر



برنج. 8. سپر

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


برنج. 9. ربات متحرک با سپر

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


برنج. 10. سنسور فاصله اولتراسونیک

سنسور فاصله NXT از روش اولتراسونیک برای تعیین فاصله تا یک جسم استفاده می کند. دارای امیتر و میکروفون. به طور موثر در فاصله 10 تا 100 سانتی متر از جسم کار می کند.


برنج. 11. ربات متحرک با سپر و سنسور فاصله اولتراسونیک.

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

بر اساس نتایج کار لازم است گزارشی صادر شود.

درس آزمایشگاه شماره 4 "حرکت ربات متحرک در امتداد یک خط سیاه"

هدف درس

با سنسور نور و رنگ کیت NXT آشنا شوید، بر الگوریتم های اولیه حرکت در امتداد خط مشکی مسلط شوید.

ورزش

بر اساس طرح پیشنهادی، طراحی یک ربات متحرک را مونتاژ کنید (2 گزینه: یک ربات در یک سکوی ردیابی، یک ربات روی یک سکوی چرخدار با یک چرخ دوار)

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

    • حرکت در امتداد خط سیاه با استفاده از "الگوریتم کلاسیک"

      با استفاده از کنترلر P در امتداد خط سیاه حرکت کنید

      حرکت در امتداد خط سیاه با استفاده از کنترلر PI

      حرکت در امتداد خط سیاه با استفاده از کنترلر PID گزارشی با اسکرین شات از برنامه های نوشته شده تهیه کنید

پیشرفت کار

برای انجام این کار به یک سنسور رنگی NXT نیاز دارید. سنسور رنگ می تواند در دو حالت کار کند: سنسور رنگ و سنسور نور. برای حل مشکل حرکت در امتداد یک خط، حالت سنسور نور مناسب تر است. در این مورد، مقدار از 0 تا 255 متغیر است و مربوط به روشنایی نور منعکس شده از جسم روشن است. برای حرکت در امتداد یک خط سیاه، توصیه می شود آن را با یک LED قرمز روشن کنید.


برنج. 12. حسگر رنگ NXT.

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

برنامه "کلاسیک" برای حرکت ربات در امتداد خط سیاه در شکل نشان داده شده است. 13.

این اتفاق بیفتد.



برنج. 13. ساده ترین الگوریتم "کلاسیک" برای حرکت در امتداد خط سیاه.

برنامه را برای حرکت خط با کنترلر P، کنترل کننده PI و کنترل کننده PID تغییر دهید.

پس از اتمام، یک گزارش تهیه کنید.

کتابشناسی - فهرست کتب

    مبانی مکاترونیک: تک نگاری / یو. ام. اوسیپوف [و همکاران] آژانس فدرال آموزش، تومسک دانشگاه دولتیسیستم های کنترل و الکترونیک رادیویی - Tomsk: TUSUR، 2007. - 162 ص (90 نسخه در کتابخانه TUSUR)

    Yurevich E.I., Ignatova E.I. اصول اساسی مکاترونیک. مکاترونیک، اتوماسیون، کنترل، شماره 3، 2006. (5 نسخه در کتابخانه TUSUR)

    یورویچ E.I. مبانی رباتیک. کتاب درسی. – سن پترزبورگ: BHV-Petersburg، 2005.

    م.شاهین پور. دوره رباتیک. مطابق. از انگلیسی - م.: میر، 1990.

یکی از وظایف کلیدیرباتیک متحرک در مورد یافتن مسیری برای حرکت و بهینه سازی آن است. با حرکت در محل کار، ربات باید دائماً محیط اطراف خود را ارزیابی کند، موقعیت خود و موقعیت اشیاء اطراف خود را تعیین کند. بسیاری وجود دارد به طرق مختلفکه به کمک آن ربات می تواند موقعیت خود را مشخص کند و مسیری بین نقاط مقصد بسازد. هنگام حرکت در خیابان، از فناوری استفاده می شود ناوبری ماهواره ای، و اشیاء اطراف با استفاده از دوربین ها یا فاصله یاب شناسایی می شوند. در مورد حرکت در فضای بسته با کمک دوربین ها و مسافت یاب ها مدل مجازی از فضا ساخته می شود که بر اساس آن ربات در آینده هدایت می شود. روش‌های فوق ماهیت کلی دارند و در موقعیت‌های دلخواه قابل اجرا هستند، اما به همین دلیل پیاده‌سازی آن‌ها بسیار دشوار است و هنوز به طور گسترده در زندگی روزمره مورد استفاده قرار نمی‌گیرند.


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

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

کارگاه قبلی وسايل نقليهگاری هایی بودند که روی ریل حرکت می کردند. با رشد علم و فناوری، آنها با ماشین های رباتیک - روبات های متحرک جایگزین شدند انواع متفاوتو برای کارهای مختلف، و ریل های گذاشته شده در امتداد کارگاه با شبکه ای از خطوط راهنما که روی زمین کشیده شده بود، جایگزین شدند.


ربات‌های متحرک که در کارگاه‌های کنار خط حرکت می‌کنند، مانند ربات‌های کار آزمایشگاهی قبلی، مجهز به انواع مختلفی هستند دستگاه های لمسیبرای درک محیط: سنسورهای IR، دوربین ها، سنسورهای امنیتی و غیره. اما برخلاف روبات‌هایی که قبلاً صحبت شد، ربات های واقعیدر شرایط آزمایشگاهی کار نکنید - اغلب خط راهنما ممکن است آسیب دیده یا در پشت برخی شی پنهان شود، برخی از مسیرها می توانند قطع شوند یا تا حدی قطع شوند.


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

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

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

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



برای تشخیص تقاطع خطوط راهنما می توان از روش های مختلفی استفاده کرد، به عنوان مثال، دوربین ها اغلب برای چنین اهدافی استفاده می شوند. اما پردازش تصویر نیاز به عملکرد زیادی دارد کامپیوتر روی بردربات، بنابراین چنین راه حل هایی همیشه قابل اجرا نیستند. این مقاله روشی را برای کنترل یک ربات متحرک با استفاده از اطلاعات بدست آمده از آرایه ای از حسگرهای IR مورد بحث قرار می دهد. با استفاده از آرایه ای از هفت سنسور S1-S7، تعیین محل تقاطع خطوط ممکن می شود. از آنجایی که گزینه‌های بسیار زیادی برای محتمل‌ترین تقاطع‌ها وجود دارد، باید برنامه کنترل ربات را روی حداکثر تعداد ممکن گزینه‌های قابل قبول، که بر اساس خوانش سنسورهای IR تعیین می‌شود، پیکربندی کنید.

انجام مانور در نزدیکی تقاطع ها

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

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

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


به روشی مشابه، می‌توانید برنامه‌ای برای حرکت ربات در مسیرهای پیچیده‌تر ایجاد کنید. برای این کار فقط باید ترتیب حرکت ربات را در تقاطع های مسیر تنظیم کنید.

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


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

توابع فوق را می توان به دو نوع اصلی تقسیم کرد:

1) عملکردهایی که ربات را در تقاطع های T شکل و L شکل می چرخانند.

2) توابعی که با آنها ربات بدون هیچ اقدامی به نزدیکترین تقاطع حرکت می کند.

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

تابع l_node_l_turn به گونه ای طراحی شده است که در نزدیکترین تقاطع چپ به چپ بپیچد. این تابع از دو تابع دیگر تشکیل شده است: l_node_forward که وظیفه حرکت به نزدیکترین تقاطع L شکل با گردش به چپ را بر عهده دارد و pivot_left که وظیفه گردش به چپ را بر عهده دارد.

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


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


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


تابع بالا فرآیند تشخیص چرخش L به چپ را توصیف می کند. طبق الگوریتم فوق، چنین نقطه مسیری به عنوان بخشی از مسیری است که در آن حسگرهای IR شماره 1، شماره 2، شماره 3 فعال می شوند.

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


اقداماتی برای بهبود دقت کار برنامه کنترلهنگام توسعه یک سیستم کنترل بسیار مهم هستند. بی توجهی به آنها می تواند منجر به عملکرد نادرستالگوریتم و کل سیستم رباتیک به عنوان یک کل.

انجام مانورهای پیچیده

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


چگونه سیستم بیشترکنترل شامل توضیحاتی از چنین مانورهایی است، مسیرهای پیچیده تری که ربات بتواند بر آن غلبه کند. برای مثال مشابه مسیری که در شکل زیر نشان داده شده است.


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

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

هر یک از این توابع شامل یک مسیر تابع تابع - diag_corner_forward، I_curve_branch_forward و یک تابع چرخشی در جهت مورد نیاز - pivot_left، pivot_right است. حرکت ربات در امتداد خط با زاویه با استفاده از سنسورهای IR شماره 1 و شماره 7 کنترل می شود که موقعیت ربات را بالای خط تعیین می کند. اگر ربات بالای خط باشد، تابع follow_line راه اندازی می شود که به کمک آن ربات موقعیت خود را نسبت به خط ردیابی می کند و با استفاده از سنسور IR شماره 4 روی آن متمرکز می شود.

هدف اصلی خط زیر حرکت در امتداد آن با مرکز روبات در بالای خط است. از آنجایی که مرکز ربات با سنسور IR شماره 4 منطبق است، تابع follow_line به دنبال به حداقل رساندن انحراف سنسورهای IR شماره 3 و 5 نسبت به خط است.


اصل این فرآیندبه انجام یکسری شرایط ختم می شود:

1) اگر سنسور IR شماره 4 بالای خط باشد، ربات مستقیماً با حداکثر سرعت حرکت می کند.

2) اگر یکی از سنسورهای IR شماره 3 یا 5 خطی را تشخیص دهد، ربات به جهت مخالفبا حداقل سرعت

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

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

تابع change_speed وظیفه تغییر سرعت ربات را بر عهده دارد که سرعت چرخش درایوها را به صورت درصدی از حداکثر مقدار سرعت تعیین می کند.


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


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

هدف اصلی توسعه دهنده سیستم های رباتیک اطمینان از عملکرد با کیفیت بالا و بدون مشکل در حین کار است. برای این، شما می توانید چیزهای زیادی را قربانی کنید - بهره وری، شدت منابع و غیره، از جمله سرعت.

نتیجه

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


هدف این کار نشان دادن این است که نه تنها عوامل خارجیبر کیفیت کار یک ربات خاص تأثیر می گذارد. خود ربات که بر اساس یک برنامه کنترل عمل می کند، می تواند تأثیر قابل توجهی در روند تکمیل کار تعیین شده داشته باشد.

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


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

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

15.01.2012, 18:51

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

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

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

نمودار بالا بلافاصله نشان می دهد که دقیقاً چگونه رفتار موتورها باید در برنامه تغییر کند.حالا نوشتن برنامه نباید مشکل باشد.باید با انتخاب سنسوری که ابتدا نظرسنجی می شود شروع کنید. ندارد واجد اهمیت زیاد، پس بگذارید بماند. تعیین اینکه آیا بالای یک سطح روشن است یا تاریک لازم است:
این عمل هنوز به شما اجازه نمی دهد که بگویید ربات باید به کدام سمت برود. اما حالت های ذکر شده در بالا را به دو گروه تقسیم می کند: (I, II) برای شاخه بالایی و (III, IV) برای شاخه پایین. اکنون هر گروه دارای دو حالت است، بنابراین باید یکی از آنها را انتخاب کنید. اگر به دو حالت اول I و II دقت کنید، آنها در موقعیت سنسور سمت راست متفاوت هستند - در یک مورد بالای یک سطح روشن است، در دیگری - بالای سطح تاریک. این چیزی است که انتخاب اقدامی را که باید انجام شود تعیین می کند:
اکنون می توانید بلوک هایی را وارد کنید که رفتار موتورها را مطابق جداول بالا تعریف می کنند: شاخه بالایی وضعیت تو در تو ترکیب "هر دو سنسور در نور" را تعریف می کند ، بالا - "چپ در روشنایی ، سمت راست در تاریکی":
شاخه پایینی شرایط اصلی مسئول گروه دیگری از شرایط III و IV است. این دو حالت همچنین در سطح نوری که حسگر سمت راست تشخیص می دهد با یکدیگر تفاوت دارند. این بدان معنی است که انتخاب هر یک از آنها را تعیین می کند:
دو شاخه حاصل با بلوک های حرکتی پر می شود. شاخه بالا مسئول حالت "چپ در تاریکی، راست در روشن" است و شاخه پایین مسئول "هر دو سنسور در تاریکی" است.
لازم به ذکر است که این طرح تنها نحوه روشن کردن موتورها را بسته به قرائت سنسورها در یک مکان مشخص در میدان مشخص می کند؛ طبیعتاً پس از یک لحظه برنامه باید بررسی کند که آیا قرائت ها تغییر کرده است تا تنظیم شود. رفتار موتورها بر این اساس، و پس از یک لحظه دوباره، دوباره، و غیره .d. بنابراین، باید در حلقه ای قرار گیرد که این بررسی مکرر را ارائه دهد:

بسیار زیبا برنامه سادهدر صورت پیکربندی صحیح، سرعت حرکت نسبتاً بالایی را برای ربات در امتداد خط بدون پرواز فراتر از محدوده آن فراهم می کند. حداکثر سرعت، بیشینه سرعتهنگام حرکت در حالات I و IV و همچنین تنظیم بهترین راهترمز در حالت های II و III - هرچه پیچ ها در بزرگراه تندتر باشد، ترمز باید "سخت تر" باشد - سرعت باید سریعتر کاهش یابد و بالعکس - با پیچ های نرم ترمزگیری با خاموش کردن برق کاملاً امکان پذیر است. یا حتی با کاهش کلی سرعت.

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



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

مشکل 1

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

مشکل 2

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

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