תוכן עניינים:

המכשול הרגשי להימנעות מרובוט: 11 שלבים
המכשול הרגשי להימנעות מרובוט: 11 שלבים

וִידֵאוֹ: המכשול הרגשי להימנעות מרובוט: 11 שלבים

וִידֵאוֹ: המכשול הרגשי להימנעות מרובוט: 11 שלבים
וִידֵאוֹ: סרטון מדהים ומרגש עם מסר חזק במיוחד 2024, יולי
Anonim
המכשול האמוציונלי להימנעות מרובוט
המכשול האמוציונלי להימנעות מרובוט

הרובוט הרגשי. רובוט זה מציג רגשות בעזרת ניאופיקסלים (RGB LEDs) כגון עצב, אושר, כעס ופחד, הוא יכול גם להימנע ממכשולים ולעשות תנועות מסוימות במהלך הרגש המסוים שלו. המוח של הרובוט הזה הוא מגה ארדואינו. זכור שזה הרובוט המתוכנת הראשון שלי שבניתי אי פעם, וגרם לי להתאהב בתכנות, הקוד עצמו הוא מאוד מתחיל וקרוב לוודאי שניתן לפשט אותו.

שלב 1: חלקים

חלקים
חלקים

-3.2 רגל של רצועת ניאופיקסל

חיישן אולטרסאונד HC-SR04 (או כל חיישן קולי אחר)

-מתג הטייה

-3 סוללת ליתיום יון 3.7V (18650)

-ממיר בוסט (מוסבר בשלב כוח)

-נגד צילום (כל ערך)

חיישן קול אנאלוג

מנועים -2 dc 6v

-l293d (נהג מנוע)

-יריעה מפלסטיק

-קַרטוֹן

-גלגל גלגלית

שלב 2: Neopixels

Neopixels
Neopixels
Neopixels
Neopixels

בגלל התקציב הדל שלי הדרך הפשוטה והזולה ביותר לגרום לתחושות הרובוטים שלי להתעורר לחיים הן ניאופיקסלים, כל מה שיש להם הוא 3 תשומות ויציאות. שלוש הסיכות בכניסה מסומנות 5v, DIN (נתונים ב) ו- GND (קרקע); הפלט מסומן כקלט אך במקום נתונים ב- DO שלו (data out). הדרך שבה אתה מחבר את הלד הזה היא לחבר אותם במקביל אחד לשני, כך ש- 5v מתחבר ל- 5v על הלד השני ו- GND מחובר ל- GND הלד השני, DO של הלד הראשון מחובר ל- DIN של הלד השני ואז תהליך זה נמשך עד שפגע באורך רצועת הלד הרצוי. רצועה שלמה של neopixels דורשת רק סיכת פלט דיגיטלית אחת מהכניסה, זאת מכיוון ש- DO ו- DIN מחוברים בשרשרת ארוכה, כך שכולם חולקים נתונים זה עם זה. זה הכרחי מכיוון שעלינו להפעיל ולכבות נוריות ספציפיות בזמנים ספציפיים. מדריך מועיל בנושא הוא NEOPIXEL HELP

שלב 3: סכמטי

הסכימטי
הסכימטי

המעגל פשוט מאוד מכיוון שרוב הרובוט פשוט מתוכנת, המנועים פועלים קרוב ל -7 וולט עם נהג מנוע l293d על מנת לשלוט במנועים כדי ללכת קדימה אחורה. החיבורים האחרים הם החיישנים לארדואינו. וזה הכל!

שלב 4: הקוד

הדבר הראשון שעשיתי היה להוריד את הספריות הנדרשות כדי להקל על הקידוד, הספריות בהן השתמשתי הן "FastLED.h" ו- "NewPing.h". המנחה המהירה ביותר מיועדת לעמידות והפינג החדשה מיועדת לחיישנים אולטראסוניים. הדבר הבא שעשיתי היה להכין את כל ההגדרות לסיכות בהן השתמשתי, לאחר שהגדרתי את הריק, כאן הגדרתי את מצבי הסיכה ואת רצועת הניאו "FastLED.addLeds (leds, NUM_LEDS);" הגדרתי את NUM_LEDS כ- 56, מכיוון שהשתמשתי ב -56 נוריות, התצורות של הנורות יוסברו בשלב הפנים. לאחר מכן יצרתי חבורה של פונקציות עבור הרובוט שלי כדי לנוע קדימה ואחורה ויש לי גם את הרגש המסוים שלו, אחרי זה אני מגיע ללולאת הריק, כאן אני קורא לכל הפונקציות שלי ברצף מסוים שאני רוצה, למשל, אם הייתי רוצה שהרובוט שלי יחייך אז הייתי מעלה חיוך ();. אם הייתי רוצה שמד מסוים יופעל הייתי שם, leds [45] = CRGB:: ירוק;, זה יגדיר את הוביל 45 להיות ירוק. כשאני שם את הצבע לשחור, זה פשוט אומר כבוי. עכשיו זכור שזוהי אחת התוכניות הראשונות שלי כך שברור שהיא לא מושלמת, אך היא עדיין עבדה.

הקוד

שלב 5: הפנים

הפנים
הפנים

לפנים השתמשתי ב 56 נוריות שזה כמעט רצועת ניאופיקסל מלאה בגובה 3.2 רגל. חתכתי את הרצועה ל -7 רצועות של 8 נוריות, השתמשתי ב -3 הרצועות הראשונות לעיניים וב -4 האחרונות לפה. חיברתי את הרצועות בצורה של חיבור מסוג נחש, תוכל להבין טוב יותר עם התרשים בתקווה. כשסיימתי את הפנים הנחתי דף פלסטיק דק (בעובי 2 מ מ בערך) על רצועות הלד.

שלב 6: פונקציה מאושרת

פונקציה מאושרת
פונקציה מאושרת

פונקציה זו היא הקלה מכולן מכיוון שהיא אינה משתמשת בחיישנים, במקום זאת ברגע שאתה מפעיל את הבוט, הוא מחייך אליך באופן מיידי. אבל זה לא רק מחייך; כשהיא מחייכת, היא גם מונעת מכשול. מצב הימנעות ממכשולים מיוצג בקוד שלי כפונקציה מסתובבת. מכשול הימנעות ממצב או שיטוט פועל באמצעות שני חיישנים אולטראסוניים בצד הרובוטים, כאשר החיישן מגיע 30 ס מ לכל דבר שהוא היה מגבה או הולך ימינה או שמאלה בהתאם לחיישן הקרוב ביותר לאובייקט.

שלב 7: פונקציה עצובה

פונקציה עצובה
פונקציה עצובה
פונקציה עצובה
פונקציה עצובה

כדי שהרובוט יהיה עצוב הייתי צריך לחשוב על תכונת אישיות של הרובוט הזה, אז החלטתי לגרום לו להיות עצוב כשהוא בסביבה חשוכה. לשם כך השתמשתי בנגד צילום כדי לחוש אור. ככל שהסביבה כהה יותר ההתנגדות גבוהה יותר והסביבה בהירה יותר ההתנגדות נמוכה יותר. המעגל פועל כמחלק מתח שהוא מעגל עם שני נגדים המחוברים בסדרה ל- +5v ו- GND, בנקודת האמצע של חיבור הנגד נמצא מתח שניתן לקבוע על ידי משוואה זו: מתח כניסה*(R2/R1 +R2). כאשר הסיכה האנלוגית של Arduino קוראת ערך זה היא ממירה את המתח לטווח שבין 0 ל- 1023.

שלב 8: פונקציה כועסת

פונקציה כועסת
פונקציה כועסת
פונקציה כועסת
פונקציה כועסת

על מנת להכעיס את הרובוט החלטתי להעיף אותו/להפיל אותו. זה פועל באמצעות מתג הטיה, ומתג הטיה הוא בעצם מתג רגיל אך במקום שיהיה לך כפתור או נדנדה, יש לך כדור כספית שאם הוא מוטה בזווית מסוימת יחבר את שני המגעים ויופעל; כך שהערך מזה הוא 0 או 1, 0 עבור כבוי ו -1 עבור מופעל. כשהרובוט כועס הוא מתעלם גם ממכשול הימנעות ומכשיל כל דבר שנראה בכיוון קדימה, בשל כעסו.

שלב 9: פונקציה מפוחדת

פונקציה מפוחדת
פונקציה מפוחדת
פונקציה מפוחדת
פונקציה מפוחדת

הפונקציה הסופית של הרובוט היא הפונקציה המבוהלת, המשתמשת בחיישן קול הממוקם ממש על גבי הרובוט. בכל פעם שהרובוט שומע רעש עומס הוא יפחד ויצטמרר בזמן שהוא הולך אחורה. חיישן הקול פועל באמצעות מיקרופון של קונדנסר שהוא מיקרופון, כאשר הוא מרגיש צלילים או תנודות הוא ייצור מתח קטן, בדרך כלל כ- 100mv, מתח זה מוגבר ונקרא דרך הסיכה האנלוגית של הארדואינו, ככל שהמתח גבוה יותר או שהצליל חזק יותר כך הערך האנלוגי גבוה יותר, ולהיפך.

שלב 10: כוח

כּוֹחַ
כּוֹחַ
כּוֹחַ
כּוֹחַ

עכשיו כשבנית את כל מה שאתה צריך כדי להפעיל אותו, במקור ניסיתי להפעיל אותו עם 8 סוללות AA, אבל זה היה פשוט יותר מדי מגושם ולא מעשי. אז השתמשתי ב -3 סוללות ליתיום יון שכל אחת מהן מחזיקה בערך 3.5 וולט, חיברתי סוללה אחת לממיר בוסט שהוא מגבר מתח, זה הגביר את ה -3.5 וולט ל -5 וולט כדי להפעיל את הארדואינו, אז השתמשתי בשתי הסוללות וחיברתי ישירות זה למנועים וללדים, זה לא רעיון כל כך טוב מכיוון שהמתח לא היה מוסדר, אבל לא היה לי וסת מתח מונח, אם אתה מנסה לבנות את זה אני ממליץ להשתמש בווסת מתח מאשר יכול לעשות 5v בסביבות 2-3 אמפר, דוגמה לכך היא LM78S05. או שאתה יכול להשתמש ב- LM7805 כדי להפעיל את הארדואינו ובמקום זאת לקבל ממיר הורדה או ממיר באק להורדת המתח והפעלת נוריות הלד והמנועים.

שלב 11: תהנה !

אני מקווה שתבנה את הרובוט הזה ותהנה, אני גם מקווה שתשים סבב משלך על הרובוט הזה ותיצור רגשות משלך בכדי לגרום לו לחיות !!!

מוּמלָץ: