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

דגם מתג כיבוי אוניברסלי: 10 שלבים
דגם מתג כיבוי אוניברסלי: 10 שלבים

וִידֵאוֹ: דגם מתג כיבוי אוניברסלי: 10 שלבים

וִידֵאוֹ: דגם מתג כיבוי אוניברסלי: 10 שלבים
וִידֵאוֹ: איך לקבוע שעון שבת במזגני תדיראן עיליים אלפה/סולו/ג'וי וכו' 2024, יולי
Anonim
דגם של מתג כיבוי אוניברסלי
דגם של מתג כיבוי אוניברסלי

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

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

שלב 1: ייבא את קבצי ה- VHDL הנתון

על מנת שהדגם שלנו יפעל כראוי, יהיה עליך להוריד את התוכנה שנותנת ללוח Basys 3 את הוראותיו.

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

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

שלב 2: פירוט המודול העליון VHDL

פירוט מודול ה- VHDL העליון
פירוט מודול ה- VHDL העליון
פירוט המודול העליון VHDL
פירוט המודול העליון VHDL

המודול העליון של הפרויקט הוא מה שמחבר את כל מודולי הרכיבים הבודדים לחומרה המשומשת. כפי שאתה יכול לראות יש לנו את המודולים killSwitch ו- buzzerControl המוגדרים כרכיבים בחלקו העליון.

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

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

שלב 3: פירוט מודול מתג ההרג של VHDL

פירוט מודול מתג ההרג של VHDL
פירוט מודול מתג ההרג של VHDL
פירוט מודול מתג ההרג של VHDL
פירוט מודול מתג ההרג של VHDL

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

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

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

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

שלב 4: פירוט מודול כפכפי VHDL

פירוט מודול כפכפי VHDL
פירוט מודול כפכפי VHDL

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

קוד VHDL משתמש באמירות אם ועוד בכדי ליצור את ה- Flip Flop כרכיב בתוך עיצוב המעגל שלנו. הוא מבטיח שכאשר אות השעון עובר ממצב נמוך למצב גבוה, כאשר הנורה דולקת וכאשר מתג הכיבוי נדחק, פלט הכפכפים מחליף את הקלט שלו. כאשר הקלט מוחלף הכפכף הופך.

שלב 5: פירוט מודול זמזם Piezo VHDL

פירוט של מודול זמזם Piezo VHDL
פירוט של מודול זמזם Piezo VHDL
פירוט של מודול זמזם Piezo VHDL
פירוט של מודול זמזם Piezo VHDL

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

זמזם הפיז'ו, עם לחיצה על כפתור ההשבתה, ישמיע צליל בן שתי צלילים שיספק למשתמש משוב שמיעתי שהכפתור נלחץ. יישמנו את זה בהתנהגות ב- VHDL באמצעות סדרה של הצהרות אם במבנה תהליך. התחלנו ביצירת ערך שלם כדי לעקוב אחר כמה שינויים בשעון. ברגע שהתהליך מתחיל התוכנית מוציאה את חצי השניה הראשונה (0 עד 50 מיליון שעונים) בהוצאת פתק A ב -440 הרץ. זה מושג על ידי היפוך האות של זמזם הפאזו בכל כפולה של 227272 קרציות שעון עם פונקציית מודולו. מספר זה הוא תוצאה של חלוקת אות השעון של הלוח (100 מגהרץ) בתדר הרצוי (400 הרץ). במהלך המחצית השניה השנייה (50 עד 100 מיליון שעונים) הלוח מוציא פתק F ב 349.2 הרץ באותה שיטה כמו קודם. לאחר שנייה אחת התוכנית לא מגדילה עוד את משתנה השעון ומפסיקה להוציא דבר מהזמזם של הפייזו. לחיצה נוספת על כפתור הכיבוי האוניברסלי מאפסת את המספר הזה ל -0 ומפעילה מחדש את מחזור הרעש.

שלב 6: פירוט קובץ אילוצי VHDL

קובץ האילוצים מספר ל- Vivado באילו מכשירים בלוח Basys 3 אנו משתמשים. הוא גם מספק ל- Vivado את השמות שנתנו למכשירים בקוד שלנו. Vivado זקוקה למידע זה כדי שתדע לחבר את האלמנטים ההגיוניים שלנו לחומרה הפיזית. קובץ האילוצים כולל כמות גדולה של קוד (שלא נעשה בו שימוש). שורות קוד אלה מתייחסות להתקנים בלוח שאנו לא משתמשים בהם.

המכשירים בהם אנו משתמשים כוללים ארבעה מתגי קלט המסומנים על הלוח V17, V16, W16 ו- W1. אנו משתמשים גם בלחצן הכיבוי האוניברסלי, המסומן U18. סיכות הפלט עבור ארבעת הלדים המחוברים שלנו הם JB4, JB10, JC4 ו- JC10. עבור זמזם הפיצו שלנו אנו משתמשים בסיכת פלט JA9.

כפי שצייננו בפירוט המודול העליון, אם ברצונך להוסיף נוריות LED או התקנים אחרים ללוח, עליך להגדיל את היקף האותות sw ו- dev, להוסיף עוד מודולי killSwitch ולחבר אותם יחד. לאחר מכן עליך לקשר את שמות המשתנים האלה לחומרת ההתקן באמצעות קובץ האילוצים. ניתן לעשות זאת על ידי ביטול (הפעלה מחדש) של שורות הקוד המשויכות לפינים שבהם ברצונך להשתמש ולאחר מכן הוספת שם המשתנה המשויך שלו במודול העליון. ניתן להעתיק את התחביר המתאים לכך מהמכשירים בהם אנו משתמשים. כדי לברר את שמות הסיכות בהן ברצונך להשתמש על הלוח עיין במדריך ההתייחסות של Baasys 3 כאן.

שלב 7: בניית הבסיס 3

בניית הבסיס 3
בניית הבסיס 3
בניית הבסיס 3
בניית הבסיס 3

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

כאשר הלוח מוכן, חבר אותו למחשב באמצעות כבל USB.

שלב 8: יישום קבצי VHDL לבסיס 3

יישום קבצי VHDL לבסיס 3
יישום קבצי VHDL לבסיס 3
יישום קבצי VHDL לבסיס 3
יישום קבצי VHDL לבסיס 3

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

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

שלב 9: שימוש בלוח Basys 3

שימוש בלוח Basys 3
שימוש בלוח Basys 3

כעת, כאשר לוח Basys 3 פועל ומתוכנת לייצג את המודל שלנו, עליך לדעת כיצד להשתמש בו.

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

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

שלב 10: להתגאות

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

מוּמלָץ: