সুচিপত্র:

একটি লেজার এবং একটি ক্যামেরা ব্যবহার করে রেঞ্জফাইন্ডার তৈরি করা: 6 টি ধাপ
একটি লেজার এবং একটি ক্যামেরা ব্যবহার করে রেঞ্জফাইন্ডার তৈরি করা: 6 টি ধাপ

ভিডিও: একটি লেজার এবং একটি ক্যামেরা ব্যবহার করে রেঞ্জফাইন্ডার তৈরি করা: 6 টি ধাপ

ভিডিও: একটি লেজার এবং একটি ক্যামেরা ব্যবহার করে রেঞ্জফাইন্ডার তৈরি করা: 6 টি ধাপ
ভিডিও: একটি প্রাচীন সভ্যতার ট্রেস উপর? 🗿 আমরা যদি আমাদের অতীত নিয়ে ভুল করে থাকি? 2024, জুন
Anonim
লেজার এবং ক্যামেরা ব্যবহার করে রেঞ্জফাইন্ডার তৈরি করা
লেজার এবং ক্যামেরা ব্যবহার করে রেঞ্জফাইন্ডার তৈরি করা

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

প্রকল্পটি এই নিবন্ধের উপর ভিত্তি করে:

পার্থক্য শুধু এই যে আমি রাস্পবেরি পাই জিরো ডব্লিউ, একটি এলসিডি এবং রাস্পবেরি পাই ক্যামেরা মডিউল ব্যবহার করে রেঞ্জফাইন্ডার তৈরি করব। আমি লেজার ট্র্যাক করার জন্য ওপেনসিভি ব্যবহার করব।

আমি ধরে নেব যে আপনি একজন প্রযুক্তিবিদ এবং আপনি পাইথন এবং কমান্ড লাইন ব্যবহার করে স্বাচ্ছন্দ্য বোধ করছেন। এই প্রকল্পে আমি হেডলেস মোডে পাই ব্যবহার করছি।

চল শুরু করি!

ধাপ 1: উপকরণগুলির তালিকা

এই প্রকল্পের জন্য, আপনার প্রয়োজন হবে:

  • একটি সস্তা 6mm 5mW লেজার
  • একটি 220 Ω প্রতিরোধক
  • একটি 2N2222A ট্রানজিস্টর বা সমতুল্য কিছু
  • একটি রাস্পবেরি পাই জিরো ডব্লিউ
  • একটি রাস্পবেরি পাই ক্যামেরা v2
  • একটি নকিয়া 5110 এলসিডি ডিসপ্লে বা সমতুল্য
  • কিছু জাম্পার তার এবং একটি ছোট রুটিবোর্ড

আমি আমার 3 ডি প্রিন্টার ব্যবহার করে একটি জিগ প্রিন্ট করেছি যা পরীক্ষার সময় আমাকে সাহায্য করেছিল। রেঞ্জ ফাইন্ডারের জন্য একটি সম্পূর্ণ ঘের তৈরির জন্য আমি 3 ডি প্রিন্টার ব্যবহার করার পরিকল্পনা করছি। আপনি সম্পূর্ণরূপে ছাড়া করতে পারেন।

ধাপ 2: একটি লেজার এবং ক্যামেরা জিগ নির্মাণ

একটি লেজার এবং ক্যামেরা জিগ নির্মাণ
একটি লেজার এবং ক্যামেরা জিগ নির্মাণ
একটি লেজার এবং ক্যামেরা জিগ নির্মাণ
একটি লেজার এবং ক্যামেরা জিগ নির্মাণ
একটি লেজার এবং ক্যামেরা জিগ নির্মাণ
একটি লেজার এবং ক্যামেরা জিগ নির্মাণ

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

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

আমি তৈরির জন্য টিঙ্কারক্যাড ব্যবহার করেছি, আপনি এখানে মডেলটি খুঁজে পেতে পারেন:

লেজার লেন্সের কেন্দ্র এবং ক্যামেরা লেন্সের কেন্দ্রের মধ্যে 3.75 সেমি দূরত্ব রয়েছে।

ধাপ 3: লেজার এবং এলসিডি চালানো

লেজার এবং এলসিডি চালানো
লেজার এবং এলসিডি চালানো
লেজার এবং এলসিডি চালানো
লেজার এবং এলসিডি চালানো

রাস্পবেরি পাই জিরো দিয়ে এলসিডি ডিসপ্লে চালানোর জন্য আমি এই টিউটোরিয়াল https://www.algissalys.com/how-to/nokia-5110-lcd-on-raspberry-pi অনুসরণ করেছি। /Boot/config.txt ফাইলটি সম্পাদনা করার পরিবর্তে আপনি কমান্ড লাইনের মাধ্যমে sudo raspi-config ব্যবহার করে SPI ইন্টারফেস সক্ষম করতে পারেন।

আমি রাস্পবেরি পাই জিরো ব্যবহার করছি হেডলেস মোডে সর্বশেষ, তারিখে, রাস্পবিয়ান স্ট্রেচ ব্যবহার করে। আমি এই নির্দেশনায় ইনস্টলেশনটি কভার করব না কিন্তু আপনি এই নির্দেশিকাটি অনুসরণ করতে পারেন: https://medium.com/@danidudas/install-raspbian-jessie-lite-and-setup-wi-fi-without-access-to- command-line-or-using-the-network-97f065af722e

একটি উজ্জ্বল লেজার বিন্দু পেতে, আমি পাই এর 5V রেল ব্যবহার করছি। তার জন্য, আমি GPIO ব্যবহার করে লেজার চালানোর জন্য একটি ট্রানজিস্টর (2N2222a বা সমতুল্য) ব্যবহার করব। ট্রানজিস্টরের গোড়ায় 220 Ω রোধকারী লেজারের মাধ্যমে পর্যাপ্ত স্রোতের অনুমতি দেয়। আমি Pi GPIO কে কাজে লাগাতে RPi. GPIO ব্যবহার করছি। আমি GPIO22 পিন (15 তম পিন), মাটিতে emitter এবং লেজার ডায়োডের সাথে সংগ্রাহককে ট্রানজিস্টারের বেস সংযুক্ত করেছি।

কমান্ড লাইনের মাধ্যমে sudo raspi-config ব্যবহার করে ক্যামেরা ইন্টারফেস সক্ষম করতে ভুলবেন না।

আপনি আপনার সেটআপ পরীক্ষা করতে এই কোডটি ব্যবহার করতে পারেন:

সবকিছু ঠিকঠাক থাকলে আপনার একটি ডট.জেপিজি ফাইল থাকা উচিত যাতে আপনি পটভূমি এবং একটি লেজার ডট দেখতে পাবেন।

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

এই সময়ে, আপনার হার্ডওয়্যার কনফিগার করা উচিত।

ধাপ 4: OpenCV ব্যবহার করে লেজার সনাক্তকরণ

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

কারণ এটি সহজ এবং দ্রুত, আমি একটি তৃতীয় পক্ষের প্যাকেজ ব্যবহার করেছি। আপনি এই নিবন্ধে ইনস্টলেশন পদক্ষেপগুলি খুঁজে পেতে পারেন: https://yoursunny.com/t/2018/install-OpenCV3-PiZero/ আমি অন্যান্য অনেক উৎস চেষ্টা করেছি কিন্তু তাদের প্যাকেজগুলি আপ টু ডেট ছিল না।

লেজার পয়েন্টার ট্র্যাক করার জন্য, আমি একটি USB ডিভাইসের পরিবর্তে Pi ক্যামেরা মডিউল ব্যবহার করতে https://github.com/bradmontgomery/python-laser-tracker থেকে কোড আপডেট করেছি। আপনার যদি Pi ক্যামেরা মডিউল না থাকে এবং আপনি একটি USB ক্যামেরা ব্যবহার করতে চান তবে আপনি সরাসরি কোডটি ব্যবহার করতে পারেন।

আপনি এখানে সম্পূর্ণ কোডটি খুঁজে পেতে পারেন:

এই কোডটি চালানোর জন্য আপনাকে পাইথন প্যাকেজগুলি ইনস্টল করতে হবে: বালিশ এবং পিকামেরা (sudo pip3 ইনস্টল বালিশ পিকামেরা)।

ধাপ 5: রেঞ্জ ফাইন্ডারের ক্রমাঙ্কন

রেঞ্জ ফাইন্ডারের ক্রমাঙ্কন
রেঞ্জ ফাইন্ডারের ক্রমাঙ্কন
রেঞ্জ ফাইন্ডারের ক্রমাঙ্কন
রেঞ্জ ফাইন্ডারের ক্রমাঙ্কন
রেঞ্জ ফাইন্ডারের ক্রমাঙ্কন
রেঞ্জ ফাইন্ডারের ক্রমাঙ্কন

মূল প্রবন্ধে, লেখক y- স্থানাঙ্কগুলিকে প্রকৃত দূরত্বে রূপান্তর করার জন্য প্রয়োজনীয় পরামিতিগুলি পেতে একটি ক্রমাঙ্কন পদ্ধতি ডিজাইন করেছেন। আমি ক্রমাঙ্কনের জন্য আমার লিভিং রুম টেবিল এবং ক্রাফটের একটি পুরানো টুকরা ব্যবহার করেছি। প্রতি 10 সেন্টিমিটার বা তারপরে আমি একটি স্প্রেডশীটে x এবং y স্থানাঙ্ক লক্ষ্য করেছি: https://docs.google.com/spreadsheets/d/1OTGu09GLAt… সবকিছু সঠিকভাবে কাজ করছে তা নিশ্চিত করার জন্য, প্রতিটি ধাপে, আমি ক্যাপচার করা ছবিগুলি পরীক্ষা করে দেখেছি কিনা লেজারটি সঠিকভাবে ট্র্যাক করা হয়েছিল। আপনি যদি সবুজ লেজার ব্যবহার করেন বা আপনার লেজার সঠিকভাবে ট্র্যাক করা না থাকে, তাহলে আপনাকে সেই অনুযায়ী প্রোগ্রামের হিউ, স্যাচুরেশন এবং ভ্যালু থ্রেশহোল্ড সামঞ্জস্য করতে হবে।

পরিমাপের পর্যায়টি সম্পন্ন হয়ে গেলে, প্রকৃতপক্ষে পরামিতিগুলি গণনা করার সময় এসেছে। লেখকের মতো আমি একটি লিনিয়ার রিগ্রেশন ব্যবহার করেছি; আসলে গুগল স্প্রেডশীট আমার জন্য কাজ করেছে। আমি তখন আনুমানিক দূরত্ব গণনা করতে এবং প্রকৃত দূরত্বের বিরুদ্ধে এটি পরীক্ষা করার জন্য সেই পরামিতিগুলি পুনরায় ব্যবহার করেছি।

দূরত্ব পরিমাপের জন্য রেঞ্জফাইন্ডার প্রোগ্রামে প্যারামিটারগুলি ইনজেকশনের সময় এখন।

ধাপ 6: দূরত্ব পরিমাপ

দূরত্ব পরিমাপ
দূরত্ব পরিমাপ

কোডে: https://gist.github.com/kevinlebrun/e767a46855e5fd501d820e1c5fcc527c আমি ক্রমাঙ্কন পরিমাপ অনুযায়ী HEIGHT, GAIN এবং OFFSET ভেরিয়েবল আপডেট করেছি। আমি দূরত্ব অনুমান করার জন্য মূল নিবন্ধে দূরত্ব সূত্র ব্যবহার করেছি এবং LCD ডিসপ্লে ব্যবহার করে দূরত্ব মুদ্রণ করেছি।

কোডটি প্রথমে ক্যামেরা এবং জিপিআইও সেটআপ করবে, তারপরে আমরা পরিমাপটি আরও ভালভাবে দেখতে এলসিডি ব্যাকলাইটটি আলোকিত করতে চাই। LCD ইনপুট GPIO14 এ প্লাগ করা আছে। প্রতি 5 সেকেন্ড বা তারপরে, আমরা করব:

  1. লেজার ডায়োড সক্ষম করুন
  2. স্মৃতিতে ছবিটি ধারণ করুন
  3. লেজার ডায়োড নিষ্ক্রিয় করুন
  4. HSV পরিসরের ফিল্টার ব্যবহার করে লেজার ট্র্যাক করুন
  5. ডিবাগিং উদ্দেশ্যে ডিস্কে ফলস্বরূপ চিত্রটি লিখুন
  6. y স্থানাঙ্কের উপর ভিত্তি করে দূরত্ব গণনা করুন
  7. এলসিডি ডিসপ্লেতে দূরত্ব লিখুন।

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

আমি ক্যামেরা ঘোরানোর মাধ্যমে রেঞ্জফাইন্ডারের রেজোলিউশন 90º দ্বারা বাড়িয়ে তুলতে পারি এবং ক্যামেরা দ্বারা সর্বাধিক সমর্থিত রেজোলিউশন বাড়িয়ে তুলতে পারি। বর্তমান বাস্তবায়নের সাথে আমরা 0 থেকে 384 পিক্সেলের পরিসরে সীমাবদ্ধ, আমরা উপরের সীমা 1640, বর্তমান রেজোলিউশনের 4 গুণ বাড়িয়ে দিতে পারি। দূরত্ব আরও সুনির্দিষ্ট হবে।

ফলো-আপ হিসাবে, আমি উপরে উল্লিখিত নির্ভুলতা উন্নতিতে কাজ করতে হবে এবং রেঞ্জফাইন্ডারের জন্য একটি ঘের তৈরি করতে হবে। প্রাচীর থেকে প্রাচীর পরিমাপ সহজ করার জন্য ঘেরটি সুনির্দিষ্ট গভীরতার হতে হবে।

সর্বোপরি বর্তমান সিস্টেমটিই আমার জন্য যথেষ্ট এবং আমার বাড়ির পরিকল্পনা করে আমাকে কিছু টাকা বাঁচাবে!

প্রস্তাবিত: