সুচিপত্র:

NAIN 1.0 - Arduino ব্যবহার করে মৌলিক Humanoid রোবট: 6 ধাপ
NAIN 1.0 - Arduino ব্যবহার করে মৌলিক Humanoid রোবট: 6 ধাপ

ভিডিও: NAIN 1.0 - Arduino ব্যবহার করে মৌলিক Humanoid রোবট: 6 ধাপ

ভিডিও: NAIN 1.0 - Arduino ব্যবহার করে মৌলিক Humanoid রোবট: 6 ধাপ
ভিডিও: আরডুইনো মিলিস ফাংশনটি 3 টি উদাহরণ দিয়ে ব্যাখ্যা করা হয়েছে 2024, নভেম্বর
Anonim
NAIN 1.0 - Arduino ব্যবহার করে বেসিক হিউম্যানয়েড রোবট
NAIN 1.0 - Arduino ব্যবহার করে বেসিক হিউম্যানয়েড রোবট

নাইন 1.0 এর মূলত 5 টি বিচ্ছিন্নযোগ্য মডিউল থাকবে-

1) আর্ম - যা সার্ভসের মাধ্যমে নিয়ন্ত্রণ করা যায়।

2) চাকা - যা ডিসি মোটর দিয়ে নিয়ন্ত্রণ করা যায়।

3) পা - নাইন চলাচলের জন্য চাকা বা পায়ের মধ্যে স্যুইচ করতে সক্ষম হবে।

4) মাথা - বিভিন্ন মাথা নেড়ে এর মাথা নিয়ন্ত্রণ করা যায়।

5) ক্যামেরা মডিউল- যা ফেস রিকগনিশন অ্যাক্সেসের জন্য ইন্টারফেস করা যায়।

এই সাথে NAIN ব্যবহারকারীদের সাথে কথা বলতে এবং যোগাযোগ করতে সক্ষম হবে এবং এর অন্তর্নির্মিত ঘড়ি দ্বারা আপনাকে সময় দেখাতে পারে। এতে ওয়াই-ফাই /ব্লুটুথ ব্যবহার করে একটি বেতার নিয়ন্ত্রণ থাকবে।

ধাপ 1: উপাদান প্রয়োজন

উপাদান প্রয়োজন
উপাদান প্রয়োজন
উপাদান প্রয়োজন
উপাদান প্রয়োজন
উপাদান প্রয়োজন
উপাদান প্রয়োজন
  1. সার্ভো মোটর -4
  2. আরডুইনো মেগা - ১
  3. রাস্পবেরি পাই - ১
  4. ইউএসবি ক্যামেরা -1
  5. স্পিকার -1
  6. ডিসি মোটর -২
  7. L293D -1
  8. ব্যাটারি প্যাক - ১
  9. চাকা -২
  10. ক্যাস্টর চাকা - 2

এগুলির সাথে আপনার শরীর এবং সারস এবং বাদামগুলি সঠিকভাবে ফিট করার জন্য অ্যালুমিনিয়াম স্কয়ার স্ট্রিপগুলির প্রয়োজন হবে।

ধাপ 2: শরীরের গঠন

শরীরের গঠন
শরীরের গঠন

শরীরের কাঠামো হালকা ওজনের অ্যালুমিনিয়াম স্কয়ার রড দিয়ে তৈরি হবে যা এটিকে সহজেই একত্রিত করতে সাহায্য করবে।

এখন পর্যন্ত ছবিতে দেখানো হিসাবে তাদের একত্রিত করুন এবং বাহুতে সংযুক্ত মোটর মোটরগুলির জন্য সঠিক স্থানগুলিও কেটে ফেলুন।

নীচে একটি ষড়ভুজাকার কাঠের বেস সংযুক্ত করুন।

কাঠের গোড়ার নীচে, ডিসি মোটর এবং চাকা সংযুক্ত করুন যেমনটি আমরা যে কোনও লাইন অনুসারী রোবটে করি।

মজার বিষয় হল, দুটি ক্যাস্টর চাকা যোগ করুন- একটি সামনের দিকে এবং অন্যটি রোবটের পিছনে।

ধাপ 3: ওয়্যারিং এবং কোডিং

ওয়্যারিং এবং কোডিং
ওয়্যারিং এবং কোডিং
ওয়্যারিং এবং কোডিং
ওয়্যারিং এবং কোডিং

বিভিন্ন মডিউলগুলিকে ওয়্যার আপ করতে এই অংশে সংযুক্ত কোডগুলি পড়ুন।

প্রথমে আমরা স্বতন্ত্র কোড ব্যবহার করে প্রতিটি মডিউল পরীক্ষা করেছিলাম এবং তারপরে আমরা সেগুলিকে একত্রিত করেছিলাম এবং একটি ব্লুটুথ মডিউল ব্যবহার করে চাকা এবং অস্ত্রের চলাচল নিয়ন্ত্রণ করেছি।

ধাপ 4: রাস্পবেরি পাই এবং চিত্র স্বীকৃতি

রাস্পবেরি পাই এবং চিত্র স্বীকৃতি
রাস্পবেরি পাই এবং চিত্র স্বীকৃতি
রাস্পবেরি পাই এবং চিত্র স্বীকৃতি
রাস্পবেরি পাই এবং চিত্র স্বীকৃতি

একটি ইউএসবি ক্যামেরা এবং রাস্পবেরি পাই ব্যবহার করে চিত্র শনাক্তকরণ করা হয়।

এর জন্য, আপনাকে আপনার পাইতে ওপেন সিভি লাইব্রেরি ইনস্টল করতে হবে।

আপনি এখান থেকে এটি করতে পারেন-https://github.com/jabelone/OpenCV-for-Pi

তারপরে আপনাকে হার ক্যাসকেড ব্যবহার করে চিত্র স্বীকৃতি করতে হবে।

আপনি এখান থেকে এটি করতে পারেন -https://thecodacus.com/category/opencv/#. WvsNC4iFPDc

উপরের লিঙ্কটি অধ্যয়ন করার পরে এবং এটি অনুসরণ করার পরে, আমি চূড়ান্ত কোডে কিছু পরিবর্তন করেছি যা আমি ব্যবহার করেছি যা আমি নীচে পেস্ট করছি -

ডেটাসেট জেনারেটর:

importcv2

ক্যাম = সিভি ২. ভিডিওক্যাপচার (0)

ডিটেক্টর = cv2।

আমি = 0

অফসেট = 50

নাম = raw_input ('আপনার আইডি লিখুন')

যখন সত্য:

ret, im = cam.read ()

ধূসর = cv2.cvtColor (im, cv2. COLOR_BGR2GRAY)

মুখ = ডিটেক্টর।

মুখে (x, y, w, h) জন্য:

i = i+1

cv2.imwrite ("dataSet/face।"+name+'।'+str (i)+".jpg", ধূসর [y-offset: y+h+offset, x-offset: x+w+offset])

cv2.rectangle (im, (x-50, y-50), (x+w+50, y+h+50), (225, 0, 0), 2)

cv2.imshow ('im', im [y-offset: y+h+offset, x-offset: x+w+offset])

যদি cv2.waitKey (100) এবং 0xFF == ord ('q'):

বিরতি

# নমুনা সংখ্যা 20 এর বেশি হলে বিরতি দিন

এলিফ (i> 20):

বিরতি

ক্যাম রিলিজ ()

cv2.destroyAllWindows ()

এটি আপনার ছবির একটি ডেটসেট তৈরি করবে যা প্রমাণীকরণের জন্য ব্যবহার করা হবে।

প্রশিক্ষক:

importcv2, ওএস

np হিসাবে numpy আমদানি করুন

পিআইএল আমদানি ছবি থেকে

সনাক্তকারী = cv2.face.createLBPHFaceRecognizer ()

cascadePath = "Classifiers/face.xml"

faceCascade = cv2. CascadeClassifier (cascadePath);

পথ = 'ডেটা সেট'

def get_images_and_labels (পাথ):

image_paths = [os.path.join (path, f) for f in os.listdir (path)]

# ছবিতে মুখের ছবি থাকবে

ছবি =

# লেবেলে ইমেজের জন্য নির্ধারিত লেবেল থাকবে

লেবেল =

image_path এর জন্য image_path:

# ছবিটি পড়ুন এবং গ্রেস্কেলে রূপান্তর করুন

image_pil = Image.open (image_path).convert ('L')

# ইমেজ ফরম্যাটকে অসম্পূর্ণ অ্যারে রূপান্তর করুন

চিত্র = np.array (image_pil, 'uint8')

# ছবির লেবেল পান

nbr = int (os.path.split (image_path) [-1].split ("।") [1].replace ("face-", ""))

#nbr = int ( । nbr এ c এর জন্য join (str (ord (c))))

nbr প্রিন্ট করুন

# ছবিতে মুখ সনাক্ত করুন

face = faceCascade.detectMultiScale (ছবি)

# যদি মুখ সনাক্ত করা হয়, তাহলে ছবিগুলিকে মুখ এবং লেবেলে লেবেল যুক্ত করুন

মুখে (x, y, w, h) জন্য:

images.append (ছবি [y: y + h, x: x + w])

labels.append (nbr)

cv2.imshow ("ট্র্যানিং সেটে মুখ যোগ করা …", ছবি [y: y + h, x: x + w])

cv2.waitKey (10)

# ছবির তালিকা এবং লেবেল তালিকা ফিরিয়ে দিন

ছবি, লেবেল ফেরত দিন

ছবি, লেবেল = get_images_and_labels (পাথ)

cv2.imshow ('পরীক্ষা', ছবি [0])

cv2.waitKey (1)

identizer.train (ছবি, np.array (লেবেল))

identizer.save ('trainer/trainer.yml')

cv2.destroyAllWindows ()

ডিটেক্টর

importcv2

np হিসাবে numpy আমদানি করুন

আমদানি ওএস

c = 0

সনাক্তকারী = cv2.face.createLBPHFaceRecognizer ()

identizer.load ('trainer/trainer.yml')

cascadePath = "Classifiers/face.xml"

faceCascade = cv2. CascadeClassifier (cascadePath);

ক্যাম = সিভি ২. ভিডিওক্যাপচার (0)

fontface = cv2. FONT_HERSHEY_SIMPLEX

ফন্টস্কেল = ১

fontcolor = (255, 255, 255)

যখন সত্য:

ret, im = cam.read ()

ধূসর = cv2.cvtColor (im, cv2. COLOR_BGR2GRAY)

মুখ = faceCascade.detectMultiScale (ধূসর, 1.2, 5)

মুখে (x, y, w, h) জন্য:

cv2.rectangle (im, (x-50, y-50), (x+w+50, y+h+50), (225, 0, 0), 2)

আইডি = শনাক্তকারী পূর্বাভাস (ধূসর [y: y+h, x: x+w])

যদি (আইডি <70):

যদি (আইডি == 1):

আইডি = "শশাঙ্ক"

এলিফ (আইডি == 2):

যদি (c == 0):

আইডি = "শিবম"

c = c+1

os.system ("espeak 'Welcome Shivam Access Granted" ")

অন্য:

আইডি = "শিবম"

অন্য:

আইডি = "অজানা"

cv2.putText (im, str (Id), (x, y+h), fontface, fontscale, fontcolor)

cv2.imshow ('im', im)

যদি cv2.waitKey (10) এবং 0xFF == ord ('q'):

বিরতি

ক্যাম রিলিজ ()

cv2.destroyAllWindows ()

ধাপ 5: এলসিডি এবং স্পিকার

আমি একটি I2C LED ডিসপ্লে এবং একটি স্পিকার ব্যবহার করেছি।

LED টি Arduino Mega এর মাধ্যমে নিয়ন্ত্রিত হয় এবং এর কোড চূড়ান্ত কোডে দেওয়া হয়।

স্পিকারের জন্য, এটি রাস্পবেরি পাই এর সাথে সংযুক্ত এবং ইস্পেক ইউটিলিটি ব্যবহার করে।

আপনি এখানে তার রেফারেন্স খুঁজে পেতে পারেন-https://www.dexterindustries.com/howto/make-your-raspberry-pi-speak/

ধাপ 6: চূড়ান্ত পদক্ষেপ।

সবকিছু একত্রিত করুন এবং ঠুং ঠুং শব্দ জন্য প্রস্তুত হন।

প্রস্তাবিত: