Rozwiązywanie problemów z czujnikami IQ (2. generacji).

Jeśli podczas korzystania z informacji zwrotnych z czujnika Twój robot nie zachowuje się zgodnie z oczekiwaniami, możesz wykonać procedurę rozwiązywania problemów krok po kroku, aby znaleźć i rozwiązać problemy. W tym artykule wyjaśniono etapy procesu rozwiązywania problemów i podano wskazówki dotyczące korzystania z tych kroków. 

Etapy tego procesu są następujące:

  1. Rozpoznaj problem
  2. Sprawdź sprzęt
  3. Sprawdź oprogramowanie
  4. Analizuj i stosuj dane

Zidentyfikuj problem

Pierwszym krokiem do rozwiązania problemu z czujnikiem jest określenie, który czujnik powoduje problem. Porównaj zaobserwowane zachowanie robota z zamierzonym zachowaniem robota. Czy przyczyną problemu jest czujnik? Jeśli tak to jaki czujnik? Jeśli potrzebujesz więcej informacji, aby określić, który czujnik może powodować problem, przeczytaj poniższe artykuły dotyczące czujników w Twoim robocie.

Czujniki VEX IQ (2. generacji):

Po zidentyfikowaniu, który czujnik powoduje niezamierzone zachowanie, możesz kontynuować proces.


Sprawdź sprzęt

Drugim krokiem jest sprawdzenie sprzętu robota, aby upewnić się, że czujnik działa zgodnie z przeznaczeniem. Każdy z poniższych czynników sprzętowych może mieć wpływ na funkcjonalność czujnika.

Sprawdź rozmieszczenie czujników

Prosty model Clawbota jadącego po polu. Robot ma przymocowany czujnik optyczny, który jest podświetlony i skierowany w stronę czerwonego sześcianu znajdującego się przed nim.

Zacznij od sprawdzenia, gdzie w robocie znajduje się czujnik. Czy czujnik jest przez coś blokowany, np. przez inną część robota? Upewnij się, że czujnik ma wystarczająco dużo miejsca, aby działać zgodnie z przeznaczeniem.

Jak pokazano tutaj, czujnik optyczny ma wyraźną linię widzenia do obiektu, który ma wykryć.

Sprawdź połączenie czujnika

Ekran mózgu jest wyświetlany w menu Urządzenia po wybraniu urządzenia z diodą dotykową LED.

Przetestuj funkcjonalność czujnika, przeglądając dane wyświetlane na ekranie urządzeń w VEX IQ (2. generacji) Brain. Pomoże to sprawdzić, czy czujnik jest podłączony i działa.

Aby uzyskać dostęp do ekranu urządzeń, czynności opisane w tym artykule.

Schemat mózgu (2. generacji) podłączonego do czujnika odległości (2. generacji).

Po otwarciu ekranu urządzeń sprawdź, czy czujnik przesyła dane.

Jeśli nie, upewnij się, że czujniki są prawidłowo podłączone. Podczas podłączania czujników powinno być słyszalne trzaśnięcie, gdy zatrzask blokujący czujnika zostanie całkowicie osadzony w porcie.

Możesz także spróbować zamienić używany czujnik na inny, aby sprawdzić, czy to rozwiąże problem.

Jeśli zmieniłeś coś w rozmieszczeniu czujnika lub podłączeniu czujnika, przetestuj projekt ponownie, aby sprawdzić, czy to rozwiązało problem. Jeśli umiejscowienie czujnika i połączenie nie uległy zmianie, przejdź do następnego kroku, aby kontynuować proces rozwiązywania problemów.


Sprawdź oprogramowanie

Kiedy już ustalisz, że czujnik został pomyślnie umieszczony i podłączony do robota, możesz przejść do projektu VEXcode IQ. Powtarzanie projektu może pomóc w zapewnieniu efektywnego wykorzystania danych z czujnika w projekcie. Poniższe strategie mogą pomóc w kodowaniu czujnika.

Jeśli zastosujesz którąkolwiek z tych strategii w swoim projekcie VEXcode IQ, przetestuj swój projekt ponownie, aby sprawdzić, czy to rozwiązało problem.

Sprawdź oprogramowanie sprzętowe i konfigurację

Menu urządzeń VEXcode IQ z długą listą podłączonych urządzeń. Za pomocą tego menu można sprawdzić, czy każdy czujnik jest prawidłowo podłączony, a także sprawdzić przypisany mu port w mózgu.

Teraz, gdy masz pewność, że wszystkie urządzenia są poprawnie podłączone do Brain, sprawdź konfigurację urządzenia w VEXcode IQ.

Sprawdź, czy w konfiguracji są obecne wszystkie czujniki. Następnie sprawdź, czy każdy z nich jest podłączony do właściwego portu.

Zmień wszelkie nieprawidłowe konfiguracje urządzeń.

Uruchom przykładowy projekt

Przykładowe menu projektów bloków VEXcode z różnorodnymi projektami do wyboru w różnych kategoriach. Kategoria Czujniki jest podświetlona.

Otwórz przykładowy projekt wykorzystujący czujnik, z którym rozwiązujesz problem. Możesz wybrać kategorię „Wykrywanie”, aby przefiltrować przykładowe projekty.

Więcej informacji na temat przykładowych projektów i szablonów IQ Blocks znaleźć w tym artykule.

Aby uzyskać więcej informacji na temat przykładowych projektów i szablonów IQ Python, ten artykuł.

Więcej informacji na temat przykładowych projektów i szablonów IQ C++ w tym artykule.

VEXcode IQ z przykładowym projektem otwartym z kategorii Czujniki, zawierającym stos bloków kodu i notatkę z opisem projektu. Notatka jest podświetlona.

Po otwarciu przeczytaj Uwagę, aby określić, czy funkcjonalność w przykładowym projekcie jest zgodna z tym, co próbujesz zrobić z czujnikiem.

W pokazanym tutaj przykładowym projekcie uwaga wskazuje, że czujnik odległości jest używany do wykrywania obiektu, dzięki czemu robot może przerwać jazdę po dotarciu do obiektu.

Uruchom przykładowy projekt i obserwuj zachowanie robota. Następnie przyjrzyj się projektowi, aby zobaczyć, w jaki sposób dane z czujników są wykorzystywane do wywoływania zaobserwowanych zachowań. Aby sobie z tym poradzić, możesz chcieć uruchomić przykładowy projekt wiele razy.

Możesz spróbować stworzyć własny uproszczony projekt, aby zastosować w swoim zadaniu to, czego nauczyłeś się z przykładowego projektu.

Użyj innych narzędzi VEXcode IQ

Istnieją również narzędzia i strategie, których możesz użyć, aby dowiedzieć się więcej o kodowaniu czujnika w VEXcode IQ. O blokach i poleceniach znajdujących się w Toolboxie możesz dowiedzieć się indywidualnie, korzystając z Pomocy. Możesz także przeglądać dane czujnika w trakcie realizacji projektu, aby dowiedzieć się więcej o tym, co raportuje czujnik.

VEXcode IQ z otwartym menu Pomoc i wybranym blokiem nagłówka Drive. Opisy bloków i sposobów ich wykorzystania są prezentowane wraz ze zdjęciami przykładowych zastosowań.

Pomoc

Przeczytaj Pomoc dotyczącą bloków lub poleceń w przykładowym projekcie lub w swoim projekcie, aby dowiedzieć się, jakie dane są używane, jakie wartości będzie raportować polecenie i przykłady użycia polecenia w projekcie.

Zobacz ten artykuł, aby dowiedzieć się więcej o dostępie do pomocy w blokach VEXcode IQ.

Zobacz ten artykuł, aby dowiedzieć się więcej o uzyskiwaniu dostępu do pomocy w VEXcode IQ Python.

Zobacz ten artykuł, aby dowiedzieć się więcej o uzyskiwaniu dostępu do Pomocy w VEXcode IQ C++.

Drukowanie danych

Możesz także wydrukować dane z czujnika w trakcie realizacji przykładowego projektu lub Twojego projektu, aby lepiej zrozumieć, co czujnik raportuje w czasie rzeczywistym. Może to pomóc w określeniu, jakie wartości raportowane z czujnika wykorzystać jako parametry w projekcie. 

Należy pamiętać, że w projekcie Blocks można zastosować oddzielny blok kapelusza {When started} , aby wszystkie polecenia drukowania były zorganizowane we własnym stosie.

Bloki IQ VEXcode
Projekt bloków VEXcode IQ wykorzystuje blok When started hat do drukowania danych z czujników na bieżąco podczas działania projektu. Projekt ma blok When started, po którym następują 4 bloki w pętli Forever. W pętli najpierw znajduje się blok komentarza, który odczytuje wartość rolki czujnika bezwładności w mózgu, a następnie przechodzi do następnego wiersza. Następnie blok Print odczytuje wydruk BrainInertial orientacji rolki na Brain i ustawia kursor na następnym wierszu. Następnie blok komentarza odczytuje polecenie Wait to print the value, a następnie powtórz pętlę. Na koniec blok Wait odczytuje czas oczekiwania 0,1 sekundy.
VEXcode IQ w Pythonie
while (True):
brain.screen.set_font(FontType.MONO40)
brain.screen.print(brain_inertial.orientation(ROLL, STOPNIE))
brain.screen.next_row()
wait(0,1, SEKUND)
VEXcode IQ C++
int main() 
{
while(true)
{
Brain.Screen.setFont(mono40);
Brain.Screen.print(BrainInertial.orientation(roll, stopnie));
Mózg.Ekran.nowaLinia();
czekania (0,1, sekundy);
} }

Drukowanie do IQ Brain jest pomocne, gdy chcesz zobaczyć, jak wartości zmieniają się w trakcie działania projektu VEXcode IQ. Może to pomóc w określeniu, jakie wartości raportowane z czujnika wykorzystać jako parametry w projekcie. Te polecenia drukowania można włączyć do już utworzonego projektu VEXcode IQ, dzięki czemu można zobaczyć, jak wartości czujnika zmieniają się w określonych momentach ruchu robota. 

Powyższe przykładowe projekty pokazują, jak drukować wartości z czujnika bezwładnościowego do IQ Brain. Komentarze w każdym projekcie wyjaśniają przebieg projektu i użycie każdego polecenia.

Bloki IQ VEXcode VEXcode IQ w Pythonie

Projekt bloków VEXcode IQ wykorzystuje blok When started hat do drukowania danych z czujników na bieżąco podczas działania projektu. Projekt ma blok When started, po którym następują 4 bloki w pętli Forever. W pętli najpierw znajduje się blok komentarza, który odczytuje wartość czujnika odległości na konsoli, a następnie przechodzi do następnego wiersza. Następnie blok Print odczytuje odległość obiektu Print Distance5 w mm na konsoli i ustawia kursor w następnym wierszu. Następnie blok komentarza odczytuje polecenie Wait to print the value, a następnie powtórz pętlę. Na koniec blok Wait odczytuje czas oczekiwania 0,1 sekundy.

póki (True):
print(odległość_7.odległość_obiektu(MM))
czekanie(0,1, SEKUND)
VEXcode IQ C++
int main() 
{
while (true)
{
printf(Odległość7.obiektOdległość(mm));
printf("\n");
czekania (0,1, sekundy);
} }

Drukowanie do Print Console w VEXcode IQ jest zalecane w przypadku uruchamiania projektu VEXcode IQ, w którym robot się NIE porusza. Aby możliwe było drukowanie w Print Console, IQ Brain musi pozostać podłączony do prądu podczas realizacji projektu. Jest to korzystne, ponieważ możesz odczytać wartości z okna VEXcode IQ, zamiast próbować odczytać dane z ekranu Brain.

Te przykłady pokazują projekt drukowania danych z czujnika odległości (2. generacji) do konsoli w VEXcode IQ. 

Więcej informacji na temat korzystania z konsoli Print Console w blokach VEXcode IQ można znaleźć w tym artykule.

Aby uzyskać więcej informacji na temat korzystania z konsoli Print Console w VEXcode IQ Python, zobacz ten artykuł.


Analizuj i stosuj dane

Następnie wykorzystaj wiedzę zdobytą w poprzednich krokach, aby dostosować swój oryginalny projekt. Możesz nadal korzystać z narzędzi takich jak Pomoc i drukowanie danych, aby efektywnie wykorzystywać czujnik do osiągnięcia swojego celu.

Możesz także zadawać pytania na temat swojego projektu, aby pomóc Ci w dalszym rozwoju. Pomyśl o takich rzeczach jak:

  • Czy w swoim projekcie używasz wartości większej niż < czy mniejszej niż > ? Czy symbol jest skierowany we właściwym kierunku? Jeśli używasz równości =, spróbuj zastąpić ją wartością większą lub mniejszą niż, aby użyć zakresu wartości.
  • Czy Twoje parametry są prawidłowe? Czy wykorzystujesz dane z czujnika do ustawiania parametrów? Czy wybrałeś potrzebną opcję rozwijaną?
  • Czy sprawdzasz warunki więcej niż raz? Spróbuj dodać pętlę Forever do swojego projektu, aby warunek był wielokrotnie sprawdzany podczas uruchamiania projektu.
  • Czy Twój projekt utknął? Czy Twoje warunki są ustawione prawidłowo? Jeśli używasz zagnieżdżonych pętli, spróbuj uprościć swój projekt, aby wyizolować poszczególne zachowania.
  • Czy warunki otoczenia wpływają na czujnik? Czy jest za jasno czy za ciemno? Czy na drodze znajdują się przedmioty lub ludzie? Spróbuj uruchomić projekt w innej lokalizacji, aby sprawdzić, czy to pomoże.
  • Czy korzystasz z najnowszej wersji swojego projektu? Czy pobrałeś zaktualizowany projekt do Brain? Po każdej zmianie pamiętaj o ponownym pobraniu projektu.
  • Czy wykrywasz właściwy kolor? Czy czujnik zgłasza inny kolor niż ten, który masz w swoim projekcie? Spróbuj zmienić parametr koloru lub użyć zakresu wartości odcieni, aby sprawdzić, czy to pomoże.
  • Czy wykrywasz obiekt w polu widzenia czujnika? Pamiętaj, że pole widzenia zmienia się w połączeniu z ruchem robota.
  • Czy używasz bloku oczekującego podczas sprawdzania warunku? Upewnij się, że podczas sprawdzania warunku używasz w projekcie bloków nie oczekujących. Zobacz ten artykuł, aby dowiedzieć się więcej na temat bloków oczekujących i nieczekających w VEXcode IQ.
  • Jeśli kodujesz w blokach, czy cały stos jest dołączony do {When started} bloku kapelusza? Bloki będą działać tylko wtedy, gdy zostaną połączone. Możesz słuchać dźwięku kliknięcia podczas przeciągania bloków i łączenia ich ze sobą.

Odpowiadając na te pytania, pamiętaj o zmianie jednej rzeczy w projekcie na raz, przetestuj ją, a następnie oceń, czy ta zmiana była skuteczna. Częste testowanie projektu może pomóc Ci łatwiej zobaczyć, jak Twój kod jest powiązany z zachowaniami robota.  Być może konieczne będzie wielokrotne powtórzenie kroków procesu rozwiązywania problemów, aby rozwiązać problem i to jest w porządku. Każda iteracja pomoże Ci dowiedzieć się więcej o czujniku, którego używasz i jak go zakodować w VEXcode IQ.

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

Last Updated: