জড়তা#
ভূমিকা#
একটি ইনার্শিয়াল সেন্সর রোবটটির চলাচল ও মোড় নেওয়ার ধরণ পরিমাপ করে।
ইনার্শিয়াল সেন্সর এই কাজটি করার জন্য দুটি অংশ ব্যবহার করে। জাইরোস্কোপ দিক পরিবর্তন পরিমাপ করে, যেমন—দিক, ঘূর্ণন, জাইরো রেট এবং অভিমুখ। অ্যাক্সেলেরোমিটার x-, y-, এবং z-অক্ষ বরাবর গতির পরিবর্তন পরিমাপ করে, যেমন—গতি বৃদ্ধি বা হ্রাস।
VEXcode V5-এ ইনার্শিয়াল কমান্ডগুলো দেখানোর জন্য, ডিভাইসেস উইন্ডোতে একটি ইনার্শিয়াল সেন্সর কনফিগার করতে হবে।
উপলব্ধ পদ্ধতিগুলোর একটি তালিকা নিচে দেওয়া হলো:
অভিমুখীকরণ — দিক, ঘূর্ণন এবং সেন্সর ক্রমাঙ্কন পড়ুন ও নিয়ন্ত্রণ করুন।
heading— সেন্সরটি যে দিকে মুখ করে আছে তা ফেরত দেয়, 0 থেকে 359.99 ডিগ্রির মধ্যে।rotation— সেন্সরটি কতটুকু ঘুরেছে তা ফেরত দেয়।gyro_rate— নির্বাচিত অক্ষে সেন্সরটি কত দ্রুত ঘুরছে তা ফেরত দেয়।orientation— ইনার্শিয়াল সেন্সরের রোল, পিচ, বা ইয়ো কোণ ফেরত দেয়।set_heading— ইনার্শিয়াল সেন্সরের বর্তমান হেডিং একটি নতুন হেডিং মানে সেট করে।set_rotation— ইনার্শিয়াল সেন্সরের বর্তমান ঘূর্ণনকে একটি নতুন ঘূর্ণন মানে সেট করে।calibrate— ইনার্শিয়াল সেন্সর ক্যালিব্রেট করে।reset_heading— ইনার্শিয়াল সেন্সরের বর্তমান হেডিং 0 ডিগ্রিতে রিসেট করে।reset_rotation— ইনার্শিয়াল সেন্সরের বর্তমান ঘূর্ণন 0 ডিগ্রিতে রিসেট করে।is_calibrating— ইনার্শিয়াল সেন্সরটি বর্তমানে ক্যালিব্রেট হচ্ছে কিনা তা ফেরত দেয়।changed— ইনার্শিয়াল সেন্সরের মান পরিবর্তিত হলে চালানোর জন্য একটি ফাংশন নিবন্ধন করে।installed— ইনার্শিয়াল সেন্সরটি ইনস্টল করা আছে কিনা তা পরীক্ষা করে।
গতি — ত্বরণ, সংঘর্ষ এবং মোড় নেওয়ার আচরণ পরিমাপ করুন।
acceleration— নির্বাচিত অক্ষে সেন্সরটি কত দ্রুত গতি বাড়াচ্ছে বা কমাচ্ছে তা ফেরত দেয়।collision— ইনার্শিয়াল সেন্সর সংঘর্ষ শনাক্ত করলে চালানোর জন্য একটি ফাংশন নিবন্ধন করে।set_turn_type— কোন বাঁকের দিক ধনাত্মক হেডিং মান প্রদান করবে তা নির্ধারণ করে।get_turn_type— কোন বাঁকের দিক ধনাত্মক হেডিং মান প্রদান করে তা ফেরত দেয়।
নির্মাতা
Inertial– একটি ইনার্শিয়াল সেন্সর তৈরি করে।
অভিমুখীকরণ#
heading#
হেডিং হলো সেন্সরটির অভিমুখ, যা ০ থেকে ৩৫৯.৯৯ ডিগ্রির মধ্যে পরিমাপ করা হয়। heading সেন্সরটির বর্তমান হেডিং একটি ফ্লোট হিসেবে ফেরত দেয়।
প্রাথমিক অভিমুখ ০ ডিগ্রি। যদি সেন্সরটি ৩৫৯.৯৯ ডিগ্রি অতিক্রম করে ঘোরে, তবে অভিমুখটি আবার ০ ডিগ্রিতে ফিরে আসে।
Usage:
inertial_1.heading(units)
প্যারামিটার |
বর্ণনা |
|---|---|
|
ঐচ্ছিক। শিরোনামের একক: |
# Display the heading after turning
drivetrain.turn_for(RIGHT, 450, DEGREES)
brain.screen.print(inertial_1.heading())
rotation#
রোটেশন হলো সেন্সরটি কতটা ঘুরেছে, যা ডিগ্রিতে পরিমাপ করা হয়। হেডিং-এর মতো নয়, রোটেশন ৩৫৯.৯৯ ডিগ্রির বেশি বাড়তে পারে বা ০ ডিগ্রির নিচে কমতে পারে। একটি প্রজেক্টের শুরুতে, রোটেশনের মান ০ ডিগ্রিতে সেট করা থাকে। rotation ইনার্শিয়াল সেন্সরের বর্তমান রোটেশনকে একটি ফ্লোট হিসেবে রিটার্ন করে।
ডানদিকে ঘোরালে ঘূর্ণন বাড়ে এবং বামদিকে ঘোরালে ঘূর্ণন কমে। উদাহরণস্বরূপ, ডানদিকে দুটি পূর্ণ পাক দিলে ঘূর্ণন হবে ৭২০ ডিগ্রি। ০ ডিগ্রি থেকে বামদিকে একটি পূর্ণ পাক দিলে ঘূর্ণন হবে -৩৬০ ডিগ্রি।
Usage:
inertial_1.rotation(units)
প্যারামিটার |
বর্ণনা |
|---|---|
|
ঐচ্ছিক। ঘূর্ণন একক: |
# Display the rotation after turning
drivetrain.turn_for(RIGHT, 450, DEGREES)
brain.screen.print(inertial_1.rotation())
gyro_rate#
জাইরো রেট হলো ইনার্শিয়াল সেন্সরটির ঘূর্ণনের গতি। gyro_rate হলে, এটি নির্বাচিত অক্ষে ইনার্শিয়াল সেন্সরটির বর্তমান ঘূর্ণন গতি একটি ফ্লোট হিসেবে ফেরত দেয়।
ঐ অক্ষ বরাবর সেন্সরটি যে দিকে ঘুরছে, তার উপর নির্ভর করে মানটি ধনাত্মক বা ঋণাত্মক হতে পারে।
Usage:
inertial_1.gyro_rate(axis, units)
প্যারামিটার |
বর্ণনা |
|---|---|
|
যে অক্ষ থেকে জাইরো রেট ফেরত আসবে:
|
|
ঐচ্ছিক। জাইরো রেটের একক:
|
# Display the rate of change of
# rotation while turning
drivetrain.turn(RIGHT)
wait(1, SECONDS)
brain.screen.print(inertial_1.gyro_rate(AxisType.ZAXIS, VelocityUnits.DPS))
drivetrain.stop()
orientation#
ওরিয়েন্টেশন হলো একটি নির্বাচিত ঘূর্ণন অক্ষে ইনার্শিয়াল সেন্সরের বর্তমান কোণ। orientation ইনার্শিয়াল সেন্সরের রোল, পিচ বা ইয়ো-কে -১৮০.০০ থেকে ১৮০.০০ ডিগ্রির মধ্যে একটি ফ্লোট মান হিসেবে ফেরত দেয়।
রোল, পিচ এবং ইয়ো সেন্সরটির কাত হওয়া বা ঘোরার বিভিন্ন উপায়কে বর্ণনা করে।
Usage:
inertial_1.orientation(type, units)
প্যারামিটার |
বর্ণনা |
|---|---|
|
ফেরত দেওয়ার জন্য অভিমুখী কোণ:
|
|
ঐচ্ছিক। অভিমুখের একক:
|
# Display the roll, pitch, and yaw of the Brain as it
# is rotated by hand
while True:
brain.screen.clear_screen()
brain.screen.print(inertial_1.orientation(AxisType.ROLL, DEGREES))
brain.screen.next_row()
brain.screen.print(inertial_1.orientation(AxisType.PITCH, DEGREES))
brain.screen.next_row()
brain.screen.print(inertial_1.orientation(AxisType.YAW, DEGREES))
brain.screen.next_row()
brain.screen.set_cursor(1, 1)
wait(0.1, SECONDS)
set_heading#
হেডিং হলো সেন্সরটির অভিমুখ, যা ০ থেকে ৩৫৯.৯৯ ডিগ্রির মধ্যে পরিমাপ করা হয়। set_heading ইনার্শিয়াল সেন্সরের বর্তমান হেডিংকে একটি নতুন হেডিং মানে পরিবর্তন করে।
উদাহরণস্বরূপ, যদি সেন্সরটি ডানদিকে ঘুরে যায়, তাহলে হেডিং ০ ডিগ্রিতে সেট করলে সেই ডানমুখী অবস্থানটিই নতুন ০ ডিগ্রি হয়ে যায়। এরপর সেন্সরটি সেই নতুন দিকের ওপর ভিত্তি করে অন্যান্য হেডিং ট্র্যাক করতে পারে।
Usage:
inertial_1.set_heading(value, units)
প্যারামিটার |
বর্ণনা |
|---|---|
|
সেন্সরের জন্য নির্ধারিত হেডিং ভ্যালু, ডিগ্রিতে। এর মান ০ থেকে ৩৫৯.৯৯-এর মধ্যে হতে পারে। |
|
ঐচ্ছিক। শিরোনামের একক: |
# Turn the robot around
inertial_1.set_heading(180, DEGREES)
drivetrain.turn_to_heading(0)
set_rotation#
রোটেশন হলো সেন্সরটি কতটা ঘুরেছে, যা ডিগ্রিতে পরিমাপ করা হয়। হেডিং-এর মতো নয়, রোটেশন ৩৫৯.৯৯ ডিগ্রির বেশি বাড়তে পারে বা ০ ডিগ্রির নিচে কমতে পারে। একটি প্রজেক্টের শুরুতে, রোটেশনের মান ০ ডিগ্রিতে সেট করা থাকে। set_rotation ইনার্শিয়াল সেন্সরের বর্তমান রোটেশনকে একটি নতুন মানে পরিবর্তন করে।
উদাহরণস্বরূপ, যদি সেন্সরটি ডানদিকে দুটি পূর্ণ ঘূর্ণন সম্পন্ন করে, তবে এর ঘূর্ণন মান হবে ৭২০ ডিগ্রি। ঘূর্ণন মান ০ ডিগ্রিতে সেট করলে, তা ৭২০ থেকে ০ ডিগ্রিতে রিসেট হয়ে যাবে। এরপর সেন্সরটি সেই নতুন মানের উপর ভিত্তি করে ঘূর্ণন ট্র্যাক করতে পারবে।
Usage:
inertial_1.set_rotation(value, units)
প্যারামিটার |
বর্ণনা |
|---|---|
|
সেন্সরের জন্য ঘূর্ণনের মান, ডিগ্রিতে, নির্ধারণ করতে হবে। এটি একটি পূর্ণসংখ্যা বা দশমিক (ফ্লোট) সংখ্যা হতে পারে। |
|
ঐচ্ছিক। ঘূর্ণন একক: |
# Turn the robot around
inertial_1.set_rotation(-180, DEGREES)
drivetrain.turn_to_rotation(0)
calibrate#
calibrate ইনার্শিয়াল সেন্সর ক্যালিব্রেট করে।
ক্যালিব্রেশন সেন্সরকে সঠিকভাবে বাঁক পরিমাপ করতে সাহায্য করে। ক্যালিব্রেশনের সময় সেন্সরটি স্থির রাখুন। ক্যালিব্রেশনের সময় সেন্সরটি নড়ে গেলে হেডিং, রোটেশন, জাইরো রেট এবং ওরিয়েন্টেশনের মান সঠিকভাবে পরিমাপ নাও হতে পারে।
পরবর্তী কোড লাইনটি চলার আগে প্রজেক্টটি ক্যালিব্রেশন সম্পন্ন হওয়া পর্যন্ত অপেক্ষা করবে।
Usage:
inertial_1.calibrate()
প্যারামিটার |
বর্ণনা |
|---|---|
এই পদ্ধতিতে কোনো প্যারামিটার নেই। |
# Start calibration.
inertial_1.calibrate()
# Print that the Inertial Sensor is calibrating while
# waiting for it to finish calibrating.
while inertial_1.is_calibrating():
brain.screen.clear()
brain.screen.print("Inertial Sensor Calibrating")
wait(50, MSEC)
reset_heading#
reset_heading ইনার্শিয়াল সেন্সরের বর্তমান হেডিং ০ ডিগ্রিতে রিসেট করে।
এই পদ্ধতিটি ব্যবহার করার পর, সেন্সরটির বর্তমান অভিমুখ নতুন ০ ডিগ্রি অভিমুখ হয়ে যায়।
Usage:
inertial_1.reset_heading()
প্যারামিটার |
বর্ণনা |
|---|---|
এই পদ্ধতিতে কোনো প্যারামিটার নেই। |
reset_rotation#
reset_rotation ইনার্শিয়াল সেন্সরের বর্তমান ঘূর্ণনকে ০ ডিগ্রিতে রিসেট করে।
এই পদ্ধতিটি ব্যবহার করার পর, সেন্সরটি নতুন ০ ডিগ্রি ঘূর্ণন মান থেকে ভবিষ্যতের বাঁকগুলো ট্র্যাক করে।
Usage:
inertial_1.reset_rotation()
প্যারামিটার |
বর্ণনা |
|---|---|
এই পদ্ধতিতে কোনো প্যারামিটার নেই। |
is_calibrating#
is_calibrating রিটার্ন করে যে ইনার্শিয়াল সেন্সরটি বর্তমানে ক্যালিব্রেট হচ্ছে কিনা।
True— ইনার্শিয়াল সেন্সরটি ক্যালিব্রেট করা হচ্ছে।False— ইনার্শিয়াল সেন্সরটি ক্যালিব্রেট হচ্ছে না।
Usage:
inertial_1.is_calibrating()
প্যারামিটার |
বর্ণনা |
|---|---|
এই পদ্ধতিতে কোনো প্যারামিটার নেই। |
changed#
changed এমন একটি ফাংশন রেজিস্টার করে যা ইনার্শিয়াল সেন্সরের মান পরিবর্তিত হলেই কল করা হবে।
Usage:
inertial_1.changed(callback, arg)
প্যারামিটার |
বর্ণনা |
|---|---|
|
পূর্বে সংজ্ঞায়িত একটি ফাংশন যা ইনার্শিয়াল সেন্সরের মান পরিবর্তিত হলে কার্যকর হয়। |
|
ঐচ্ছিক। কলব্যাক ফাংশনে পাস করার জন্য আর্গুমেন্ট ধারণকারী একটি টাপল। আরও তথ্যের জন্য প্যারামিটার সহ ফাংশনের ব্যবহার দেখুন। |
def my_function():
brain.screen.print("Value changed!!")
# Call my_function whenever inertial_1's value changes
inertial_1.changed(my_function)
installed#
installed ইনার্শিয়াল সেন্সরটি ইনস্টল করা আছে কিনা তা পরীক্ষা করে।
True— ইনার্শিয়াল সেন্সরটি ইনস্টল করা আছে।False— ইনার্শিয়াল সেন্সরটি ইনস্টল করা নেই।
Usage:
inertial_1.installed()
প্যারামিটার |
বর্ণনা |
|---|---|
এই পদ্ধতিতে কোনো প্যারামিটার নেই। |
গতি#
acceleration#
ত্বরণ হলো সেন্সরটি কত দ্রুত গতি বাড়াচ্ছে বা কমাচ্ছে। acceleration ত্বরণ নির্বাচিত অক্ষে ইনার্শিয়াল সেন্সরের ত্বরণকে -৪.০ G থেকে ৪.০ G পর্যন্ত একটি ফ্লোট মান হিসেবে ফেরত দেয়।
G প্রায় ১ G।
নির্বাচিত অক্ষে ত্বরণের দিকের উপর নির্ভর করে মানটি ধনাত্মক বা ঋণাত্মক হতে পারে। অক্ষের বিকল্পগুলি হলো AxisType.XAXIS, AxisType.YAXIS, এবং AxisType.ZAXIS।
Usage:
inertial_1.acceleration(type)
প্যারামিটার |
বর্ণনা |
|---|---|
|
যে অক্ষে ত্বরণ পরিমাপ করা হবে:
|
# Return the acceleration for the Z axis of the Inertial Sensor
zaccel = inertial_1.acceleration(AxisType.ZAXIS)
collision#
collision এমন একটি ফাংশন রেজিস্টার করে, যা ইনার্শিয়াল সেন্সর কোনো আকস্মিক ধাক্কা বা সংঘর্ষ শনাক্ত করলেই কল করা হবে।
Usage:
inertial_1.collision(callback, arg)
প্যারামিটার |
বর্ণনা |
|---|---|
|
পূর্বে সংজ্ঞায়িত একটি ফাংশন যা সংঘর্ষ সনাক্ত হলে কার্যকর হয়। |
|
ঐচ্ছিক। কলব্যাক ফাংশনে পাস করার জন্য আর্গুমেন্ট ধারণকারী একটি টাপল। আরও তথ্যের জন্য প্যারামিটার সহ ফাংশনের ব্যবহার দেখুন। |
def my_function():
brain.screen.print("Collision!")
# Call my_function whenever a collision is detected
inertial_1.collision(my_function)
set_turn_type#
set_turn_type set_turn_type নির্ধারণ করে কোন বাঁকের দিকটি ধনাত্মক হেডিং মান প্রদান করবে।
Usage:
inertial_1.set_turn_type(turntype)
প্যারামিটার |
বর্ণনা |
|---|---|
|
মোড়ের ধরন নির্ধারণ করুন:
|
get_turn_type#
get_turn_type রিটার্ন করে কোন বাঁকের দিকটি ধনাত্মক হেডিং মান প্রদান করে।
LEFT— বাম দিকে মোড় নিলে ইতিবাচক দিকনির্দেশনা পাওয়া যায়।RIGHT— ডান দিকে মোড় নিলে ইতিবাচক দিকনির্দেশনা পাওয়া যায়।
Usage:
inertial_1.get_turn_type()
প্যারামিটার |
বর্ণনা |
|---|---|
এই পদ্ধতিতে কোনো প্যারামিটার নেই। |
নির্মাণকারী#
Inertial#
Inertial একটি ইনার্শিয়াল সেন্সর তৈরি করে।
Usage:
Inertial(port)
প্যারামিটার |
বর্ণনা |
|---|---|
|
ইনার্শিয়াল সেন্সরটি যে স্মার্ট পোর্টের সাথে সংযুক্ত, তার ক্রম ১ থেকে ২১ পর্যন্ত। |
# Create a new object "inertial_1" with the Inertial class.
inertial_1 = Inertial(Ports.PORT1)