VEX EXP jutiklių trikčių šalinimas

Kai naudojant jutiklio grįžtamąjį ryšį robotas elgiasi ne taip, kaip numatyta, galite atlikti nuoseklią trikčių šalinimo procedūrą, kad surastumėte ir išspręstumėte problemas. Šiame straipsnyje bus paaiškinti trikčių šalinimo proceso veiksmai ir pateikti patarimai, kaip atlikti šiuos veiksmus. 

Šio proceso žingsniai yra šie:

  1. Nustatykite problemą
  2. Patikrinkite aparatūrą
  3. Patikrinkite programinę įrangą
  4. Analizuoti ir pritaikyti duomenis

Nustatykite problemą

Pirmasis jutiklio trikčių šalinimo veiksmas yra nustatyti, kuris jutiklis sukelia problemą. Palyginkite pastebėtą roboto elgesį su numatomu roboto elgesiu. Ar probleminį elgesį sukelia jutiklis? Jei taip, koks jutiklis? Jei jums reikia daugiau informacijos, kad nustatytumėte, kuris jutiklis gali būti problema, perskaitykite toliau pateiktą (-us) straipsnį (-ius), susijusį (-us) apie jūsų roboto jutiklius.

VEX EXP jutikliai:

Kai nustatysite, kuris jutiklis sukelia nenumatytą elgesį, galite tęsti procesą.


Patikrinkite aparatinę įrangą

Antras žingsnis – patikrinti roboto aparatinę įrangą, kad įsitikintumėte, jog jutiklis gali veikti taip, kaip numatyta. Kiekvienas iš šių techninės įrangos aspektų gali turėti įtakos jutiklio funkcionalumui.

Patikrinkite jutiklio vietą

EXP Clawbot konstrukcija važiuojant lauke. Robotas turi pritvirtintą optinį jutiklį, kuris yra paryškintas ir nukreiptas į priešais jį esantį raudoną Buckyball kamuoliuką.

Pradėkite žiūrėdami, kur jūsų robote yra jutiklis. Ar jutiklį blokuoja kažkas, pavyzdžiui, kita jūsų roboto dalis? Įsitikinkite, kad jutiklis turi pakankamai vietos, kad veiktų kaip numatyta.

Kaip parodyta čia, optinis jutiklis turi aiškią objekto, kurį jis turi aptikti, matymo liniją.

Patikrinkite jutiklio jungtį

Įrenginių meniu rodomas smegenų ekranas su pasirinktu optinio jutiklio įrenginiu.

Išbandykite jutiklio funkcionalumą žiūrėdami į VEX EXP Brain įrenginio ekrane pateiktus duomenis. Tai gali padėti patikrinti, ar jutiklis prijungtas ir veikia. 

Norėdami pasiekti įrenginių ekraną, atlikite šiame straipsnyje nurodytus veiksmus. Kai atidaromas įrenginių ekranas, pažiūrėkite, ar jutiklis praneša duomenis.

EXP smegenų, prijungtų prie EXP optinio jutiklio, schema.

Jei jutiklis neteikia duomenų, įsitikinkite, kad jutikliai prijungti tinkamai. Jungdami jutiklius prie išmaniojo prievado, turėtumėte išgirsti spragtelėjimą, kai jutiklio fiksavimo skirtukas visiškai užsifiksuoja prievade.

Jungiant jutiklius prie 3 laidų prievado, kabelis turi būti iki galo įkištas teisinga kryptimi, kad baltas laidas būtų arčiausiai smegenų ekrano. 

Taip pat galite pabandyti pakeisti naudojamą jutiklį kitu, kad sužinotumėte, ar tai išsprendžia problemą.

Jei ką nors pakeitėte jutiklio vieta arba jutiklio jungtis, dar kartą išbandykite projektą, kad sužinotumėte, ar tai išsprendė problemą. Jei jutiklio vieta ir jungtis nepasikeitė, pereikite prie kito veiksmo ir tęskite trikčių šalinimo procesą.


Patikrinkite programinę įrangą

Kai nustatysite, kad jutiklis uždėtas ir sėkmingai prijungtas prie roboto, toliau galite žiūrėti į VEXcode EXP projektą. Projekto kartojimas gali padėti užtikrinti, kad jutiklio duomenys būtų efektyviai naudojami jūsų projekte. Šios strategijos gali padėti koduoti jutiklį.

Jei savo VEXcode EXP projektui taikote kurią nors iš šių strategijų, dar kartą išbandykite projektą, kad pamatytumėte, ar tai išsprendė problemą.

Patikrinkite programinę-aparatinę įrangą ir konfigūraciją

„VEXcode EXP Devices“ meniu su ilgu prijungtų įrenginių sąrašu. Šį meniu galima naudoti norint įsitikinti, kad kiekvienas jutiklis tinkamai prijungtas, ir patikrinti jo konkretų prievadą smegenyse.

Dabar, kai esate tikri, kad visi įrenginiai tinkamai prijungti prie smegenų, patikrinkite įrenginio konfigūraciją VEXcode EXP.

Patikrinkite, ar visi jutikliai yra konfigūracijoje. Tada patikrinkite, ar kiekvienas iš jų prijungtas prie tinkamo prievado.

Pakeiskite visas neteisingas įrenginio konfigūracijas.

Vykdykite pavyzdinį projektą

„VEXcode Blocks“ pavyzdžių projektų meniu su įvairiais projektais skirtingose ​​kategorijose. Jutimo kategorija yra paryškinta.

Atidarykite pavyzdinį projektą, kuriame naudojamas jutiklis, kurio triktis šalina. Norėdami filtruoti projektų pavyzdžius, galite pasirinkti kategoriją „Sensing“.

Daugiau informacijos apie EXP blokų pavyzdinius projektus ir šablonus rasite šiame straipsnyje.

Daugiau informacijos apie EXP Python pavyzdinius projektus ir šablonus rasite šiame straipsnyje.

Daugiau informacijos apie EXP C++ pavyzdinius projektus ir šablonus rasite šiame straipsnyje.

„VEXcode EXP“ su pavyzdiniu projektu, atidarytu iš jutimo kategorijos, įskaitant kodo blokų krūvą ir pastabą su projekto aprašymu. Užrašas paryškintas.

Atidarę perskaitykite pastabą, kad nustatytumėte, ar pavyzdinio projekto funkcijos atitinka tai, ką bandote daryti su jutikliu.

Čia parodytame projekto pavyzdyje pastaba nurodo, kad buferio jungiklis naudojamas aptikti, kada jungiklis paspaudžiamas, kad robotas galėtų sustabdyti važiavimą, kai susiliečia su objektu.

Vykdykite pavyzdinį projektą ir stebėkite roboto elgesį. Tada pažiūrėkite į projektą, kad pamatytumėte, kaip jutiklio duomenys naudojami stebimam elgesiui sukelti. Galbūt norėsite pavyzdinį projektą paleisti kelis kartus, kad tai padėtų.

Galbūt norėsite pabandyti sukurti savo supaprastintą projektą, kad pritaikytumėte tai, ko išmokote iš pavyzdinio projekto, atlikdami savo užduotį.

Naudokite kitus VEXcode EXP įrankius

Taip pat yra įrankių ir strategijų, kurias galite naudoti, kad sužinotumėte daugiau apie jutiklio kodavimą VEXcode EXP. Naudodami žinyną galite sužinoti apie blokus ar komandas atskirai įrankių dėžėje. Taip pat galite peržiūrėti jutiklio duomenis, kai vykdomas projektas, kad sužinotumėte daugiau apie tai, ką jutiklis praneša.

„VEXcode EXP“ su atidarytu pagalbos meniu ir pasirinktu bloku „Pressing Bumper“. Pateikiami bloko aprašymai ir kaip jį galima naudoti kartu su pavyzdžių panaudojimo paveikslėliais.

Pagalba

Perskaitykite blokų arba komandų žinyną pavyzdiniame projekte arba savo projekte, kad sužinotumėte apie naudojamus duomenis, kokias reikšmes komanda pateiks ir pavyzdžius, kaip naudoti komandą projekte.

Peržiūrėkite šį straipsnį, kad sužinotumėte daugiau apie prieigą prie VEXcode EXP blokų žinyno.

Peržiūrėkite šį straipsnį, kad sužinotumėte daugiau apie VEXcode EXP Python pagalbos prieigą.

Duomenų spausdinimas

Taip pat galite spausdinti duomenis iš jutiklio, kai vykdomas pavyzdinis projektas arba jūsų projektas, kad galėtumėte geriau suprasti, ką jutiklis praneša realiuoju laiku. Tai gali padėti nustatyti, kokias praneštas jutiklio vertes naudoti kaip parametrus jūsų projekte. 

Atminkite, kad projekte „Blocks“ galima naudoti atskirą {When started} skrybėlių bloką, kad visos spausdinimo komandos būtų suskirstytos į savo krūvą. Žemiau pateiktas spausdinimo į EXP Brain, o tada į Print Console pavyzdys.

VEXcode EXP blokai
„VEXcode EXP“ blokuoja projektą, kuris naudoja „When started“ hat bloką, kad spausdintų jutiklių duomenis tiesiogiai, kol projektas veikia. Projekte yra blokas „Kai pradėtas“, po kurio seka 4 blokai „Amžinoje“ cikle. Cikle pirmiausia yra komentarų blokas, kuriame rašoma: „Išspausdinti inercinio jutiklio riedėjimo vertę ant smegenų“ ir pereiti į kitą eilutę. Toliau „Print“ blokas nuskaito „BrainInercinę ritinėlio orientaciją ant „Brain“ ir perkelia žymeklį į kitą eilutę. Toliau komentarų bloke rašoma: „Palauk, kol bus išspausdinta reikšmė“, tada ciklas kartojamas. Galiausiai, laukimo bloke nurodoma laukti 0,1 sekundės.
VEXcode EXP Python
while True:
# Padidinkite šrifto dydį, kad būtų lengviau skaityti smegenų ekrane.
brain.screen.set_font(FontType.MONO40)

# Atspausdinkite inercinio jutiklio pasvirimo reikšmę smegenų ekrane ir pereikite prie kitos eilutės.
brain.screen.print(brain_inertial.orientation(ROLL, DEGREES), precision=6 if vexcode_brain_precision is None else vexcode_brain_precision))
brain.screen.next_row()

# Palaukite, kol bus atspausdinta reikšmė, tada pakartokite ciklą.
wait(0.1, SECONDS)
wait(20, MSEC)
VEXcode EXP C++
int main() {
while(true) {

// Padidina šrifto dydį, kad būtų lengviau skaityti „Brain Screen“ ekrane.
Brain.Screen.setFont(mono40);

// Atspausdina inercinio jutiklio pasvirimo reikšmę „Brain“ ekrane ir pereina į kitą eilutę.
Brain.Screen.print(BrainInertial.orientation(roll, degrees));
Brain.Screen.newLine();

// Laukiama, kol atspausdins reikšmę, tada kartojama ciklas.
wait(0.1, seconds);
} }

Spausdinimas į EXP Brain yra naudingas, kai norite matyti, kad vertės keičiasi, kai vykdomas VEXcode EXP projektas. Tai gali padėti nustatyti, kokias praneštas jutiklio vertes naudoti kaip parametrus jūsų projekte. Šios spausdinimo komandos gali būti integruotos į VEXcode EXP projektą, kurį jau sukūrėte, kad galėtumėte matyti jutiklių verčių pokyčius tam tikru metu, kol robotas juda. 

Šie pavyzdiniai projektai rodo, kaip spausdinti reikšmes iš inercinio jutiklio į EXP smegenis. Kiekvieno projekto komentaruose paaiškinama projekto eiga ir kiekvienos komandos naudojimas.

VEXcode EXP blokai
„VEXcode EXP“ blokuoja projektą, kuris naudoja „When started“ hat bloką, kad spausdintų jutiklių duomenis tiesiogiai, kol projektas veikia. Projekte yra blokas „Kai pradėtas“, po kurio seka 4 blokai „Amžinoje“ cikle. Cikle pirmiausia yra komentarų blokas, kuriame rašoma „Išspausdinti atstumo jutiklio vertę konsolėje“ ir pereiti į kitą eilutę. Toliau „Print“ blokas konsolėje nuskaito „print Distance5“ objekto atstumą milimetrais ir perkelia žymeklį į kitą eilutę. Toliau komentarų bloke rašoma: „Palauk, kol bus išspausdinta reikšmė“, tada ciklas kartojamas. Galiausiai, laukimo bloke nurodoma laukti 0,1 sekundės.
VEXcode EXP Python
while True:
# Atspausdina atstumo jutiklio reikšmę konsolėje ir pereina į kitą eilutę.
print(print_to_console_number_format().format(distance_5.object_distance(MM)))

# Laukia, kol atspausdins reikšmę, tada pakartokite ciklą.
wait(0.1, SECONDS)
wait(20, MSEC)
VEXcode EXP C++
int main() {
while (true) {
// Atspausdina inercinio jutiklio posvyrio reikšmę ant smegenų ir pereina į kitą eilutę.
printf(printToConsole_numberFormat(),(Distance5.objectDistance(mm)));
printf("\n");

// Laukia, kol atspausdins reikšmę, tada pakartokite ciklą.
wait(0.1, seconds);
} }

Spausdinti į Print Console VEXcode EXP rekomenduojama, kai vykdote VEXcode EXP projektą, kuriame robotas NEJUDA. „EXP Brain“ turi likti prijungtas projekto vykdymo metu, kad būtų galima spausdinti į „Print Console“. Tai naudinga, nes galite skaityti reikšmes iš VEXcode EXP lango, o ne bandyti skaityti duomenis iš smegenų ekrano.

Šie pavyzdžiai rodo projektą, spausdinantį duomenis iš atstumo jutiklio į konsolę VEXcode EXP. 

Daugiau informacijos apie Print Console naudojimą VEXcode EXP blokuose rasite šiame straipsnyje.

Daugiau informacijos apie spausdinimo konsolės naudojimą VEXcode EXP Python rasite šiame straipsnyje.


Analizuoti ir pritaikyti duomenis

Tada naudokite tai, ką išmokote atlikdami ankstesnius veiksmus, norėdami pakoreguoti savo pradinį projektą. Galite ir toliau naudoti įrankius, pvz., Žinyną ir spausdinti duomenis, kad galėtumėte efektyviai naudoti jutiklį savo tikslui pasiekti.

Taip pat galite užduoti klausimų apie savo projektą, kad padėtumėte judėti į priekį. Pagalvokite apie tokius dalykus kaip:

  • Ar savo projekte naudojate didesnį nei < ar mažiau nei > ? Ar simbolis nukreiptas teisinga kryptimi? Jei naudojate lygią =, pabandykite jį pakeisti didesniu nei arba mažesniu nei, kad galėtumėte naudoti reikšmių diapazoną.
  • Ar jūsų parametrai teisingi? Ar parametrams nustatyti naudojate jutiklio duomenis? Ar pasirinkote jums reikalingą išskleidžiamąjį parinktį?
  • Ar tikrinate sąlygas daugiau nei vieną kartą? Pabandykite prie projekto pridėti Forever kilpą, kad paleidžiant projektą būtų pakartotinai tikrinama sąlyga.
  • Ar jūsų projektas stringa? Ar jūsų sąlygos nustatytos teisingai? Jei naudojate įdėtas kilpas, pabandykite supaprastinti projektą, kad atskirtumėte individualų elgesį.
  • Ar jūsų aplinkos sąlygos turi įtakos jutikliui? Ar jis per šviesus ar per tamsus? Ar kelyje yra daiktų ar žmonių? Pabandykite vykdyti savo projektą kitoje vietoje, kad sužinotumėte, ar tai padeda.
  • Ar naudojate naujausią projekto versiją? Ar atsisiuntėte atnaujintą projektą į smegenis? Būtinai iš naujo atsisiųskite projektą kiekvieną kartą, kai atliekate pakeitimą.
  • Ar nustatote tinkamą spalvą? Ar jutiklio spalva skiriasi nuo tos, kurią turite savo projekte? Pabandykite pakeisti spalvos parametrą arba naudoti atspalvių verčių diapazoną, kad sužinotumėte, ar tai padeda.
  • Ar jutiklio matymo lauke aptinkate objektą? Atminkite, kad matymo laukas juda kartu su roboto judėjimu.
  • Ar tikrindami būseną naudojate laukimo bloką? Tikrindami, ar yra sąlyga, projekte naudokite nelaukiančius blokus. Peržiūrėkite šį straipsnį, kad sužinotumėte daugiau apie laukiančius ir nelaukiančius blokus VEXcode EXP.
  • Jei koduojate blokais, ar visas jūsų krūvas yra prijungtas prie {When started} skrybėlių bloko? Blokai veiks tik tada, kai jie bus prijungti. Galite klausytis spragtelėjimo, kai vilkite blokus ir juos sujungsite.

Atsakydami į šiuos klausimus, būtinai pakeiskite vieną dalyką savo projekte vienu metu, išbandykite, tada įvertinkite, ar tas pakeitimas buvo veiksmingas. Reguliarus projekto testavimas gali padėti lengviau suprasti, kaip jūsų kodas yra susijęs su roboto elgesiu.  Gali tekti kelis kartus pakartoti trikčių šalinimo proceso veiksmus, kad išspręstumėte problemą, ir tai yra gerai. Kiekviena iteracija padės sužinoti daugiau apie naudojamą jutiklį ir kaip jį užkoduoti VEXcode EXP.

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

Last Updated: