Как да програмираме мотора да се движи безкрайно Pro Preview

На всички ни се е налагало да програмираме някой мотор да се движи безкрайно. Обикновено използваме опцията за неограничено движение в комбинация с блокче за изчакване. Но когато искаме моторът да се движи безкрайно, без да чакаме за сензор, само опцията за неограничено движение не ни върши работа. С какво да я комбинираме? Имаме ли други варианти?

Необходимо е да се абонирате за FLLCasts.com, за да достъпите това видео

Абонирай се

  • #1249
  • 02 May 2019

Преди да разкажем това, трябва да обясним защо 2. работи. Неограниченото движение на мотора работи "до второ нареждане" или до следваща команда. За това ако го сложим само него в програмата, тя ще свърши веднага. Така моторът няма да се движи, защото второто нареждане е край на програмата. Така можем да сложим безкрайно движение преди цикъл и тогава мотора ще се върти безкрайно. Второ нареждане няма да дойде никога, защото сме задали на робота "чакай безкрайно".
Следващите няколко варианта представляват различни начини да чакаме безкрайно.

Първите два варианта са най-често използвани. Също така програмата е възможно най-лесна за разчитане. Препоръчваме да ползвате тях, освен ако не искате да покажете интересен трик или освен ако програмата ви не изисква друго.

  1. Използваме безкраен цикъл, който ни дава безкрайността, и неограничено движение, което ни дава движението.content picture
  2. Същото като първия вариант, но вместо да се слага неограниченото движение вътре в цикъла, го слагаме преди него.content picture.
  3. Безкрайното чакане може да се случи с условие, което не може да се случи. Например да кажем на мотор, който не е включен да направи ротации или градуси. Това не работи със секунди или неограничено движение, тъй като това са условия, които не изискват движение на мотора.content picture
  4. Друг вариант за условие, което не може да се изпълни, е да сложим блокче за чакане на сензор, който не е включен. Това работи и ако използваме порт на сензор, който е включен, но чакаме друг сензор.
    Пример: Имаме включен сензор за допир на порт 1 и казваме движи мотора докато сензорът за разстояние на порт 1 не покаже равно на 50 сантиметра. Важно е да проверяваме за равенство, защото някои стойности на сензорите съвпадат. Например натиснат сензор за допир е същото като сензор за разстояние даващ 255 сантиметра.content picture
  5. Хитър начин да използваме 4. е като използваме ротационен сензор на същия мотор, който движим, и му казваме да чака стойност, която никога няма да се достигне. Например да кажем мотора да се движи напред докато не стигне -1 градуса.content picture
  6. Последният вариант е полезен за програми, в които искате да направите някаква проверка на определени интервали на въртене на мотора. Използваме въртене за ротации или градуси в цикъл, но за да не се получава постоянното спиране, променяме опцията за спирачка, на плавно спиране.content picture

Всички тези начини работят и с двата вида мотори и с всички блокчета за движение.

Курсове и занятия включващи този Урок

Този Урок е използван в следните курсове и занятия.

Image for Ниво З - "Корабоплаване" - Роботика с LEGO
  • 24
  • 2:49
  • 107
Image for Занятие 3 - Симулация на буря
  • 3
  • 5
  • 12
  • 3d_rotation 1
Image for Роботика с LEGO - Ниво 2.5 - Морски Пътешествия
  • 42
  • 3:52
  • 133
Image for Занятие 7 - Самолетоносач
  • 6
  • 4
  • 11
  • 3d_rotation 1