जड़त्वीय#

परिचय#

आईक्यू (दूसरी पीढ़ी) मस्तिष्क में एक अंतर्निर्मित जड़त्वीय संवेदक शामिल है। यह संवेदक मापता है कि मस्तिष्क कैसे गति कर रहा है और घूम रहा है।

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

इस पृष्ठ पर उदाहरण के तौर पर इनर्टियल सेंसर का नाम brain_inertial दिया गया है। आवश्यकतानुसार इसे अपने स्वयं के कॉन्फ़िगर किए गए नाम से बदलें।

नीचे उपलब्ध सभी तरीकों की सूची दी गई है:

दिशा निर्धारण — दिशा, घूर्णन और सेंसर अंशांकन को पढ़ें और नियंत्रित करें।

  • heading — सेंसर की दिशा लौटाता है, 0 से 359.99 डिग्री तक।

  • rotation — लौटाता है कि सेंसर कितनी दूर घूम गया है।

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

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

  • set_rotation — इनर्टियल सेंसर के वर्तमान रोटेशन को एक नए रोटेशन मान पर सेट करता है।

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

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

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

  • changed — इनर्टियल सेंसर की दिशा बदलने पर चलने के लिए एक फ़ंक्शन पंजीकृत करता है।

गति — त्वरण, घूर्णन गति और झुकाव को मापें।

  • acceleration — यह बताता है कि चयनित अक्ष पर सेंसर कितनी तेज़ी से गति बढ़ा रहा है या धीमा हो रहा है।

  • gyro_rate — यह दर्शाता है कि चयनित अक्ष पर सेंसर कितनी तेज़ी से घूम रहा है।

  • orientation — इनर्टियल सेंसर का रोल, पिच या यॉ कोण लौटाता है।

कंस्ट्रक्टर — इनर्शियल सेंसर को मैन्युअल रूप से आरंभ और कॉन्फ़िगर करें।

  • Inertial — एक जड़त्वीय सेंसर बनाता है।

अभिविन्यास#

heading#

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

प्रारंभिक दिशा 0 डिग्री है। यदि सेंसर 359.99 डिग्री से आगे घूमता है, तो दिशा वापस 0 डिग्री पर आ जाती है।

Usage:
brain_inertial.heading(units)

पैरामीटर

विवरण

units

वैकल्पिक। दिशा इकाई: DEGREES (डिफ़ॉल्ट) या TURNS

# Display the heading after turning
drivetrain.turn_for(RIGHT, 450, DEGREES)
brain.screen.print(brain_inertial.heading())

rotation#

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

दाएँ मुड़ने से घूर्णन बढ़ता है, और बाएँ मुड़ने से घटता है। उदाहरण के लिए, दाएँ ओर दो पूरे चक्कर लगाने से 720 डिग्री का घूर्णन प्राप्त होगा। 0 डिग्री से बाएँ ओर एक पूरा चक्कर लगाने से -360 डिग्री का घूर्णन प्राप्त होगा।

Usage:
brain_inertial.rotation(units)

पैरामीटर

विवरण

units

वैकल्पिक। घूर्णन इकाई: DEGREES (डिफ़ॉल्ट) या TURNS

# Display the rotation value after turning
drivetrain.turn_for(RIGHT, 450, DEGREES)
brain.screen.print(brain_inertial.rotation())

calibrate#

कैलिब्रेशन प्रक्रिया calibrate इनर्शियल सेंसर को कैलिब्रेट करती है। इसके बाद की सभी लाइनें कैलिब्रेशन पूरा होने तक प्रतीक्षा करेंगी। कैलिब्रेशन एक निश्चित अवधि में सेंसर के शोर और विचलन को मापकर और उसकी भरपाई करके सेंसर को घुमावों को सही ढंग से मापने में मदद करता है। इस दौरान, ब्रेन को एक स्थिर सतह पर पूरी तरह स्थिर रहना चाहिए। कैलिब्रेशन के दौरान गति होने से गलत परिणाम आ सकते हैं।

स्क्रीन को दाईं ओर झुकाकर प्रदर्शित किया गया IQ ब्रेन, जिसमें x, y और z अक्षों को स्क्रीन के केंद्र से निकलने वाले और बाहर की ओर बढ़ते तीरों द्वारा दर्शाया गया है। लाल तीर (x) दाईं ओर इंगित करता है, हरा तीर (y) आगे की ओर बढ़ता है और नीला तीर (z) नीचे की ओर इंगित करता है।पिछली छवि के समान ही, अब मस्तिष्क स्क्रीन बाईं ओर झुकी हुई है, और x, y, z तीर अपनी दिशा में ही बने हुए हैं।पिछली छवि के समान ही, अब मस्तिष्क की स्क्रीन ऊपर की ओर है, मानो किसी सतह पर सपाट रखी हो। x, y, z दिशाएँ वही हैं।

VEX ब्रेन प्रत्येक प्रोजेक्ट की शुरुआत में अंतर्निहित इनर्शियल सेंसर को स्वचालित रूप से कैलिब्रेट करने का प्रयास करता है। हालांकि, यदि प्रोजेक्ट शुरू होने के दौरान रोबोट को उठाया या हिलाया जा रहा है, तो सेंसर ठीक से कैलिब्रेट नहीं हो पाएगा या गलत कैलिब्रेशन परिणाम देगा।

Usage:
brain_inertial.calibrate()

पैरामीटर

विवरण

इस विधि के कोई मानदंड नहीं हैं।

# Start calibration
brain_inertial.calibrate()
# Print after calibration
while brain_inertial.is_calibrating():
    brain.screen.clear_screen()
    brain.screen.set_cursor(1, 1)
    brain.screen.print("Inertial Sensor")
    brain.screen.next_row()
    brain.screen.print("Calibrating")
    wait(50, MSEC)
brain.screen.clear_screen()
brain.screen.set_cursor(1, 1)
brain.screen.print("Done!")

set_heading#

हेडिंग वह दिशा है जिस ओर सेंसर का मुख है, जिसे 0 से 359.99 डिग्री तक मापा जाता है। set_heading() इनर्टियल सेंसर की वर्तमान हेडिंग को एक नए हेडिंग मान में बदलता है।

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

Usage:
brain_inertial.set_heading(value, units)

पैरामीटर

विवरण

value

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

units

वैकल्पिक। दिशा इकाई: DEGREES (डिफ़ॉल्ट) या TURNS

# Turn the robot around
brain_inertial.set_heading(180)
drivetrain.turn_to_heading(0)

set_rotation#

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

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

Usage:
brain_inertial.set_rotation(value, units)

पैरामीटर

विवरण

value

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

units

वैकल्पिक। घूर्णन इकाई: DEGREES (डिफ़ॉल्ट) या TURNS

# Turn the robot around
brain_inertial.set_rotation(-180)
drivetrain.turn_to_rotation(0)

is_calibrating#

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

  • True — जड़त्वीय सेंसर कैलिब्रेट हो रहा है।

  • False — जड़त्वीय सेंसर कैलिब्रेट नहीं हो रहा है।

Usage:
brain_inertial.is_calibrating()

पैरामीटर

विवरण

इस विधि के कोई मानदंड नहीं हैं।

# Start calibration
brain_inertial.calibrate()
# Print while waiting for calibration
while brain_inertial.is_calibrating():
    brain.screen.clear_screen()
    brain.screen.set_cursor(1, 1)
    brain.screen.print("Inertial Sensor")
    brain.screen.next_row()
    brain.screen.print("Calibrating")
    wait(50, MSEC)
brain.screen.clear_screen()
brain.screen.set_cursor(1, 1)
brain.screen.print("Done!")

reset_heading#

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

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

Usage:
brain_inertial.reset_heading()

पैरामीटर

विवरण

इस विधि के कोई मानदंड नहीं हैं।

# Turn the robot before and after resetting the heading
drivetrain.turn_to_heading(90, DEGREES)
wait(0.5, SECONDS)
brain_inertial.reset_heading()
drivetrain.turn_to_heading(90, DEGREES)

reset_rotation#

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

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

Usage:
brain_inertial.reset_rotation()

पैरामीटर

विवरण

इस विधि के कोई मानदंड नहीं हैं।

# Turn the robot before and after resetting the rotation
drivetrain.turn_to_rotation(-90, DEGREES)
wait(0.5, SECONDS)
brain_inertial.reset_rotation()
drivetrain.turn_to_rotation(-90, DEGREES)

changed#

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

Usage:
brain_inertial.changed(callback, arg)

पैरामीटर

विवरण

callback

एक फ़ंक्शन जो इनर्टियल सेंसर की दिशा बदलने पर चलता है।

arg

वैकल्पिक। कॉलबैक फ़ंक्शन को पास करने के लिए तर्कों का एक टपल।

def heading_changed():
    brain.screen.set_cursor(1, 1)
    brain.screen.clear_screen()
    brain.screen.print("my heading ")
    brain.screen.next_row()
    brain.screen.print("has changed!")
    wait(0.1, SECONDS)
# Call the function when the inertial heading is changed
wait(1, SECONDS)
drivetrain.turn_for(RIGHT, 90, DEGREES, wait=False)
brain_inertial.changed(heading_changed)
wait(15, MSEC)

गति#

acceleration#

त्वरण वह गति है जिससे सेंसर तेज या धीमा हो रहा है। acceleration चयनित अक्ष पर जड़त्वीय सेंसर का त्वरण -4.0 G से 4.0 G तक एक फ्लोट मान के रूप में लौटाता है।

G त्वरण मापने की इकाई है। 1 G लगभग वह त्वरण है जो आप स्थिर बैठे रहने पर गुरुत्वाकर्षण से महसूस करते हैं।

चयनित अक्ष पर त्वरण की दिशा के आधार पर मान धनात्मक या ऋणात्मक हो सकता है। अक्ष के विकल्प हैं XAXIS, YAXIS) और ZAXIS)।

Usage:
brain_inertial.acceleration(axis)

पैरामीटर

विवरण

अक्ष

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

  • XAXIS
  • YAXIS
  • ZAXIS

# Display acceleration after moving
vexcode_brain_precision = 2
drivetrain.set_drive_velocity(100, PERCENT)
brain.screen.print("Resting: ")
brain.screen.next_row()
brain.screen.print(brain_inertial.acceleration(XAXIS))
brain.screen.next_row()
wait(1, SECONDS)
drivetrain.drive_for(FORWARD, 500, MM, wait=False)
wait(0.01, SECONDS)
brain.screen.print("Startup: ")
brain.screen.next_row()
brain.screen.print(brain_inertial.acceleration(XAXIS))

gyro_rate#

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

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

Usage:
brain_inertial.gyro_rate(axis, units)

पैरामीटर

विवरण

axis

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

  • XAXIS
  • YAXIS
  • ZAXIS

units

वैकल्पिक। जाइरो रेट इकाई:

  • DPS (डिफ़ॉल्ट) — डिग्री प्रति सेकंड
  • RPM — रोटेशन प्रति मिनट
  • PERCENT

# Display the z-axis gyro rate
drivetrain.turn(RIGHT)
wait(1, SECONDS)
brain.screen.print(brain_inertial.gyro_rate(ZAXIS, RPM))
drivetrain.stop()

orientation#

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

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

Usage:
brain_inertial.orientation(axis, units)

पैरामीटर

विवरण

axis

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

  • ROLL
  • PITCH
  • YAW

units

वैकल्पिक। दिशा निर्धारण इकाई: DEGREES (डिफ़ॉल्ट) या TURNS

# Display the roll, pitch, and yaw of the Brain as it
# is rotated by hand
while True:
    brain.screen.clear_screen()
    brain.screen.print(brain_inertial.orientation(OrientationType.ROLL))
    brain.screen.next_row()
    brain.screen.print(brain_inertial.orientation(OrientationType.PITCH))
    brain.screen.next_row()
    brain.screen.print(brain_inertial.orientation(OrientationType.YAW))
    brain.screen.next_row()
    brain.screen.set_cursor(1, 1)
    wait(0.1, SECONDS)

कंस्ट्रक्टर्स#

कंस्ट्रक्टर का उपयोग मैन्युअल रूप से Inertial ऑब्जेक्ट बनाने के लिए किया जाता है, जैसे कि VEXcode के बाहर इनर्टियल सेंसर को कॉन्फ़िगर करते समय।

Inertial#

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

Usage:
Inertial(smartport)

पैरामीटर

विवरण

smartport

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

# Create a new object "brain_inertial" with the
# Inertial class
brain_inertial = Inertial()
left_drive_smart = Motor(Ports.PORT1, 1.0, False)
right_drive_smart = Motor(Ports.PORT6, 1.0, True)

drivetrain = SmartDrive(left_drive_smart, right_drive_smart, brain_inertial, 200)

brain_inertial.set_heading(180)
drivetrain.turn_to_heading(0)