A VEX EXP érzékelők hibaelhárítása

Ha az érzékelő visszacsatolása közben robotja nem úgy viselkedik, ahogyan azt tervezte, lépésről lépésre követheti a hibaelhárítási eljárást a problémák megkereséséhez és kijavításához. Ez a cikk elmagyarázza a hibaelhárítási folyamat lépéseit, és tippeket ad ezeknek a lépéseknek a használatához. 

Ennek a folyamatnak a lépései a következők:

  1. Azonosítsa a problémát
  2. Ellenőrizze a hardvert
  3. Ellenőrizze a szoftvert
  4. Adatok elemzése és alkalmazása

A probléma azonosítása

Az érzékelő hibaelhárításának első lépése annak meghatározása, hogy melyik érzékelő okozza a problémát. Hasonlítsa össze a megfigyelt robot viselkedését a tervezett robot viselkedéssel. A problémás viselkedést egy érzékelő okozza? Ha igen melyik érzékelő? Ha további információra van szüksége annak meghatározásához, hogy melyik érzékelő lehet a probléma, olvassa el az alábbi cikk(eke)t a robotja érzékelőivel kapcsolatban.

VEX EXP érzékelők:

Miután azonosította, hogy melyik érzékelő okozza a nem kívánt viselkedést, továbbléphet a folyamatban.


Hardver ellenőrzése

A második lépés a robot hardverének ellenőrzése, hogy megbizonyosodjon arról, hogy az érzékelő megfelelően működik-e. A következő hardveres megfontolások mindegyike hatással lehet az érzékelő működésére.

Ellenőrizze az érzékelő elhelyezését

EXP Clawbot építés vezetés egy mezőn. A robothoz egy optikai érzékelő tartozik, amely kiemelten jelenik meg, és egy előtte lévő piros Buckyballra mutat.

Kezdje azzal, hogy megnézi, hol található az érzékelő a roboton. Az érzékelőt blokkolja valami, például a robot egy másik része? Győződjön meg arról, hogy az érzékelőnek elegendő helye van a rendeltetésszerű működéshez.

Amint az itt látható, az optikai érzékelő világos látószöggel rendelkezik az észlelni kívánt tárgy felé.

Ellenőrizze az érzékelő csatlakozását

Az Eszközök menüben megjelenik az agy képernyője, egy optikai érzékelővel kiválasztott eszközzel.

Tesztelje az érzékelő működését a VEX EXP Brain Eszközök képernyőjén jelentett adatok alapján. Ez segíthet ellenőrizni, hogy az érzékelő csatlakoztatva van-e és működik-e. 

Az Eszközök képernyő eléréséhez kövesse a cikk lépéseit. Miután megnyílt az Eszközök képernyő, ellenőrizze, hogy az érzékelő jelent-e adatokat.

Egy EXP optikai érzékelőhöz csatlakoztatott EXP agy diagramja.

Ha az érzékelő nem közöl adatokat, győződjön meg arról, hogy az érzékelők megfelelően vannak csatlakoztatva. Amikor érzékelőket csatlakoztat egy intelligens porthoz, kattanást kell hallania, amikor az érzékelő reteszelő füle teljesen be van kapcsolva egy portba.

Amikor az érzékelőket 3 vezetékes porthoz csatlakoztatja, a kábelt teljesen be kell dugni a megfelelő irányban úgy, hogy a fehér vezeték legyen a legközelebb az agy képernyőjéhez. 

Megpróbálhatja kicserélni a használt érzékelőt egy másikra, hogy megnézze, ez megoldja-e a problémát.

Ha módosított valamit az érzékelő elhelyezésén vagy csatlakozásán, tesztelje újra a projektet, hogy megbizonyosodjon arról, hogy ez megoldotta-e a problémát. Ha az érzékelő elhelyezése és csatlakozása nem változott, lépjen a következő lépésre a hibaelhárítási folyamat folytatásához.


Ellenőrizze a szoftvert

Miután megállapította, hogy az érzékelőt sikeresen felhelyezték és csatlakoztatták a robothoz, akkor nézze meg a VEXcode EXP projektet. A projekt iterációja segíthet abban, hogy az érzékelő adatait hatékonyan használják fel a projektben. A következő stratégiák segíthetnek az érzékelő kódolásában.

Ha a fenti stratégiák bármelyikét alkalmazza VEXcode EXP projektjére, tesztelje újra a projektet, hátha ez megoldotta a problémát.

Ellenőrizze a firmware-t és a konfigurációt

VEXcode EXP Eszközök menü a csatlakoztatott eszközök hosszú listájával. Ez a menü használható annak ellenőrzésére, hogy minden érzékelő megfelelően van-e csatlakoztatva, és hogy melyik port van az agyon.

Most, hogy megbizonyosodott arról, hogy minden eszköz megfelelően csatlakozik az agyhoz, ellenőrizze az eszközkonfigurációt a VEXcode EXP-ben.

Ellenőrizze, hogy az összes érzékelő jelen van-e a konfigurációban. Ezután ellenőrizze, hogy mindegyik a megfelelő porthoz van-e csatlakoztatva.

Módosítsa a nem megfelelő eszközkonfigurációkat.

Futtasson egy példaprojektet

VEXcode Blocks Példaprojektek menü, ahol számos különböző kategóriába tartozó projekt közül választhat. Az Érzékelés kategória van kiemelve.

Nyisson meg egy példaprojektet, amely a hibaelhárítás alatt álló érzékelőt használja. A példaprojektek szűréséhez kiválaszthatja az „Érzékelés” kategóriát.

Az EXP blokkok példaprojektjeiről és sablonjairól lásd ezt a cikket.

Az EXP Python példaprojektekről és -sablonokról lásd ezt a cikket.

Az EXP C++ példaprojektekről és -sablonokról lásd ezt a cikket.

VEXcode EXP egy példaprojekttel, amely az Érzékelés kategóriából nyílt meg, beleértve egy kódblokk-köteget és egy, a projektet leíró jegyzetet. A jegyzet ki van jelölve.

Megnyitás után olvassa el a Megjegyzést, hogy megállapítsa, a példaprojektben szereplő funkcionalitás összhangban van-e azzal, amit az érzékelővel próbál tenni.

Az itt bemutatott példaprojektben a megjegyzés azt jelzi, hogy a lökhárító kapcsolót a kapcsoló lenyomásakor észleli, így a robot le tudja állítani a vezetést, ha érintkezésbe kerül egy tárggyal.

Futtassa a példaprojektet, és figyelje meg a robot viselkedését. Ezután nézze meg a projektet, és nézze meg, hogyan használják fel az érzékelőadatokat a megfigyelt viselkedések előidézésére. Érdemes lehet többször is futtatni a példaprojektet, hogy segítsen ebben.

Megpróbálhatja létrehozni saját egyszerűsített projektjét, hogy a példaprojektből tanultakat a feladatára alkalmazza.

Használjon Egyéb VEXcode EXP eszközöket

Vannak olyan eszközök és stratégiák is, amelyek segítségével többet megtudhat az érzékelő VEXcode EXP kódolásáról. Az Eszköztár blokkjairól vagy parancsairól külön-külön is tájékozódhat a Súgó segítségével. Megtekintheti az érzékelő adatait egy projekt futása közben is, hogy többet megtudjon arról, hogy az érzékelő mit jelent.

VEXcode EXP megnyitott Súgó menüvel és kiválasztott Pressing Bumper blokkal. A blokk leírása és felhasználási módja a felhasználási példákat bemutató képekkel együtt látható.

A segítséget

Olvassa el a súgót a példaprojektben vagy a projektben található blokkokhoz vagy parancsokhoz, hogy megismerje a felhasznált adatokat, a parancs által jelentett értékeket, valamint példákat a parancs projektben való használatára.

Tekintse meg ezt a cikket, ha többet szeretne megtudni a VEXcode EXP blokkok súgójának eléréséről.

Tekintse meg ezt a cikket, ha többet szeretne megtudni a VEXcode EXP Python súgójának eléréséről.

Adatok nyomtatása

Kinyomtathatja az érzékelő adatait a példaprojekt vagy a projekt futása közben is, hogy jobban megértse, mit jelent az érzékelő valós időben. Ez segíthet meghatározni, hogy az érzékelő mely jelentett értékeit használja paraméterként a projektben. 

Vegye figyelembe, hogy egy Blocks projektben egy külön {When started} kalapblokk használható az összes nyomtatási parancs saját veremben való rendszerezésére. Az alábbiakban egy példa látható az EXP Brainbe, majd a Print Console-ba történő nyomtatásra.

VEXcode EXP blokkok
A VEXcode EXP egy olyan blokkprojekt, amely egy „When started” hat blokkot használ az érzékelőadatok élő kinyomtatására a projekt futása közben. A projektben van egy „When started” blokk, amelyet 4 blokk követ egy „Forever” ciklusban. A ciklusban először van egy kommentblokk, amely a következőt írja ki: Nyomtassa ki az inerciális érzékelő hengerének értékét az agyon, majd folytassa a következő sorral. Ezután egy Print blokk beolvassa a Brain tehetetlenségi orientációját a tekercsen, és a kurzort a következő sorra helyezi. Ezután egy megjegyzésblokk olvasható: Várjon az érték kinyomtatására, majd ismételje meg a ciklust. Végül egy Wait blokk 0,1 másodperc várakozást olvas be.
VEXcode EXP Python
while True:
# Növeli a betűméretet az olvashatóság érdekében az agy képernyőn.
brain.screen.set_font(FontType.MONO40)

# Kiírja az inerciális érzékelő tekercsértékét az agyra, majd ugrik a következő sorba.
brain.screen.print(brain_inertial.orientation(ROLL, DEGREES), precision=6 if vexcode_brain_precision is None else vexcode_brain_precision))
brain.screen.next_row()

# Megvárja az érték kinyomtatását, majd megismétli a ciklust.
wait(0.1, SECONDS)
wait(20, MSEC)
VEXcode EXP C++
int main() {
while(true) {

// Növeli a betűméretet az olvashatóság érdekében az agy képernyőn.
Brain.Screen.setFont(mono40);

// Kiírja az inerciális érzékelő tekercsértékét az agyra, majd ugrik a következő sorra.
Brain.Screen.print(BrainInertial.orientation(roll, degrees));
Brain.Screen.newLine();

// Várakozás az érték kinyomtatására, majd a ciklus megismétlése.
wait(0.1, seconds);
} }

Az EXP Brain be történő nyomtatás akkor hasznos, ha látni szeretné az értékek változását a VEXcode EXP projekt futása közben. Ez segíthet meghatározni, hogy az érzékelő mely jelentett értékeit használja paraméterként a projektben. Ezek a nyomtatási parancsok beépíthetők a már létrehozott VEXcode EXP projektbe, így láthatja, hogy a robot mozgása közben az érzékelő értékek meghatározott időpontokban változnak. 

A fenti példaprojektek bemutatják, hogyan nyomtathat értékeket az inerciális érzékelőről az EXP agyba. Az egyes projektekben található megjegyzések elmagyarázzák a projekt folyamatát és az egyes parancsok használatát.

VEXcode EXP blokkok
A VEXcode EXP egy olyan blokkprojekt, amely egy „When started” hat blokkot használ az érzékelőadatok élő kinyomtatására a projekt futása közben. A projektben van egy „When started” blokk, amelyet 4 blokk követ egy „Forever” ciklusban. A ciklusban először van egy megjegyzésblokk, amely a következőt írja ki: Nyomtassa ki a távolságérzékelő értékét a konzolra, majd folytassa a következő sorral. Ezután egy Print blokk beolvassa a Distance5 objektum távolságát mm-ben a konzolon, és a kurzort a következő sorra helyezi. Ezután egy megjegyzésblokk olvasható: Várjon az érték kinyomtatására, majd ismételje meg a ciklust. Végül egy Wait blokk 0,1 másodperc várakozást olvas be.
VEXcode EXP Python
while True:
# Kiírja a távolságérzékelő értékét a konzolra, majd folytassa a következő sorral.
print(print_to_console_number_format().format(distance_5.object_distance(MM)))

# Megvárja az érték kiírását, majd megismétli a ciklust.
wait(0.1, SECONDS)
wait(20, MSEC)
VEXcode EXP C++
int main() {
while (true) {
// Kiírja az inerciális érzékelő tekercsértékét az agyon, majd ugrás a következő sorra.
printf(printToConsole_numberFormat(),(Distance5.objectDistance(mm)));
printf("\n");

// Várakozás az érték kinyomtatására, majd a ciklus megismétlése.
wait(0.1, másodperc);
} }

Nyomtatás a Print Console re a VEXcode EXP-ben akkor javasolt, ha olyan VEXcode EXP projektet futtat, ahol a robot NEM mozog. Az EXP Brainnek csatlakoztatva kell maradnia a projekt végrehajtása alatt ahhoz, hogy a Print Console-ra nyomtathasson. Ez azért előnyös, mert a VEXcode EXP ablakból olvashatja ki az értékeket, nem pedig az Agy képernyőről próbálja kiolvasni az adatokat.

Ezek a példák egy projektet mutatnak be, amely adatokat nyomtat a távolságérzékelőről a konzolra a VEXcode EXP-ben. 

A Print Console VEXcode EXP blokkokban való használatáról további információt ebben a cikkben talál.

A Print Console VEXcode EXP Python programban való használatáról további információt ebben a cikkben talál.


Adatok elemzése és alkalmazása

Ezután használja az előző lépésekben tanultakat az eredeti projekt módosításához. Továbbra is használhat olyan eszközöket, mint a Súgó és az adatok nyomtatása, hogy hatékonyan tudja használni az érzékelőt céljainak elérése érdekében.

Kérdéseket is feltehet a projektjével kapcsolatban, hogy segítsen előrehaladni. Gondolj olyan dolgokra, mint:

  • < nél nagyobb vagy > -nél kevesebbet használ a projektjében? A szimbólum a megfelelő irányba néz? Ha az egyenlő = = értéket használja, próbálja meg lecserélni nagyobb vagy kisebb értékre, hogy értéktartományt használjon.
  • Helyesek a paraméterei? Használja az érzékelő adatait a paraméterek beállításához? Azt a legördülő lehetőséget választotta, amelyre szüksége van?
  • Többször ellenőrzi a feltételeket? Próbáljon meg egy Forever ciklust hozzáadni a projekthez, hogy a feltétel a projekt futtatásakor ismételten ellenőrzésre kerüljön.
  • Elakad a projektje? Helyesen vannak beállítva a feltételek? Ha beágyazott hurkokat használ, próbálja meg egyszerűsíteni a projektet az egyéni viselkedések elkülönítése érdekében.
  • Befolyásolják a környezeti feltételek az érzékelőt? Túl világos vagy túl sötét? Vannak-e tárgyak vagy emberek az úton? Próbálja meg futtatni a projektet egy másik helyen, hátha ez segít.
  • A projekt legfrissebb verzióját futtatja? Letöltötte frissített projektjét az agyba? Minden változtatáskor töltse le újra a projektet.
  • A megfelelő színt érzékeli? Más színt jelez az érzékelő, mint a projektben szereplő? Próbálja meg módosítani a színparamétert, vagy használjon színárnyalat-értéktartományt, hátha ez segít.
  • Érzékel egy tárgyat az érzékelő látóterében? Ne feledje, hogy a látómező a robot mozgásával együtt mozog.
  • Használ várakozási blokkot egy feltétel ellenőrzése közben? Ügyeljen arra, hogy a projektben nem várakozó blokkokat használjon a feltétel ellenőrzésekor. Tekintse meg ezt a cikket, ha többet szeretne megtudni a VEXcode EXP várakozási és nem várakozó blokkjairól.
  • Ha blokkokban kódol, az egész köteg az {When started} kalap blokkhoz van kötve? A blokkok csak akkor futnak, ha csatlakoztatva vannak. Hallgathat egy kattanó hangot, amikor blokkokat húz, és összekapcsolja őket.

Amikor válaszol ezekre a kérdésekre, ügyeljen arra, hogy egyszerre csak egy dolgot változtasson meg a projektben, tesztelje, majd értékelje, hogy a változtatás eredményes volt-e. A projekt gyakori tesztelése segíthet abban, hogy könnyebben megtudja, hogyan kapcsolódik a kód a robot viselkedéséhez.  Előfordulhat, hogy a probléma megoldásához többször meg kell ismételnie a hibaelhárítási folyamat lépéseit, és ez rendben van. Minden iteráció segít többet megtudni az Ön által használt érzékelőről és a VEXcode EXP kódolásáról.

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

Last Updated: