ഇനേർഷ്യൽ സെൻസർ#
ആമുഖം#
ഒരു EXP ഇനേർഷ്യൽ സെൻസറിൽ നിന്നുള്ള ഡാറ്റ നിയന്ത്രിക്കാനും ആക്സസ് ചെയ്യാനും inertial ക്ലാസ് ഉപയോഗിക്കുന്നു. EXP-ക്ക് ബ്രെയിനിന്റെ ബിൽറ്റ്-ഇൻ ഇനേർഷ്യൽ സെൻസറോ ഒരു സ്മാർട്ട് പോർട്ടുമായി ബന്ധിപ്പിച്ചിരിക്കുന്ന ഒരു ബാഹ്യ ഇനേർഷ്യൽ സെൻസറോ ഉപയോഗിക്കാം.
റോബോട്ട് എങ്ങനെ ചലിക്കുന്നുവെന്നും തിരിയുന്നുവെന്നും ഒരു ഇനേർഷ്യൽ സെൻസർ അളക്കുന്നു. ഗൈറോസ്കോപ്പ് തലക്കെട്ട്, ഭ്രമണം, ഗൈറോ നിരക്ക്, ഓറിയന്റേഷൻ തുടങ്ങിയ തിരിവുകൾ അളക്കുന്നു. x-, y-, z- അക്ഷങ്ങളിലൂടെ വേഗത കൂട്ടുകയോ കുറയ്ക്കുകയോ ചെയ്യുന്നത് പോലുള്ള ചലനത്തിലെ മാറ്റങ്ങൾ ആക്സിലറോമീറ്റർ അളക്കുന്നു.
ക്ലാസ് കൺസ്ട്രക്ടറുകൾ#
inertial(
int32_t index,
turnType dir = turnType::right );
ക്ലാസ് ഡിസ്ട്രക്റ്റർ#
inertial ഒബ്ജക്റ്റിനെ നശിപ്പിക്കുകയും അനുബന്ധ ഉറവിടങ്ങൾ പുറത്തുവിടുകയും ചെയ്യുന്നു.
~inertial();
പാരാമീറ്ററുകൾ#
പാരാമീറ്റർ |
ടൈപ്പ് ചെയ്യുക |
വിവരണം |
|---|---|---|
|
|
ഓപ്ഷണൽ. ഒരു ബാഹ്യ ഇനേർഷ്യൽ സെൻസർ ബന്ധിപ്പിച്ചിരിക്കുന്ന സ്മാർട്ട് പോർട്ട്, |
|
|
ഓപ്ഷണൽ. പോസിറ്റീവ് മൂല്യങ്ങൾ നൽകുന്ന ദിശ:
|
ഉദാഹരണങ്ങൾ#
// Use the Brain's built-in Inertial Sensor.
inertial BrainInertial = inertial();
// Use an external Inertial Sensor connected to Port 1.
inertial Inertial1 = inertial(PORT1);
അംഗ പ്രവർത്തനങ്ങൾ#
inertial ക്ലാസ്സിൽ ഇനിപ്പറയുന്ന അംഗ ഫംഗ്ഷനുകൾ ഉൾപ്പെടുന്നു:
heading— സെൻസർ അഭിമുഖീകരിക്കുന്ന ദിശ തിരികെ നൽകുന്നു.rotation— സെൻസർ എത്ര ദൂരം തിരിഞ്ഞുവെന്ന് നൽകുന്നു.setHeading— സെൻസറിന്റെ നിലവിലെ ഹെഡിംഗ് ഒരു പുതിയ ഹെഡിംഗ് മൂല്യത്തിലേക്ക് സജ്ജമാക്കുന്നു.setRotation— സെൻസറിന്റെ നിലവിലെ ഭ്രമണം ഒരു പുതിയ ഭ്രമണ മൂല്യത്തിലേക്ക് സജ്ജമാക്കുന്നു.calibrate— ഇനേർഷ്യൽ സെൻസർ കാലിബ്രേറ്റ് ചെയ്യുന്നു.resetHeading— സെൻസറിന്റെ നിലവിലെ ഹെഡിംഗ് 0 ഡിഗ്രിയിലേക്ക് പുനഃസജ്ജമാക്കുന്നു.resetRotation— സെൻസറിന്റെ നിലവിലെ റൊട്ടേഷൻ 0 ഡിഗ്രിയിലേക്ക് പുനഃസജ്ജമാക്കുന്നു.isCalibrating— ഇനേർഷ്യൽ സെൻസർ നിലവിൽ കാലിബ്രേറ്റ് ചെയ്യുന്നുണ്ടോ എന്ന് നൽകുന്നു.changed— തലക്കെട്ട് മാറുമ്പോൾ വിളിക്കേണ്ട ഒരു ഫംഗ്ഷൻ രജിസ്റ്റർ ചെയ്യുന്നു.installed— ഇനേർഷ്യൽ സെൻസർ ഇൻസ്റ്റാൾ ചെയ്തിട്ടുണ്ടോ എന്ന് നൽകുന്നു.acceleration— തിരഞ്ഞെടുത്ത അക്ഷത്തിൽ സെൻസർ എത്ര വേഗത്തിൽ വേഗത കൂട്ടുകയോ കുറയ്ക്കുകയോ ചെയ്യുന്നുവെന്ന് നൽകുന്നു.gyroRate— തിരഞ്ഞെടുത്ത അക്ഷത്തിൽ സെൻസർ എത്ര വേഗത്തിൽ കറങ്ങുന്നുവെന്ന് നൽകുന്നു.orientation— ഇനേർഷ്യൽ സെൻസറിന്റെ റോൾ, പിച്ച് അല്ലെങ്കിൽ യാ ആംഗിൾ നൽകുന്നു.collision— ഒരു കൂട്ടിയിടി കണ്ടെത്തുമ്പോൾ പ്രവർത്തിപ്പിക്കുന്നതിനായി ഒരു ഫംഗ്ഷൻ രജിസ്റ്റർ ചെയ്യുന്നു.setTurnType— ദിശ തിരിയുന്ന സെറ്റുകൾ പോസിറ്റീവ് മൂല്യങ്ങൾ നൽകുന്നു.getTurnType— പോസിറ്റീവ് മൂല്യങ്ങൾ ഉൽപാദിപ്പിക്കുന്ന ടേൺ ദിശ നൽകുന്ന റിട്ടേണുകൾ.
ഏതെങ്കിലും inertial അംഗ ഫംഗ്ഷനുകൾ വിളിക്കുന്നതിന് മുമ്പ്, താഴെ കാണിച്ചിരിക്കുന്നതുപോലെ ഒരു inertial ഉദാഹരണം സൃഷ്ടിക്കണം:
/* This constructor is required when using VS Code.
Inertial Sensor configuration is generated automatically
in VEXcode using the Device Menu. Replace the values
as needed. */
// Use the Brain's built-in Inertial Sensor.
inertial BrainInertial = inertial();
heading#
ഇനേർഷ്യൽ സെൻസറിന്റെ നിലവിലെ തലക്കെട്ട് നൽകുന്നു.
ഒരു ഹെഡിംഗ് എന്നത് സെൻസർ അഭിമുഖീകരിക്കുന്ന ദിശയാണ്, ഇത് 0 മുതൽ 359.99 വരെയുള്ള ഡിഗ്രികളിൽ അളക്കുന്നു. സെൻസർ 359.99 ഡിഗ്രിക്ക് മുകളിൽ തിരിഞ്ഞാൽ, ഹെഡിംഗ് 0 ഡിഗ്രിയിലേക്ക് തിരികെ പൊതിയുന്നു.
Available Functionsdouble heading( rotationUnits units = degrees );
പാരാമീറ്റർ |
ടൈപ്പ് ചെയ്യുക |
വിവരണം |
|---|---|---|
|
|
ഹെഡിംഗ് യൂണിറ്റ്:
|
നിർദ്ദിഷ്ട യൂണിറ്റുകളിലെ സെൻസറിന്റെ നിലവിലെ ഹെഡിംഗിനെ പ്രതിനിധീകരിക്കുന്ന double നൽകുന്നു.
ഹെഡിംഗ് മൂല്യം 0 നും 359.99 ഡിഗ്രിക്കും ഇടയിൽ പൊതിഞ്ഞിരിക്കുന്നു. തുടർച്ചയായ ഭ്രമണ മൂല്യം ആക്സസ് ചെയ്യാൻ
rotationഉപയോഗിക്കുക.
// Turn, then show the current heading
Drivetrain.turnFor(right, 450, degrees);
Brain.Screen.print("%f", myInertial.heading(degrees));
rotation#
ഇനേർഷ്യൽ സെൻസറിന്റെ നിലവിലെ ഭ്രമണം തിരികെ നൽകുന്നു.
സെൻസർ എത്രമാത്രം തിരിഞ്ഞിരിക്കുന്നു എന്നതാണ് ഭ്രമണം. ഹെഡിംഗിൽ നിന്ന് വ്യത്യസ്തമായി, ഭ്രമണം 359.99 ഡിഗ്രിയിൽ കൂടുതൽ വർദ്ധിക്കുകയോ 0 ഡിഗ്രിയിൽ താഴെ കുറയുകയോ ചെയ്യാം. ഉദാഹരണത്തിന്, വലത്തേക്ക് രണ്ട് പൂർണ്ണ തിരിവുകൾ നടത്തുമ്പോൾ 720 ഡിഗ്രി ഭ്രമണം ലഭിക്കും. 0 ഡിഗ്രിയിൽ നിന്ന് ഇടത്തേക്ക് ഒരു പൂർണ്ണ തിരിവ് തിരിക്കുമ്പോൾ -360 ഡിഗ്രി ഭ്രമണം ലഭിക്കും.
Available Functionsdouble rotation( rotationUnits units = degrees );
പാരാമീറ്റർ |
ടൈപ്പ് ചെയ്യുക |
വിവരണം |
|---|---|---|
|
|
ഭ്രമണ യൂണിറ്റ്:
|
നിർദ്ദിഷ്ട യൂണിറ്റുകളിലെ നിലവിലെ ഭ്രമണത്തെ പ്രതിനിധീകരിക്കുന്ന double നൽകുന്നു.
ഭ്രമണ മൂല്യം തുടർച്ചയായതാണ്, 0 നും 359.99 ഡിഗ്രിക്കും ഇടയിൽ പൊതിയുന്നില്ല. പൊതിഞ്ഞ തലക്കെട്ട് മൂല്യം ആക്സസ് ചെയ്യാൻ
headingഉപയോഗിക്കുക.
// Turn, then show the current rotation
Drivetrain.turnFor(right, 450, degrees);
Brain.Screen.print("%f", myInertial.rotation(degrees));
setHeading#
ഒരു ഹെഡിംഗ് എന്നത് സെൻസർ അഭിമുഖീകരിക്കുന്ന ദിശയാണ്, ഇത് 0 മുതൽ 359.99 വരെയുള്ള ഡിഗ്രികളിൽ അളക്കുന്നു. ഈ ഫംഗ്ഷൻ ഇനേർഷ്യൽ സെൻസറിന്റെ നിലവിലെ ഹെഡിംഗിനെ ഒരു പുതിയ ഹെഡിംഗ് മൂല്യത്തിലേക്ക് മാറ്റുന്നു.
ഉദാഹരണത്തിന്, സെൻസർ വലത്തേക്ക് അഭിമുഖമായി തിരിഞ്ഞിട്ടുണ്ടെങ്കിൽ, തലക്കെട്ട് 0 ഡിഗ്രിയിലേക്ക് സജ്ജമാക്കുന്നത് ആ വലതുവശത്തുള്ള സ്ഥാനത്തെ പുതിയ 0 ഡിഗ്രിയാക്കുന്നു. തുടർന്ന് ആ പുതിയ ദിശയെ അടിസ്ഥാനമാക്കി സെൻസറിന് മറ്റ് തലക്കെട്ടുകൾ ട്രാക്ക് ചെയ്യാൻ കഴിയും.
Available Functionsvoid setHeading( double value, rotationUnits units );
പാരാമീറ്റർ |
ടൈപ്പ് ചെയ്യുക |
വിവരണം |
|---|---|---|
|
|
സെൻസറിനായി സജ്ജമാക്കേണ്ട ഹെഡ്ഡിംഗ് മൂല്യം, ഡിഗ്രികളിൽ. ഇത് 0 മുതൽ 359.99 വരെയുള്ള മൂല്യമാകാം. |
|
|
ഹെഡിംഗ് യൂണിറ്റ്:
|
ഈ ഫംഗ്ഷൻ ഒരു മൂല്യം തിരികെ നൽകുന്നില്ല.
Examples// Turn the robot around
myInertial.setHeading(180, degrees);
Drivetrain.turnToHeading(0, degrees);
setRotation#
സെൻസർ എത്ര തിരിഞ്ഞിരിക്കുന്നു എന്നതാണ് റൊട്ടേഷൻ, ഇത് ഡിഗ്രിയിൽ അളക്കുന്നു. ഹെഡിംഗിൽ നിന്ന് വ്യത്യസ്തമായി, റൊട്ടേഷൻ 359.99 ഡിഗ്രിയിൽ കൂടുതൽ വർദ്ധിക്കുകയോ 0 ഡിഗ്രിയിൽ താഴെ കുറയുകയോ ചെയ്യാം. ഒരു പ്രോജക്റ്റിന്റെ തുടക്കത്തിൽ, റൊട്ടേഷൻ മൂല്യം 0 ഡിഗ്രിയായി സജ്ജീകരിച്ചിരിക്കുന്നു. ഈ ഫംഗ്ഷൻ ഇനേർഷ്യൽ സെൻസറിന്റെ നിലവിലെ റൊട്ടേഷനെ ഒരു പുതിയ മൂല്യത്തിലേക്ക് മാറ്റുന്നു.
ഉദാഹരണത്തിന്, സെൻസർ വലത്തേക്ക് രണ്ട് പൂർണ്ണ തിരിവുകൾ നടത്തിയിട്ടുണ്ടെങ്കിൽ, അതിന്റെ ഭ്രമണ മൂല്യം 720 ഡിഗ്രി ആയിരിക്കും. ഭ്രമണം 0 ഡിഗ്രിയിലേക്ക് സജ്ജമാക്കുന്നത് ആ ഭ്രമണത്തെ 720 ൽ നിന്ന് 0 ഡിഗ്രിയിലേക്ക് പുനഃസജ്ജമാക്കും. തുടർന്ന് ആ പുതിയ മൂല്യത്തെ അടിസ്ഥാനമാക്കി സെൻസറിന് ഭ്രമണങ്ങൾ ട്രാക്ക് ചെയ്യാൻ കഴിയും.
Available Functionsvoid setRotation( double value, rotationUnits units );
പാരാമീറ്റർ |
ടൈപ്പ് ചെയ്യുക |
വിവരണം |
|---|---|---|
|
|
സെൻസറിനായി സജ്ജമാക്കേണ്ട ഭ്രമണ മൂല്യം, ഡിഗ്രികളിൽ. ഇത് ഒരു പൂർണ്ണസംഖ്യയോ ദശാംശമോ ആകാം. |
|
|
ഭ്രമണ യൂണിറ്റ്:
|
ഈ ഫംഗ്ഷൻ ഒരു മൂല്യം തിരികെ നൽകുന്നില്ല.
Examples// Turn the robot around
myInertial.setRotation(-180, degrees);
Drivetrain.turnToRotation(0, degrees);
calibrate#
ഇനേർഷ്യൽ സെൻസർ കാലിബ്രേറ്റ് ചെയ്യുന്നു.
കാലിബ്രേഷൻ സെൻസറിന്റെ തിരിവുകൾ ശരിയായി അളക്കാൻ സഹായിക്കുന്നു. കാലിബ്രേഷൻ സമയത്ത് സെൻസർ നിശ്ചലമായി നിലനിർത്തുക. കാലിബ്രേഷൻ സമയത്ത് സെൻസർ ചലിച്ചാൽ, ഹെഡിംഗ്, റൊട്ടേഷൻ, ഗൈറോ റേറ്റ്, ഓറിയന്റേഷൻ മൂല്യങ്ങൾ എന്നിവ ശരിയായി അളക്കണമെന്നില്ല.
Available Functionsvoid calibrate( );
ഈ ഫംഗ്ഷൻ ഒരു പാരാമീറ്ററുകളും സ്വീകരിക്കുന്നില്ല.
Return Valuesഈ ഫംഗ്ഷൻ ഒരു മൂല്യം തിരികെ നൽകുന്നില്ല.
Notesകാലിബ്രേഷൻ പുരോഗമിക്കുമ്പോൾ സെൻസർ നിശ്ചലമായിരിക്കണം.
കാലിബ്രേഷൻ പൂർത്തിയായി എന്ന് നിർണ്ണയിക്കാൻ
isCalibratingഉപയോഗിക്കുക.
resetHeading#
ഇനേർഷ്യൽ സെൻസറിന്റെ നിലവിലെ ഹെഡിംഗ് 0 ഡിഗ്രിയിലേക്ക് പുനഃസജ്ജമാക്കുന്നു.
ഈ ഫംഗ്ഷൻ ഉപയോഗിച്ച ശേഷം, സെൻസറിന്റെ നിലവിലെ ദിശ പുതിയ 0 ഡിഗ്രി ഹെഡിംഗ് ആയി മാറുന്നു.
Available Functionsvoid resetHeading();
ഈ ഫംഗ്ഷൻ ഒരു പാരാമീറ്ററുകളും എടുക്കുന്നില്ല.
Return Valuesഈ ഫംഗ്ഷൻ ഒരു മൂല്യം തിരികെ നൽകുന്നില്ല.
resetRotation#
ഇനേർഷ്യൽ സെൻസറിന്റെ നിലവിലെ ഭ്രമണം 0 ഡിഗ്രിയിലേക്ക് പുനഃസജ്ജമാക്കുന്നു.
ഈ ഫംഗ്ഷൻ ഉപയോഗിച്ച ശേഷം, പുതിയ 0 ഡിഗ്രി റൊട്ടേഷൻ മൂല്യത്തിൽ നിന്ന് ഭാവിയിലെ തിരിവുകൾ സെൻസർ ട്രാക്ക് ചെയ്യുന്നു.
Available Functionsvoid resetRotation();
ഈ ഫംഗ്ഷൻ ഒരു പാരാമീറ്ററുകളും എടുക്കുന്നില്ല.
Return Valuesഈ ഫംഗ്ഷൻ ഒരു മൂല്യം തിരികെ നൽകുന്നില്ല.
isCalibrating#
ഇനേർഷ്യൽ സെൻസർ നിലവിൽ കാലിബ്രേറ്റ് ചെയ്യുന്നുണ്ടോ എന്ന് നൽകുന്നു.
Available Functionsbool isCalibrating();
ഈ ഫംഗ്ഷൻ ഒരു പാരാമീറ്ററുകളും എടുക്കുന്നില്ല.
Return Valuesഇനേർഷ്യൽ സെൻസർ കാലിബ്രേറ്റ് ചെയ്യുന്നുണ്ടോ എന്ന് സൂചിപ്പിക്കുന്ന ഒരു ബൂളിയൻ നൽകുന്നു:
-
true— The sensor is currently calibrating. -
false— The sensor is not currently calibrating.
changed#
ഇനേർഷ്യൽ സെൻസറിന്റെ ഹെഡിംഗ് മൂല്യം മാറുമ്പോൾ പ്രവർത്തിക്കുന്ന ഒരു കോൾബാക്ക് ഫംഗ്ഷൻ രജിസ്റ്റർ ചെയ്യുന്നു.
Available Functionsvoid changed( void (* callback)(void) );
പാരാമീറ്റർ |
ടൈപ്പ് ചെയ്യുക |
വിവരണം |
|---|---|---|
|
|
ഹെഡിംഗ് മൂല്യം മാറുമ്പോൾ വിളിക്കപ്പെടുന്ന ഒരു ഫംഗ്ഷനിലേക്കുള്ള ഒരു പോയിന്റർ. ഫംഗ്ഷൻ ഒരു പാരാമീറ്ററും എടുക്കരുത്, കൂടാതെ |
ഈ ഫംഗ്ഷൻ ഒരു മൂല്യം തിരികെ നൽകുന്നില്ല.
Examplesകോൾബാക്ക് ഫംഗ്ഷൻ നിർവചിക്കുക (
int main()ന് പുറത്ത്)// Called when the inertial sensor's heading value changes void onHeadingChanged() { Brain.Screen.clearScreen(); Brain.Screen.setCursor(1, 1); Brain.Screen.print("Heading: %.2f", myInertial.heading()); }
int main()നുള്ളിൽ കോൾബാക്ക് രജിസ്റ്റർ ചെയ്യുക./* vexcodeInit() is only required when using VEXcode. Remove vexcodeInit() if compiling in VS Code. */ int main() { // Turn the robot by hand briefly // to change the robot's heading myInertial.changed(onHeadingChanged); }
installed#
ഇനേർഷ്യൽ സെൻസർ ഇൻസ്റ്റാൾ ചെയ്ത് കണക്റ്റ് ചെയ്തിട്ടുണ്ടോ എന്ന് നൽകുന്നു.
Available Functionsbool installed();
ഈ ഫംഗ്ഷൻ ഒരു പാരാമീറ്ററുകളും എടുക്കുന്നില്ല.
Return Valuesഇനേർഷ്യൽ സെൻസർ ഇൻസ്റ്റാൾ ചെയ്തിട്ടുണ്ടോ എന്നും കണക്റ്റ് ചെയ്തിട്ടുണ്ടോ എന്നും സൂചിപ്പിക്കുന്ന ഒരു ബൂളിയൻ നൽകുന്നു:
-
true— The sensor is connected and responding. -
false— The sensor is not connected or not detected.
acceleration#
സെൻസർ എത്ര വേഗത്തിൽ വേഗത കൂട്ടുന്നു അല്ലെങ്കിൽ കുറയ്ക്കുന്നു എന്നതാണ് ആക്സിലറേഷൻ. ഈ ഫംഗ്ഷൻ തിരഞ്ഞെടുത്ത അക്ഷത്തിൽ ഇനേർഷ്യൽ സെൻസറിന്റെ ത്വരണം -4.0 G മുതൽ 4.0 G വരെ തിരികെ നൽകുന്നു.
ത്വരണം അളക്കാൻ ഉപയോഗിക്കുന്ന ഒരു യൂണിറ്റാണ് G നിശ്ചലമായി ഇരിക്കുമ്പോൾ ഗുരുത്വാകർഷണത്താൽ നിങ്ങൾക്ക് അനുഭവപ്പെടുന്ന ത്വരണത്തെയാണ് 1 G എന്ന് പറയുന്നത്. തിരഞ്ഞെടുത്ത അക്ഷത്തിലെ ത്വരണത്തിന്റെ ദിശയെ ആശ്രയിച്ച് മൂല്യം പോസിറ്റീവ് അല്ലെങ്കിൽ നെഗറ്റീവ് ആകാം.
double acceleration( axisType axis );
പാരാമീറ്റർ |
ടൈപ്പ് ചെയ്യുക |
വിവരണം |
|---|---|---|
|
|
ത്വരണം അളക്കുന്നതിനുള്ള അച്ചുതണ്ട്:
|
G-യിൽ (ഗുരുത്വാകർഷണ യൂണിറ്റുകൾ) നിർദ്ദിഷ്ട അക്ഷത്തിൽ ത്വരണം പ്രതിനിധീകരിക്കുന്ന double നൽകുന്നു.
ത്വരണം മൂല്യങ്ങൾ
Gയൂണിറ്റുകളിലാണ് റിപ്പോർട്ട് ചെയ്യുന്നത്.
gyroRate#
ഇനേർഷ്യൽ സെൻസർ എത്ര വേഗത്തിൽ കറങ്ങുന്നു എന്നതാണ് ഗൈറോ നിരക്ക്. തിരഞ്ഞെടുത്ത അക്ഷത്തിൽ ഇനേർഷ്യൽ സെൻസറിന്റെ നിലവിലെ ഭ്രമണ വേഗത ഈ ഫംഗ്ഷൻ നൽകുന്നു.
സെൻസർ ആ അക്ഷത്തിൽ കറങ്ങുന്ന ദിശയെ ആശ്രയിച്ച് മൂല്യം പോസിറ്റീവ് അല്ലെങ്കിൽ നെഗറ്റീവ് ആകാം.
Available Functionsdouble gyroRate( axisType axis, velocityUnits units );
പാരാമീറ്റർ |
ടൈപ്പ് ചെയ്യുക |
വിവരണം |
|---|---|---|
|
|
ഗൈറോ നിരക്ക് നൽകുന്ന അച്ചുതണ്ട്:
|
|
|
ഗൈറോ റേറ്റ് യൂണിറ്റ്:
|
തിരഞ്ഞെടുത്ത യൂണിറ്റുകളിലെ നിർദ്ദിഷ്ട അക്ഷത്തിൽ നിലവിലുള്ള ഭ്രമണ വേഗതയെ പ്രതിനിധീകരിക്കുന്ന double നൽകുന്നു.
// Display the rate of change of rotation while turning in dps
Drivetrain.turn(right);
wait(1, seconds);
Brain.Screen.print(myInertial.gyroRate(zaxis, dps));
Drivetrain.stop();
orientation#
തിരഞ്ഞെടുത്ത ഒരു അക്ഷത്തിലുള്ള ഇനേർഷ്യൽ സെൻസറിന്റെ നിലവിലെ കോൺ ആണ് ഓറിയന്റേഷൻ. ഈ ഫംഗ്ഷൻ ഇനേർഷ്യൽ സെൻസറിന്റെ ഓറിയന്റേഷൻ -180.00 മുതൽ 180.00 ഡിഗ്രി വരെ തിരികെ നൽകുന്നു.
തിരഞ്ഞെടുത്ത x-, y-, അല്ലെങ്കിൽ z-അക്ഷം സെൻസറിന്റെ ഓറിയന്റേഷൻ അക്ഷങ്ങളിൽ ഒന്നിനോട് യോജിക്കുന്നു.
Available Functionsdouble orientation(
axisType axis,
rotationUnits units );
പാരാമീറ്റർ |
ടൈപ്പ് ചെയ്യുക |
വിവരണം |
|---|---|---|
|
|
ഓറിയന്റേഷൻ നൽകുന്ന അക്ഷം:
|
|
|
ഭ്രമണ യൂണിറ്റ്:
|
നിർദ്ദിഷ്ട യൂണിറ്റുകളിൽ തിരഞ്ഞെടുത്ത ഓറിയന്റേഷൻ കോണിനെ പ്രതിനിധീകരിക്കുന്ന double നൽകുന്നു.
while (true) {
Brain.Screen.clearScreen();
Brain.Screen.setCursor(1,1);
// Show the Inertial Sensor's orientation value
// for roll in degrees
double orient = myInertial.orientation(xaxis, deg);
Brain.Screen.print("%f", orient);
wait(0.1, seconds);
}
collision#
ഇനേർഷ്യൽ സെൻസർ പെട്ടെന്നുള്ള ആഘാതമോ കൂട്ടിയിടിയോ കണ്ടെത്തുമ്പോൾ പ്രവർത്തിക്കുന്ന ഒരു കോൾബാക്ക് ഫംഗ്ഷൻ രജിസ്റ്റർ ചെയ്യുന്നു.
Available Functionsvoid collision( void (* callback)(axisType, double, double, double) );
പാരാമീറ്റർ |
ടൈപ്പ് ചെയ്യുക |
വിവരണം |
|---|---|---|
|
|
ഒരു കൂട്ടിയിടി കണ്ടെത്തുമ്പോൾ വിളിക്കപ്പെടുന്ന ഒരു ഫംഗ്ഷനിലേക്കുള്ള ഒരു പോയിന്റർ. കോൾബാക്ക് ഫംഗ്ഷൻ ഇനിപ്പറയുന്ന പാരാമീറ്ററുകൾ അംഗീകരിക്കണം:
void തിരികെ നൽകണം. |
ഈ ഫംഗ്ഷൻ ഒരു മൂല്യം തിരികെ നൽകുന്നില്ല.
Examplesകോൾബാക്ക് ഫംഗ്ഷൻ നിർവചിക്കുക (
int main()ന് പുറത്ത്)// Called when the Inertial Sensor detects a collision void onCollision(axisType axis, double x, double y, double z) { Brain.Screen.print("Collision detected!"); }
int main()നുള്ളിൽ കോൾബാക്ക് രജിസ്റ്റർ ചെയ്യുക./* vexcodeInit() is only required when using VEXcode. Remove vexcodeInit() if compiling in VS Code. */ int main() { // Firmly move the robot by hand briefly to simulate // a collision and call the onCollision function myInertial.collision(onCollision); }
setTurnType#
ഏത് ദിശയിലാണ് തിരിയുന്നത് എന്ന് സജ്ജമാക്കുമ്പോൾ പോസിറ്റീവ് മൂല്യങ്ങൾ ലഭിക്കും.
Available Functionsvoid setTurnType( turnType dir );
പാരാമീറ്റർ |
ടൈപ്പ് ചെയ്യുക |
വിവരണം |
|---|---|---|
|
|
പോസിറ്റീവ് മൂല്യങ്ങൾ നൽകുന്ന ദിശ:
|
ഈ ഫംഗ്ഷൻ ഒരു മൂല്യം തിരികെ നൽകുന്നില്ല.
Notesഈ ക്രമീകരണം
headingഉംrotationഉം പോസിറ്റീവ്, നെഗറ്റീവ് മൂല്യങ്ങൾ എങ്ങനെ റിപ്പോർട്ട് ചെയ്യുന്നു എന്നതിനെ ബാധിക്കുന്നു.inertialഒബ്ജക്റ്റ് നിർമ്മിക്കുമ്പോൾ വ്യക്തമാക്കിയdirമൂല്യത്തെ ഈ ഫംഗ്ഷൻ വിളിക്കുന്നത് മറികടക്കുന്നു.
getTurnType#
തിരിവിന്റെ ദിശയിലുള്ള റിട്ടേണുകൾ പോസിറ്റീവ് മൂല്യങ്ങൾ സൃഷ്ടിക്കുന്നു.
Available FunctionsturnType getTurnType();
ഈ ഫംഗ്ഷൻ ഒരു പാരാമീറ്ററുകളും എടുക്കുന്നില്ല.
Return Valuesപോസിറ്റീവ് മൂല്യങ്ങൾ സൃഷ്ടിക്കുന്ന ദിശയെ സൂചിപ്പിക്കുന്ന ഒരു turnType നൽകുന്നു:
-
right— Clockwise rotation returns positive values. -
left— Counterclockwise rotation returns positive values.
ഈ മൂല്യം
inertialഒബ്ജക്റ്റിന്റെ നിർമ്മാണ സമയത്ത് അല്ലെങ്കിൽsetTurnTypeവിളിച്ചുകൊണ്ട് സജ്ജമാക്കുന്നു.