תוכן עניינים:
- שלב 1: ייבא את קבצי ה- VHDL הנתון
- שלב 2: פירוט המודול העליון VHDL
- שלב 3: פירוט מודול מתג ההרג של VHDL
- שלב 4: פירוט מודול כפכפי VHDL
- שלב 5: פירוט מודול זמזם Piezo VHDL
- שלב 6: פירוט קובץ אילוצי VHDL
- שלב 7: בניית הבסיס 3
- שלב 8: יישום קבצי VHDL לבסיס 3
- שלב 9: שימוש בלוח Basys 3
- שלב 10: להתגאות
וִידֵאוֹ: דגם מתג כיבוי אוניברסלי: 10 שלבים
2024 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2024-01-30 09:16
נמאס לך לבדוק שכל האורות בבית שלך כבויים לפני שאתה הולך לישון? האם אתה רוצה שתוכל לכבות כל אור בבת אחת בלי שום מהומה? על מנת לחסוך בחשמל ובזמן, החלטנו ליצור מערכת שיכולה באופן תיאורטי לסגור בית שלם בבת אחת.
דגמנו הוכחה לרעיון זה באמצעות כמה נוריות LED ולוח מעגלים 3 בסיסי, ויצרנו עיצוב שיבטל את כל נוריות הלחיצה בלחיצת כפתור אחת. ניתן ליישם דגם זה גם למערכת תאורה ביתית בפועל, למרות שהוא ידרוש חיווט ושינויים מורכבים יותר בקבצי VHDL הנתונים.
שלב 1: ייבא את קבצי ה- VHDL הנתון
על מנת שהדגם שלנו יפעל כראוי, יהיה עליך להוריד את התוכנה שנותנת ללוח Basys 3 את הוראותיו.
ראשית יהיה עליך להוריד כלי סינתזה ליישום קבצי vhdl לחומרה. אם אתה רוצה להיות בטוח שכל הקוד ישכפל את העיצוב שלנו במלואו ללא צורך בשינויים כלשהם, אנו ממליצים לך להשתמש ב- Vivado 2016.2. לאחר התקנת Vivado תוכל ליצור פרויקט ולהוריד את קבצי המקור שלנו. הוסף אותם כמקורות לפרויקט שלך, אל תשכח להוסיף גם את קובץ האילוצים!
לאחר מכן נסביר מה עושה כל אחד מקבצי המקור. דלג על שלבים 2 עד 6 אם אתה רק רוצה להגיע לבנייה הפיזית של המכשיר.
שלב 2: פירוט המודול העליון VHDL
המודול העליון של הפרויקט הוא מה שמחבר את כל מודולי הרכיבים הבודדים לחומרה המשומשת. כפי שאתה יכול לראות יש לנו את המודולים killSwitch ו- buzzerControl המוגדרים כרכיבים בחלקו העליון.
החלק התחתון מציין כיצד המודולים הללו מחוברים זה לזה. חיברנו ארבעה לדים ללוח ושייכנו אותם עם המודולים killSwitch dev0 דרך dev3. יש לנו ארבעה מודולים של killSwitch המוגדרים מכיוון שאנחנו צריכים אחד כדי לנהל את המצב של כל נורית מחוברת. כל אחד מהמודולים הללו מנצל את אות השעון והכפתורים שיצרנו בהגדרת המודול העליונה, כמו גם את מתג הקלט והאותות הפלט המתאימים שלהם.
מודול בקרת הזמזם בתחתית מפעיל את הזמזם בעת לחיצה על לחצן הכיבוי האוניברסלי. כפי שאתה יכול לראות את מודול בקרת הזמזם מועבר אות השעון והלחצן ככניסות. הוא מועבר גם לפין פלט הבאזר הפיזי כדי לשלוט בו בהתאם.
שלב 3: פירוט מודול מתג ההרג של VHDL
מתג ההרג הוא כפתור הכיבוי האוניברסלי, והמודול עוסק בעיקר בחיבורו לגורמי מעגל אחרים כך שכאשר ילחץ עליו כל הנורות יכבו.
בעוד שהמודול העליון מטפל בחיבור חומרה פיזית לתוכנה, המודול killSwitch מטפל בהיגיון העיקרי של כל התקן. המודול מכניס כניסות לאות השעון, לחצן כיבוי אוניברסלי ומתג החלפת המכשיר. בתמורה הוא שולט על מצב סיכת ההתקן שאליה הוא מחובר.
בחלק האדריכלות בקוד אנו רואים שיש לו תלות במודול dFlipFlop לאחסון זיכרון. אתה יכול גם לראות שהצהרנו על ארבעה אותות שישמשו לחיבור הכפכף כמו גם ליישום הצהרות ההיגיון שלנו. בתוך החלק ההתנהגותי של הקוד יצרנו מופע של מודול dFlipFlop והקצנו את אותות הקלט/פלט שלנו ליציאות.
מכאן החלק העיקרי של ההיגיון שלנו טמון בערכי האות עבור invertState ו- isDevOn. הבסיס ההגיוני שלנו למכשיר הוא כדלקמן: "בכל פעם שהמתג יזרק האור יהפוך את מצב ההדלקה/כיבוי שלו. בכל פעם שלחיצה על הכפתור והנורית דולקת כעת, הנורית תהפוך את מצבה לכיבוי. " משתי הצהרות אלה אנו יכולים להוציא כי מצב ה- LED צריך להיות ה- XOR של המתג ורכיב הזיכרון שלנו, כך ששינוי כלשהו הופך את ה- LED. ניתן לראות זאת מיושם באות isDevOn. נורית ה- LED בתנאי רכיב הזיכרון מטופלת על ידי האות invertState שלנו. אם הנורית דולקת ולוחצים על הכפתור, רכיב הזיכרון שלנו יתעדכן ויפוך את מצבו. לאחר מכן זה הופך גם את מצב ה- LED.
שלב 4: פירוט מודול כפכפי VHDL
בעיה אחת בעיצוב שלנו הייתה העובדה שאחרי השימוש במתג הכיבוי, ייתכן שיהיה צורך להעיף פעמיים דולקים פעמיים כדי לחזור למצב ההפעלה. זה יהיה די אי הנוחות לאנשים לאורך זמן. הצלחנו לעקוף את אי הנוחות הזו על ידי הכללת העיצוב שלנו "פליפ פלופ", רכיב מעגל המסוגל לאחסן מידע. כעת, המערכת זוכרת אם מתג אור היה מופעל בעבר כך שאם הוא יופעל שוב הוא יופעל ללא קשר למיקומו ההתחלתי.
קוד VHDL משתמש באמירות אם ועוד בכדי ליצור את ה- Flip Flop כרכיב בתוך עיצוב המעגל שלנו. הוא מבטיח שכאשר אות השעון עובר ממצב נמוך למצב גבוה, כאשר הנורה דולקת וכאשר מתג הכיבוי נדחק, פלט הכפכפים מחליף את הקלט שלו. כאשר הקלט מוחלף הכפכף הופך.
שלב 5: פירוט מודול זמזם 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
יהיה עליך לחבר את נוריות ה- LED שלך ליציאות הקלט/פלט הנכונות של Basys 3. עקוב אחר התמונות המצורפות כדי לקבוע מהן היציאות הנכונות, מכיוון שאם אתה מחבר נורית LED ליציאה הלא נכונה היא לא תדלק. אם בחרת לצרף את זמזם הפיזו, יהיה עליך גם לחבר אותו ליציאות הקלט/פלט הנכונות.
כאשר הלוח מוכן, חבר אותו למחשב באמצעות כבל USB.
שלב 8: יישום קבצי VHDL לבסיס 3
עכשיו כשהלוח שלך מוכן והקוד שלך מסתיים, תוכל סוף סוף להרכיב את הדגם.
לאחר שהגדרת את הפרויקט שלך ב- Vivado, עליך ללחוץ על כפתור "צור Bitstream" כדי לאסוף את הקוד לפני שהוא יעלה ללוח. אם אתה מקבל הודעת שגיאה בשלב זה, עליך לבדוק שוב שהקוד שלך תואם בדיוק את הקוד שלנו. כשאני אומר בדיוק, אני מתכוון עד לנקודה -נקודה או לסוג הסוגריים שבהם משתמשים. לאחר שנכתב הזרם הסיביות שלך בהצלחה, עבור אל מנהל החומרה בתוך Vivado ולחץ על כפתור "פתח יעד" ולאחר מכן לחץ על "התקן התקן" מיד לאחר מכן. לוח Basys 3 שלך אמור כעת להיות תפקודי במלואו.
שלב 9: שימוש בלוח Basys 3
כעת, כאשר לוח Basys 3 פועל ומתוכנת לייצג את המודל שלנו, עליך לדעת כיצד להשתמש בו.
כל אחד מארבעת המתגים הרחוקים ביותר מימין שולט באחד מנורות הלדים, והרפתקה גורמת לדלקה או כיבוי של הלדים. אם הנורית לא מופעלת, בדוק שאתה מחובר ליציאת הקלט/פלט הנכונה, וכי הנורית שלך מתפקדת מלכתחילה.
אם ברצונך להשבית את כל נוריות ה- LED בבת אחת, עליך ללחוץ על הכפתור המרכזי בסט של חמישה כפתורים המוצגים למעלה.
שלב 10: להתגאות
המודל משמש חידוש קטן ומסודר שתוכל להפגין מול חבריך ובני משפחתך. תיאורטית ניתן להשתמש בו גם ליישום מתג הכיבוי האוניברסלי במערכת החשמל הביתית שלך, אם תחליף את נוריות הלד בחוטים המובילים אל האורות שלך. למרות שזה אפשרי, עדיין נצטרך להמליץ על כך. יש פוטנציאל לפגוע בעצמך או בבית שלך אם אתה מנסה לחבר מחדש ללא עזרה של חשמלאי.
מוּמלָץ:
אור חג המולד LED (עם כיבוי/כיבוי): 3 שלבים
אור חג המולד LED (עם הפעלה/כיבוי): פרויקט זה הוא גרסה שונה של https: //www.instructables.com/id/Arduino-Christma …, בו הוספתי כפתור למשתמש לשלוט מתי לפנות האור דולק
מתג מרחוק אוניברסלי IR: 12 שלבים
מתג מרחוק אוניברסלי IR: פרויקט זה מציג את השימוש בשבב מסודר המאפשר לך להשתמש בכל שלט IR כדי להדליק משהו. כאן שיניתי מתג ישן של ג'נרל אלקטריק RF ישן שאינו עובד למתג שניתן לשלוט בו בכל שלט IR. המוטיבציה שלי
בנה שעון אמיתי פעמון למחשב האישי שלך ושעון כיבוי כיבוי אש: 3 שלבים (עם תמונות)
בנה שעון אמיתי עם פעמון למחשב האישי שלך ושעון מטף כיבוי אש: פעמון פליז, ממסר קטן ועוד כמה דברים ופעמון אמיתי יכול להכות את השעות על שולחן העבודה שלך. למרות שפרויקט זה פועל על Windows ו- Mac גם OS X, החלטתי להתקין את אובונטו לינוקס במחשב שמצאתי באשפה ולעבוד על זה: מעולם לא
כיצד להמיר מטוס דגם Silverlit/airhogs Xtwin למטוס דגם בקנה מידה: 9 שלבים
כיצד להמיר Xtwin מסוג Silverlit/ airhogs למטוס דגם בקנה מידה: הוראה זו עוסקת בהמרת מטוס RC ברמת כניסה כגון ה- Silverlit/ Airhogs 'Xtwin' לדומה למטוס אמיתי. לפני שנתחיל עליך להיות מודע לכך היה מאוד קשה, למעשה קרוב לבלתי אפשרי, לבנות מחדש את המקור שלך
לפרוץ פעמון דלת אלחוטי לתוך מתג אזעקה אלחוטי או מתג הפעלה/כיבוי: 4 שלבים
לפרוץ פעמון דלת אלחוטי לתוך מתג אזעקה אלחוטית או מתג הפעלה/כיבוי: לאחרונה בניתי מערכת אזעקה והתקנתי אותה בבית שלי. השתמשתי במתגים מגנטיים על הדלתות וחיברתי אותם בעליית הגג. החלונות היו סיפור אחר וחיווט קשה לא היה אופציה. הייתי צריך פתרון אלחוטי וזה