מעניין ולא מסובך הרובוטשנע מאחורי חפץ בצבע מסוים.
כדי לקבוע את מיקום האובייקט, משתמשים במצלמת סמארטפון, המותקנת על שלדת הרובוט. אתה יכול להשתמש בבנאי מוכן, עליו כתבתי כבר כאן. להלן רשימה של מה שהמחבר היה צריך. למעט הסמארטפון, עלות הרובוט הזה הייתה 60 דולר
- ארדואינו אונו
- סמארטפון עם מערכת הפעלה אנדרואיד
- שלדת רובוט
- כבלים לחיבור
- גשר H למנועי DC (המחבר משמש פולולו TB6612FNG)
בתמונה ניתן לראות כיצד TB6612FNG ו Arduino Uno מתחברים
מסקנות הנהג ועל מה הם אחראים:
1) GND - חבר אותו לסיכות ה- GND שעל הארדואינו
2) VCC - מתח אספקה של היגיון הנהג. חבר אותו לסיכת ה -5 V על הארדואינו.
3) A01 - מגע פלט, המחובר למסוף החיובי של מנוע A.
4) A02 - מגע פלט, המחובר לקוטב השלילי של המנוע A
5) B02 - מגע פלט, המחובר לקוטב השלילי של מנוע B.
6) B01 - קשר פלט המחובר למסוף החיובי של מנוע B
7) VMOT- מתח יציאה של המנועים. חבר אותו לקוטב החיובי של הסוללה. (להפעלת המנועים)
8) GND- חבר אותו למסוף השלילי של הסוללה.
9) GND- חבר אותו לסיכת ה- GND שעל הארדואינו.
10) סיכת PWMB- PWM של דרייבר המנוע להתאמת מהירות המנוע B. חבר אותו לכל אחד מהסיכות PWM שב- Arduino וציין ערך מהירות עבור המנוע בין 0-255.
11 ו -12) ו- BIN2 BIN1 - מגעי כניסה של דרייבר המנוע עבור המנוע B, הקובעים את כיוון הסיבוב של המנוע B. חבר אותו לשני סיכות דיגיטליות של Arduino.
13) STBY- חבר אותו לכל פלט דיגיטלי. כאשר הוא מותקן ברמה גבוהה, הוא כולל דרייבר
14 ו -15) AIN1 ו- AIN2- סיכות כניסה של נהג המנוע עבור המנוע, המציינים את כיוון הסיבוב של המנוע A. חבר אותו לשני סיכות דיגיטליות של Arduino.
16) פלט PWMA-PWM של דרייבר המנוע לכוונון מהירות המנוע A. חבר אותו לכל אחד מהסיכות PWM שבארווינו וקבע את ערך המהירות של המנוע בין 0-255.
מודול Bluetooth HC-06
Aliexpress עולה בערך $ 6
איך הכל עובד?
פרויקט זה משתמש בסמארטפון אנדרואיד עם אפליקציה מיוחדת המעבדת מידע מהמצלמה כדי לקבוע היכן נמצא האובייקט האדום, מחשב את הקואורדינטות שלו ושולח נתונים באמצעות Bluetooth לארדואינו.היישום משתמש בספריית openCV לצורך עיבוד תמונה. זוהי ספריית אלגוריתמים לראיית מחשב, עיבוד תמונה בקוד פתוח. אתה יכול לקרוא על זה או. להלן קטע קוד עבור יישום זה המבצע חישובים אלה. להלן קטע מקוד היישום אנדרואיד המבצע חישובים אלה
bitmap = Bitmap.createBitmap (mRgba.cols (), mRgba.rows (), Bitmap.Config.ARGB_8888); Utils.matToBitmap (mRgba, מפת סיביות);
int x = 0;
int y = 0;
int all_x = 0;
int all_y = 0;
בעוד (x <176) {
בעוד (y <144) {
int pixel = bitmap.getPixel (x, y);
int redValue = Color.red (פיקסל);
int blueValue = Color.blue (פיקסל);
int greenValue = Color.green (פיקסל);
אם (redValue> 200 & & BlueValue <70 && greenValue <70) {
נקודות ++;
all_x = all_x + x;
all_y = all_y + y;
}
y ++;
}
x ++;
y = 0;
}
y = 0;
x = 0;
x_center = all_x / נקודות;
y_center = all_y / נקודות;
בארכיון, דיאגרמת החיבור וה- PCB לרובוט, למי שלא רוצה לקנות ארדואינו UNO
מה דרוש להרכבה:
- כל האמור לעיל, אטמגה 8, 128 או 328
- לד, לא משנה באיזה צבע
- מייצב ליניארי 5v (לגרסה ללא Arduino)
- מחברי סיכה M ו- F
- PCB חרוט ונקדח (לגרסה ללא Arduino)
- מקדחה, ברזל הלחמה.
- ארדואינו אונו. למי שאינו יודע אילו מסקנות דרושים ארדואינו אונו, בתיאור הקובץ המצורף.
תוכנית לארדואינו
התוכנית לארדואינו מאוד פשוטה. קוד הארכיון של תוכנית זו.
תוכנית לטלפון
בארכיון זה, תוכנית הטלפון מותקנת, כמו אפליקציה רגילה, ואת קוד המקור של תוכנית זו, ייבא אותה לאולפן אנדרואיד, אסוף את קובץ ה- apk והתקן אותו בסמארטפון שלך.
תוכנית זו משתמשת ב- Bluetooth רק כדי לשלוח נתונים. ניתן למצוא את תיאור הספרייה (openCV) באינטרנט. הכותב הכין לוח מעגלים מודפס עבור אטמגה 328. זכור זאת אם לא תשתמש בקרשייה אלא יפיץ את החותם שלך: