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

परिचय#

inertial क्लास का उपयोग IQ (दूसरी पीढ़ी) ब्रेन के अंतर्निर्मित इनर्शियल सेंसर से डेटा को नियंत्रित करने और एक्सेस करने के लिए किया जाता है। यह सेंसर ब्रेन की गति और घुमाव को मापता है।

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

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

inertial(
  turnType dir = turnType::right );

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

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

~inertial();

पैरामीटर#

पैरामीटर

प्रकार

विवरण

dir

turnType

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

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

उदाहरण#

// Create the inertial instance
inertial myInertial = inertial(
    right);     // dir

सदस्य कार्य#

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 with the IQ (2nd gen) Brain. Replace the values
as needed. */

// Create the inertial instance
inertial myInertial = inertial();

heading#

हेडिंग वह दिशा है जिस ओर सेंसर का मुख है, जिसे 0 से 359.99 डिग्री तक मापा जाता है। यह फ़ंक्शन सेंसर की वर्तमान हेडिंग लौटाता है।

प्रारंभिक दिशा 0 डिग्री है। यदि सेंसर 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 डिग्री से कम हो सकता है।

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() के बाहर)

// Display the heading 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() के अंदर पंजीकृत करें

int main() {
  // Run onHeadingChanged when the Inertial Sensor's heading value changes.
  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#

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

रोल, पिच और यॉ सेंसर के झुकने या घूमने के विभिन्न तरीकों का वर्णन करते हैं।

Available Functions
double orientation(
  orientationType type,
  rotationUnits   units );

Parameters

पैरामीटर

प्रकार

विवरण

type

orientationType

वापसी के लिए अभिविन्यास कोण:

  • pitch
  • roll
  • yaw

units

rotationUnits

The orientation 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(roll, 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() के बाहर)

// Display a message when the Inertial Sensor detects a collision.
void onCollision(axisType axis, double x, double y, double z) {
  Brain.Screen.print("Collision detected!");
}

कॉलबैक को int main() के अंदर पंजीकृत करें

int main() {
  // Run onCollision when the Inertial Sensor detects a collision.
  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