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

חיישן תנועה/אורות נשלטים נגד: 7 שלבים
חיישן תנועה/אורות נשלטים נגד: 7 שלבים

וִידֵאוֹ: חיישן תנועה/אורות נשלטים נגד: 7 שלבים

וִידֵאוֹ: חיישן תנועה/אורות נשלטים נגד: 7 שלבים
וִידֵאוֹ: עדן חסון ואודיה - הנשיקה! 😱 2024, יולי
Anonim
חיישן תנועה/אורות נשלטים נגד
חיישן תנועה/אורות נשלטים נגד

פרויקט זה נוצר כפרויקט גמר לקורס עיצוב דיגיטלי בקאל פולי, סן לואיס אוביספו (CPE 133).

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

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

כיצד ניתן להשתמש בעיצוב זה? ניתן ליישם עיצוב זה לכל מיני אורות, בין אם הם דקורטיביים, מעשיים או שניהם. אם אתה רוצה שמנורת השולחן שלך תפעל רק 6 שעות בכל פעם, למשל. יהיה עליך להגדיר מונה ל 21, 600 שניות (6 שעות x 3, 600 שניות/שעה). בעוד שהדלפק גדל באופן פעיל, חיישן התנועה ישלוט באור. לכן, בכל פעם שהוא נכבה במהלך פרק הזמן הזה, אתה רק צריך להניף את היד מול חיישן התנועה והוא יופעל שוב. אם אתה נרדם ליד שולחן העבודה שלך ומתעורר כעבור 7 שעות, התנועה שלך לא תפעיל אותו.

שלב 1: תוכנות וחומרה נדרשות

תוכנות וחומרה נדרשות
תוכנות וחומרה נדרשות
תוכנות וחומרה נדרשות
תוכנות וחומרה נדרשות
תוכנות וחומרה נדרשות
תוכנות וחומרה נדרשות
תוכנות וחומרה נדרשות
תוכנות וחומרה נדרשות

תוֹכנָה:

  • Vivado 2016.2 (או גרסה עדכנית יותר) ניתן למצוא כאן
  • Arduino IDE 1.8.3 (או גרסה עדכנית יותר) ניתן למצוא כאן

חוּמרָה:

  • לוח Basys 3
  • 1 ארדואינו אונו
  • 2 לוחות לחם
  • 1 חיישן טווח קולי HC-SR04
  • 9 חוטים זכר לזכר
  • 1 LED
  • נגד 1 100Ω

שלב 2: קודים (Vivado)

קודים (Vivado)
קודים (Vivado)

מכונת סופית (ראה תרשים מצב למעלה):

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

שם קובץ: LEDDES

דֶלְפֵּק:

המונה מאפשר לנו להגביל את משך הזמן שבמהלכו חיישן התנועה יכול להפעיל את הנורית. ערכו מוצג בתצוגת שבעת הפלח של לוח Basys 3 באמצעות קוד מקור ("sseg_dec"). כאשר מתג האיפוס למטה (ערך: '0'), המונה מתחיל לעלות כל שנייה מ -0 ל 30. כשהוא מגיע ל -30, הוא קופא על מספר זה. הוא לא יופעל מחדש מ -0 עד שהמתג 'איפוס' יועבר ל- '1' וחוזר ל- '1.' אם האיפוס הופך ל'-1 'בזמן שהמונה פועל, המונה יקפא על כל ערך אליו הגיע. כאשר האיפוס חוזר ל- '0', הדלפק יופעל מחדש מ -0 ל 30. יישום זה דורש גם שימוש באות שעון, הקוד שלו מסופק להלן ("clk_div2").

שם הקובץ: FinalCounter

קבצים מסופקים:

תצוגת שבעה קטעים:

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

שם קובץ: sseg_dec

אות השעון:

קוד זה מאפשר לדלפק להגדיל במרווחים של שנייה אחת. הוא מחלק את תדר שעון הקלט לתדר איטי יותר. הסתגלנו לספק תקופה של שנייה אחת על ידי שינוי קבוע max_count: integer: = (3000000) "ל" קבוע max_count: integer: = (50000000)."

שם קובץ: clk_div2

קבצים שסופקו: sseg_dec, clk_div2 *קבצי המקור הללו סופקו על ידי פרופסור בריאן מיילי.

שלב 3: הבנת האופן שבו הם מתחברים (תרשימים של רכיבי VHDL)

הבנת האופן שבו הם מתחברים (תרשימים של רכיבי VHDL)
הבנת האופן שבו הם מתחברים (תרשימים של רכיבי VHDL)

הקובץ הראשי ("MainProjectDES") מכיל את כל קבצי המשנה שנדונו בעבר. הם מחוברים באופן הנ"ל. הרכיבים השונים מחוברים זה לזה באמצעות מפות יציאות לשליחת אות מרכיב אחד למשנהו.

כפי שאולי שמתם לב, FinalCounter מספק פלט של 5 סיביות בעוד sseg_dec דורש קלט של 8 סיביות. כדי לפצות, הגדרנו את האות המחבר בין שני הרכיבים כדי להתחיל ב- "000" ולהוסיף את פלט ה -5 סיביות מהדלפק. ובכך לספק קלט של 8 סיביות.

אילוצים:

על מנת להריץ את הקודים הללו על לוח Basys 3, נדרש קובץ אילוצים, המספר לכל אות לאן לפנות וכיצד מחוברים החלקים.

שלב 4: קוד (Arduino)

תיכנתנו את ה- Arduino Uno להשתמש בחיישן התנועה כדי לזהות תנועה ולספק פלט המסמן את הנורית לדלק. בנוסף, השימוש בחיישן לאיתור תנועה דורש לולאות ריצה שמחפשות כל הזמן שינוי מרחק. בעיקרו של דבר, הוא זקוק לטיימר שפועל במקביל כדי להפיק אות "גבוה" כדי שהנורית תידלק בזמן שצריך לאפס את הטיימר ברגע שתזוהה תנועה חדשה, שכמעט בלתי אפשרי ליישם אותה על Vivado על סמך היקף הידע של הכיתה. יתר על כן, השתמשנו בארדואינו מכיוון שלא יהיה אפשרי להשתמש ב- HC-SR04 עם לוח Basys 3 מכיוון שהלוח מספק רק 3.3V בעוד שהחיישן דורש ספק כוח של 5V. ליישום תנועת הזיהוי, מדובר בקידוד בפועל בניגוד ל- CAD ב- VHDL.

השתמשנו בפונקציית הדופק המובנית של החיישן כדי לאחזר את הזמן שעבר בין הצליל שנפלט בתחילה מהחיישן לבין הצליל החוזר כאשר הוא פוגע באובייקט. לאחר מכן אנו משתמשים במהירות הצליל ובמרווח הזמן כדי לחשב את המרחק בין האובייקט לחיישן. מכאן אנו שומרים את המרחק הנוכחי ועוקבים אחריו. אנו בודקים את המרחק כל 150 ms. השתמשנו גם בספריית elapsedmil כדי להפעיל טיימר פנימי בתוך הארדואינו כדי לעקוב אחר הזמן שחלף. אם אנו מזהים שינוי מרחק, המתאים לתנועה, הטיימר מתאפס לאפס והוא ישמור את האור דולק עד שחלפו 3 שניות. בכל פעם שהחיישן מזהה תנועה נוספת, הטיימר מתאפס ל -0 והאות לנורית ה- LED יהיה "גבוה" במשך 3 השניות הבאות. צירפנו עותק של קוד הארדואינו למטה.

שלב 5: איך המרכיבים שלנו משתלבים יחד

כיצד מרכיבינו משתלבים יחד!
כיצד מרכיבינו משתלבים יחד!
כיצד מרכיבינו משתלבים יחד!
כיצד מרכיבינו משתלבים יחד!
כיצד מרכיבינו משתלבים יחד!
כיצד מרכיבינו משתלבים יחד!

כפי שאתה יכול לראות ב "Basys3: Pmod Pin-out Diagram*" ובתמונה של לוח Arduino Uno, הדגשנו ותיינו את היציאות שבהן השתמשנו.

1. הלוח והבסיס Basys 3

הנורית מחוברת בסדרה עם הנגד 100Ω. -החוט הלבן מחבר את הנגד לסיכה PWR של לוח Basys 3. -החוט הצהוב מחבר את ה- LED לפין H1 של לוח Basys 3.

2. חיישן התנועה וה- Arduino Uno

-החוט הכתום מחבר את Vcc (כוח) של חיישן התנועה לסיכה 5V של לוח ה- Arduino Uno. -החוט הלבן מחבר את הפין טריג של חיישן התנועה לסיכה 10 של לוח Arduino Uno.-החוט הצהוב מחבר את הפין הד של חיישן התנועה לסיכה 9 של לוח Arduino Uno. -החוט השחור מחבר את סיכה GND של חיישן התנועה להצמיד את ה- GND של לוח ה- Arduino Uno.

[החוטים בהם השתמשנו היו קצרים מכדי להגיע לרכיבים, ולכן הם היו מחוברים זה לזה]

3. לוח Basys 3 וה- Arduino Uno

החוט הצהוב מחבר את סיכה A14 של לוח Basys 3 לסיכה 6 של לוח Arduino Uno.

*דיאגרמה זו נלקחה מתוך "Basys 3 ™ FPGA Board Manual Manual" של Digilent שניתן למצוא כאן.

שלב 6: הפגנה

שלב 7: הגיע הזמן לבדוק את זה

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

מוּמלָץ: