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.

Menu urządzeń VEXcode IQ z listą podłączonych urządzeń. Silnik Smart Motor jest podświetlony, co oznacza, że po jego wybraniu można go skonfigurować.

Wykonaj czynności opisane w tym artykule aby skonfigurować 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.

Projekt bloków VEXcode IQ wykorzystuje polecenia oczekiwania, aby poruszać silnikiem pazura, potem robotem, a potem silnikiem ramienia, jeden po drugim. Opis projektu brzmi: Po uruchomieniu obróć ClawMotor o 90 stopni. Następnie przejedź 200 mm wstecz i obróć ArmMotor o 180 stopni.

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.

Projekt bloków VEXcode IQ wykorzystuje polecenia bez oczekiwania, aby obrócić silnik dolotowy na dokładnie 2 sekundy. Opis projektu brzmi: Po uruchomieniu włącz silnik IntakeMotor, odczekaj 2 sekundy, a następnie zatrzymaj silnik IntakeMotor.

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.

Projekt bloków VEXcode IQ wykorzystuje blok limitu czasu silnika, aby obrócić silnik pazura w pozycji zamkniętej o 90 stopni lub do upływu 2 sekund przed przesunięciem robota. W projekcie opisano: Po uruchomieniu ustaw limit czasu ClawMotor na 2 sekundy i obróć ClawMotor o 90 stopni. Na koniec przejedź 200 mm wstecz.

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.

Ekran mózgu jest wyświetlany z otwartą tablicą czujników silnika z menu Urządzenia. Wyświetlane są informacje o silniku, takie jak polecenie, prędkość, położenie, prąd i Smart Port silnika.

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.

Projekt bloków VEXcode IQ wykorzystuje polecenia oczekiwania, aby robot jechał do przodu, a następnie skręcał w prawo, jedno po drugim. Opis projektu brzmi: Po rozpoczęciu jazdy należy przejechać 200 mm do przodu, a następnie skręcić w prawo o 90 stopni.

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.

Projekt bloków VEXcode IQ wykorzystuje polecenie bez oczekiwania, aby robot poruszał się do przodu, aż do naciśnięcia zderzaka, a następnie skręcił w prawo. Opis projektu brzmi: Po rozpoczęciu jazdy jedź do przodu, poczekaj, aż naciśniesz przycisk Bumper3, a następnie skręć w prawo o 90 stopni.

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: