Kodowanie za pomocą inteligentnych silników VEX IQ

Inteligentny silnik VEX IQ ma wiele funkcji do wykorzystania podczas kodowania w VEXcode IQ. Może się to przydać przy kodowaniu ramion, pazurów i wlotów, a także układów napędowych i innych mechanizmów utworzonych przy użyciu VEX IQ. Zrozumienie, w jaki sposób można kodować silniki, pomoże złagodzić problemy, takie jak przeciąganie projektów lub nieprawidłowe działanie silników.

Enkoder silnika

Inteligentny silnik VEX IQ nie tylko zamienia energię elektryczną w energię mechaniczną, jak większość silników, ale ma także funkcje, których nie ma większość silników, co czyni go „inteligentnym”. Jedną z jego głównych cech jest koder kwadraturowy. Enkoder ten montowany jest wewnątrz silnika w celu śledzenia prędkości i/lub położenia wału silnika.

Raporty z enkodera VEX IQ Smart Motor pozwalają dowiedzieć się:

  • Kierunek obrotu silnika (do przodu/do tyłu lub otwarty/zamknięty)
  • Położenie silnika oraz wielkość obrotu i położenia silnika (w obrotach lub stopniach)
  • Prędkość obrotu silnika (na podstawie położenia enkodera w czasie)

Ponieważ enkoder raportuje stany silnika, można je wykorzystać w obliczeniach zakulisowych, aby wiele poleceń ruchu i wykrywania działało w VEXcode IQ.

Kodowanie poszczególnych silników

Zanim zaczniesz kodować poszczególne inteligentne silniki w VEXcode IQ, musisz skonfigurować silnik. Poszczególne silniki są często używane w dodatkowych mechanizmach, takich jak wloty, ramiona i pazury. Jednak wszystkie informacje nadal mają zastosowanie do innych mechanizmów wykorzystujących indywidualne silniki.

image7.png

Wykonaj kroki opisane w tym artykule , aby skonfigurować swój indywidualny silnik w VEXcode IQ.

Po skonfigurowaniu pojedynczego silnika polecenia sterujące tym silnikiem pojawią się w Przyborniku. Zauważysz, że istnieją różne typy poleceń: oczekujące i nieczekające.

Polecenia oczekiwania a polecenia nieoczekiwania

Należy pamiętać, że wszystkie obrazy tutaj przedstawiają bloki. Wszystkie te projekty można przebudować w Pythonie lub C++ i zawierać tę samą funkcjonalność co bloki.

obraz3.png

Oczekujące polecenia blokują kontynuację projektu do czasu zakończenia działania. Należą do nich polecenia takie jak [Obróć o] i [Obróć do pozycji].

Pokazany tutaj projekt wykorzystuje szablon Clawbot (2-silnikowy) i wszystkie polecenia oczekują. Zatem w połączeniu szeregowym silnik kłowy zamknie się o 90 stopni, robot pojedzie do tyłu, a następnie ramię obróci się do pozycji 180 stopni.

obraz6.png

W przeciwieństwie do poleceń, które nie oczekują. Polecenie inne niż oczekiwanie wykona zachowanie na czas nieokreślony lub do momentu otrzymania polecenia zmiany na inne zachowanie. Należą do nich polecenia takie jak [Spin].

Pokazany tutaj projekt wykorzystuje BaseBota z dodanym wlotem. Tutaj silnik dolotowy zacząłby się obracać. Polecenie [Wait] jest poleceniem oczekiwania, więc wlot będzie się obracał aż do upływu 2 sekund, a następnie przejdzie do następnego polecenia w projekcie, którym jest polecenie [Stop]. Wtedy silnik przestałby się obracać.

Limity czasu silnika

Kodując silnik jako część ramienia lub pazura, ważne jest, aby pamiętać o różnicy między blokami oczekującymi i nieoczekującymi oraz o tym, jak będą one wpływać na ruch robota. Limity czasu silnika umożliwiają ustawienie limitu czasu, po którym silnik osiągnie zamierzoną pozycję docelową. Jeżeli po upływie czasu nie osiągnie tej pozycji, silnik przestanie się obracać i projekt przejdzie do następnego polecenia.

obraz2.png

W tym przykładzie limit czasu silnika ustawiono na 2 sekundy. Jeśli łapa nie zbliży się do 90 stopni w ciągu 2 sekund, silnik przestanie się obracać po 2 sekundach, a następnie przejdzie do następnego polecenia i pojedzie do przodu.

obraz4.png

Jeśli nie masz pewności, jak daleko przesunąć silnik, skorzystaj z panelu czujników. Deska rozdzielcza podaje położenie silnika w stopniach i obrotach, więc gdy poruszasz silnikiem (jak otwieranie i zamykanie pazura), liczby się zmieniają. Użyj tego testu, aby określić, ile stopni lub obrotów potrzeba, aby zamknąć pazur, podnieść ramię, zakręcić wlotem itp.

Zapoznaj się z tymi artykułami, aby dowiedzieć się, jak korzystać z panelu czujnika.

Kodowanie inteligentnych silników jako części układu napędowego

Zanim zaczniesz kodować układ napędowy w VEXcode IQ, musisz skonfigurować układ napędowy, łącznie z używanymi silnikami. Silniki są skonfigurowane w układzie napędowym, aby zapewnić sterowanie nimi za pomocą tych samych poleceń, jak [Napęd] i [Napęd dla].

Polecenia oczekiwania i nieoczekiwania

Podczas kodowania układu napędowego dostępne są polecenia oczekiwania i braku oczekiwania umożliwiające sterowanie ruchem robota.

obraz1.png

Oczekujące polecenia blokują kontynuację projektu do czasu zakończenia działania. Należą do nich polecenia takie jak [Jedź do] [Skręć w stronę] i [Skręć w kierunku].

Pokazany tutaj projekt wykorzystuje szablon Clawbot (2-silnikowy) i wszystkie polecenia oczekują. Zatem szeregowo robot przejechałby do przodu 200 milimetrów, a następnie skręcił w prawo, korzystając z układu napędowego.

image8.png

W przeciwieństwie do poleceń, które nie oczekują. Polecenie inne niż oczekiwanie wykona zachowanie na czas nieokreślony lub do momentu otrzymania polecenia zmiany na inne zachowanie. Należą do nich polecenia takie jak [Drive].

Projekt pokazany tutaj wykorzystuje BaseBota. W tym przypadku robot jechał do przodu w nieskończoność, aż do naciśnięcia wyłącznika zderzaka. Następnie projekt przejdzie do następnego polecenia, a robot zatrzyma jazdę i skręci w prawo o 90 stopni.

For more information, help, and tips, check out the many resources at VEX Professional Development Plus

Last Updated: