جدول المحتويات:
- الخطوة 1: المكونات المطلوبة
- الخطوة 2: بنية الجسم
- الخطوة 3: الأسلاك والترميز
- الخطوة 4: Raspberry Pi والتعرف على الصور
- الخطوة 5: شاشة LCD ومكبر الصوت
- الخطوة السادسة: الخطوات النهائية
فيديو: NAIN 1.0 - الإنسان الآلي الأساسي باستخدام Arduino: 6 خطوات
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:36
سوف يحتوي Nain 1.0 بشكل أساسي على 5 وحدات قابلة للفصل-
1) الذراع - والتي يمكن التحكم فيها عن طريق الماكينات.
2) العجلات - التي يمكن التحكم فيها بمحركات التيار المستمر.
3) الساق - سيتمكن Nain من التبديل بين العجلات أو الأرجل للحركة.
4) الرأس - يمكن التحكم في رأسه لإيماءات مختلفة.
5) وحدة الكاميرا - التي يمكن ربطها للوصول إلى التعرف على الوجوه.
إلى جانب هذا ، سيكون NAIN قادرًا على التحدث والتفاعل مع المستخدمين ويمكنه إظهار الوقت لك من خلال ساعته المدمجة. سيكون لها تحكم لاسلكي باستخدام Wi-fi / Bluetooth.
الخطوة 1: المكونات المطلوبة
- محركات مؤازرة -4
- اردوينو ميجا - 1
- Raspberry Pi - 1
- كاميرا USB -1
- المتحدث -1
- DC موتورز -2
- L293D -1
- حزمة البطارية - 1
- عجلات -2
- عجلات الخروع - 2
بالإضافة إلى ذلك ، ستحتاج إلى شرائط مربعة من الألومنيوم لصنع الجسم والأشكال والصواميل لتناسبها بشكل صحيح.
الخطوة 2: بنية الجسم
يتكون هيكل الجسم من قضبان مربعة من الألومنيوم خفيفة الوزن تساعد في تجميعه بسهولة.
اعتبارًا من الآن قم بتجميعهم كما هو موضح في الشكل وقم أيضًا بقطع المساحات المناسبة لمحركات المؤازرة ليتم تثبيتها في الذراعين.
إرفاق قاعدة خشبية سداسية في الجزء السفلي.
أسفل القاعدة الخشبية ، قم بإرفاق محركات وعجلات DC كما نفعل في أي روبوت تابع للخطوط.
ومن المثير للاهتمام ، إضافة عجلتين من العجلات - واحدة في الأمام والأخرى في الجزء الخلفي من الروبوت.
الخطوة 3: الأسلاك والترميز
لتوصيل الوحدات المختلفة ، راجع الرموز المرفقة في هذا الجزء.
أولاً ، اختبرنا كل وحدة باستخدام أكواد قائمة بذاتها ثم قمنا بدمجها جميعًا في واحدة وتحكمنا في حركة العجلات والأذرع باستخدام وحدة بلوتوث.
الخطوة 4: Raspberry Pi والتعرف على الصور
يتم التعرف على الصور باستخدام كاميرا USB و Raspberry Pi.
لذلك ، ستحتاج إلى تثبيت مكتبة OPEN CV على Pi الخاص بك.
يمكنك القيام بذلك من هنا -
ثم سوف تحتاج إلى إجراء التعرف على الصور باستخدام haar cascade.
يمكنك القيام بذلك من هنا -
بعد دراسة الرابط أعلاه وبعد ذلك ، أجريت بعض التغييرات في الكود النهائي الذي استخدمته وألصقه أدناه -
مولد مجموعة البيانات:
استيراد
cam = cv2. VideoCapture (0)
detector = cv2. CascadeClassifier ('المصنفات / face.xml')
أنا = 0
الإزاحة = 50
name = raw_input ('أدخل معرفك')
احيانا صحيح:
ret، im = cam.read ()
الرمادي = cv2.cvtColor (im ، cv2. COLOR_BGR2GRAY)
الوجوه = detector.detectMultiScale (رمادي ، scaleFactor = 1.2 ، min الجيران = 5 ، minSize = (100 ، 100) ، الأعلام = cv2. CASCADE_SCALE_IMAGE)
لـ (س ، ص ، ث ، ح) في الوجوه:
أنا = أنا + 1
cv2.imwrite ("dataSet / face." + name + '.' + str (i) + ".jpg" ، رمادي [y-offset: y + h + offset ، x-offset: x + w + offset])
مستطيل cv2. (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
إليف (أنا> 20):
استراحة
cam.release ()
cv2.destroyAllWindows ()
سيتم إنشاء مجموعة بيانات من صورك التي سيتم استخدامها للمصادقة.
مدرب:
importcv2 ، نظام التشغيل
استيراد numpy كـ np
من استيراد صورة PIL
أداة التعرف = cv2.face.createLBPHFaceRecognizer ()
cascadePath = "مصنفات / face.xml"
faceCascade = cv2. CascadeClassifier (cascadePath) ؛
المسار = "مجموعة البيانات"
def get_images_and_labels (المسار):
image_paths = [os.path.join (مسار ، و) لـ f في os.listdir (مسار)]
ستحتوي # صورة على صور للوجه
الصور =
# ستحتوي على التسمية التي تم تعيينها للصورة
تسميات =
لـ image_path في image_paths:
# اقرأ الصورة وتحويلها إلى تدرج الرمادي
image_pil = Image.open (image_path). تحويل ('L')
# تحويل تنسيق الصورة إلى مصفوفة numpy
image = np.array (image_pil، 'uint8')
# احصل على ملصق الصورة
nbr = int (os.path.split (image_path) [- 1].split (".") [1].replace ("face-"، ""))
# nbr = int (''. انضم (str (ord (c)) لـ c في nbr))
طباعة nbr
# كشف الوجه في الصورة
الوجوه = faceCascade.detectMultiScale (صورة)
# إذا تم اكتشاف الوجه ، فقم بإلحاق الوجه بالصور والتسمية بالملصقات
لـ (س ، ص ، ث ، ح) في الوجوه:
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 ('test'، images [0])
cv2.waitKey (1)
أداة التعرف. القطار (الصور ، np.array (التسميات))
Recognizer.save ("trainer / trainer.yml")
cv2.destroyAllWindows ()
كاشف
استيراد
استيراد numpy كـ np
استيراد نظام التشغيل
ج = 0
أداة التعرف = cv2.face.createLBPHFaceRecognizer ()
Recognizer.load ("trainer / trainer.yml")
cascadePath = "مصنفات / face.xml"
faceCascade = cv2. CascadeClassifier (cascadePath) ؛
cam = cv2. VideoCapture (0)
fontface = cv2. FONT_HERSHEY_SIMPLEX
fontscale = 1
لون الخط = (255 ، 255 ، 255)
احيانا صحيح:
ret، im = cam.read ()
الرمادي = cv2.cvtColor (im ، cv2. COLOR_BGR2GRAY)
الوجوه = faceCascade.detectMultiScale (رمادي ، 1.2 ، 5)
لـ (س ، ص ، ث ، ح) في الوجوه:
مستطيل cv2. (im ، (x-50 ، y-50) ، (x + w + 50 ، y + h + 50) ، (225 ، 0 ، 0) ، 2)
المعرّف = Recognizer.predict (رمادي [y: y + h، x: x + w])
إذا (معرف <70):
إذا (المعرف == 1):
المعرف = "شاشانك"
إليف (المعرف == 2):
إذا (ج == 0):
المعرف = "شيفام"
ج = ج + 1
os.system ("تم منح وصول Shivam الترحيبي من espeak '")
آخر:
المعرف = "شيفام"
آخر:
المعرف = "غير معروف"
cv2.putText (im، str (Id)، (x، y + h)، fontface، fontscale، fontcolor)
cv2.imshow ('im'، im)
إذا كان cv2.waitKey (10) & 0xFF == ord ('q'):
استراحة
cam.release ()
cv2.destroyAllWindows ()
الخطوة 5: شاشة LCD ومكبر الصوت
لقد استخدمت أيضًا شاشة I2C LED ومكبر صوت.
يتم التحكم في مؤشر LED عبر Arduino Mega ويرد الرمز الخاص به في الكود النهائي.
بالنسبة لمكبر الصوت ، فهو متصل بـ Raspberry Pi ويستخدم eSpeak Utility.
يمكنك العثور على مرجعها هنا -
الخطوة السادسة: الخطوات النهائية
اجمع كل شيء واستعد للانفجار.
موصى به:
روبوت التواجد عن بعد: النظام الأساسي الأساسي (الجزء الأول): 23 خطوة (بالصور)
روبوت التواجد عن بعد: النظام الأساسي الأساسي (الجزء 1): روبوت التواجد عن بعد هو نوع من الروبوتات التي يمكن التحكم فيها عن بعد عبر الإنترنت ويعمل كبديل لشخص في مكان آخر. على سبيل المثال ، إذا كنت في نيويورك ، ولكنك تريد التفاعل جسديًا مع فريق من الأشخاص في كاليفورنيا
الهاتف المحمول الأساسي باستخدام STM32F407 Discovery Kit ووحدة GSM A6: 14 خطوة (بالصور)
الهاتف المحمول الأساسي باستخدام STM32F407 Discovery Kit ووحدة GSM A6: هل أردت يومًا إنشاء مشروع مدمج رائع ؟. إذا كانت الإجابة بنعم ، فماذا عن بناء واحدة من أكثر الأدوات شعبية والمفضلة لدى الجميع ، مثل الهاتف المحمول !!!. في هذا Instructable ، سأوجهك حول كيفية بناء هاتف محمول أساسي باستخدام STM
آلة التخطيط باستخدام الحاسب الآلي من Arduino (ماكينة الرسم): 10 خطوات (بالصور)
Arduino CNC Plotter (آلة الرسم): مرحبًا يا رفاق! آمل أن تكون قد استمتعت بالفعل بالتعليمات السابقة & quot؛ كيف تصنع منصة تدريب Arduino الخاصة بك & quot؛ وأنت مستعد لواحد جديد ، كالعادة قمت بعمل هذا البرنامج التعليمي لإرشادك خطوة بخطوة بينما أجعل هذا النوع رائعًا للغاية
روبوت التجنب الآلي باستخدام Arduino: 7 خطوات
روبوت التجنب الآلي باستخدام Arduino: في هذا البرنامج التعليمي ، سأوضح لك كيفية صنع عقبة خاصة بك في تجنب الروبوت! سنستخدم لوحة Arduino UNO وجهاز استشعار بالموجات فوق الصوتية. إذا اكتشف الروبوت شيئًا أمامه ، بمساعدة محرك سيرفو صغير ، فإنه يمسح المنطقة المتبقية
ماكينة الصراف الآلي باستخدام Arduino (بصمة الإصبع + بطاقة RFID): 4 خطوات (بالصور)
ماكينة الصراف الآلي باستخدام Arduino (بصمة الإصبع + بطاقة RFID): مرحبًا يا أصدقاء ، أعود بفكرة جديدة لماكينة الصراف الآلي باستخدام Arduino ، يمكن أن تكون مفيدة في المناطق الريفية حيث الخدمات غير النقدية غير ممكنة ، إنها فكرة صغيرة ، أتمنى لقد استمتعت به ، فلنبدأ