ജിപിഎസ് സെൻസർ#
ആമുഖം#
V5 GPS (ഗെയിം പൊസിഷനിംഗ് സിസ്റ്റം™) സെൻസറിൽ നിന്നുള്ള ഡാറ്റ നിയന്ത്രിക്കാനും ആക്സസ് ചെയ്യാനും gps ക്ലാസ് ഉപയോഗിക്കുന്നു. VEX ഫീൽഡിലെ ഒരു റോബോട്ടിന് കൃത്യമായ സ്ഥാനവും ഓറിയന്റേഷൻ ട്രാക്കിംഗും ഈ സെൻസർ നൽകുന്നു. റോബോട്ടിന്റെ X, Y കോർഡിനേറ്റുകളും ഹെഡിംഗും തത്സമയം കണക്കാക്കാൻ ഇത് ഫീൽഡിന്റെ ചുറ്റളവിന് ചുറ്റുമുള്ള GPS ഫീൽഡ് കോഡ് ഉപയോഗിക്കുന്നു.
ഡിവൈസസ് വിൻഡോയിൽ ജിപിഎസ് സെൻസർ കോൺഫിഗർ ചെയ്യുമ്പോൾ നൽകിയ ഓഫ്സെറ്റുകളിൽ നിന്ന് യാന്ത്രികമായി കണക്കാക്കിയ ഒരു റഫറൻസ് പോയിന്റ് ഉപയോഗിച്ച് ജിപിഎസ് സെൻസർ റോബോട്ടിന്റെ സ്ഥാനം തിരികെ നൽകുന്നു.
GPS സെൻസറിനെക്കുറിച്ചുള്ള കൂടുതൽ വിവരങ്ങൾക്ക്, VEX ലൈബ്രറിയിലെ VEX V5 ഉപയോഗിച്ച് GPS സെൻസർ ഉപയോഗിക്കുന്നു വായിക്കുക.
റഫറൻസ് പോയിന്റ് GPS സെൻസറിന്റെ സ്വന്തം (0, 0) സ്ഥാനമായി പ്രവർത്തിക്കുന്നു, അവിടെ GPS രീതികൾ വഴി നൽകുന്ന എല്ലാ കോർഡിനേറ്റുകളും, തലക്കെട്ടുകളും, ചലനങ്ങളും ഈ കോൺഫിഗർ ചെയ്ത പോയിന്റുമായി ആപേക്ഷികമാണ്.

ക്ലാസ് കൺസ്ട്രക്ടറുകൾ#
1 — ഡിഫോൾട്ട് ഒറിജിൻ (0, 0) ഉപയോഗിച്ച് നിർദ്ദിഷ്ട സ്മാർട്ട് പോർട്ടിൽ
gpsഒബ്ജക്റ്റ് സൃഷ്ടിക്കുന്നു.gps( int32_t index, double heading_offset = 0, turnType dir = right );
2 — നിർദ്ദിഷ്ട സ്മാർട്ട് പോർട്ടിൽ
gpsഒബ്ജക്റ്റ് സൃഷ്ടിക്കുകയും ഒരു ഇഷ്ടാനുസൃത ഉത്ഭവ സ്ഥാനം നിർവചിക്കുകയും ചെയ്യുന്നു.gps( int32_t index, double ox, double oy, distanceUnits units = mm, double heading_offset = 0, turnType dir = right );
ക്ലാസ് ഡിസ്ട്രക്റ്റർ#
gps ഒബ്ജക്റ്റ് നശിപ്പിക്കുകയും അനുബന്ധ ഉറവിടങ്ങൾ പുറത്തുവിടുകയും ചെയ്യുന്നു.
~gps();
പാരാമീറ്ററുകൾ#
പാരാമീറ്റർ |
ടൈപ്പ് ചെയ്യുക |
വിവരണം |
|---|---|---|
|
|
GPS സെൻസർ ബന്ധിപ്പിച്ചിരിക്കുന്ന സ്മാർട്ട് പോർട്ട്, |
|
|
ആരംഭ സ്ഥാനത്തിന്റെ X-കോർഡിനേറ്റ്. |
|
|
ആരംഭ സ്ഥാനത്തിന്റെ Y-കോർഡിനേറ്റ്. |
|
|
|
|
|
GPS സെൻസറിന്റെ റൊട്ടേഷണൽ ഓഫ്സെറ്റ് ഡിഗ്രിയിൽ, 0.00 മുതൽ 359.99 വരെ. ഡിഫോൾട്ട് 0 ആണ്. |
|
|
പോസിറ്റീവ് ഹെഡിംഗ് മൂല്യങ്ങൾ നൽകുന്ന ദിശ:
|
ഉദാഹരണങ്ങൾ#
// 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
അംഗ പ്രവർത്തനങ്ങൾ#
gps ക്ലാസ്സിൽ ഇനിപ്പറയുന്ന അംഗ ഫംഗ്ഷനുകൾ ഉൾപ്പെടുന്നു:
calibrate— ജിപിഎസ് സെൻസർ കാലിബ്രേറ്റ് ചെയ്യുന്നു.setOrigin— GPS കോർഡിനേറ്റ് സിസ്റ്റത്തിനായുള്ള ഉത്ഭവ സ്ഥാനം സജ്ജമാക്കുന്നു.setLocation— GPS സെൻസറിന്റെ നിലവിലെ സ്ഥാനവും തലക്കെട്ടും സജ്ജമാക്കുന്നു.xPosition— നിലവിലെ X സ്ഥാനം നൽകുന്നു.yPosition— നിലവിലെ Y സ്ഥാനം നൽകുന്നു.heading— നിലവിലെ തലക്കെട്ട് നൽകുന്നു.acceleration— നിർദ്ദിഷ്ട അക്ഷത്തിൽ രേഖീയ ത്വരണം നൽകുന്നു.gyroRate— നിർദ്ദിഷ്ട അക്ഷത്തിനായുള്ള കോണീയ പ്രവേഗം നൽകുന്നു.orientation— നിർദ്ദിഷ്ട അക്ഷത്തിനായുള്ള ഓറിയന്റേഷൻ നൽകുന്നു.quality— നിലവിലെ GPS സിഗ്നൽ ഗുണനിലവാരം നൽകുന്നു.changed— GPS ഡാറ്റ മാറുമ്പോൾ പ്രവർത്തിക്കുന്ന ഒരു കോൾബാക്ക് ഫംഗ്ഷൻ രജിസ്റ്റർ ചെയ്യുന്നു.
ഏതെങ്കിലും gps അംഗ ഫംഗ്ഷനുകൾ വിളിക്കുന്നതിന് മുമ്പ്, താഴെ കാണിച്ചിരിക്കുന്നതുപോലെ ഒരു gps ഉദാഹരണം സൃഷ്ടിക്കണം:
/* 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);
ക്ലാസ് രീതികൾ#
calibrate#
GPS സെൻസർ കാലിബ്രേറ്റ് ചെയ്യുന്നു. ഇത് GPS-ന്റെ കോൺഫിഗർ ചെയ്ത ഹെഡിംഗ് (അതിന്റെ ആംഗിൾ ഓഫ്സെറ്റ് അനുസരിച്ച്) ഡ്രൈവ്ട്രെയിനിന്റെ നിലവിലെ ഹെഡിംഗ് ആയി സജ്ജമാക്കും.
കാലിബ്രേഷൻ പ്രക്രിയയിൽ GPS സെൻസർ നിശ്ചലമായിരിക്കണം.
Available Functionsvoid calibrate();
ഈ ഫംഗ്ഷൻ ഒരു പാരാമീറ്ററുകളും എടുക്കുന്നില്ല.
Return Valuesഈ ഫംഗ്ഷൻ ഒരു മൂല്യം തിരികെ നൽകുന്നില്ല.
Examples// Turn to face the lower Field wall using data from the GPS Sensor.
GPS1.calibrate();
Drivetrain.turnToHeading(180, degrees)
setOrigin#
GPS കോർഡിനേറ്റ് സിസ്റ്റത്തിന്റെ ഉത്ഭവം സജ്ജമാക്കുന്നു.
Available Functions1 — ഉത്ഭവസ്ഥാനം നിർദ്ദിഷ്ട X, Y സ്ഥാനത്തേക്ക് സജ്ജമാക്കുന്നു.
void setOrigin( double x, double y, distanceUnits units = mm );
Parameters2 — സെൻസറിന്റെ നിലവിലെ സ്ഥാനത്തേക്ക് ഉത്ഭവം സജ്ജമാക്കുന്നു.
void setOrigin();
പാരാമീറ്റർ |
ടൈപ്പ് ചെയ്യുക |
വിവരണം |
|---|---|---|
|
|
പുതിയ ആരംഭ സ്ഥാനത്തിന്റെ X-കോർഡിനേറ്റ്. |
|
|
പുതിയ ആരംഭ സ്ഥാനത്തിന്റെ Y-കോർഡിനേറ്റ്. |
|
|
|
ഈ ഫംഗ്ഷൻ ഒരു മൂല്യം തിരികെ നൽകുന്നില്ല.
NotessetLocation#
നിലവിലെ GPS സ്ഥാനവും തലക്കെട്ടും സജ്ജമാക്കുന്നു.
Available Functions1 — നിർദ്ദിഷ്ട ദൂരത്തിന്റെയും ഭ്രമണത്തിന്റെയും യൂണിറ്റുകൾ ഉപയോഗിച്ച് നിലവിലെ സ്ഥാനം സജ്ജമാക്കുന്നു.
void setLocation( double x, double y, distanceUnits units = mm, double angle = 0, rotationUnits units_r = degrees );
Parameters2 — മില്ലിമീറ്ററും ഡിഗ്രിയും ഉപയോഗിച്ച് നിലവിലെ സ്ഥാനം സജ്ജമാക്കുന്നു.
void setLocation( double x, double y, double angle );
പാരാമീറ്റർ |
ടൈപ്പ് ചെയ്യുക |
വിവരണം |
|---|---|---|
|
|
നിലവിലെ സ്ഥാനത്തിന്റെ X-കോർഡിനേറ്റ്. |
|
|
നിലവിലെ സ്ഥാനത്തിന്റെ Y-കോർഡിനേറ്റ്. |
|
|
|
|
|
നിലവിലെ ലൊക്കേഷന്റെ തലക്കെട്ട് മൂല്യം. |
|
|
|
ഈ ഫംഗ്ഷൻ ഒരു മൂല്യം തിരികെ നൽകുന്നില്ല.
NotesxPosition#
GPS സെൻസറിന്റെ നിലവിലെ X സ്ഥാനം തിരികെ നൽകുന്നു.
Available Functionsdouble xPosition( distanceUnits units = distanceUnits::mm );
പാരാമീറ്റർ |
ടൈപ്പ് ചെയ്യുക |
വിവരണം |
|---|---|---|
|
|
തിരികെ നൽകിയ X സ്ഥാനത്തിനുള്ള അളവെടുപ്പ് യൂണിറ്റ്:
|
നിർദ്ദിഷ്ട യൂണിറ്റുകളിലെ ഉറവിടത്തിൽ നിന്നുള്ള x പൊസിഷണൽ ഓഫ്സെറ്റിനെ പ്രതിനിധീകരിക്കുന്ന double നൽകുന്നു.
നിലവിലെ ഉറവിടവുമായി താരതമ്യപ്പെടുത്തിയാണ് X സ്ഥാനം അളക്കുന്നത്.
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#
GPS സെൻസറിന്റെ നിലവിലെ Y സ്ഥാനം നൽകുന്നു.
Available Functionsdouble yPosition( distanceUnits units = distanceUnits::mm );
പാരാമീറ്റർ |
ടൈപ്പ് ചെയ്യുക |
വിവരണം |
|---|---|---|
|
|
തിരികെ നൽകിയ Y സ്ഥാനത്തിനായുള്ള അളവെടുപ്പ് യൂണിറ്റ്:
|
നിർദ്ദിഷ്ട യൂണിറ്റുകളിലെ ഉത്ഭവത്തിൽ നിന്നുള്ള Y പൊസിഷണൽ ഓഫ്സെറ്റിനെ പ്രതിനിധീകരിക്കുന്ന double നൽകുന്നു.
നിലവിലെ ഉത്ഭവവുമായി താരതമ്യപ്പെടുത്തിയാണ് Y സ്ഥാനം അളക്കുന്നത്.
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#
GPS സെൻസറിന്റെ നിലവിലെ ഹെഡിംഗ് (yaw angle) നൽകുന്നു.
Available Functionsdouble heading( rotationUnits units = rotationUnits::deg );
പാരാമീറ്റർ |
ടൈപ്പ് ചെയ്യുക |
വിവരണം |
|---|---|---|
|
|
തിരികെ നൽകിയ ഹെഡിംഗ് മൂല്യത്തിനായുള്ള അളവെടുപ്പ് യൂണിറ്റ്:
|
നിർദ്ദിഷ്ട യൂണിറ്റുകളിലെ നിലവിലെ തലക്കെട്ടിനെ പ്രതിനിധീകരിക്കുന്ന double നൽകുന്നു.
തലക്കെട്ട് മൂല്യം 0 നും 360 ഡിഗ്രിക്കും ഇടയിൽ പൊതിഞ്ഞിരിക്കുന്നു.
പോസിറ്റീവ് റൊട്ടേഷൻ ദിശ നിർണ്ണയിക്കുന്നത് നിർമ്മാണ സമയത്ത് വ്യക്തമാക്കിയ
dirപാരാമീറ്റർ ആണ്.
// 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#
നിർദ്ദിഷ്ട അക്ഷത്തിൽ GPS സെൻസർ അളന്ന രേഖീയ ത്വരണം തിരികെ നൽകുന്നു.
Available Functionsdouble acceleration(
axisType axis );
പാരാമീറ്റർ |
ടൈപ്പ് ചെയ്യുക |
വിവരണം |
|---|---|---|
|
|
ത്വരണം തിരികെ നൽകുന്ന അക്ഷം:
|
G-യിൽ (ഗുരുത്വാകർഷണ യൂണിറ്റുകൾ) നിർദ്ദിഷ്ട അക്ഷത്തിൽ ത്വരണം പ്രതിനിധീകരിക്കുന്ന double നൽകുന്നു.
ഭൂമിയുടെ ഉപരിതലത്തിലെ ഗുരുത്വാകർഷണം മൂലമുള്ള ത്വരണത്തിന് 1 G തുല്യമാണ്, ഇവിടെ ത്വരണം G യുടെ യൂണിറ്റുകളിലാണ് റിപ്പോർട്ട് ചെയ്യുന്നത്.
gyroRate#
നിർദ്ദിഷ്ട അക്ഷത്തിൽ GPS സെൻസർ അളന്ന കോണീയ പ്രവേഗം തിരികെ നൽകുന്നു.
Available Functionsdouble gyroRate(
axisType axis,
velocityUnits units );
പാരാമീറ്റർ |
ടൈപ്പ് ചെയ്യുക |
വിവരണം |
|---|---|---|
|
|
കോണീയ പ്രവേഗം നൽകുന്ന അക്ഷം:
|
|
|
തിരിച്ചുകിട്ടിയ കോണീയ പ്രവേഗത്തിന്റെ അളവെടുപ്പ് യൂണിറ്റ്:
|
തിരഞ്ഞെടുത്ത യൂണിറ്റുകളിലെ നിർദ്ദിഷ്ട അക്ഷത്തിൽ കോണീയ പ്രവേഗത്തെ പ്രതിനിധീകരിക്കുന്ന double നൽകുന്നു.
orientation#
നിർദ്ദിഷ്ട അക്ഷത്തിനായുള്ള GPS സെൻസറിന്റെ ഓറിയന്റേഷൻ ആംഗിൾ നൽകുന്നു.
Available Functionsdouble orientation(
orientationType axis,
rotationUnits units );
പാരാമീറ്റർ |
ടൈപ്പ് ചെയ്യുക |
വിവരണം |
|---|---|---|
|
|
വീണ്ടെടുക്കേണ്ട ഓറിയന്റേഷൻ അക്ഷം:
|
|
|
തിരികെ ലഭിച്ച ഓറിയന്റേഷൻ മൂല്യത്തിന്റെ അളവെടുപ്പ് യൂണിറ്റ്:
|
തിരഞ്ഞെടുത്ത യൂണിറ്റുകളിലെ നിർദ്ദിഷ്ട അക്ഷത്തിന്റെ ഓറിയന്റേഷൻ പ്രതിനിധീകരിക്കുന്ന double നൽകുന്നു.
quality#
മനസ്സിലാക്കിയ GPS സിഗ്നൽ ഗുണനിലവാരം തിരികെ നൽകുന്നു.
Available Functionsint32_t quality();
ഈ ഫംഗ്ഷൻ ഒരു പാരാമീറ്ററുകളും എടുക്കുന്നില്ല.
Return ValuesGPS സിഗ്നൽ ഗുണനിലവാരത്തെ ഒരു ശതമാനമായി പ്രതിനിധീകരിക്കുന്ന int32_t നൽകുന്നു:
സാധ്യമായ മൂല്യങ്ങൾ |
വിവരണം |
|---|---|
|
ജിപിഎസ് സെൻസറിൽ നിന്ന് റിപ്പോർട്ട് ചെയ്യപ്പെട്ട എല്ലാ പൊസിഷണൽ, ഹെഡിംഗ് ഡാറ്റയും സാധുവാണ്. |
|
സ്ഥാന ഡാറ്റ ഇനി GPS ഫീൽഡ് കോഡിൽ നിന്ന് നേരിട്ട് കണക്കാക്കുന്നില്ല, പകരം ബദൽ മാർഗങ്ങളിലൂടെയാണ് കണക്കാക്കുന്നത്. |
|
ഹെഡിംഗ് മൂല്യങ്ങൾ മാത്രമേ സാധുതയുള്ളൂ. GPS ഫീൽഡ് കോഡിന്റെ മതിയായ സ്കാനിംഗ് ഇല്ലാതെ സമയം കടന്നുപോകുമ്പോൾ, |
changed#
GPS ഹെഡിംഗ് മൂല്യം മാറുമ്പോൾ പ്രവർത്തിക്കുന്ന ഒരു കോൾബാക്ക് ഫംഗ്ഷൻ രജിസ്റ്റർ ചെയ്യുന്നു.
Available Functionsvoid changed(
void (* callback)(void) );
പാരാമീറ്റർ |
ടൈപ്പ് ചെയ്യുക |
വിവരണം |
|---|---|---|
|
|
GPS ഹെഡിംഗ് മൂല്യം മാറുമ്പോൾ വിളിക്കപ്പെടുന്ന ഒരു ഫംഗ്ഷനിലേക്കുള്ള ഒരു പോയിന്റർ. ഫംഗ്ഷൻ ഒരു പാരാമീറ്ററും എടുക്കരുത് കൂടാതെ |
ഈ ഫംഗ്ഷൻ ഒരു മൂല്യം തിരികെ നൽകുന്നില്ല.