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

פותחן תריסים אוטומטי באמצעות EV3: 6 שלבים
פותחן תריסים אוטומטי באמצעות EV3: 6 שלבים

וִידֵאוֹ: פותחן תריסים אוטומטי באמצעות EV3: 6 שלבים

וִידֵאוֹ: פותחן תריסים אוטומטי באמצעות EV3: 6 שלבים
וִידֵאוֹ: פוקק ופותח פקקי בקבוקים מכטרוני 2024, יולי
Anonim
פותחן תריסים אוטומטי באמצעות EV3
פותחן תריסים אוטומטי באמצעות EV3
פותחן תריסים אוטומטי באמצעות EV3
פותחן תריסים אוטומטי באמצעות EV3

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

שלב 1: רעיונות או פתרונות אפשריים

לאחר שחיפשתי באתרים שונים כגון YouTube, Instructables ו- Thingiverse גיליתי שהפתרון הנפוץ ביותר הוא להניע את הסליל שפצע ולפרוק את התריסים באמצעות מנוע צעד או סרוו. מצאתי 2 אפשרויות עיקריות עם יתרונות וחסרונות שונים.

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

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

אני מעדיף את שיטת הכבל כמו פתרון הרבה יותר פשוט שאינו מעכב את השימוש הידני בכבל, והעיוור לא ידרוש כל שינוי משמעותי. אני מתכוון להפוך אותה לסמויה וקומפקטית ככל האפשר כשאני אעשה את הגרסה הסופית עם ESP8266.

שלב 2: ביצוע ההרכבה

ביצוע האסיפה
ביצוע האסיפה
ביצוע האסיפה
ביצוע האסיפה

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

שלב 3: עיצוב הציוד העיוור

עיצוב הציוד העיוור
עיצוב הציוד העיוור
עיצוב הציוד העיוור
עיצוב הציוד העיוור
עיצוב הציוד העיוור
עיצוב הציוד העיוור
עיצוב הציוד העיוור
עיצוב הציוד העיוור

פירקתי את העיוור כדי לראות כיצד נראה הארכובה בפירוט רב יותר. במהלך הפירוק מצאתי ציוד קטן בן 16 שיניים שהוחזק במקומו על ידי סליל מתוח, זה היה החלק שחיפשתי. לאחר שעיצבתי העתק של הציוד, הוספתי את החורים הנדרשים התואמים לגו, הדפסתי את 3 החלקים הנפרדים ולבסוף הדבקתי אותם יחד עם דבק-על. היו לי בעיות בהתחלה להפוך את החלק לגו תואם, במובן זה שלמדפסת התלת מימד שלי אין את הרזולוציה לבצע את החור "x" מספיק, אולם לא היו לו בעיות עם החורים העגולים משני צדיו. אז החלפתי את ה" x "בחור עגול והוא הדפס בסדר. לאחר מכן, לאחר כמות קטנה של בדיקות יכולתי לראות שהוא יכול להתמודד עם המומנט והמשקל של העיוורים. אני אקשר את העיצובים שלי לציוד למטה או שתוכל למצוא אותו ב- Thingiverse בכתובת:

שלב 4: קידוד העיוורים

קידוד העיוורים
קידוד העיוורים

רציתי קוד שיפתח ויסתום את התריסה אוטומטית כשהוא מגיע לרמת אור ספציפית, אבל יש לו גם כפתור דריסה כדי שאפשר יהיה עדיין לפתוח או לסגור את התריסה כשהם רוצים. קישרתי את GitHub שלי לגרסה הסופית של הקוד כאן:

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

הקוד מתחיל על ידי כיול המנועים והתריסים, החל מהווילון פתוח לגמרי ומוריד אותו עד שהוא פוגע בחיישן המגע בתחתית, וסופר כמה רבע סיבובים נדרשים כדי להגיע לתחתית, שנשמרת כ"סיבובי הצורך " מִשְׁתַנֶה. לאחר מכן הוא כותב "שקר" למשתנה "BlindOpen" המשמש לעקוב אחר מיקומו של העיוור. בשלב זה הקוד מתחלק ל -4 לולאות.

אחת הלולאות הללו היא לולאת "Buttonstate" המפרסמת ללא הרף את מצב הכפתור למשתנה שנקרא "ButtonPressed". זה מבטל את הצורך להציב בלוקים מרובים על התסריט.

הלולאה השנייה היא "אור או כהה" המשווה ללא הרף את רמת האור מחוץ לחלון שלי, לקבוע שהוגדר קודם לכן בקוד. אם התוצאה מתחת לקבוע זה, הלולאה תכתוב "שקר" למשתנה "ItIsLight", בעוד שאם היא תהיה מעל הערך היא תכתוב "נכון".

הלולאה השלישית מכילה רשימה מספרית של 3 אפשרויות שבעצם אומרת לעיוורים מה לעשות, 0 = עיוור למטה, 1 = עיוור, 2 = אל תעשה כלום כי עיוור נמצא במקום הנכון. הלולאה מתחילה בקריאת המשתנה "BlindShould" המציין את המשימה הנכונה שהעיוור צריך לבצע, ואז מבצע את המשימה, משנה את המשתנה "BlindOpen" לאפשרות הנכונה ואז הופך להיות סרק עד שמשתנה "BlindShould" ישתנה היכן זה חוזר. הוא משתמש בערך "RotationsNeeded" כמו גם כוח +/- 100% כדי להזיז את התריסים פתוחים או סגורים במלואם.

הלולאה הרביעית והאחרונה היא המורכבת ביותר, היא לולאת "מחליטים" אשר מטפלת בכל הנתונים ומחליטה מה לעשות עם כל תמורה. היא עושה זאת באמצעות "מזלגות בכביש" המבוססות על היגיון, כאשר "לחיצה על כפתור", "רמת אור", "פתיחת עיוור" הן השאלות האמיתיות או השקר. לכל התמורות יש תגובה מקודדת קשה, שהיא 0 = עיוור למטה, 1 = עיוור או 2 = אל תעשה כלום - ערך זה נכתב למשתנה "BlindShould" אשר מטופל לאחר מכן בלולאה קודמת. חלק מהתגובות יחכו עד שהמשתנה "ItIsLight" ו/או "ButtonPressed" ישתנה לפני סיום התסריט, זה רק המקרה של התמורות שהופעלו על ידי כפתור, כי אחרת היא תנסה לתקן את מיקומה, כלומר העיוור יחזור למצבו המקורי. לאחר מכן תהליך זה נעשה בלולאה ליצירת מערכת אוטומטית חזקה ופשוטה יחסית, הניתנת להוספה ולניפוי באגים בקלות. וואו.

שלב 5: גימור נגיעות

נגיעות
נגיעות

החלטתי לאחר מכן לחבר אספקת חשמל 9V ל- EV3 שלי באמצעות כמה דיבלים וברגים מעץ כ"סוללות ", הדבר הפך את המוצר ללא תלות בסוללות ומנע ממני צורך להחליף את הסוללות כל כמה ימים.

שלב 6: הערכת הפרויקט

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

מוּמלָץ: