תוכן עניינים:
- שלב 1: עיצוב ממשק UI
- שלב 2: תקשורת MCU
- שלב 3: כתיבת קוד לוגי
- שלב 4: רכישת חיישנים
- שלב 5: אפקט הפעולה בפועל
וִידֵאוֹ: מסך LCD עם בית חכם: 5 שלבים
2024 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2024-01-30 09:11
היום קיבלתי את תצוגת כונן היציאות הטוריות של STONE, שיכולה לתקשר דרך היציאה הטורית של MCU, ועיצוב ההיגיון של ממשק המשתמש של תצוגה זו ניתן לעצב ישירות באמצעות תוכנת VGUS המסופקת באתר הרשמי של STONE, דבר שנוח לנו מאוד. אז אני מתכוון להשתמש בו להכנת בקר מכשירים פשוט, הכולל שליטה על נורות שונות (סלון, מטבח, חדר ילדים, חדר אמבטיה). במקביל, ניתן לאסוף טמפרטורה פנימית וחיצונית, לחות ואיכות אוויר. זוהי הדגמה פשוטה, ותוכל לבצע פיתוח משני באמצעות הקוד שסיפקתי. קצת הדרכה בסיסית אודות מסך STONE יכולה להיכנס לאתר:
באתר מגוון מידע על הדגם, המשתמש ותיעוד העיצוב, כמו גם הדרכות וידאו. לא אפרט כאן יותר מדי.
שלב 1: עיצוב ממשק UI
פוטושופ
עיצבתי את שני דפי ממשק המשתמש הבאים עם פוטושופ:
הפרויקט כולל את שני העמודים הנ"ל. "אור" ו"חיישן "בפינה הימנית העליונה הם לחצני המתג של שני הדפים הללו.
בדף "אור", אתה יכול לשלוט בכל סוגי האורות בבית שלך. בדף "חיישן" תוכל לבדוק את הערכים שזוהו על ידי חיישנים שונים.
לאחר עיצוב שני הדפים לעיל, אנו יכולים לבצע עיצוב לוגיקה של כפתורים באמצעות תוכנת STONE TOOL המסופקת באתר הרשמי של STONE.
ראוי לציין שמקור השעון המשמש לתצוגת הזמן כאן הוא מקור השעון של מסך התצוגה, לא מקור השעון של ה- MCU.
אפקט החלפת דף TAB
בתוכנת STONE TOOL לא נמצא רכיב החלפת דפי TAB, ולכן חשבתי על שיטה נוספת להשגת אפקט החלפת דפי TAB.
באמצעות התצפית אני מספק שתי תמונות ממשק משתמש שניתן למצוא ששתי התמונות שלמעלה הן טקסט "אור" ו"חיישן ", ההבדל הוא שגודל הפיקסלים שלהן שונה, כך שעלינו רק לשים את המיקום של שני פיקסלים מוגדר ל- אותו טקסט, ולאחר מכן דרך הפינה השמאלית העליונה של השעה והתאריך לעיון, תוכל להשיג את ה- TAB כדי להחליף את האפקט.
לוגיקת כפתורים
קח כדוגמא את כפתור "סלון". כאשר המשתמש לוחץ על כפתור זה, מסך התצוגה של יציאה טורית של STONE ישלח הוראות פרוטוקול מתאימות דרך היציאה הטורית. לאחר קבלת הוראה זו, MCU המשתמש ינתח את הפרוטוקול לשליטה במצב ההחלפה של הנורות המחוברות ל- MCU.
רכישת חיישן
קח לדוגמא את "איכות האוויר": אם אתה רוצה להשיג את איכות האוויר בתוך הבית, עלינו להחזיק MCU לאיסוף איכות אוויר, חיישן איכות אוויר כאשר מספר ה- MCU נאסף באמצעות אלגוריתם המשווה את היתרונות והחסרונות של איכות האוויר, ולאחר מכן את MCU נשלח באמצעות יציאה טורית כדי להציג את שטח האחסון של "טוב" או "רע", כדי לשנות את תוכן התצוגה "משתנה טקסט0", ואז המשתמש יכול לראות באופן אינטואיטיבי את היתרונות של בקרת האיכות. אלה מוסברים בהמשך בקוד MCU.
שלב 2: תקשורת MCU
STM32 הוא ה- MCU שכולם מכירים, והוא מודל MCU נפוץ בינלאומי. לכן הדגם הספציפי של STM32 MCU בו השתמשתי בפרויקט זה הוא STM32F103RCT6.
ישנן סדרות רבות של STM32, שיכולות לענות על דרישות שונות של השוק. ניתן לחלק את הגרעין לקורטקס- m0, M3, M4, ו- M7, וכל ליבה ניתן לחלק למיינסטרים, ביצועים גבוהים וצריכת חשמל נמוכה.
מנקודת מבט הלמידה בלבד, אתה יכול לבחור F1 ו- F4, F1 מייצג את הסוג הבסיסי, בהתבסס על גרעין קליפת המוח m3, התדר העיקרי הוא 72MHZ, F4 מייצג את הביצועים הגבוהים, מבוסס על גרעין קליפת המוח m4, הראשי התדירות היא 180M.
באשר ל- F1, F4 (סדרות 429 ומעלה), מלבד גרעינים שונים ושיפור התדר הראשי, התכונה הברורה של השדרוג היא בקר LCD וממשק מצלמה, תמיכה ב- SDRAM, הבדל זה יינתן עדיפות בבחירת הפרויקט. עם זאת, מבחינת ההוראה האוניברסיטאית והלמידה הראשונית של משתמשים, סדרת F1 היא עדיין הבחירה הראשונה. נכון לעכשיו, ל- STM32 מסדרת F1 יש את כמות החומרים והמוצרים הגדולים ביותר בשוק.
לגבי התקנת סביבת הפיתוח STM32 SCM ושיטת הורדת התוכנה, לא אעשה את ההקדמה.
אתחול GPIO
בפרויקט זה השתמשנו בסך הכל ב- 4 GPIO, אחד מהם הוא סיכת הפלט PWM. הבה נבחן תחילה אתחול שלוש יציאות GPIO רגילות:
פונקציה זו מאתחלת את PB0 / PB1 / PB2 של STM32F103C8 כסיכת הפלט וקוראת לה מהפונקציה הראשית. לאחר האתחול, עלינו לקבל היגיון לשליטה במצב הפלט, ברמה הגבוהה והנמוכה של GPIO זה, ולכן כתבתי את הפונקציה להלן:
זוהי פונקציה שתוכל להבין באופן אינטואיטיבי בשם המשתנה.
אתחול יציאה טורית
חלק האתחול של היציאה הטורית נמצא ב- uart.c:
לאחר מכן התקשר אל uart_init בפונקציה הראשית כדי לאתחל את קצב השידור של היציאה הטורית של 115200. סיכות משתמשות ב- PA9/PA10
אתחול PWM
שלבים ספציפיים:
1. הגדר שעון RCC;
2. הגדר את שעון GPIO; יש להגדיר את מצב GPIO ל- GPIO_Model_AF_PP, או לפונקציית GPIO_PinRemapConfig () אם נדרש שינוי סיכה.
3. הגדר רגיסטרים רלוונטיים של טיימר TIMx;
4. הגדר את הרשם הקשור ל- PWM של טיימר TIMx;
א. הגדר מצב PWM
B. הגדר מחזור עבודה (חישוב נוסחה)
ג הגדר את קוטביות השוואת הפלט (שהוצג בעבר)
D. החשוב מכל, אפשר את מצב הפלט של TIMx והפעל את פלט ה- PWM של TIMx; לאחר השלמת ההגדרות הרלוונטיות, טיימר TIMx מופעל על ידי TIMx_Cmd () כדי להשיג פלט PWM. קראו לזה TIM3_PWM_Init מהפונקציה הראשית.
שלב 3: כתיבת קוד לוגי
הצגת הגדרת כתובת רכיב
לרכיבי התצוגה יש כתובות נפרדות, והנה כתבתי את כולן כהגדרות מאקרו: קליטה של נתונים סדרתיים
בהתבוננות במידע אודות תצוגת STONE, ניתן לראות שכאשר לוחצים על הכפתור, היציאה הסדרתית בתצוגה שולחת פרוטוקולים בפורמט המתאים אותם יכול MCU המשתמש לקבל ולנתח. כאשר לוחצים על הכפתור, היציאה הטורית בתצוגה שולחת תשעה בתים של נתונים, כולל נתוני משתמש. קליטת נתונים סדרתיים כתובה ב- Handler: הנתונים שהתקבלו מאוחסנים במערך "USART_RX_BUF". בפרויקט זה, אורך הקבלה קבוע. כאשר אורך הקבלה הוא יותר מ -9 בתים, קצה הקבלה נשפט.
לשלוט במצב ההחלפה של המנורה
בפונקציה הראשית כתבתי קוד לוגי כלשהו לשליטה על מצב המתג של המנורה: כפי שאנו יכולים לראות, הקוד קובע תחילה אם נתוני היציאה הטורקית מתקבלים, וכאשר נתוני היציאה הטורית מתקבלים, קובע איזה כפתור המשתמש לוחץ על מסך התצוגה. לכפתורים שונים בתצוגה יש כתובות שונות, שניתן לראות בתוכנת STONE TOOL: כאשר המשתמש לוחץ על כפתור "סלון", הביטים הרביעי והחמישי של הנתונים שנשלחים על ידי היציאה הטורית של מסך התצוגה הם כתובת הכפתור. מכיוון שהסיביה הרביעית מכל הלחצנים המוגדרים כאן היא 0x00, אנו יכולים לשפוט על איזה כפתור המשתמש לוחץ על ידי שיפוט ישיר של הנתונים של הסיביה החמישית. לאחר קבלת הכפתור שהמשתמש לחץ עליו, עלינו לשפוט את נתוני המשתמש שהתקבלו בעת לחיצה על הכפתור, המהווה את הספרה השמינית של הנתונים הנשלחים ממסך התצוגה. לכן, אנו מבצעים את הפקד הבא: כתוב את פרמטר כתובת הכפתור ונתוני המשתמש לפונקציה "Light_Contral" כדי לשלוט במצב ההדלקה של האור. ישות הפונקציה Light_Contral היא כדלקמן: כפי שאתה יכול לראות, אם כתובת הכפתור היא "סלון" ונתוני המשתמש הם "LightOn", אז סיכת PB0 של ה- MCU מוגדרת לפלט ברמה גבוהה, והאור דולק. שלושת הכפתורים האחרים דומים, אך לא אמשיך כאן.
פלט PWM
בממשק המשתמש שתוכנן על ידי, יש ווסת הזזה, המשמש לשליטה על בהירות האור של "חדר ילדים". MCU מיושם על ידי סיכת הפלט PWM. PWM היא PB5. הקוד הוא כדלקמן: מתאם הזזה מוגדר לערך מינימלי של 0x00 ולערך מרבי של 0x64. בעת הזזה, היציאה הטורית של מסך התצוגה תשלח גם כתובות ונתונים רלוונטיים ולאחר מכן תקבע את יחס החובה של פלט PWM על ידי קריאה לפונקציה הבאה:
שלב 4: רכישת חיישנים
בדף "חיישן" במסך התצוגה, ישנם ארבעה נתוני חיישן.
לנתונים יש גם כתובת אחסון בתצוגה, ואנו יכולים לשנות את התוכן האמיתי על ידי כתיבת נתונים לכתובות אלה דרך היציאה הטורית של ה- MCU.
כאן עשיתי יישום קוד פשוט:
נתוני התצוגה מתעדכנים כל 5 שניות, וכתבתי רק הדגמה פשוטה של פונקציית איסוף החיישנים הרלוונטית, כי אין לי את החיישנים האלה ביד.
בפיתוח פרויקטים אמיתי, חיישנים אלה עשויים להיות נתונים שנאספו על ידי ADC, או נתונים שנאספו על ידי ממשקי תקשורת IIC, UART ו- SPI. כל שעליך לעשות הוא לכתוב נתונים אלה לפונקציה המתאימה כערך ההחזרה.
שלב 5: אפקט הפעולה בפועל
מוּמלָץ:
בית חכם מאת Raspberry Pi: 5 שלבים (עם תמונות)
בית חכם של Raspberry Pi: יש כבר כמה מוצרים שהופכים את הדירה שלך לחכמה יותר, אך רובם פתרונות קנייניים. אבל למה אתה צריך חיבור לאינטרנט כדי להחליף אור עם הסמארטפון שלך? זו הייתה סיבה אחת בשבילי לבנות סמאר משלי
צור מערכת בקרת בית חכם ב- STONE HMI Disp: 23 שלבים
צור מערכת בקרת בית חכם ב- STONE HMI Disp: מבוא הפרויקט ההדרכה הבאה מראה לך כיצד להשתמש במודול תצוגת המגע STONE STVC050WT-01 ליצירת מערכת שליטה פשוטה במכשירי חשמל ביתיים
IoT Data Science PiNet לנתוני מסך חכם בזמן אמת, כלומר: 4 שלבים
IoT Data Science PiNet לנתוני מסך חכם בזמן אמת כלומר: תוכל להרכיב בקלות רשת IoT של תצוגות חכמות להדמיית נתונים כדי להעלות את מאמצי המחקר שלך במדעי הנתונים או בכל תחום כמותי. אתה יכול לקרוא ל " דחיפה " של המזימות שלך ללקוחות ממש מתוך
תיקון אבק מסך מסך Samsung I600/Blackjack: 4 שלבים
תיקון אבק מסך מסך I600/Blackjack: שלום לכולם, אם יש לכם (כמוני) Samsung SGH -i600 (או בלאק ג'ק באמריקה) והבחנתם באבק שנכנס ליחידה ונאסף בפינה השמאלית העליונה של המסך - אני חושב יש לי תיקון עבורך. לפני התמונה באישור אדיב מטרייסי
משחת מסך שומר מסך: 9 שלבים
משחת מסך שומר מסך: קופסה שמונעת משומר המסך שלך לפעול כאשר אתה מניח עליו את העכבר