जड़त्वीय सेंसर#

परिचय#

inertial क्लास का उपयोग EXP इनर्शियल सेंसर से डेटा को नियंत्रित करने और एक्सेस करने के लिए किया जाता है। EXP ब्रेन के बिल्ट-इन इनर्शियल सेंसर या स्मार्ट पोर्ट से कनेक्टेड बाहरी इनर्शियल सेंसर का उपयोग कर सकता है।

एक इनर्शियल सेंसर रोबोट की गति और मुड़ने की प्रक्रिया को मापता है। जाइरोस्कोप दिशा, घूर्णन, जाइरो रेट और अभिविन्यास जैसी मुड़ने की प्रक्रिया को मापता है। एक्सेलेरोमीटर गति में होने वाले परिवर्तनों को मापता है, जैसे कि x, y और z अक्षों के अनुदिश गति का बढ़ना या घटना।

क्लास कंस्ट्रक्टर#

inertial(
    int32_t  index,
    turnType dir = turnType::right );

क्लास डिस्ट्रक्टर#

inertial वस्तु को नष्ट करता है और उससे संबंधित संसाधनों को मुक्त करता है।

~inertial();

पैरामीटर#

पैरामीटर

प्रकार

विवरण

index

int32_t

वैकल्पिक। वह स्मार्ट पोर्ट जिससे बाहरी इनर्टियल सेंसर जुड़ा होता है, उसे PORTxके रूप में लिखा जाता है, जहाँ x पोर्ट संख्या है (उदाहरण के लिए, PORT1)। ब्रेन के अंतर्निर्मित इनर्टियल सेंसर का उपयोग करते समय इस पैरामीटर को शामिल न करें।

dir

turnType

वैकल्पिक। वह दिशा जो धनात्मक मान लौटाती है:

  • right (डिफ़ॉल्ट) — दाएँ मुड़ने पर धनात्मक मान प्राप्त होते हैं।
  • left — बाएँ मुड़ने पर धनात्मक मान प्राप्त होते हैं।

उदाहरण#

// 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 Functions
double heading( rotationUnits units = degrees );

Parameters

पैरामीटर

प्रकार

विवरण

units

rotationUnits

The heading unit:

  • deg / degrees (default) — degrees
  • turns / rev — revolutions

Return Values

यह निर्दिष्ट इकाइयों में सेंसर की वर्तमान दिशा को दर्शाने वाला double मान लौटाता है।

Notes
  • हेडिंग मान 0 और 359.99 डिग्री के बीच लिपटा हुआ है। निरंतर रोटेशन मान तक पहुँचने के लिए rotation का उपयोग करें।

Examples
// 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 Functions
double rotation( rotationUnits units = degrees );

Parameters

पैरामीटर

प्रकार

विवरण

units

rotationUnits

The rotation unit:

  • deg / degrees (default) — degrees
  • turns / rev — revolutions

Return Values

यह निर्दिष्ट इकाइयों में वर्तमान घूर्णन को दर्शाने वाला double मान लौटाता है।

Notes
  • रोटेशन मान सतत है और 0 तथा 359.99 डिग्री के बीच रैप नहीं होता है। रैप्ड हेडिंग मान तक पहुँचने के लिए heading का उपयोग करें।

Examples
// 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 Functions
void setHeading( double value, rotationUnits units );

Parameters

पैरामीटर

प्रकार

विवरण

value

double

सेंसर के लिए निर्धारित की जाने वाली दिशा का मान (डिग्री में)। यह मान 0 से 359.99 तक हो सकता है।

units

rotationUnits

The heading unit:

  • deg / degrees — degrees
  • turns / rev — revolutions

Return Values

इस कार्य पर कीमत के लिहाज से कुछ भी रिटर्न नहीं मिलता है।

Examples
// Turn the robot around
myInertial.setHeading(180, degrees);
Drivetrain.turnToHeading(0, degrees);

setRotation#

रोटेशन वह माप है जिससे सेंसर घूमता है, जिसे डिग्री में मापा जाता है। हेडिंग के विपरीत, रोटेशन 359.99 डिग्री से अधिक या 0 डिग्री से कम हो सकता है। किसी प्रोजेक्ट की शुरुआत में, रोटेशन का मान 0 डिग्री पर सेट होता है। यह फ़ंक्शन इनर्शियल सेंसर के वर्तमान रोटेशन को एक नए मान में बदलता है।

उदाहरण के लिए, यदि सेंसर ने दाईं ओर दो पूरे चक्कर लगा लिए हैं, तो उसका घूर्णन मान 720 डिग्री होगा। घूर्णन को 0 डिग्री पर सेट करने से यह 720 से 0 डिग्री पर रीसेट हो जाएगा। फिर सेंसर इस नए मान के आधार पर घूर्णन को ट्रैक कर सकता है।

Available Functions
void setRotation( double value, rotationUnits units );

Parameters

पैरामीटर

प्रकार

विवरण

value

double

सेंसर के लिए निर्धारित की जाने वाली घूर्णन मान (डिग्री में)। यह पूर्णांक या दशमलव हो सकता है।

units

rotationUnits

The rotation unit:

  • deg / degrees — degrees
  • turns / rev — revolutions

Return Values

इस कार्य पर कीमत के लिहाज से कुछ भी रिटर्न नहीं मिलता है।

Examples
// Turn the robot around
myInertial.setRotation(-180, degrees);
Drivetrain.turnToRotation(0, degrees);

calibrate#

इनर्शियल सेंसर को कैलिब्रेट करता है।

कैलिब्रेशन से सेंसर को घुमावों को सही ढंग से मापने में मदद मिलती है। कैलिब्रेशन के दौरान सेंसर को स्थिर रखें। यदि कैलिब्रेशन के दौरान सेंसर हिलता है, तो हेडिंग, रोटेशन, जाइरो रेट और ओरिएंटेशन के मान सही ढंग से नहीं मापे जा सकते हैं।

Available Functions
void calibrate( );

Parameters

यह फ़ंक्शन कोई पैरामीटर स्वीकार नहीं करता है।

Return Values

इस कार्य पर कीमत के लिहाज से कुछ भी रिटर्न नहीं मिलता है।

Notes
  • कैलिब्रेशन प्रक्रिया के दौरान सेंसर स्थिर रहना चाहिए।

  • कैलिब्रेशन कब पूरा हुआ यह निर्धारित करने के लिए isCalibrating का उपयोग करें।

resetHeading#

इनर्शियल सेंसर की वर्तमान दिशा को 0 डिग्री पर रीसेट करता है।

इस फ़ंक्शन का उपयोग करने के बाद, सेंसर की वर्तमान दिशा नई 0 डिग्री हेडिंग बन जाती है।

Available Functions
void resetHeading();

Parameters

यह फ़ंक्शन कोई पैरामीटर नहीं लेता है।

Return Values

इस कार्य पर कीमत के लिहाज से कुछ भी रिटर्न नहीं मिलता है।

resetRotation#

इनर्शियल सेंसर के वर्तमान रोटेशन को 0 डिग्री पर रीसेट करता है।

इस फ़ंक्शन का उपयोग करने के बाद, सेंसर नए 0 डिग्री रोटेशन मान से भविष्य के घुमावों को ट्रैक करता है।

Available Functions
void resetRotation();

Parameters

यह फ़ंक्शन कोई पैरामीटर नहीं लेता है।

Return Values

इस कार्य पर कीमत के लिहाज से कुछ भी रिटर्न नहीं मिलता है।

isCalibrating#

यह बताता है कि इनर्शियल सेंसर वर्तमान में कैलिब्रेट हो रहा है या नहीं।

Available Functions
bool isCalibrating();

Parameters

यह फ़ंक्शन कोई पैरामीटर नहीं लेता है।

Return Values

यह एक बूलियन मान लौटाता है जो यह दर्शाता है कि इनर्टियल सेंसर कैलिब्रेट हो रहा है या नहीं:

  • true — The sensor is currently calibrating.
  • false — The sensor is not currently calibrating.

changed#

यह एक कॉलबैक फ़ंक्शन को पंजीकृत करता है जो इनर्टियल सेंसर के हेडिंग मान में परिवर्तन होने पर चलता है।

Available Functions
void changed( void (* callback)(void) );

Parameters

पैरामीटर

प्रकार

विवरण

callback

void (*)(void)

एक फ़ंक्शन का पॉइंटर जिसे हेडिंग मान बदलने पर कॉल किया जाएगा। फ़ंक्शन में कोई पैरामीटर नहीं होना चाहिए और void

Return Values

इस कार्य पर कीमत के लिहाज से कुछ भी रिटर्न नहीं मिलता है।

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 Functions
bool installed();

Parameters

यह फ़ंक्शन कोई पैरामीटर नहीं लेता है।

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 लगभग वह त्वरण है जो स्थिर बैठे रहने पर गुरुत्वाकर्षण से महसूस होता है। चयनित अक्ष पर त्वरण की दिशा के आधार पर इसका मान धनात्मक या ऋणात्मक हो सकता है।

Available Functions
double acceleration( axisType axis );

Parameters

पैरामीटर

प्रकार

विवरण

axis

axisType

त्वरण मापने के लिए अक्ष:

  • xaxis
  • yaxis
  • zaxis

Return Values

यह निर्दिष्ट अक्ष के अनुदिश त्वरण को G (गुरुत्वाकर्षण इकाई) में दर्शाने वाला double मान लौटाता है।

Notes
  • त्वरण मान G की इकाइयों में रिपोर्ट किए जाते हैं।

gyroRate#

जाइरो रेट से पता चलता है कि इनर्शियल सेंसर कितनी तेज़ी से घूम रहा है। यह फ़ंक्शन चयनित अक्ष पर इनर्शियल सेंसर की वर्तमान घूर्णन गति लौटाता है।

यह मान धनात्मक या ऋणात्मक हो सकता है, यह इस बात पर निर्भर करता है कि सेंसर उस अक्ष पर किस दिशा में घूम रहा है।

Available Functions
double gyroRate( axisType axis, velocityUnits units );

Parameters

पैरामीटर

प्रकार

विवरण

axis

axisType

गाइरो रेट लौटाने के लिए अक्ष:

  • xaxis
  • yaxis
  • zaxis

units

velocityUnits

जाइरो रेट इकाई:

  • dps — डिग्री प्रति सेकंड
  • rpm — चक्कर प्रति मिनट

Return Values

यह निर्दिष्ट अक्ष के अनुदिश वर्तमान घूर्णन गति को चयनित इकाइयों में दर्शाने वाला double मान लौटाता है।

Examples
// 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 Functions
double orientation(
  axisType      axis,
  rotationUnits units );

Parameters

पैरामीटर

प्रकार

विवरण

axis

axisType

वह अक्ष जिसके लिए अभिविन्यास लौटाया जाता है:

  • xaxis
  • yaxis
  • zaxis

units

rotationUnits

The rotation unit:

  • deg / degrees — degrees
  • turns / rev — revolutions

Return Values

यह निर्दिष्ट इकाइयों में चयनित अभिविन्यास कोण को दर्शाने वाला double मान लौटाता है।

Examples
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 Functions
void collision( void (* callback)(axisType, double, double, double) );

Parameters

पैरामीटर

प्रकार

विवरण

callback

void (*)(axisType, double, double, double)

एक फ़ंक्शन का पॉइंटर जिसे टक्कर का पता चलने पर कॉल किया जाएगा। कॉलबैक फ़ंक्शन को निम्नलिखित पैरामीटर स्वीकार करने होंगे:

  • axisType — वह अक्ष जिस पर टक्कर का पता चला।
  • टक्कर के समय त्वरण मान, क्रम में:
    • double — x-अक्ष के अनुदिश त्वरण (G में)।
    • double — y-अक्ष के अनुदिश त्वरण (G में)।
    • double — z-अक्ष के अनुदिश त्वरण (G में)।
फ़ंक्शन को void लौटाना होगा।

Return Values

इस कार्य पर कीमत के लिहाज से कुछ भी रिटर्न नहीं मिलता है।

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 Functions
void setTurnType( turnType dir );

Parameters

पैरामीटर

प्रकार

विवरण

dir

turnType

सकारात्मक मान देने वाली दिशा:

  • right
  • left

Return Values

इस कार्य पर कीमत के लिहाज से कुछ भी रिटर्न नहीं मिलता है।

Notes
  • यह सेटिंग प्रभावित करती है कि heading और rotation सकारात्मक और नकारात्मक मानों की रिपोर्ट कैसे करते हैं।

  • इस फ़ंक्शन को कॉल करने से dir वस्तु का निर्माण करते समय निर्दिष्ट inertial मान ओवरराइड हो जाता है।

getTurnType#

दिशा बदलने से प्राप्त होने वाले परिणाम सकारात्मक मान उत्पन्न करते हैं।

Available Functions
turnType getTurnType();

Parameters

यह फ़ंक्शन कोई पैरामीटर नहीं लेता है।

Return Values

यह turnType यह दर्शाता है कि कौन सी दिशा सकारात्मक मान उत्पन्न करती है:

  • right — Clockwise rotation returns positive values.
  • left — Counterclockwise rotation returns positive values.
Notes