GPS jutiklis#
Įvadas#
gps klasė naudojama valdyti ir gauti duomenis iš V5 GPS (žaidimo padėties nustatymo sistemos™) jutiklio. Šis jutiklis užtikrina tikslų roboto padėties ir orientacijos sekimą VEX lauke. Jis naudoja GPS lauko kodą aplink lauko perimetrą, kad realiuoju laiku apskaičiuotų roboto X ir Y koordinates bei kryptį.
GPS jutiklis grąžina roboto padėtį naudodamas atskaitos tašką, automatiškai apskaičiuojamą pagal poslinkius, įvestus konfigūruojant GPS jutiklį įrenginių lange.
Daugiau informacijos apie GPS jutiklį rasite VEX bibliotekos skyriuje GPS jutiklio naudojimas su VEX V5.
Atskaitos taškas veikia kaip paties GPS jutiklio (0, 0) padėtis, kurioje visos GPS metodų grąžintos koordinatės, kryptys ir judesiai yra susiję su šiuo konfigūruotu tašku.

Klasės konstruktoriai#
1 — Sukuria
gpsobjektą nurodytame išmaniajame prievade, naudodamas numatytąją pradžios tašką (0, 0).gps( int32_t index, double heading_offset = 0, turnType dir = right );
2 — Sukuria
gpsobjektą nurodytame išmaniajame prievade ir apibrėžia pasirinktinę pradžios padėtį.gps( int32_t index, double ox, double oy, distanceUnits units = mm, double heading_offset = 0, turnType dir = right );
Klasės destruktorius#
Sunaikina gps objektą ir išlaisvina susijusius išteklius.
~gps();
Parametrai#
Parametras |
Tipas |
Aprašymas |
|---|---|---|
|
|
Išmanusis prievadas, prie kurio prijungtas GPS jutiklis, užrašomas kaip |
|
|
Pradinės padėties X koordinatė. |
|
|
Pradinės padėties Y koordinatė. |
|
|
Matavimo vienetas, naudojamas
|
|
|
GPS jutiklio sukimosi poslinkis laipsniais nuo 0,00 iki 359,99. Numatytoji reikšmė yra 0. |
|
|
Kryptis, kuri grąžins teigiamas antraštės reikšmes:
|
Pavyzdžiai#
// Create the gps instance
gps GPS1 = gps(
PORT1, // Smart Port 1
180); // heading_offset
// Create the gps instance
gps GPS1 = gps(
PORT1, // Smart Port 1
50.00, // ox
100.00, // oy
mm, // units
180 ); // heading_offset
Narių funkcijos#
gps klasė apima šias narines funkcijas:
calibrate– Kalibruoja GPS jutiklį.setOrigin— Nustato GPS koordinačių sistemos pradžios padėtį.setLocation– nustato dabartinę GPS jutiklio vietą ir kryptį.xPosition— Grąžina dabartinę X poziciją.yPosition— Grąžina dabartinę Y poziciją.heading— Grąžina dabartinę antraštę.acceleration— Grąžina tiesinį pagreitį išilgai nurodytos ašies.gyroRate— Grąžina nurodytos ašies kampinį greitį.orientation— Grąžina nurodytos ašies orientaciją.quality– Grąžina dabartinę GPS signalo kokybę.changed— Registruoja atgalinio iškvietimo funkciją, kuri paleidžiama pasikeitus GPS duomenims.
Prieš iškviečiant bet kokias gps narių funkcijas, reikia sukurti gps egzempliorių, kaip parodyta žemiau:
/* This constructor is required when using VS Code.
GPS Sensor configuration is generated automatically
in VEXcode using the Device Menu. Replace the values
as needed. */
// Create the gps instance in Smart Port 1
gps GPS1 = gps(PORT1);
Klasės metodai#
calibrate#
Kalibruoja GPS jutiklį. Tai nustatys GPS sukonfigūruotą kryptį (pagal jo kampo poslinkį) kaip dabartinę transmisijos kryptį.
Kalibravimo metu GPS jutiklis turi nejudėti.
Available Functionsvoid calibrate();
Ši funkcija nepriima jokių parametrų.
Return ValuesŠi funkcija negrąžina reikšmės.
Examples// Turn to face the lower Field wall using data from the GPS Sensor.
GPS1.calibrate();
Drivetrain.turnToHeading(180, degrees)
setOrigin#
Nustato GPS koordinačių sistemos pradžios tašką.
Available Functions1 — Nustato pradžios tašką nurodytoje X ir Y padėtyje.
void setOrigin( double x, double y, distanceUnits units = mm );
Parameters2 — Nustato pradinį tašką pagal dabartinę jutiklio padėtį.
void setOrigin();
Parametras |
Tipas |
Aprašymas |
|---|---|---|
|
|
Naujos pradžios padėties X koordinatė. |
|
|
Naujos pradžios padėties Y koordinatė. |
|
|
Matavimo vienetas, naudojamas
|
Ši funkcija negrąžina reikšmės.
NotessetLocation#
Nustato dabartinę GPS padėtį ir kryptį.
Available Functions1 — Nustato dabartinę vietą naudodamas nurodytus atstumo ir pasukimo vienetus.
void setLocation( double x, double y, distanceUnits units = mm, double angle = 0, rotationUnits units_r = degrees );
Parameters2 — Nustato dabartinę vietą milimetrais ir laipsniais.
void setLocation( double x, double y, double angle );
Parametras |
Tipas |
Aprašymas |
|---|---|---|
|
|
Dabartinės vietos X koordinatė. |
|
|
Dabartinės vietos Y koordinatė. |
|
|
Matavimo vienetas, naudojamas
|
|
|
Dabartinės vietos antraštės reikšmė. |
|
|
|
Ši funkcija negrąžina reikšmės.
NotesxPosition#
Grąžina dabartinę GPS jutiklio X padėtį.
Available Functionsdouble xPosition( distanceUnits units = distanceUnits::mm );
Parametras |
Tipas |
Aprašymas |
|---|---|---|
|
|
Grąžintos X pozicijos matavimo vienetas:
|
Grąžina double reiškiantį x padėties poslinkį nuo pradžios nurodytais vienetais.
X padėtis matuojama dabartinės pradžios taško atžvilgiu.
Pradinę vietą galima pakeisti naudojant
setOrigin.
// Drive slowly towards the center of the Field
Drivetrain.setDriveVelocity(20.0, percent);
Drivetrain.drive(forward);
// Stop driving when the GPS returns an x position
// near the center of the Field
waitUntil((GPS1.xPosition(mm) < 0.0));
Drivetrain.stop();
yPosition#
Grąžina dabartinę GPS jutiklio Y padėtį.
Available Functionsdouble yPosition( distanceUnits units = distanceUnits::mm );
Parametras |
Tipas |
Aprašymas |
|---|---|---|
|
|
Grąžintos Y pozicijos matavimo vienetas:
|
Grąžina double reiškiantį Y padėties poslinkį nuo pradžios nurodytais vienetais.
Y padėtis matuojama dabartinės pradžios taško atžvilgiu.
Kilmę galima pakeisti naudojant
setOrigin().
// Drive slowly towards the center of the Field
Drivetrain.setDriveVelocity(20.0, percent);
Drivetrain.drive(forward);
// Stop driving when the GPS reports an y position
// near the center of the Field
waitUntil((GPS1.yPosition(mm) < 0.0));
Drivetrain.stop();
heading#
Grąžina dabartinę GPS jutiklio kryptį (pokrypio kampą).
Available Functionsdouble heading( rotationUnits units = rotationUnits::deg );
Parametras |
Tipas |
Aprašymas |
|---|---|---|
|
|
Grąžintos antraštės reikšmės matavimo vienetas:
|
Grąžina skaičių double reiškiantį dabartinę antraštę nurodytais vienetais.
Antraštės reikšmė yra apvyniota nuo 0 iki 360 laipsnių.
Teigiama sukimosi kryptis nustatoma pagal
dirparametrą, nurodytą konstravimo metu.
// Turn slowly to face the right wall
Drivetrain.setTurnVelocity(20.0, percent);
Drivetrain.turn(right);
// Stop turning when the GPS reports a heading
// greater than 90 degrees
waitUntil((GPS1.heading() > 90.0));
Drivetrain.stop();
acceleration#
Grąžina tiesinį pagreitį, išmatuotą GPS jutiklio išilgai nurodytos ašies.
Available Functionsdouble acceleration(
axisType axis );
Parametras |
Tipas |
Aprašymas |
|---|---|---|
|
|
Ašis, kuriai bus grąžintas pagreitis:
|
Grąžina double reiškiantį pagreitį išilgai nurodytos ašies, išreikštą G (gravitaciniais vienetais).
Pagreičio vertės pateikiamos G vienetais, kur 1 G yra lygus gravitacijos pagreičiui Žemės paviršiuje.
gyroRate#
Grąžina GPS jutiklio išmatuotą kampinį greitį išilgai nurodytos ašies.
Available Functionsdouble gyroRate(
axisType axis,
velocityUnits units );
Parametras |
Tipas |
Aprašymas |
|---|---|---|
|
|
Ašis, kuriai bus grąžintas kampinis greitis:
|
|
|
Grąžinto kampinio greičio matavimo vienetas:
|
Grąžina double reiškiantį kampinį greitį išilgai nurodytos ašies pasirinktais vienetais.
orientation#
Grąžina GPS jutiklio orientacijos kampą nurodytai ašiai.
Available Functionsdouble orientation(
orientationType axis,
rotationUnits units );
Parametras |
Tipas |
Aprašymas |
|---|---|---|
|
|
Ištraukimo orientacijos ašis:
|
|
|
Grąžintos orientacijos vertės matavimo vienetas:
|
Grąžina skaičių double reiškiantį nurodytos ašies orientaciją pasirinktais vienetais.
quality#
Grąžina suvokiamą GPS signalo kokybę.
Available Functionsint32_t quality();
Ši funkcija nepriima jokių parametrų.
Return ValuesGrąžina int32_t , rodantį GPS signalo kokybę procentais:
Galimos vertės |
Aprašymas |
|---|---|
|
Visi GPS jutiklio pateikti padėties ir krypties duomenys yra galiojantys. |
|
Padėties duomenys nebeskaičiuojami tiesiogiai iš GPS lauko kodo, o apskaičiuojami alternatyviais būdais. |
|
Galioja tik krypties vertės. Laikui bėgant, nepakankamai nuskaitant GPS lauko kodą, signalo kokybė toliau blogėja iki |
changed#
Registruoja atgalinio iškvietimo funkciją, kuri paleidžiama, kai pasikeičia GPS krypties reikšmė.
Available Functionsvoid changed(
void (* callback)(void) );
Parametras |
Tipas |
Aprašymas |
|---|---|---|
|
|
Rodyklė į funkciją, kuri bus iškviečiama, kai pasikeis GPS krypties reikšmė. Funkcija negali priimti parametrų ir grąžinti |
Ši funkcija negrąžina reikšmės.