תוכן עניינים:
- שלב 1: דרושים רכיבים
- שלב 2: מבנה הגוף
- שלב 3: חיווט וקידוד
- שלב 4: פטל פטל וזיהוי תמונות
- שלב 5: LCD ורמקול
- שלב 6: השלבים האחרונים
וִידֵאוֹ: NAIN 1.0 - הרובוט הבסיסי של הומנואידים באמצעות Arduino: 6 שלבים
2024 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2024-01-30 09:12
ל- Nain 1.0 יהיו בעצם 5 מודולים ניתנים להסרה-
1) זרוע - הניתנת לשליטה באמצעות סרוו.
2) גלגלים - הניתנים לשליטה באמצעות מנועי DC.
3) רגל - ניין יוכל לעבור בין גלגלים או רגליים לתנועה.
4) ראש - ניתן לשלוט בראשו להנהנות שונות.
5) מודול מצלמה- הניתן לממשק לגישה לזיהוי פנים.
יחד עם זה NAIN יוכל לדבר ולתקשר עם משתמשים ויוכל להראות לך את השעה לפי השעון המובנה שלו. תהיה לו שליטה אלחוטית באמצעות Wi-Fi /Bluetooth.
שלב 1: דרושים רכיבים
- סרוו מוטורס -4
- ארדואינו מגה - 1
- פטל פטל - 1
- מצלמת USB -1
- רמקול -1
- מנועי DC -2
- L293D -1
- מארז סוללות - 1
- גלגלים -2
- גלגלי קיקור - 2
יחד עם אלה תצטרך רצועות מרובעות מאלומיניום כדי ליצור את הגוף ואת הברגים והאומים כדי שיתאימו להם כראוי.
שלב 2: מבנה הגוף
מבנה הגוף יהיה עשוי מוטות מרובעים מאלומיניום קלים שיסייעו בהרכבתו בקלות.
נכון לעכשיו הרכיב אותם כפי שמוצג באיור וכן גזור רווחים מתאימים למנועי הסרוו שיוצמדו לזרועות.
צרף תחתית בסיס עץ משושה.
מתחת לבסיס העץ, חבר את מנועי וגלגלי DC כפי שאנו עושים בכל רובוט עוקב קו.
מעניין להוסיף שני גלגלי קיק- אחד מלפנים ושני בחלק האחורי של הרובוט.
שלב 3: חיווט וקידוד
כדי לחבר את המודולים השונים עיין בקודים המצורפים בחלק זה.
ראשית בדקנו כל מודול באמצעות קודים עצמאיים ולאחר מכן שילבנו את כולם באחד ושלטנו בתנועת הגלגלים והזרועות באמצעות מודול בלוטות '.
שלב 4: פטל פטל וזיהוי תמונות
זיהוי תמונות מתבצע באמצעות מצלמת USB ו- Raspberry Pi.
לשם כך יהיה עליך להתקין את ספריית קורות החיים OPEN ב- Pi שלך.
תוכל לעשות זאת מכאן-https://github.com/jabelone/OpenCV-for-Pi
לאחר מכן תצטרך לבצע זיהוי תמונה באמצעות שלה cascade.
תוכל לעשות זאת מכאן -https://thecodacus.com/category/opencv/#. WvsNC4iFPDc
לאחר עיון בקישור לעיל ובעקבותיו, ביצעתי כמה שינויים בקוד הסופי בו השתמשתי שהדבקתי למטה -
מחולל הנתונים:
importcv2
cam = cv2. VideoCapture (0)
גלאי = cv2. CascadeClassifier ('Classifiers/face.xml')
i = 0
קיזוז = 50
name = raw_input ('הזן את המזהה שלך')
בעוד שזה נכון:
ret, im = cam.read ()
אפור = cv2.cvtColor (im, cv2. COLOR_BGR2GRAY)
פנים = גלאי.detectMultiScale (אפור, scaleFactor = 1.2, minNeighbors = 5, minSize = (100, 100), דגלים = cv2. CASCADE_SCALE_IMAGE)
עבור (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. מלבן (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
elif (i> 20):
לשבור
cam.release ()
cv2.destroyAllWindows ()
הוא ייצור מערך נתונים של התמונות שלך שישמשו לאימות.
מאמן:
importcv2, os
ייבא numpy כמו np
מתמונת ייבוא PIL
מזהה = cv2.face.createLBPHFaceRecognizer ()
cascadePath = "מסווגים/face.xml"
faceCascade = cv2. CascadeClassifier (cascadePath);
path = 'dataSet'
def get_images_and_labels (נתיב):
image_paths = [os.path.join (נתיב, f) עבור f ב- os.listdir (נתיב)]
# תמונות יכילו תמונות פנים
תמונות =
תוויות # יכילו את התווית שהוקצתה לתמונה
תוויות =
עבור image_path ב- image_paths:
# קרא את התמונה והמיר לגווני אפור
image_pil = Image.open (image_path).convert ('L')
# המר את פורמט התמונה למערך numpy
image = np.array (image_pil, 'uint8')
# קבל את התווית של התמונה
nbr = int (os.path.split (image_path) [-1].split (".") [1].replace ("פנים-", ""))
#nbr = int (''. join (str (ord (c)) עבור c ב- nbr))
הדפס nbr
# זיהוי הפנים בתמונה
פנים = 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)
מזהה.טראן (תמונות, מערך np.array (תוויות))
מזהה.סבר ('trainer/trainer.yml')
cv2.destroyAllWindows ()
גַלַאִי
importcv2
ייבא numpy כמו np
ייבוא מערכת הפעלה
c = 0
מזהה = cv2.face.createLBPHFaceRecognizer ()
מזהה.load ('trainer/trainer.yml')
cascadePath = "מסווגים/face.xml"
faceCascade = cv2. CascadeClassifier (cascadePath);
cam = cv2. VideoCapture (0)
fontface = cv2. FONT_HERSHEY_SIMPLEX
fontscale = 1
fontcolor = (255, 255, 255)
בעוד שזה נכון:
ret, im = cam.read ()
אפור = cv2.cvtColor (im, cv2. COLOR_BGR2GRAY)
פנים = faceCascade.detectMultiScale (אפור, 1.2, 5)
עבור (x, y, w, h) בפנים:
cv2. מלבן (im, (x-50, y-50), (x+w+50, y+h+50), (225, 0, 0), 2)
Id = identifier.predict (אפור [y: y+h, x: x+w])
אם (מזהה <70):
אם (Id == 1):
Id = "Shashank"
elif (Id == 2):
אם (c == 0):
Id = "Shivam"
c = c+1
os.system ("דוגמת 'ברוכים הבאים ל- Shivam Access Granted'")
אַחֵר:
Id = "Shivam"
אַחֵר:
מזהה = "לא ידוע"
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 ורמקול
השתמשתי גם בתצוגת LED I2C ורמקול.
הנורית נשלטת באמצעות Arduino Mega והקוד שלה מופיע בקוד הסופי.
עבור רמקול, הוא מחובר ל- Raspberry Pi ומשתמש ב- eSpeak Utility.
אתה יכול למצוא את ההפניה שלו כאן-https://www.dexterindustries.com/howto/make-your-raspberry-pi-speak/
שלב 6: השלבים האחרונים
הרכיבו הכל והתכוננו למפץ.
מוּמלָץ:
עשה זאת בעצמך -- כיצד להכין רובוט עכביש שניתן לשלוט בו באמצעות סמארטפון באמצעות Arduino Uno: 6 שלבים
עשה זאת בעצמך || איך להכין רובוט עכביש שאפשר לשלוט בו באמצעות סמארטפון באמצעות Arduino Uno: בזמן ייצור רובוט עכביש אפשר ללמוד כל כך הרבה דברים על רובוטיקה. כמו לייצר רובוטים זה גם מבדר וגם מאתגר. בסרטון זה אנו הולכים להראות לכם כיצד לייצר רובוט עכביש, אותו נוכל להפעיל באמצעות הסמארטפון שלנו (Androi
מצמד LED: כנראה החלק הבסיסי ביותר של ציוד בדיקה שתוכל לבצע: 3 שלבים
מצמיד LED: כנראה החלק הבסיסי ביותר של ציוד בדיקה שתוכלו להכין: הרשו לי להציג בפניכם את ה- Snapper LED. ציוד בדיקה פשוט אך שימושי ביותר שתוכל לבנות כדי לעזור לך לאתר באגים בפרויקטים האלקטרוניים שלך. LED Snapper הוא לוח מעגלים מודפסים בקוד פתוח המאפשר לך להוסיף בקלות
שלט אלחוטי באמצעות מודול NRF24L01 2.4Ghz עם Arduino - Nrf24l01 מקלט משדר 4 ערוצים / 6 ערוצים עבור Quadcopter - מסוק RC - מטוס RC באמצעות Arduino: 5 שלבים (עם תמונות)
שלט אלחוטי באמצעות מודול NRF24L01 2.4Ghz עם Arduino | Nrf24l01 מקלט משדר 4 ערוצים / 6 ערוצים עבור Quadcopter | מסוק RC | מטוס RC באמצעות Arduino: להפעלת מכונית RC | Quadcopter | מזל"ט | מטוס RC | סירת RC, אנחנו תמיד צריכים מקלט ומשדר, נניח שבשביל RC QUADCOPTER אנחנו צריכים משדר ומקלט של 6 ערוצים והסוג הזה של TX ו- RX יקר מדי, אז אנחנו הולכים להכין אחד מהם
שלוט בארדואינו באמצעות סמארטפון באמצעות USB באמצעות אפליקציית Blynk: 7 שלבים (עם תמונות)
שליטה בארדואינו באמצעות סמארטפון באמצעות USB באמצעות אפליקציית Blynk: במדריך זה נלמד כיצד להשתמש באפליקציית Blynk ובארדואינו על מנת לשלוט במנורה, השילוב יהיה באמצעות יציאה טורית USB. מטרת ההוראה היא להראות את הפתרון הפשוט ביותר לשלוט מרחוק בארדואינו או ב
כיצד להכין BOE-Bot פרלקס בעזרת שבב הבולים הבסיסי: 7 שלבים
כיצד להכין BOE-Bot Parallax באמצעות שבב הבולים הבסיסי: מדריך זה מציג את הבנייה והשינוי של רובוט החותמת הבסיסי של BOE-Bot Parallax