জড়তা#

ভূমিকা#

মস্তিষ্কে একটি অন্তর্নির্মিত জড়তা সংবেদক (Inertial Sensor) রয়েছে। এই সংবেদকটি মস্তিষ্কের নড়াচড়া বা ঘূর্ণন পরিমাপ করতে পারে।

ইনার্শিয়াল সেন্সর এই কাজটি করার জন্য দুটি অংশ ব্যবহার করে। জাইরোস্কোপটি মোড় নেওয়া পরিমাপ করে, যেমন মস্তিষ্কটি কোন দিকে মুখ করে আছে এবং এটি কতটা ঘুরেছে। অ্যাক্সেলেরোমিটারটি গতির পরিবর্তন পরিমাপ করে, যেমন গতি বেড়ে যাওয়া, কমে যাওয়া, বা কোনো দুর্ঘটনার সময় হঠাৎ থেমে যাওয়া।

ইনার্শিয়াল পদ্ধতিগুলো বাঁক ট্র্যাক করতে, হেডিং বা ঘূর্ণন মান রিসেট করতে, রোল, পিচ ও ইয়ো পরিমাপ করতে এবং ত্বরণ রিপোর্ট করতে ব্যবহার করা যেতে পারে।

ইনার্শিয়াল সেন্সর কোড করার অনেক উপায় আছে। নিচে সমস্ত ইনার্শিয়াল পদ্ধতির একটি তালিকা দেওয়া হলো:

অভিমুখ — ফিরে আসুন এবং মস্তিষ্ক কোন দিকে মুখ করে আছে, ঘুরছে বা কাত হচ্ছে তা নির্ধারণ করুন।

  • get_heading — মস্তিষ্ক যে দিকে মুখ করে আছে তা ফেরত দেয়, ০ থেকে ৩৫৯ ডিগ্রির মধ্যে।

  • get_rotation — মস্তিষ্ক কতটুকু ঘুরেছে তা ফেরত দেয়।

  • get_yaw — মস্তিষ্ক তার শুরুর অবস্থান থেকে কতটা বামে বা ডানে ঘুরেছে তা ফেরত দেয়।

  • get_roll — মস্তিষ্কটি কতটা বামে বা ডানে হেলে আছে তা ফেরত দেয়।

  • get_pitch — মস্তিষ্ক কতটা সামনে বা পিছনে হেলে আছে তা ফেরত দেয়।

  • calibrate — মস্তিষ্কের জড়তা সংবেদক (Inertial Sensor) ক্যালিব্রেট করে।

  • reset_heading — মস্তিষ্কের বর্তমান হেডিং 0 ডিগ্রিতে রিসেট করে।

  • reset_rotation — মস্তিষ্কের বর্তমান ঘূর্ণন 0 ডিগ্রিতে রিসেট করে।

  • set_heading — ব্রেইনের বর্তমান হেডিংকে একটি নতুন হেডিং মানে সেট করে।

  • set_rotation — মস্তিষ্কের বর্তমান ঘূর্ণনকে একটি নতুন ঘূর্ণন মানে সেট করে।

গতি — মস্তিষ্ক কীভাবে নড়াচড়া করছে তা ফেরত দিন।

  • get_acceleration — নির্বাচিত অক্ষে মস্তিষ্ক কতটা দ্রুত গতি বাড়াচ্ছে বা কমাচ্ছে তা ফেরত দেয়।

অভিমুখীকরণ#

get_heading#

হেডিং হলো মস্তিষ্কের অভিমুখ, যা ০ থেকে ৩৫৯ ডিগ্রির মধ্যে পরিমাপ করা হয়। get_heading মস্তিষ্কের বর্তমান হেডিং ফেরত দেয়।

প্রারম্ভিক অভিমুখ ০ ডিগ্রি। যদি মস্তিষ্ক ৩৫৯ ডিগ্রি অতিক্রম করে ঘোরে, তবে অভিমুখটি আবার ০ ডিগ্রিতে ফিরে আসে।

Usage:
inertial.get_heading()

প্যারামিটার

বর্ণনা

এই পদ্ধতিতে কোনো প্যারামিটার নেই।

get_rotation#

রোটেশন হলো ব্রেইনের ঘোরার পরিমাণ, যা ডিগ্রিতে পরিমাপ করা হয়। হেডিং-এর মতো নয়, রোটেশন ৩৫৯ ডিগ্রির বেশি বাড়তে পারে বা ০ ডিগ্রির নিচে কমতে পারে। একটি প্রজেক্টের শুরুতে, রোটেশনের মান ০ ডিগ্রিতে সেট করা থাকে। get_rotation ব্রেইনের বর্তমান রোটেশন রিটার্ন করে।

ডানদিকে ঘোরালে ঘূর্ণন বাড়ে এবং বামদিকে ঘোরালে ঘূর্ণন কমে। উদাহরণস্বরূপ, ডানদিকে দুটি পূর্ণ পাক দিলে ঘূর্ণন হবে ৭২০ ডিগ্রি। ০ ডিগ্রি থেকে বামদিকে একটি পূর্ণ পাক দিলে ঘূর্ণন হবে -৩৬০ ডিগ্রি।

Usage:
inertial.get_rotation()

প্যারামিটার

বর্ণনা

এই পদ্ধতিতে কোনো প্যারামিটার নেই।

get_yaw#

ইয়ো হলো মস্তিষ্ক তার শুরুর অবস্থান থেকে কতটা বামে বা ডানে ঘুরেছে, যা ডিগ্রিতে পরিমাপ করা হয়। get_yaw মস্তিষ্কের বর্তমান ইয়ো মান ফেরত দেয়।

ডান দিকে ঘুরলে ইয় (yaw) মান বাড়ে এবং বাম দিকে ঘুরলে ইয় মান কমে। র‍্যাপড হেডিং মান ব্যবহার না করে ডান ও বাম দিকে ঘোরার বিষয়টি যাচাই করার জন্য ইয় (Yaw) কার্যকর।

Usage:
inertial.get_yaw()

প্যারামিটার

বর্ণনা

এই পদ্ধতিতে কোনো প্যারামিটার নেই।

get_roll#

রোল হলো ব্রেইন কতটা বাম বা ডানে হেলে পড়ে, যা ডিগ্রিতে পরিমাপ করা হয়। get_roll ব্রেইনের বর্তমান রোল মান ফেরত দেয়।

মস্তিষ্ক সামনের দিকে মুখ করে থাকলে, বাম দিকে কাত করলে রোলের মান বাড়ে এবং ডান দিকে কাত করলে রোলের মান কমে।

Usage:
inertial.get_roll()

প্যারামিটার

বর্ণনা

এই পদ্ধতিতে কোনো প্যারামিটার নেই।

get_pitch#

পিচ হলো মস্তিষ্কের সামনের বা পেছনের দিকে হেলে পড়ার পরিমাণ, যা ডিগ্রিতে পরিমাপ করা হয়। get_pitch মস্তিষ্কের বর্তমান পিচ মান ফেরত দেয়।

মস্তিষ্ক সামনের দিকে মুখ করে থাকলে, সামনের দিকে ঝুঁকালে তীক্ষ্ণতার মান বাড়ে এবং পেছনের দিকে ঝুঁকালে তীক্ষ্ণতার মান কমে।

Usage:
inertial.get_pitch()

প্যারামিটার

বর্ণনা

এই পদ্ধতিতে কোনো প্যারামিটার নেই।

calibrate#

calibrate মস্তিষ্কের ইনার্শিয়াল সেন্সরকে ক্যালিব্রেট করে।

ক্যালিব্রেশন ইনার্শিয়াল সেন্সরকে বাঁক সঠিকভাবে পরিমাপ করতে সাহায্য করে। ক্যালিব্রেশনের সময় ব্রেইনটিকে প্রায় ২ সেকেন্ডের জন্য স্থির রাখুন। ক্যালিব্রেশনের সময় ব্রেইনটি নড়ে গেলে হেডিং, রোটেশন, ইয়ো, রোল এবং পিচ-এর মান সঠিকভাবে পরিমাপ নাও হতে পারে।

পরবর্তী কোড লাইনটি চলার আগে প্রজেক্টটি ক্যালিব্রেশন সম্পন্ন হওয়া পর্যন্ত অপেক্ষা করবে।

Usage:
inertial.calibrate()

প্যারামিটার

বর্ণনা

এই পদ্ধতিতে কোনো প্যারামিটার নেই।

reset_heading#

হেডিং হলো মস্তিষ্কের অভিমুখ, যা ডিগ্রিতে পরিমাপ করা হয়। reset_heading মস্তিষ্কের বর্তমান হেডিংকে ০ ডিগ্রিতে রিসেট করে।

এই পদ্ধতিটি ব্যবহার করার পর, মস্তিষ্কের বর্তমান অভিমুখটি নতুন ০ ডিগ্রি অভিমুখ হয়ে যায়।

Usage:
inertial.reset_heading()

প্যারামিটার

বর্ণনা

এই পদ্ধতিতে কোনো প্যারামিটার নেই।

reset_rotation#

ঘূর্ণন হলো মস্তিষ্কের কতটুকু ঘুরেছে, যা ডিগ্রিতে পরিমাপ করা হয়। reset_rotation মস্তিষ্কের বর্তমান ঘূর্ণনকে 0 ডিগ্রিতে রিসেট করে।

এই পদ্ধতিটি ব্যবহার করার পর, মস্তিষ্ক নতুন ০ ডিগ্রি ঘূর্ণন মান থেকে ভবিষ্যতের মোড়গুলো ট্র্যাক করে।

Usage:
inertial.reset_rotation()

প্যারামিটার

বর্ণনা

এই পদ্ধতিতে কোনো প্যারামিটার নেই।

set_heading#

হেডিং হলো মস্তিষ্কের অভিমুখ, যা ০ থেকে ৩৫৯ ডিগ্রির মধ্যে পরিমাপ করা হয়। set_heading মস্তিষ্কের বর্তমান হেডিংকে একটি নতুন হেডিং মানে পরিবর্তন করে।

উদাহরণস্বরূপ, যদি মস্তিষ্ক ডানদিকে মুখ করে থাকে, তাহলে হেডিং ০ ডিগ্রিতে সেট করলে সেই ডানমুখী অবস্থানটিই নতুন ০ ডিগ্রি হয়ে যায়। এরপর মস্তিষ্ক সেই নতুন দিকের উপর ভিত্তি করে অন্যান্য হেডিং ট্র্যাক করতে পারে।

Usage:
inertial.set_heading(heading)

প্যারামিটার

বর্ণনা

heading

মস্তিষ্কের জন্য নির্ধারণ করার শিরোনামের মান, ডিগ্রিতে। এটি ০ থেকে ৩৫৯ পর্যন্ত একটি পূর্ণ সংখ্যা হতে পারে।

set_rotation#

রোটেশন হলো ব্রেইনের ঘোরার পরিমাণ, যা ডিগ্রিতে পরিমাপ করা হয়। হেডিং-এর মতো নয়, রোটেশন ৩৫৯ ডিগ্রির বেশি বাড়তে পারে বা ০ ডিগ্রির নিচে কমতে পারে। একটি প্রজেক্টের শুরুতে, রোটেশনের মান ০ ডিগ্রিতে সেট করা থাকে। set_rotation ব্রেইনের বর্তমান রোটেশনকে একটি নতুন মানে পরিবর্তন করে।

উদাহরণস্বরূপ, যদি মস্তিষ্কটি ডানদিকে দুটি পূর্ণ ঘূর্ণন সম্পন্ন করে, তবে এর ঘূর্ণন মান হবে ৭২০ ডিগ্রি। ঘূর্ণন মান ০ ডিগ্রিতে সেট করলে, তা ৭২০ থেকে ০ ডিগ্রিতে রিসেট হয়ে যাবে। এরপর মস্তিষ্কটি সেই নতুন মানের উপর ভিত্তি করে ঘূর্ণন ট্র্যাক করতে পারবে।

Usage:
inertial.set_rotation(rotation)

প্যারামিটার

বর্ণনা

rotation

মস্তিষ্কের জন্য যে ঘূর্ণন মানটি ডিগ্রিতে নির্ধারণ করতে হবে। এটি একটি পূর্ণসংখ্যা হতে পারে।

গতি#

get_acceleration#

ত্বরণ হলো মস্তিষ্ক কত দ্রুত গতি বাড়াচ্ছে বা কমাচ্ছে। get_acceleration নির্বাচিত অক্ষ বরাবর মস্তিষ্কের ত্বরণ ফেরত দেয়, যা -4.0 G থেকে 4.0 G পর্যন্ত হয়ে থাকে।

G প্রায় ১ G।

নির্বাচিত অক্ষে ত্বরণের দিকের উপর নির্ভর করে মানটি ধনাত্মক বা ঋণাত্মক হতে পারে। অক্ষের বিকল্পগুলো হলো X, Y, এবং Z।

Usage:
inertial.get_acceleration(axis)

প্যারামিটার

বর্ণনা

axis

ত্বরণ পরিমাপের অক্ষ: X, Y, অথবা Z।

# Build Used: Super Code Base 2.0
def main():
    # Display the acceleration after moving.
    drivetrain.set_drive_velocity(100)
    console.print("Resting: ")
    console.print(inertial.get_acceleration(X), precision=2)
    console.new_line()
    wait(1, SECONDS)
    drivetrain.drive_for(FORWARD, 500, MM, wait=False)
    wait(0.20, SECONDS)
    console.print("Startup: ")
    console.print(inertial.get_acceleration(X), precision=2)

# Start threads — Do not delete
start_thread(main)