সেন্সর#

ভূমিকা#

VEX AIR ড্রোনে ঘূর্ণন গতি পরিমাপ এবং গতির পরিবর্তন শনাক্ত করার জন্য একটি ইনার্শিয়াল সেন্সর এবং দূরত্ব নির্ণয়ের জন্য একটি রেঞ্জ সেন্সর রয়েছে। VEX AIR ড্রোনটি এর ব্যাটারির চার্জের হিসাবও রাখতে পারে। এই সেন্সরগুলো ড্রোনটিকে তার অভিমুখ, দিক, ত্বরণ এবং বিভিন্ন বস্তু থেকে দূরত্ব ট্র্যাক করতে সাহায্য করে।

নিম্নে সকল উপলব্ধ পদ্ধতির একটি তালিকা দেওয়া হলো:

জড়তামূলক - ড্রোনটির ঘূর্ণন গতিবিধি ট্র্যাক করুন।

  • get_rotation – ড্রোনটি শুরু হওয়ার পর থেকে কতটা ঘুরেছে তা ফেরত দেয়।

  • get_heading – বর্তমান হেডিং (0 থেকে 359.99°) ফেরত দেয়।

  • get_yaw – ইয়ো কোণ (–180 থেকে 180°) ফেরত দেয়।

  • get_roll – রোল কোণ (–180 থেকে 180°) ফেরত দেয়।

  • get_pitch – পিচ কোণ (–180 থেকে 180°) ফেরত দেয়।

  • reset_rotation – ঘূর্ণন মান 0-তে রিসেট করে।

  • reset_heading – বর্তমান হেডিং 0-তে সেট করে।

  • set_heading – শিরোনামকে একটি নির্দিষ্ট মানে সেট করে।

  • get_acceleration – একটি নির্দিষ্ট দিকের ত্বরণ ফেরত দেয়।

  • get_turn_rate – প্রতি সেকেন্ডে ডিগ্রিতে ঘোরার হার ফেরত দেয়।

রেঞ্জ — ড্রোনের রেঞ্জ সেন্সর থেকে দূরত্ব শনাক্ত করুন।

  • get_distance — নির্বাচিত রেঞ্জ সেন্সর এবং নিকটতম শনাক্তকৃত বস্তুর মধ্যে দূরত্ব ফেরত দেয়।

ব্যাটারি - ড্রোনটির ব্যাটারির শতাংশ ফেরত দিন।

  • get_battery_level – ড্রোনটির ব্যাটারির লেভেল শতাংশে দেখায়।

জড়তা#

get_rotation#

get_rotation ড্রোনটি যাত্রা শুরু করার পর থেকে কত ডিগ্রি ঘুরেছে তা ফেরত দেয়। এটি সমস্ত ঘূর্ণন যোগ করে মোট মান ডিগ্রিতে ফেরত দেয়: ঘড়ির কাঁটার দিকে ঘোরার জন্য ধনাত্মক এবং ঘড়ির কাঁটার বিপরীত দিকে ঘোরার জন্য ঋণাত্মক।

Usage:
drone.inertial.get_rotation()

প্যারামিটার

বর্ণনা

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

# Display the rotation after turning
drone.take_off(climb_to=500)
drone.turn_for(LEFT, 450, 50)
print(drone.inertial.get_rotation(), end="")
drone.land()

get_heading#

get_heading ড্রোনটির হেডিং অ্যাঙ্গেলকে ০ থেকে ৩৫৯.৯৯ ডিগ্রির মধ্যে একটি ফ্লোট মান হিসেবে ফেরত দেয়।

Usage:
drone.inertial.get_heading()

প্যারামিটার

বর্ণনা

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

# Display the drone's heading after turning
drone.take_off(climb_to=500)
drone.set_turn_velocity(100)
drone.turn(RIGHT)
wait(5, SECONDS)
controller.screen.print("Heading: ")
controller.screen.print(drone.inertial.get_heading())
drone.land()

get_yaw#

get_yaw ড্রোনটির ইয়ো অ্যাঙ্গেল –180.0 থেকে 180.0 ডিগ্রীর মধ্যে একটি ফ্লোট হিসেবে রিটার্ন করে।

নিচের চিত্রটিতে ইয়ো (yaw)-এর ধনাত্মক ঘূর্ণনের দিক দেখানোর জন্য একটি তীরচিহ্ন ব্যবহার করা হয়েছে।

একটি VEX AIR ড্রোন যার নাক নিচের ডান কোণার দিকে ফেরানো, এবং কেন্দ্র থেকে একটি নীল তীর নিচের দিকে প্রসারিত। নীল তীরটির চারপাশে, একটি কালো বাঁকা তীর ঘড়ির কাঁটার দিকে নির্দেশ করছে এবং এতে 'Yaw' লেখা আছে, যা ইয় (yaw)-এর ধনাত্মক দিক নির্দেশ করে।

Usage:
drone.inertial.get_yaw

প্যারামিটার

বর্ণনা

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

# Display the yaw angle as you rotate the drone by hand
while True:
    controller.screen.clear_screen()
    controller.screen.set_cursor(1, 1)
    controller.screen.print("Yaw: ")
    controller.screen.print(drone.inertial.get_yaw())
    wait(0.2, SECONDS)

get_roll#

get_roll ড্রোনটির রোল অ্যাঙ্গেলকে –180.0 থেকে 180.0 ডিগ্রীর মধ্যে একটি ফ্লোট হিসেবে রিটার্ন করে।

নিচের চিত্রটিতে রোলের ধনাত্মক ঘূর্ণনের দিক দেখানোর জন্য একটি তীরচিহ্ন ব্যবহার করা হয়েছে।

একটি VEX AIR ড্রোন যার নাক নিচের ডান কোণার দিকে ফেরানো, এবং ড্রোনটির নাক থেকে সরাসরি একটি সবুজ তীর বেরিয়ে গেছে। সবুজ তীরটির চারপাশে একটি কালো বাঁকা তীর ঘড়ির কাঁটার বিপরীত দিকে নির্দেশ করছে, যা পজিটিভ রোলের দিক নির্দেশ করে।

Usage:
drone.inertial.get_roll()

প্যারামিটার

বর্ণনা

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

# Display the roll angle as you rotate the drone by hand
while True:
    controller.screen.clear_screen()
    controller.screen.set_cursor(1, 1)
    controller.screen.print("Roll: ")
    controller.screen.print(drone.inertial.get_roll())
    wait(0.2, SECONDS)

get_pitch#

get_pitch ড্রোনটির পিচ অ্যাঙ্গেলকে –180.0 থেকে 180.0 ডিগ্রীর মধ্যে একটি ফ্লোট হিসেবে রিটার্ন করে।

নিচের চিত্রটিতে পিচের ধনাত্মক ঘূর্ণনের দিক বোঝাতে একটি তীরচিহ্ন ব্যবহার করা হয়েছে।

নিচের ডান কোণার দিকে মুখ করে থাকা একটি VEX AIR ড্রোন, যার ডান পাশ থেকে VEX লোগোর পাশে একটি লাল তীর বেরিয়ে গেছে। লাল তীরটির চারপাশে, ঘড়ির কাঁটার বিপরীত দিকে নির্দেশকারী একটি কালো বাঁকা তীর পিচের জন্য ধনাত্মক দিক নির্দেশ করে।

Usage:
drone.inertial.get_pitch()

প্যারামিটার

বর্ণনা

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

# Display the pitch angle as you rotate the drone by hand
while True:
    controller.screen.clear_screen()
    controller.screen.set_cursor(1, 1)
    controller.screen.print("Pitch: ")
    controller.screen.print(drone.inertial.get_pitch())
    wait(0.2, SECONDS)

reset_rotation#

reset_rotation ড্রোনটির ঘূর্ণন মান ০ ডিগ্রিতে রিসেট করে।

Usage:
drone.inertial.reset_rotation()

প্যারামিটার

বর্ণনা

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

# Display the new rotation after resetting
drone.take_off(climb_to=500)
drone.turn(RIGHT)
while not drone.inertial.get_rotation() > 360:
    wait(5, MSEC)
drone.hover()
drone.inertial.reset_rotation()
wait(1, SECONDS)
print(drone.inertial.get_rotation(), end="")
drone.land()

reset_heading#

reset_heading ড্রোনটির হেডিং ০ ডিগ্রিতে রিসেট করে।

ব্যবহারবিধি:

drone.inertial.reset_heading()

প্যারামিটার

বর্ণনা

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

# Turn to a heading, reset the heading, and turn to the same heading.
drone.take_off(climb_to=500)
drone.turn_to(heading=180, velocity=50)
wait(3,SECONDS)
drone.inertial.reset_heading()
drone.turn_to(heading=180, velocity=50)
wait(3,SECONDS)
drone.land()

set_heading#

set_heading ড্রোনটির অভিমুখ ডিগ্রিতে একটি নির্দিষ্ট মানে নির্ধারণ করে।

ব্যবহারবিধি:

drone.inertial.set_heading(heading)

প্যারামিটার

বর্ণনা

heading

নতুন শিরোনামের জন্য ব্যবহারযোগ্য মানটি ০ থেকে ৩৫৯.৯৯ ডিগ্রির পরিসরের মধ্যে হতে হবে।

# Turn to a heading, set the heading, and turn to the same heading.
drone.take_off(climb_to=500)
drone.turn_to(heading=180, velocity=50)
wait(3,SECONDS)
drone.inertial.set_heading(90)
drone.turn_to(heading=180, velocity=50)
wait(3,SECONDS)
drone.land()

get_acceleration#

get_acceleration একটি নির্দিষ্ট দিকে ড্রোনটির ত্বরণ ফেরত দেয়। ফেরত আসা মানটি বেগের পরিবর্তনের হারকে বোঝায়, যা g এককে পরিমাপ করা হয় (যেখানে 1g ≈ `9.81 m/s²) এবং এটি -4.00 থেকে 4.00 পর্যন্ত একটি ফ্লোট সংখ্যা।

নিচের চিত্রটিতে তীর চিহ্ন ব্যবহার করে সামনের দিকে ও ডানদিকে যাওয়ার জন্য ধনাত্মক ত্বরণ এবং নিচের দিকে যাওয়ার জন্য ঋণাত্মক ত্বরণের দিক দেখানো হয়েছে।

একটি VEX AIR ড্রোন দেখানো হয়েছে যার নাক থেকে একটি সবুজ তীর 'সামনে' (Forward), ড্রোনের নীচের কেন্দ্র থেকে একটি নীল তীর 'নীচে' (Downward), এবং ড্রোনের ডান পাশে VEX লোগোর পাশ থেকে একটি লাল তীর 'ডানদিকে' (Rightward) নির্দেশ করছে।

ব্যবহারবিধি:

drone.inertial.get_acceleration(type)

প্যারামিটার

বর্ণনা

type

ত্বরণের দিক উল্লেখ করতে হবে:

  • DOWNWARD
  • FORWARD
  • RIGHTWARD

# Display the acceleration as the drone takes off
drone.take_off(500, wait=False)
while True:
    controller.screen.clear_screen()
    controller.screen.set_cursor(1, 1)
    controller.screen.print(drone.inertial.get_acceleration(DOWNWARD))
    wait(5, MSEC)

get_turn_rate#

get_turn_rate নির্দিষ্ট অক্ষ বরাবর ড্রোনটির ঘোরার হার ফেরত দেয়। এটি –1000.00 থেকে 1000.00 dps পর্যন্ত একটি ফ্লোট মান হিসেবে ডিগ্রি প্রতি সেকেন্ড \(dps\) এককে ফেরত দেয়।

নিচের চিত্রটিতে রোল, পিচ এবং ইয়ো-এর ধনাত্মক ঘূর্ণনের দিক বোঝাতে তীরচিহ্ন ব্যবহার করা হয়েছে।

একটি VEX AIR ড্রোন দিকনির্দেশক তীরচিহ্ন সহ দেখানো হয়েছে। ড্রোনটির নাক থেকে একটি সবুজ তীরচিহ্ন প্রসারিত হয়েছে, যার চারপাশে ঘড়ির কাঁটার বিপরীত দিকে একটি কালো বাঁকা তীরচিহ্ন রয়েছে, এবং এতে 'Roll' লেখা আছে। ড্রোনটির নীচের অংশের কেন্দ্র থেকে একটি নীল তীরচিহ্ন প্রসারিত হয়েছে, যার চারপাশে ঘড়ির কাঁটার দিকে একটি কালো বাঁকা তীরচিহ্ন রয়েছে, এবং এতে 'Yaw' লেখা আছে। এবং ড্রোনটির ডান পাশ থেকে VEX লোগোর পাশে একটি লাল তীরচিহ্ন প্রসারিত হয়েছে, যার চারপাশে ঘড়ির কাঁটার বিপরীত দিকে একটি কালো বাঁকা তীরচিহ্ন রয়েছে, এবং এতে 'Pitch' লেখা আছে।

Usage:
drone.inertial.get_turn_rate(axis)

প্যারামিটার

বর্ণনা

axis

Which orientation to report:

  • YAW
  • ROLL
  • PITCH

# Display the drone turn rate as it is rotated by hand.
while True:
    controller.screen.clear_screen()
    controller.screen.set_cursor(7, 1)
    controller.screen.print(drone.inertial.get_turn_rate(ROLL))

পরিসর#

get_distance#

get_distance নির্বাচিত রেঞ্জ সেন্সর এবং নিকটতম শনাক্তকৃত বস্তুর মধ্যেকার দূরত্ব ফেরত দেয়।

Usage:
drone.range.get_distance(range, units)

প্যারামিটার

বর্ণনা

range

ব্যবহার করার জন্য রেঞ্জ সেন্সর: FORWARD_RANGE অথবা FORWARD_RANGE DOWNWARD_RANGE ড্রোনটির সামনের দিক থেকে দূরত্ব নির্দেশ করে। DOWNWARD_RANGE ড্রোনটির নিচের দিক থেকে দূরত্ব নির্দেশ করে।

units

ঐচ্ছিক। দূরত্বের একক:

  • MM (ডিফল্ট) — মিলিমিটার
  • CM — সেন্টিমিটার
  • INCHES

# Fly forward until close to an object
drone.take_off(climb_to=500)
drone.move_at(direction=0, velocity=50)
while not drone.range.get_distance(FORWARD_RANGE, MM) < 750:
    wait(0.1, SECONDS)
drone.land()

ব্যাটারি#

get_battery_level#

get_battery_level ড্রোনটির ব্যাটারির চার্জের মাত্রা শতাংশে ফেরত দেয়। এটি ০ থেকে ১০০-এর মধ্যে একটি সংখ্যা রিটার্ন করে।

Usage:
drone.get_battery_level()

প্যারামিটার

বর্ণনা

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

# Display the drone's battery level
if drone.get_battery_level() < 25:
    controller.screen.print("Charge the drone Battery!")
else:
    controller.screen.print("Ready to fly!")