সুচিপত্র:
- ধাপ 1: ভূমিকা
- পদক্ষেপ 2: উপকরণ এবং সফ্টওয়্যার প্রয়োজন
- ধাপ 3: রোভার চ্যাসি নির্মাণ
- ধাপ 4: অতিস্বনক রেঞ্জফাইন্ডার সমাবেশ নির্মাণ
- ধাপ 5: স্কিম্যাটিক্স এবং বৈদ্যুতিক সংযোগ
- ধাপ 6: SSH এবং সিভি ইনস্টলেশন খুলুন
- ধাপ 7: রোভারের জন্য পাইথন কোড চালানো
ভিডিও: রাস্পবেরি পাই - ওপেনসিভি অবজেক্ট ট্র্যাকিং সহ স্বায়ত্তশাসিত মার্স রোভার: 7 টি ধাপ (ছবি সহ)
2024 লেখক: John Day | [email protected]. সর্বশেষ পরিবর্তিত: 2024-01-30 07:58
একটি রাস্পবেরি পাই 3, ওপেন সিভি অবজেক্ট রিকগনিশন, অতিস্বনক সেন্সর এবং গিয়ার্ড ডিসি মোটর দ্বারা চালিত। এই রোভার ট্রেনিং করা যেকোনো বস্তুকে ট্র্যাক করতে পারে এবং যে কোনো ভূখণ্ডে চলে যেতে পারে।
ধাপ 1: ভূমিকা
এই নির্দেশাবলীতে, আমরা একটি স্বায়ত্তশাসিত মার্স রোভার তৈরি করতে যাচ্ছি যা একটি ওয়েবক্যাম ডিভাইস বা আসল রাস্পবেরি পাই ক্যামেরা ব্যবহার করার বিকল্প সহ রাস্পবেরি পাই 3 তে চলমান ওপেন সিভি সফ্টওয়্যার ব্যবহার করে বস্তুগুলিকে সনাক্ত করতে এবং তাদের ট্র্যাক করতে পারে। এটি একটি অতিস্বনক সেন্সর দিয়ে সজ্জিত যা একটি সারভোতে লাগানো হয় যাতে অন্ধকার পরিবেশে ক্যামেরা কাজ না করে। পাই থেকে প্রাপ্ত সিগন্যালগুলি মোটর ড্রাইভার IC (L293D) এর কাছে পাঠানো হয় যা পিভিসি পাইপ দিয়ে তৈরি শরীরে লাগানো 4 x 150RPM DC মোটর চালায়।
পদক্ষেপ 2: উপকরণ এবং সফ্টওয়্যার প্রয়োজন
প্রয়োজনীয় সামগ্রী
- রাস্পবেরি পাই (শূন্য ছাড়া যে কোন)
- রাস্পবেরি পিআই ক্যামেরা বা একটি ওয়েবক্যাম
- L293D মোটর ড্রাইভার IC
- রোবট হুইল (7x4cm) X 4
- গিয়ার্ড ডিসি মোটরস (150 আরপিএম) এক্স 4
- চেসিসের জন্য পিভিসি পাইপ
সফটওয়্যার প্রয়োজন
- এসএসএইচ পাই এর জন্য পুটি
- বস্তুর স্বীকৃতির জন্য সিভি খুলুন
ধাপ 3: রোভার চ্যাসি নির্মাণ
এই পিভিসি চ্যাসি তৈরি করতে আপনার প্রয়োজন হবে
- 2 এক্স 8"
- 2 এক্স 4"
- 4 টি-জয়েন্ট
কাঠামোর মতো একটি সিঁড়িতে পিভিসি পাইপ সাজান এবং টি-জয়েন্টগুলোতে োকান। জয়েন্টগুলোকে আরও শক্তিশালী করতে আপনি পিভিসি সিল্যান্ট ব্যবহার করতে পারেন।
গিয়ারড ডিসি মোটরগুলি পিভিসি পাইপ চ্যাসির সাথে ক্ল্যাম্প ব্যবহার করে সংযুক্ত করা হয় এবং তারপরে স্ক্রু ব্যবহার করে মোটরগুলির সাথে চাকা সংযুক্ত থাকে।
ধাপ 4: অতিস্বনক রেঞ্জফাইন্ডার সমাবেশ নির্মাণ
অতিস্বনক পরিসীমা সন্ধানকারী সমাবেশ একটি মাইক্রো সার্ভো মোটরের সাথে সংযুক্ত একটি HC-SR04 অতিস্বনক সেন্সর ব্যবহার করে নির্মিত হয়। প্লাস্টিকের ক্ষেত্রে beforeোকানোর আগে তারগুলি অতিস্বনক সেন্সরের সাথে সংযুক্ত থাকে যা স্ক্রুগুলির মাধ্যমে সার্ভো মোটরের সাথে সংযুক্ত থাকে।
ধাপ 5: স্কিম্যাটিক্স এবং বৈদ্যুতিক সংযোগ
দয়া করে সংযুক্ত সার্কিট ডায়াগ্রাম অনুযায়ী বৈদ্যুতিক সংযোগগুলি তৈরি করুন।
ধাপ 6: SSH এবং সিভি ইনস্টলেশন খুলুন
এখন, প্রয়োজনীয় সফ্টওয়্যার ইনস্টল করার জন্য আমাদের রাস্পবেরি পাইতে SSH করতে হবে। আমরা SSHing দ্বারা আমাদের রাস্পবেরি পাইতে শুরু করব। নিশ্চিত করুন যে আপনার পাই আপনার পিসির সাথে একই রাউটারের সাথে সংযুক্ত এবং আপনি জানেন যে এটি আপনার রাউটার দ্বারা নির্ধারিত আইপি ঠিকানা। এখন, যদি আপনি উইন্ডোজে থাকেন এবং একটি কমান্ড প্রম্পট বা PUTTY খুলুন এবং নিম্নলিখিত কমান্ডটি চালান।
আপনার Pi এর IP ভিন্ন হতে পারে, আমার হল 192.168.1.6।
এখন, আপনার ডিফল্ট পাসওয়ার্ড লিখুন - "রাস্পবেরি"
এখন, যে আপনি আপনার পাইতে SSH'd করেছেন, আসুন এই কমান্ড দিয়ে আপডেট করে শুরু করি।
sudo apt-get update && sudo apt-get upgrade
আসুন এখন প্রয়োজনীয় ডেভেলপার সরঞ্জামগুলি ইনস্টল করি, sudo apt-get build-essential cmake pkg-config
পরবর্তী, আমাদের কিছু ইমেজ I/O প্যাকেজ ইনস্টল করতে হবে যা আমাদের Pi কে ডিস্ক থেকে বিভিন্ন ইমেজ ফরম্যাট আনতে সাহায্য করবে।
sudo apt-get libjpeg-dev libtiff5-dev libjasper-dev libpng12-dev ইনস্টল করুন
এখন, ভিডিও আনার জন্য কিছু প্যাকেজ, লাইভ স্ট্রিমিং এবং ওপেনসিভি পারফরম্যান্স অপ্টিমাইজ করা
sudo apt-get libavcodec-dev libavformat-dev libswscale-dev libv4l-dev ইনস্টল করুন
sudo apt-get libxvidcore-dev libx264-dev ইনস্টল করুন
sudo apt-get libgtk2.0-dev libgtk-3-dev ইনস্টল করুন
sudo apt-get libatlas-base-dev gfortran ইনস্টল করুন
আমাদের পাইথন 2.7 এবং পাইথন 3 হেডার ফাইলগুলিও ইনস্টল করতে হবে যাতে আমরা পাইথন বাইন্ডিংয়ের সাথে ওপেনসিভি কম্পাইল করতে পারি
sudo apt-get python2.7-dev python3-dev ইনস্টল করুন
OpenCV সোর্স কোড ডাউনলোড করা হচ্ছে
সিডি
wget -O opencv.zip
opencv.zip আনজিপ করুন
Opencv_contrib সংগ্রহস্থল ডাউনলোড করা হচ্ছে
wget -O opencv_contrib.zip
opencv_contrib.zip আনজিপ করুন
ওপেনসিভি ইনস্টল করার জন্য ভার্চুয়াল পরিবেশ ব্যবহার করারও সুপারিশ করা হয়।
sudo pip virtualenv virtualenvwrapper ইনস্টল করুন
sudo rm -rf ~/.cache/pip
এখন, যে virtualenv এবং virtualenvwrapper ইনস্টল করা হয়েছে, আমাদের নীচের লাইনগুলি অন্তর্ভুক্ত করার জন্য আমাদের ~/.profile আপডেট করতে হবে
WORKON_HOME = $ HOME/.virtualenvs রপ্তানি
আপনার পাইথন ভার্চুয়াল পরিবেশ তৈরি করুন
mkvirtualenv cv -p python2
তৈরি ভার্চুয়াল পরিবেশে স্যুইচ করুন
উৎস ~/। প্রোফাইল
ওয়ার্কন সিভি
NumPy ইনস্টল করা হচ্ছে
pip ইনস্টল numpy
OpenCV কম্পাইল এবং ইনস্টল করুন
cd ~/opencv-3.3.0/
mkdir নির্মাণ
সিডি বিল্ড
cmake -D CMAKE_BUILD_TYPE = RELEASE / -D CMAKE_INSTALL_PREFIX =/usr/local / -D INSTALL_PYTHON_EXAMPLES = ON / -D OPENCV_EXTRA_MODULES_PATH =//cBULE_PUT =//c rib
অবশেষে OpenCV কম্পাইল করুন
make -j4
এই কমান্ডটি চলার পরে। আপনাকে যা করতে হবে তা হল এটি ইনস্টল করা।
sudo make config
sudo ldconfig
ধাপ 7: রোভারের জন্য পাইথন কোড চালানো
Tracker.py নামে একটি পাইথন ফাইল তৈরি করুন এবং এতে নিচের কোডটি যোগ করুন।
sudo ন্যানো tracker.py
কোড:-
#আসার প্রোগ্রাম
#এই প্রোগ্রামটি একটি লাল বল ট্র্যাক করে এবং একটি রাস্পবেরি পাইকে এটি অনুসরণ করার নির্দেশ দেয়। sys.path.append আমদানি করুন (7, IO. OUT) IO.setup (15, IO. OUT) IO.setup (13, IO. OUT) IO.setup (21, IO. OUT) IO.setup (22, IO. OUT) def fwd (): IO.output (21, 1)#বাম মোটর ফরওয়ার্ড IO.output (22, 0) IO.output (13, 1) #Right Motor Forward IO.output (15, 0) def bac (): IO.output (21, 0)#বাম মোটর ব্যাকওয়ার্ড আইও আউটপুট (22, 1) আইও আউটপুট (13, 0)#ডান মোটর ব্যাকওয়ার্ড আইও আউটপুট (15, 1) ডিফ রাইট (): আইও আউটপুট (21, 0) #বাম মোটর পিছনে আইও আউটপুট (22, 1) আইও আউটপুট (13, 1)#ডান মোটর ফরওয়ার্ড আইও আউটপুট (15, 0) ডিফ এলএফটি (): আইও আউটপুট (21, 1)#বাম মোটর ফরওয়ার্ড আইও.output (22, 0) IO.output (13, 0)#রাইট মোটর ব্যাকওয়ার্ড IO.output (15, 1) def stp (): IO.output (21, 0)#বাম মোটর স্টপ IO.output (22, 0) IO.output (13, 0)#রাইট মোটর স্টপ IO.output (15, 0) ########################### ############################################ ####################### def main (): capWebcam = cv2। ভিডিওক্যাপচার বস্তু এবং ওয়েবক্যামের সাথে যুক্ত, 0 => 1 ম ওয়েবক্যাম ব্যবহার করুন # মূল রেজোলিউশন প্রিন্ট দেখান "ডিফল্ট রেজোলিউশন =" + str (capWebcam.get (cv2. CAP_PROP_FRAME_WIDTH)) + "x" + str (capWebcam.get (cv2. CAP_PROP_FRAME_HEIGHT) capWebcam.set (cv2. CAP_PROP_FRAME_WIDTH, 320.0) # দ্রুত প্রসেসিং capWebcam.set (cv2. CAP_PROP_FRAME_HEIGHT, 240.0) # 320x240 রেজোলিউশন পরিবর্তন করুন) + "x" + str (capWebcam.get (cv2. CAP_PROP_FRAME_HEIGHT)) যদি capWebcam.isOpened () == মিথ্যা: # চেক করুন ভিডিওক্যাপচার বস্তুটি ওয়েবক্যামের সাথে সফলভাবে প্রিন্ট করা হয়েছে কিনা "ত্রুটি: capWebcam সফলভাবে অ্যাক্সেস করা যায়নি / n / n" # যদি না হয়, স্টার আউট os.system ("বিরতি") এ ত্রুটি বার্তা মুদ্রণ করুন # বিরতি দিন যতক্ষণ না ব্যবহারকারী একটি কী টিপেন যাতে ব্যবহারকারী ত্রুটি বার্তা রিটার্ন # এবং প্রস্থান ফাংশন দেখতে পারেন (যা প্রোগ্রাম থেকে বেরিয়ে আসে) # শেষ হলে cv2.waitKey (1 !! 27 ully, imgOriginal = capWebcam.read () # পরের ফ্রেম পড়ুন যদি blnFrameReadSuccessfully বা imgOriginal না হয়: # যদি ফ্রেম সফলভাবে না পড়ে প্রিন্ট করা হয় "ত্রুটি: ওয়েবক্যাম থেকে ফ্রেম পড়া হয়নি / n" # প্রিন্ট ত্রুটি বার্তা এসটিডি আউট os.system এ ("বিরতি") # বিরতি দিন যতক্ষণ না ব্যবহারকারী একটি কী টিপেন যাতে ব্যবহারকারী ত্রুটি বার্তা বিরতি দেখতে পারেন # লুপের সময় প্রস্থান করুন (যা প্রোগ্রাম থেকে প্রস্থান করে) # শেষ হলে imgHSV = cv2.cvtColor (imgOriginal, cv2. COLOR_BGR2HSV) imgThreshLow = cv2.inRange (imgHSV, np.array ([0, 135, 135]), np.array ([18, 255, 255])) imgThreshHigh = cv2.inRange (imgHSV, np.array ([165, 135, 135]), np অ্যারে ([179, 255, 255])) imgThresh = cv2.add (imgThreshLow, imgThreshHigh) imgThresh = cv2. GaussianBlur (imgThresh, (3, 3), 2) imgThresh = cv2.dilate (imgThresh, ng 5, 5), np.uint8)) imgThresh = cv2.erode (imgThresh, np.ones ((5, 5), np.uint8)) intRows, intColumns = imgThresh.shape circle = cv2। HOUGH_GRADIENT, 5, intRows / 4) # প্রক্রিয়াকৃত চিত্রের সমস্ত চেনাশোনাগুলির সাথে পরিবর্তনশীল বৃত্তগুলি পূরণ করুন যদি চেনাশোনাগুলি কোনটি নয়: # এই লাইনটি পরবর্তী লাইনে প্রোগ্রামটি ক্র্যাশ করা থেকে বিরত রাখতে প্রয়োজন যদি কোন বৃত্ত পাওয়া না যায় IO.output (7, 1) বৃত্তের বৃত্তের জন্য [0]: # প্রতিটি বৃত্তের জন্য x, y, ব্যাসার্ধ = বৃত্ত # x, y, and radius print "ball position x =" + str (x) + ", y =" + str (y) + ", ব্যাসার্ধ =" + str (ব্যাসার্ধ) # প্রিন্ট বলের অবস্থান এবং ব্যাসার্ধ obRadius = int (ব্যাসার্ধ) xAxis = int (x) যদি obRadius> 0 & obRadius100 & xAxis180: মুদ্রণ ("ডানদিকে সরানো") ryt () elif xAxis <100: print ("সরানো বাম") lft () else: stp () else: stp () cv2.circle (imgOriginal, (x, y), 3, (0, 255, 0), -1) # সনাক্তকৃত বস্তুর কেন্দ্রে ছোট সবুজ বৃত্ত আঁকুন cv2.circle (imgOriginal, (x, y), ব্যাসার্ধ, (0, 0, 255), 3) # সনাক্তকৃত বস্তুর চারপাশে লাল বৃত্ত আঁকুন # অন্যথায় # শেষ হলে: IO.output (7, 0) cv2.namedWindow ("imgOriginal", cv2. WINDOW_AUTOSIZE) # উইন্ডোজ তৈরি করুন, একটি নির্দিষ্ট উইন্ডো সাইজের জন্য WINDOW_AUTOSIZE ব্যবহার করুন। ginal)#উইন্ডোজ দেখান cv2.imshow ("imgThresh", imgThresh)#end যখন cv2.destroyAllWindows ()#মেমরি রিটার্ন থেকে উইন্ডোজ সরান #################### ############################################ ##############################
এখন, যা করার বাকি আছে তা হল প্রোগ্রামটি চালানো
পাইথন tracker.py
অভিনন্দন! আপনার স্ব-ড্রাইভিং রোভার প্রস্তুত! অতিস্বনক সেন্সর ভিত্তিক নেভিগেশন অংশ শীঘ্রই সম্পন্ন করা হবে এবং আমি এই নির্দেশনা আপডেট করব।
পড়ার জন্য ধন্যবাদ!
প্রস্তাবিত:
মাইক্রো: বিট এমইউ ভিশন সেন্সর - অবজেক্ট ট্র্যাকিং: 7 টি ধাপ
মাইক্রো: বিট এমইউ ভিশন সেন্সর - অবজেক্ট ট্র্যাকিং: সুতরাং এই নির্দেশে আমরা এই নির্দেশনায় আমরা যে স্মার্ট কারটি তৈরি করি তার প্রোগ্রামিং শুরু করতে যাচ্ছি এবং আমরা এই নির্দেশনায় একটি এমইউ ভিশন সেন্সর ইনস্টল করেছি। আমরা মাইক্রো প্রোগ্রাম করতে যাচ্ছি: কিছু সহজ বস্তু ট্র্যাকিং সঙ্গে বিট, তাই th
রাস্পবেরি পাই ব্যবহার করে মার্স রোভার: 5 টি ধাপ
রাস্পবেরি পাই ব্যবহার করে মার্স রোভার: প্রিয় সব গ্রেট লার্নার, আমি সবসময় মার্স রোভার সম্পর্কে জানতে আগ্রহী, 6 টি চাকা আছে যা মঙ্গলের সমস্ত পৃষ্ঠে যেতে পারে এবং পৃথিবী থেকে জিনিসগুলি অন্বেষণ করতে পারে। আমি আমার ল্যাপটপে বসে জিনিসটি অন্বেষণ করতে চাই। তাই এখন আমি এটা বানানোর সঠিক সময় বলেছি এবং
রাস্পবেরি পাই 3 এ রাস্পবিয়ান বাস্টার ইনস্টল করা রাস্পবেরি পাই 3 বি / 3 বি+: 4 ধাপ সহ রাস্পবিয়ান বাস্টার দিয়ে শুরু করা
রাস্পবেরি পাই 3 তে রাস্পবিয়ান বাস্টার ইনস্টল করা রাস্পবেরি পাই 3b / 3b+দিয়ে রাস্পবিয়ান বাস্টার দিয়ে শুরু করা: হাই বন্ধুরা, সম্প্রতি রাস্পবেরি পাই সংস্থা রাস্পবিয়ান বাস্টার নামে নতুন রাস্পবিয়ান ওএস চালু করেছে। এটি রাস্পবেরি পাই এর জন্য রাস্পবিয়ানের একটি নতুন সংস্করণ। তাই আজ এই নির্দেশাবলীতে আমরা শিখব কিভাবে আপনার রাস্পবেরি পাই 3 এ রাস্পবিয়ান বাস্টার ওএস ইনস্টল করতে হয়
HDMI ছাড়া রাস্পবেরি পাই 3 বি তে রাস্পবিয়ান ইনস্টল করা - রাস্পবেরি পাই 3B দিয়ে শুরু করা - আপনার রাস্পবেরি পাই 3: 6 ধাপ সেট আপ করা হচ্ছে
HDMI ছাড়া রাস্পবেরি পাই 3 বি তে রাস্পবিয়ান ইনস্টল করা | রাস্পবেরি পাই 3B দিয়ে শুরু করা | আপনার রাস্পবেরি পাই 3 সেট আপ করা: আপনারা কেউ কেউ জানেন যে রাস্পবেরি পাই কম্পিউটারগুলি বেশ দুর্দান্ত এবং আপনি কেবলমাত্র একটি ছোট বোর্ডে পুরো কম্পিউটারটি পেতে পারেন। 1.2 GHz এ ঘড়ি। এটি পাই 3 কে মোটামুটি 50 রাখে
ওয়েবক্যাম সহ কলা/রাস্পবেরি পাই + আরডুইনো রোভার: 9 টি ধাপ
ওয়েবক্যাম সহ কলা/রাস্পবেরি পাই + আরডুইনো রোভার: আমার অবসর সময়ে করা একটি প্রকল্প। এটি একটি পূর্ণ-ড্রাইভ 4 চাকা রোবট যা একটি ওয়েব ইন্টারফেসের মাধ্যমে নিয়ন্ত্রিত হয়। যদি আপনার কোন মন্তব্য বা প্রশ্ন থাকে তবে অনুগ্রহ করে আমার সাথে যোগাযোগ করুন। এই প্রকল্পটি নিজেই 3D মুদ্রিত অংশ এবং কোডের কিছু টুকরা ব্যবহার করে