Search Code

পাঠ ৭ of ১০: লাইন ট্র্যাকিং, ক্লিফ ডিটেকশন গ্রেস্কেল সেন্সর ক্যালিব্রেট করুন রাস্পবেরি পাই পিকো কার

পাঠ ৭ of ১০: লাইন ট্র্যাকিং, ক্লিফ ডিটেকশন গ্রেস্কেল সেন্সর ক্যালিব্রেট করুন রাস্পবেরি পাই পিকো কার

রাস্পবেরি পাই পিকো স্মার্ট কার কোর্সের এই সপ্তম পাঠে, আমরা একটি গ্রেস্কেল সেন্সর মডিউল ব্যবহার করে লাইন ট্র্যাকিং এবং ক্লিফ ডিটেকশনের গুরুত্বপূর্ণ ফাংশনগুলি অন্বেষণ করি। এই মডিউলটি আপনার গাড়ির "চোখ" হিসেবে কাজ করে, যা এটিকে স্বায়ত্তশাসিতভাবে একটি পূর্বনির্ধারিত পথ অনুসরণ করতে এবং বিপজ্জনক ঢাল এড়াতে সক্ষম করে। প্রকল্পটি দেখায় যে কীভাবে সঠিক রিডিংয়ের জন্য সেন্সরটি ক্যালিব্রেট করা যায় এবং গাড়িটিকে ট্র্যাকে রাখার লজিক প্রয়োগ করা যায়, সাথে একটি মজার "ডোন্ট পুশ মি" ফিচার যা ক্লিফ ডিটেকশন সিমুলেট করে। এই গাইডটি তাদের জন্য উপযুক্ত যারা মৌলিক রিমোট কন্ট্রোলের বাইরে গিয়ে সেন্সর-নির্দেশিত রোবোটিক্সের জগতে প্রবেশ করতে চান।

এই প্রযুক্তির অনেক ব্যবহারিক প্রয়োগ রয়েছে শুধু একটি মজার DIY প্রকল্পের বাইরেও। এখানে আপনি যে নীতিগুলি শিখবেন তা বাস্তব-বিশ্বের স্বায়ত্তশাসিত সিস্টেম তৈরির জন্য মৌলিক। এখানে কিছু ধারণা দেওয়া হল যা আপনাকে অনুপ্রাণিত করতে পারে:

  • স্বয়ংক্রিয় ডেলিভারি রোবট: একটি ছোট রোবট তৈরি করুন যা আইটেম ডেলিভারি করতে চিহ্নিত লাইন অনুসরণ করে একটি গুদাম বা অফিস ফ্লোরে নেভিগেট করতে পারে।
  • টেবিলটপ মেজ সলভার: একটি রোবট তৈরি করুন যা কালো বৈদ্যুতিক টেপ দিয়ে আঁকা একটি জটিল মেজ নেভিগেট করতে পারে।
  • নিরাপত্তা এবং সুরক্ষা রোবট: একটি প্যাট্রোল বট প্রয়োগ করুন যা একটি নির্ধারিত পথ অনুসরণ করে এবং সিঁড়ি বা উঁচু পৃষ্ঠ থেকে পড়ে যাওয়া এড়াতে ক্লিফ ডিটেকশন ব্যবহার করে।
  • শিক্ষামূলক প্ল্যাটফর্ম: PID কন্ট্রোল, সেন্সর ফিউশন এবং স্বায়ত্তশাসিত নেভিগেশনের মৌলিক বিষয়গুলি শেখাতে গাড়িটি ব্যবহার করুন।

হার্ডওয়্যার এবং উপাদানসমূহ

এই প্রকল্পটি SunFounder Raspberry Pi Pico 4WD কার কিটের উপর ভিত্তি করে তৈরি। এই পাঠের মূল উপাদান হল গ্রেস্কেল সেন্সর মডিউল, যা লাইন ট্র্যাকিং এবং ক্লিফ ডিটেকশন উভয়ের জন্যই অপরিহার্য। মডিউলটিতে তিনটি স্বাধীন সেন্সর রয়েছে যা নীচের পৃষ্ঠ থেকে প্রতিফলিত আলোর পরিমাণ পরিমাপ করে। এই ডেটা একটি কালো লাইন, একটি সাদা পৃষ্ঠ এবং একটি "ক্লিফ" বা খোলা স্থানের মধ্যে পার্থক্য করতে ব্যবহৃত হয়। সম্পূর্ণ কিটটিতে পিকো কার চ্যাসিস, মোটর এবং সিস্টেমকে পাওয়ার জন্য একটি ব্যাটারি প্যাকও অন্তর্ভুক্ত রয়েছে।

ওয়্যারিং গাইড

সঠিক ওয়্যারিং আপনার সেন্সরকে কাজ করানোর প্রথম ধাপ। গ্রেস্কেল মডিউলটি চারটি তার ব্যবহার করে রাস্পবেরি পাই পিকোর সাথে সংযুক্ত হয়। ওয়্যারিংটি সহজবোধ্য এবং ভিডিওতে স্পষ্টভাবে প্রদর্শিত হয়েছে।

ভিডিওতে দেখানো ওয়্যারিং কনফিগারেশনটি এখানে দেওয়া হল (ভিডিওতে 03:01 এ):

  • কালো তার: পিকোর একটি GND পিনের সাথে সংযুক্ত করুন।
  • লাল তার: পিকোর 3.3V পিনের সাথে সংযুক্ত করুন।
  • হলুদ তার (ডান সেন্সর): GPIO পিন 28 এর সাথে সংযুক্ত করুন।
  • বাদামী তার (কেন্দ্র সেন্সর): GPIO পিন 27 এর সাথে সংযুক্ত করুন।
  • সাদা/ধূসর তার (বাম সেন্সর): GPIO পিন 26 এর সাথে সংযুক্ত করুন।

গ্রেস্কেল সেন্সর ক্যালিব্রেট করা

গাড়িটি নির্ভরযোগ্যভাবে একটি লাইন অনুসরণ করার আগে, আপনাকে সাদা, কালো এবং খালি স্থানের জন্য বিভিন্ন রিডিং বোঝার জন্য সেন্সরটি ক্যালিব্রেট করতে হবে। এটি একটি গুরুত্বপূর্ণ পদক্ষেপ যাতে আপনার গাড়ি সঠিক সিদ্ধান্ত নেয়। মডিউলের একটি ছোট পটেনশিওমিটার দিয়ে সেন্সরের সংবেদনশীলতা সামঞ্জস্য করা যায়।

ভিডিওটি ক্যালিব্রেশন প্রক্রিয়া প্রদর্শন করে (ভিডিওতে 04:39 এ)। সেন্সরটি মাটি থেকে প্রায় ১১ মিলিমিটার বা এক সেন্টিমিটার উচ্চতায় অবস্থান করা উচিত যাতে স্পষ্ট রিডিং পাওয়া যায়। পটেনশিওমিটার সামঞ্জস্য করে এবং মানগুলি পর্যবেক্ষণ করে, আপনি সেরা অবস্থান খুঁজে পেতে পারেন। লক্ষ্য হল একটি সাদা পৃষ্ঠের (যা প্রচুর আলো প্রতিফলিত করে) এবং একটি কালো লাইনের (যা খুব কম প্রতিফলিত করে) রিডিংয়ের মধ্যে একটি উল্লেখযোগ্য পার্থক্য থাকা।

রিডিংগুলির অর্থ কী তা এখানে সংক্ষিপ্তভাবে দেওয়া হল:

  • সাদা পৃষ্ঠ: উচ্চ প্রতিফলন, ফলে উচ্চ সেন্সর মান (যেমন, প্রায় ২০,০০০)।
  • কালো লাইন: কম প্রতিফলন, ফলে কম সেন্সর মান (যেমন, প্রায় ৩,০০০)।
  • ক্লিফ (ফাঁপা স্থান): কোনো প্রতিফলন নেই, ফলে সর্বনিম্ন সেন্সর মান (যেমন, প্রায় ১,২০০)।

কোড ব্যাখ্যা

যেহেতু এই পাঠের জন্য কোনো কোড প্রদান করা হয়নি, আমরা ধারণাগত লজিক এবং Robojax লাইব্রেরির মূল ফাংশনগুলির উপর ফোকাস করব যা গাড়িটিকে কাজ করতে ব্যবহৃত হয়। ভিডিওটি দুটি প্রধান ফাংশন ব্যাখ্যা করে যা আপনি প্রদত্ত লাইব্রেরি থেকে ব্যবহার করবেন।

সেন্সর পরীক্ষা করা

প্রথম ধাপ হল একটি সহজ স্ক্রিপ্ট দিয়ে আপনার সেন্সর পরীক্ষা করা। এই স্ক্রিপ্টটি তিনটি সেন্সর থেকে কাঁচা মান পড়তে get_grayscale_value() নামক একটি ফাংশন ব্যবহার করে। এটি এই মানগুলি সিরিয়াল মনিটরে প্রিন্ট করে যাতে আপনি দেখতে পারেন যে সেন্সরটি বিভিন্ন পৃষ্ঠের উপর থাকলে কীভাবে পরিবর্তন হয়। এটি আপনার ওয়্যারিং যাচাই এবং ক্যালিব্রেশন পদক্ষেপ সম্পাদনের জন্য দরকারী।


# This is a conceptual example of the test function
from machine import Pin, ADC
import time

# Define the ADC pins for the grayscale sensors
grayscale_pins = [26, 27, 28]
sensors = [ADC(Pin(pin)) for pin in grayscale_pins]

while True:
    # Read the raw 16-bit values from the sensors
    values = [sensor.read_u16() for sensor in sensors]
    print("Left: {} Center: {} Right: {}".format(values[0], values[1], values[2]))
    time.sleep_ms(100)

লাইন ট্র্যাকিং লজিক

লাইন ট্র্যাকিংয়ের জন্য, কোডটি কাঁচা অ্যানালগ মান ব্যবহার করে না। পরিবর্তে, এটি সেগুলিকে একটি সহজ ডিজিটাল স্ট্যাটাসে রূপান্তর করে: সেন্সরটি কালো লাইনের উপর থাকলে 1 এবং সাদা পৃষ্ঠের উপর থাকলে 0। এটি একটি ফাংশন দ্বারা পরিচালিত হয় যা তিনটি মানের একটি তালিকা ফেরত দেয় (যেমন, [0, 1, 0])। মূল কন্ট্রোল লুপটি তখন গাড়ির ক্রিয়া নির্ধারণ করতে এই তালিকাটি ব্যবহার করে।

লজিকটি সেন্সরের অবস্থাকে পূর্বনির্ধারিত শর্তের সাথে তুলনা করার উপর ভিত্তি করে তৈরি। উদাহরণস্বরূপ, যদি অবস্থা [0, 1, 0] হয়, তাহলে গাড়িটি লাইনের উপর পুরোপুরি আছে এবং এগিয়ে যাওয়া উচিত। যদি অবস্থা [1, 0, 0] হয়, তাহলে গাড়িটি বামে সরে গেছে এবং ডানদিকে তার পথ সংশোধন করতে হবে। ভিডিওটি এই শর্তগুলো বিস্তারিতভাবে ব্যাখ্যা করে (ভিডিওতে ১৩:০৫ মিনিটে), দেখায় যে সেন্সর রিডিংয়ের বিভিন্ন সংমিশ্রণ কীভাবে বিভিন্ন মোটর কমান্ডের সাথে মিলে যায়, যেমন বামে মোড় নেওয়া, ডানে মোড় নেওয়া, বা তীক্ষ্ণ সংশোধন করা।


# এটি লাইন-ফলোয়িং লজিকের একটি ধারণাগত উদাহরণ
# ধরে নিন 'status' হল গ্রেস্কেল সেন্সর থেকে আসা [0, 1, 0] এর মতো একটি তালিকা

if status == [0, 1, 0]:  # কেন্দ্রীয় সেন্সর লাইনের উপর
    # এগিয়ে যান
    pass
elif status == [1, 0, 0]:  # বাম সেন্সর লাইনের উপর
    # ডানে মোড় নিন
    pass
elif status == [0, 0, 1]:  # ডান সেন্সর লাইনের উপর
    # বামে মোড় নিন
    pass
# ... তীক্ষ্ণ মোড়ের জন্য অন্যান্য শর্ত

লাইভ প্রজেক্ট প্রদর্শন

ভিডিওর প্রদর্শনে, গাড়িটিকে একটি মুদ্রিত ট্র্যাকে রাখা হয়েছে যার উপর একটি মোটা কালো লাইন রয়েছে। গাড়িটি সফলভাবে লাইনটি অনুসরণ করে, পথ ধরে চলার সময় মোড় নেয় এবং সংশোধন করে। ভিডিওটি একটি সাধারণ সমস্যা তুলে ধরে যেখানে তীক্ষ্ণ মোড়ের সময় চাকা আলগা হয়ে যেতে পারে, এবং চাকার শ্যাফটে একটি ছোট টেপের টুকরো যোগ করে শক্তভাবে ফিট করার একটি সহজ সমাধান দেখায়। একবার এটি ঠিক করা হলে, গাড়িটি পুরো ট্র্যাকটি মসৃণভাবে অতিক্রম করে, যা ক্যালিব্রেশন এবং লাইন-ফলোয়িং লজিকের কার্যকারিতা প্রদর্শন করে।

ভিডিও অধ্যায়

  • [০০:০০] লাইন ট্র্যাকিং এবং ক্লিফ ডিটেকশনের ভূমিকা
  • [০৩:০১] গ্রেস্কেল সেন্সর মডিউল ওয়্যারিং
  • [০৪:৩৯] গ্রেস্কেল সেন্সর ক্যালিব্রেশন
  • [১৩:০৫] লাইন-ফলোয়িং লজিক বোঝা
  • [১৯:৪৩] লাইন-ট্র্যাকিং কোড পরীক্ষা
  • [২৪:৫০] টেস্ট ট্র্যাকে লাইভ প্রদর্শন
কোন কোড সংযুক্ত নেই।

সম্পদ ও রেফারেন্সসমূহ

এখনো কোনো সম্পদ নেই।

ফাইলসমূহ📁

কোনো ফাইল উপলব্ধ নেই।