- חומרים נדרשים:
- הדפסת תלת מימד של החלקים הנדרשים (אופציונלי):
- סכמטי וחומרה:
- הגדרת יישום Android שלך:
- תכנות את Arduino שלך:
- עובד:
רצית פעם לבנות זרוע רובוטית או מעקב פנים באמצעות רובוט פשוט באמצעות ארדואינו ולא בשום תכנות אחר כמו OpenCV, יסודות חזותיים C # וכו '? ואז קרא, בפרויקט זה אנו הולכים ליישם זיהוי פנים על ידי מיזוג הכוח של Arduino ו- Android. בפרויקט זה המצלמה הניידת תנוע יחד עם הפנים שלך בעזרת סרוו. היתרון בשימוש בטלפון הנייד אנדרואיד כאן הוא שאתה לא צריך להשקיע במודול מצלמה ואת כל עבודות זיהוי התמונה ניתן לעשות בטלפון עצמו, אתה לא צריך את Arduino המחובר למחשב שלך כדי שזה יעבוד. כאן השתמשנו במודול Bluetooth עם Arduino כדי לתקשר עם נייד באופן אלחוטי.
אפליקציית Android המשמשת בפרויקט זה נוצרה באמצעות עיבוד אנדרואיד, באפשרותך להתקין את היישום ישירות על ידי הורדת קובץ ה- APK (קרא עוד לקישור) או לשים את מכסה התכנות שלך ולהפוך את אפליקציית Android שלך למושכת יותר באמצעות קוד העיבוד שניתן בהמשך ההדרכה. למידע נוסף על עיבוד עיין בפרויקטים העיבודיים הקודמים שלנו.
בסוף הדרכה זו יהיה לך זרוע רובוטית מיני הטיה וספאן שיכולה לעקוב אחר הפנים שלך ולעבור איתם. אתה יכול להשתמש בזה (עם התקדמות נוספת) כדי להקליט את קטעי הווילוג שלך או אפילו לצלם סלפי עם המצלמה האחורית של הטלפון הנייד שלך מכיוון שהוא ממקם את הפנים שלך בדיוק במרכז המסך הנייד שלך. כך!! נשמע מעניין? בדוק את סרטון ההדגמה בסוף הדרכה זו כדי לראות שהוא עובד. בואו נראה איך נוכל לבנות אחת…
ניסיתי כמיטב יכולתי לגרום לפרויקט זה לעבוד כמה שיותר פשוט, כל מי שיש לו ידע מינימלי בנושאי חומרה או קידוד יכול להשתמש בהנחיות אלה כדי לגרום לפרויקט זה לעבוד תוך זמן קצר. עם זאת ברגע שתצליח אני מציע לך לעמוד מאחורי הקודים כדי שתוכל באמת לדעת מה גורם לדבר הזה לעבוד ואיך.
חומרים נדרשים:
- ארדואינו ננו
- מנוע סרוו SG90 - 2Nos
- טלפון אנדרואיד עם מצלמה הגונה
- מודול Bluetooth HC-05 / HC-06
- מחשב לתכנות
- מדפסת תלת מימד (אופציונלי)
- סוללה 9V
הדפסת תלת מימד של החלקים הנדרשים (אופציונלי):
על מנת לזוז ולהטות את הטלפון הנייד שלנו אנו זקוקים לכמה מבנים מכניים כמו מחזיק נייד וכמה סוגרי סרוו. אתה יכול להשתמש בקרטון כדי ליצור כזה, מכיוון שיש לי מדפסת תלת מימד החלטתי להדפיס את החלקים האלה בתלת ממד.
הדפסת תלת מימד היא כלי מדהים שיכול לתרום רבות בבניית פרויקטים של אב טיפוס או התנסות בעיצובים מכניים חדשים. אם עדיין לא גיליתם את היתרונות של מדפסת תלת מימד או איך היא עובדת, תוכלו לקרוא את המדריך למתחילים להדפסת תלת מימד.
אם בבעלותך או יש לך גישה למדפסת תלת מימד, תוכל להשתמש בקבצי ה- STL שניתן להוריד מכאן כדי להדפיס ולהרכיב אותם ישירות. עם זאת, כמה חלקים כמו מחזיק הטלפון הנייד עשויים להזדקק לשינויים מסוימים בהתבסס על מידות הטלפון שלך. תכננתי אותו לטלפון הנייד MOTO G שלי. השתמשתי במדפסת בסיסית מאוד שלי להדפסת כל החלקים. המדפסת היא FABX v1 מבית 3ding אשר במחיר משתלם עם נפח הדפסה של 10 ס"מ מעוקב. המחיר הזול מגיע עם תמורה עם רזולוציית הדפסה נמוכה וללא כרטיס SD או פונקצית חידוש הדפסה. אני משתמש בתוכנה בשם Cura כדי להדפיס את קבצי ה- STL. ההגדרות בהן השתמשתי להדפסת החומרים ניתנות להלן, אתה יכול להשתמש בהן או לשנות אותן בהתבסס על המדפסת שלך.
לאחר שתדפיס את כל החומרים הנדרשים תוכלו לאבטח אותם במיקומם באמצעות ברגים ודבק חם. לאחר השלמת ההרכבה זה אמור להיראות כך למטה.
סכמטי וחומרה:
המעגל לפרויקט זה של מעקב פנים בטלפון חכם מוצג בתמונה למטה:
המעגל מורכב משני מנועי סרוו, מתוכם אחד משמש להזיז את הטלפון הנייד שמאלה / ימינה והשני משמש להטיית הטלפון הנייד למעלה / למטה. את הכיוון שאליו צריך סרוו לנוע יורה ארדואינו ננו שבעצמו מקבל מידע ממודול ה- Bluetooth (HC-05). כל המעגל מופעל על ידי סוללה 9V.
ניתן לחבר את המעגל הזה בקלות על קרש הלחם שלך, או שאתה יכול גם להלחין את זה על לוח Perf קטן כמו שעשיתי כאן.
הגדרת יישום Android שלך:
כפי שאמרתי קודם המוח העיקרי שעובד מאחורי הפרויקט הזה הוא יישום אנדרואיד זה. יישום אנדרואיד זה פותח באמצעות עיבוד אנדרואיד. באפשרותך להתקין יישום זה ישירות בטלפון הנייד שלך ולהפעיל אותו על ידי ביצוע השלבים הבאים.
- הורד מכאן את קובץ ה- APK.
- הפעל את המעגל המוצג לעיל.
- בהגדרות הטלפון שלך חפש מודול Bluetooth בשם "HC-05"
- אם שמנת אותו למשהו אחר שאינו "HC-05" החלף אותו חזרה ל- HC-05 מכיוון שרק אז היישום יעבוד.
- התאם עם מודול ה- Bluetooth שלך עם הסיסמה "1234" או "0000".
- כעת, הפעל את היישום במצב דיוקן. אתה אמור לראות את מסך המצלמה שלך וגם את "מחובר ל: HC-05" בחלק העליון של המסך.
- נסה להעביר את המצלמה שלך על פני פנים ותיבה ירוקה אמורה להופיע מעלה ומיקומה יוצג גם בפינה השמאלית העליונה של המסך שלך, כפי שמוצג למטה.
אתה יכול לקחת את פרויקט מעקב הפנים הזה של Arduino לשלב הבא על ידי הבאת הרבה קידומים שעבורם לא תצטרך לקודד את יישום Android שלך. יצירת יישום אנדרואיד אולי נשמעת קשה אבל תאמין לי בעזרת עיבוד אתה יכול ללמוד את זה תוך זמן קצר. את קוד העיבוד השלם המשמש לבניית יישום זה ניתן להוריד כאן. אתה חופשי לעשות כל התקדמות עם היצירתיות שלך. בדוק את הפרויקטים הבאים כדי ללמוד עוד על עיבוד:
- מציאות מדומה באמצעות ארדואינו ועיבוד
- משחק פינג פונג באמצעות ארדואינו
- רדיו FM מבוקר בטלפון חכם באמצעות עיבוד.
- מערכת מכ"ם Arduino באמצעות חיישן עיבוד וקולי
תכנות את Arduino שלך:
יישום האנדרואיד יזהה את הפנים ואת מיקומם על המסך; לאחר מכן הוא יחליט לאיזה כיוון הוא צריך לנוע בהתבסס על מיקום הפנים כך שהפנים יגיעו למרכז המסך. כיוון זה נשלח לארדואינו באמצעות מודול Bluetooth.
תוכנית הארדואינו לפרויקט זה היא פשוטה למדי, עלינו רק לשלוט בכיוון של שני מנועי הסרוו על סמך הערכים המתקבלים ממודול ה- Bluetooth. את הקוד השלם ניתן למצוא בסוף הדרכה זו, הסברתי להלן כמה שורות חשובות.
מתחת לשורת הקוד יוצר חיבור טורי עם פינים D12 כ- RX ו- D11 כ- TX. מכאן שעל הפין D12 להיות מחובר ל- TX של מודול BT וסיכה D11 ל- RX של מודול BT.
SoftwareSerial cam_BT (12, 11); // RX, TX
לאחר מכן אותנו את מודול ה- Bluetooth בקצב שידור של 9600. וודא כי המודול עובד גם על אותו קצב שידור. אחרת שנה את זה בהתאם.
cam_BT.begin (9600); // התחל את תקשורת ה- Bluetooth ב 9600 baudrate cam_BT.println ("מוכן לקבל פקודות");
בשורה למטה נכתב מה נכנס דרך מודול ה- Bluetooth. כמו כן הנתונים נשמרים במשתנה "BluetoothData".
אם (cam_BT.available ()) // קרא מה נכנס דרך Bluetooth {BluetoothData = cam_BT.read (); Serial.print ("נכנס מ- BT:"); Serial.println (BluetoothData); }
על סמך הנתונים שהתקבלו מ- Bluetooth כיוון המנועים נשלט. לסיבוב מנוע שמאלה המנוע מצטמצם בערך 2 ממצבו הקודם. אתה יכול להגדיל את הערך הזה ל- 4 או 6 אם אתה זקוק לזרוע כדי לנוע מהר יותר. אבל, זה עלול ליצור כמה מטומטמים שהופכים את המצלמה לא יציבה.
אם (BluetoothData == 49) // פנה שמאלה {pos1 + = 2; servo1.write (pos1);} if (BluetoothData == 50) // פנה ימינה {pos1- = 2; servo1.write (pos1);} if (BluetoothData == 51) // Turn Up {pos2- = 2; servo2.write (pos2);} if (BluetoothData == 52) // סובב למטה {pos2 + = 2; servo2.write (pos2);}
עובד:
ברגע שאנחנו מוכנים עם החומרה, הקוד ואפליקציית Android שלנו הגיע הזמן לפעולה כלשהי. כל שעליך לעשות הוא להפעיל את Arduino שלך ולפתוח את יישום האנדרואיד. היישום יתחבר אוטומטית למודול ה- Bluetooth HC-05 (חייב להיקרא HC-05) וימתין לזיהוי פנים. כל שעליך לעשות הוא למקם את הטלפון במחזיק הנייד שלנו ולהתיישב לפניו. עליך לשים לב למנועי הסרוו שלך שמניעים את הטלפון שלך כך שפנים שלך ימוקמו במרכז המסך. כעת הסתובב בטווח המצלמה והטלפון הנייד שלך יעקוב אחר תנועותיך. אתה יכול גם לנסות את זה על ידי הצבה והעברה של כל תמונה.
העבודה המלאה של הפרויקט מוצגת בסרטון להלן. אתה יכול לבנות הרבה