תוכן עניינים:
- שלב 1: עיצוב ה- PCB
- שלב 2: עיצוב הפרוטוקול
- שלב 3: עיצוב הקושחה
- שלב 4: ממשק באמצעות Flowcode
- שלב 5: שיטות ממשק אחרות
- שלב 6: מוצר מוגמר
וִידֵאוֹ: לוח ממשק אוניברסלי מוטבע - בקרת USB/Bluetooth/WIFI: 6 שלבים
2024 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2024-01-30 09:15
לעתים קרובות אני מוצא שאני יוצר ספריות עבור מודולים מוטבעים חדשים מאפס בהתבסס על גליון הנתונים של המכשיר. ביצירת הספרייה אני מוצא שאני נתקע במעגל של קוד, אוסף, מתכנת ובודק כאשר אני מבטיח שהדברים פועלים והם נטולי באגים. לעתים זמני הידור והתוכנית יכולים להיות ארוכים בהרבה מהזמן הנדרש לעריכת הקוד ולכן דרך לנתק את השלבים הללו בעת הפיתוח תהיה שימושית מאוד.
לעתים קרובות גם אני מוצא שאני רוצה ממשק מודול מוטבע עם מחשב. אם למודול אין חיבור USB באופן ספציפי, לרוב אתה צריך לקנות ממיר USB במחיר מופקע שיעשה עבודה אחת כמו SPI או I2C בלבד.
מסיבות אלה החלטתי ליצור את לוח הממשק האוניברסלי. הוא נועד לאפשר תקשורת קלה מבוססת מחשב עם מודולים מוטבעים.
תכונות הממשק המשובץ של הלוח שהחלטתי עליו כוללות.
- קלט/פלט דיגיטלי
- I2C
- SPI
- UART
- PWM
- מנוע סרוו
- קלט ADC
- פלט DAC
כל אלה ניתנים לשימוש באופן עצמאי לחלוטין.
ניתן לשלוט בלוח הממשק באמצעות חיבור USB למחשב האישי, אך יש לו גם חיבורי מודול WIFI או Bluetooth אופציונליים המאפשרים שימוש בלוח מרחוק או בתרחיש מסוג IoT.
על ידי שימוש בכותרות SIL סטנדרטיות בגודל 2.54 מ מ ניתן לחבר ישירות כבלי דופונט נקביים בין הלוח לבין המודול המשובץ המאפשר חיבורים מהירים, אמינים והלחמה.
חשבתי גם להוסיף דברים כמו CAN, LIN, H-bridge וכו 'אבל אלה יכולים לבוא מאוחר יותר עם גרסת v2.
שלב 1: עיצוב ה- PCB
בעת עיצוב ה- PCB אני אוהב לנסות ולשמור על דברים פשוטים ככל האפשר. כאשר אתה עומד לבנות לוחות בעבודת יד חשוב להוסיף רק רכיבים כאשר הם עושים מטרה מסוימת ולהשתמש בכמה שיותר תכונות פנימיות של המיקרו -בקר.
כשהסתכלתי על ספק האלקטרוניקה המועדף עלי מצאתי שבב שנוח לי עם התכונות שחיפשתי והמחיר שלו היה סביר. השבב שנחתתי עליו היה PIC18F24K50.
עם 23 סיכות הקלט/פלט הזמינות זה איפשר לי את התכונות האלה
- קלט/פלט Digtal
- I2C
- SPI
- UART
- PWM x 2
- מנוע סרוו x 6
- קלט ADC x 3
- פלט DAC x 1
- קלט/פלט מונע מ- 5V או 3V3
- נורית סטטוס
חסרון אחד של ה- IC שבחרתי הוא שיש לו רק ציוד היקפי אחד של UART ולכן שימוש בשיטת השליטה ב- Bluetooth או Wifi יפסיק אותך להשתמש בחיבור UART.
בתמונות למעלה מוצגות הסכימה וה- PCB המוגמרים.
שלב 2: עיצוב הפרוטוקול
השלב הראשון בעיצוב הפרוטוקול הוא להחליט מה בדיוק תצטרך את הלוח כדי שתוכל לעשות. פירוק העניינים מוסיף רמת שליטה טובה יותר ואילו סירוק הדברים מפשט את הממשק ומפחית את תעבורת הקומביס בין הלוח למחשב. זה משחק איזון וקשה לשכלול.
עבור כל פונקציה של הלוח עליך לציין כל פרמטר והחזרה. לדוגמה לפונקציה לקריאת קלט ADC עשויה להיות פרמטר שיציין איזו קלט לדגימה וערך החזרה המכיל את התוצאה.
בעיצוב שלי הנה רשימת הפונקציות שרציתי לכלול:
-
קלט/פלט דיגיטלי
- SetPin (PinNumber, מדינה)
- State = GetPin (PinNumber)
-
SPI
- אתחול (מצב SPI)
- DataIn = העברה (DataOut)
- ControlChipSelect (ערוץ, מדינה)
- SetPrescaler (תעריף)
-
I2C
- אתחול ()
- התחל ()
- אתחול ()
- תפסיק ()
- SlaveAck = שלח (DataOut)
- DataIn = קבל (אחרון)
-
UART
- אתחול ()
- TX Byte (DataOut)
- BytesAvailable = ספירת RX ()
- DataIn = RX Byte ()
- SetBaud (באוד)
-
PWM
- הפעל (ערוץ)
- השבת (ערוץ)
- SetFrequency (ערוץ, תדר)
- GetMaxDuty (Duty)
- SetDuty (חובה)
-
סרוו
- הפעל (ערוץ)
- השבת (ערוץ)
- SetPosition (ערוץ, מיקום)
-
ADC
ADCsample = דוגמה (ערוץ)
-
DAC
- לְאַפשֵׁר
- השבת
- SetOutput (מתח)
-
וויי - פיי
- SetSSID (SSID)
- הגדר סיסמה (סיסמה)
- Status = CheckConnectionStatus ()
- IP = GetIPAddress ()
פרמטרים מוצגים בסוגריים והחזרים מוצגים לפני סמל השווים.
לפני שאני מתחיל לקודד אני מקצה לכל פונקציה קוד פקודה החל מ- 128 (בינארי 0b10000000) ועובד כלפי מעלה. אני מתעד את הפרוטוקול במלואו כדי לוודא שברגע שהראש שלי נמצא בקוד יש לי מסמך נחמד שאפשר לחזור אליו. מסמך הפרוטוקול המלא לפרויקט זה מצורף וכולל קודי פקודה נכנסים ורוחבי סיביות.
שלב 3: עיצוב הקושחה
לאחר הקמת הפרוטוקול זהו מקרה של יישום הפונקציונליות על החומרה.
אני מאמצת גישה פשוטה למדידת מכונה בעת פיתוח מערכות עבדים כדי לנסות ולמקסם את הפקודה הפוטנציאלית ותפוקת הנתונים תוך שמירה על הקושחה פשוטה להבנה וניפוי באגים. במקום זאת תוכל להשתמש במערכת מתקדמת יותר כגון Modbus אם אתה זקוק לאינטראקציה טובה יותר עם מכשירים מחוברים אחרים, אך הדבר מוסיף תקורה שתאט את העניינים.
מכונת המדינה מורכבת משלוש מצבים:
1) מחכה לפקודות
2) קבלת פרמטרים
3) השיב
שלושת המדינות מתקיימות באופן הבא:
1) אנו עוברים על הבייטים הנכנסים במאגר עד שיש לנו בתים המכילים את הסיביות המשמעותיות ביותר. ברגע שאנו מקבלים בתים כאלה אנו בודקים אותו מול רשימת פקודות ידועות. אם אנו מוצאים התאמה, אנו מקצים את מספר הבייטים של הפרמטרים ומחזירים את הבייטים כך שיתאימו לפרוטוקול. אם אין בתים של פרמטרים, נוכל לבצע את הפקודה כאן או לדלג למצב 3 או להפעיל מחדש מצב 1. אם יש בתים של פרמטרים, אנו עוברים למצב 2.
2) אנו עוברים את הבייטים הנכנסים ושומרים אותם עד שאחסנו את כל הפרמטרים. ברגע שיש לנו את כל הפרמטרים אנו מבצעים את הפקודה. אם יש בתים חזרה אז אנחנו עוברים לשלב 3. אם אין בתים להחזרה לשלוח אז אנחנו חוזרים לשלב 1.
3) אנו עוברים על הבייטים הנכנסים ועל כל בייט אנו מחליפים את בת ההד עם בית חזרה תקף. לאחר ששלחנו את כל בתים החזרה אנו חוזרים לשלב 1.
השתמשתי ב- Flowcode לעיצוב הקושחה מכיוון שהיא מדגימה בצורה חזותית את מה שאני עושה. אותו הדבר יכול להיעשות באותה מידה בארדואינו או בשפות תכנות מובנות אחרות.
השלב הראשון הוא יצירת תקשורת עם המחשב האישי. לשם כך יש להגדיר את המיקרו להפעלה במהירות הנכונה ועלינו להוסיף קוד להנעת ציוד ההיקף USB ו- UART. ב- Flowcode זה קל כמו גרירה לפרויקט רכיב USB Serial ורכיב UART מתפריט רכיבי Comms.
אנו מוסיפים הפרעה ומאגר RX כדי לתפוס פקודות נכנסות ב- UART ואנו בודקים באופן קבוע את ה- USB. לאחר מכן נוכל לעבד את החוצץ בזמן הפנאי שלנו.
מצורפים פרויקט Flowcode וקוד C שנוצר.
שלב 4: ממשק באמצעות Flowcode
סימולציית Flowcode היא עוצמתית מאוד ומאפשרת לנו ליצור רכיב לשיחה עם הלוח. ביצירת הרכיב אנו יכולים כעת פשוט לגרור את הרכיב לפרויקט שלנו ולגרום מיד לפונקציות הלוח. כבונוס נוסף ניתן להשתמש בסימולציה בכל רכיב קיים שיש לו SPI, I2C או UART היקפי וניתן להעביר את נתוני ה- comms ללוח הממשק באמצעות רכיב מזרק. התמונות המצורפות מציגות תוכנית פשוטה להדפסת הודעה לתצוגה. נתוני התקשורת הנשלחים באמצעות לוח הממשקים לחומרת התצוגה בפועל ולהגדרת הרכיבים עם רכיבי I2C Display, I2C Injector ו- Interface Board.
מצב SCADA החדש ל- Flowcode 8.1 הוא בונוס נוסף מוחלט בכך שנוכל לקחת תוכנית שעושה משהו בסימולטור Flowcode ולייצא אותו כך שהוא יפעל לבד בכל מחשב ללא בעיות רישוי. זה יכול להיות נהדר לפרויקטים כמו אסדות בדיקה או אשכולות חיישנים.
אני משתמש במצב SCADA זה כדי ליצור את כלי תצורת WIFI שניתן להשתמש בו כדי להגדיר את ה- SSID והסיסמה, כמו גם לאסוף את כתובת ה- IP של המודול. זה מאפשר לי להגדיר הכל באמצעות חיבור ה- USB ולאחר מכן להעביר לחיבור לרשת WIFI ברגע שהעניינים פועלים.
מצורפות כמה פרויקטים לדוגמה.
שלב 5: שיטות ממשק אחרות
בנוסף ל- Flowcode, אתה יכול להשתמש בשפת התכנות המועדפת עליך לתקשר עם לוח הממשק. השתמשנו ב- Flowcode מכיוון שהיתה בו ספריית חלקים שכבר כללה אותם נוכל להפעיל מייד אך זה חל גם על שפות רבות אחרות.
להלן רשימת שפות ושיטות לתקשורת עם לוח הממשק.
פייתון - שימוש בספרייה טורית כדי להזרים נתונים ליציאת COM או כתובת IP
Matlab - שימוש בפקודות File כדי להזרים נתונים ליציאת COM או כתובת IP
C ++ / C# / VB - באמצעות קובץ DLL שנכתב מראש, גישה ישירה ליציאת COM או ל- API של Windows TCP / IP
Labview - שימוש בקובץ DLL שנכתב מראש, הרכיב VISA Serial או רכיב TCP/IP
אם מישהו רוצה לראות את השפות שלעיל מיושמות, אנא יידע אותי.
שלב 6: מוצר מוגמר
המוצר המוגמר יהיה כנראה תכונה בולטת בערכת הכלים המשובצת שלי במשך שנים רבות. זה כבר עזר לי לפתח רכיבים לתצוגות וחיישנים שונים של Grove. עכשיו אני יכול לקבל את הקוד לגמרי ממוסמר לפני שאשתמש בכל אוסף או תוכנות שיפוץ.
אפילו חילקתי כמה לוחות לעמיתים כדי שיוכלו לשפר גם את זרימת העבודה שלהם ואלה התקבלו היטב.
תודה שקראתם את המדריך שלי, אני מקווה שמצאתם אותו שימושי ובתקווה שהוא יעורר אתכם ליצור כלים משלכם כדי להאיץ את הפרודוקטיביות שלכם.
מוּמלָץ:
תחילת העבודה עם ממשק חיישן I2C ?? - ממשק MMA8451 שלך באמצעות ESP32s: 8 שלבים
תחילת העבודה עם ממשק חיישן I2C ?? - ממשק ה- MMA8451 שלך באמצעות ESP32s: במדריך זה, תלמד הכל על איך להתחיל, להתחבר ולהשיג מכשיר I2C (מאיץ) שעובד עם בקר (Arduino, ESP32, ESP8266, ESP12 NodeMCU)
לוח לוח לוח: 7 שלבים
לוח לוח: לפני זמן רב מאוד מצאתי כותב NC של Rotring ללא הבקר. שכחתי לגמרי מה אני רוצה לעשות עם זה, אבל בשבוע שעבר מצאתי אותו שוב ואני רוצה להכין ממנו מגש לוח. כתב היד האישי שלי על הלוח הוא לא
ממשק ממשק קל ליישם -- תצוגת OLED עם ג'ויסטיק ולחצנים: 6 שלבים
ממשק ממשק קל ליישם || תצוגת OLED עם ג'ויסטיק ולחצנים: מודול זה כולל צג OLED עם שני כפתורים, ג'ויסטיק 5 כיוונים ומד תאוצה 3 צירים. זה שימושי בהגדרת ממשק משתמש לפרויקט. היי, מה קורה חבר'ה? אקרש כאן מ- CETech. היום אנו נסתכל על מודול הכל-באחד, אשר
ממשק לוח מקשים עם 8051 ומציג מספרי לוח מקשים ב -7 פלחים: 4 שלבים (עם תמונות)
ממשק לוח מקשים עם 8051 והצגת מספרי לוח מקשים ב -7 פלחים: במדריך זה אני הולך לספר לך כיצד נוכל לממשק לוח מקשים עם 8051 ולהציג מספרי לוח מקשים בתצוגת 7 פלחים
כיצד לשדרג את הקושחה על לוח PCB אוניברסלי: 4 שלבים
כיצד לשדרג את הקושחה במחשב אוניברסלי PCB: פרויקט ה- PCB האוניברסלי (בקיצור UPCB) החל לאפשר בקר משחק אחד, במיוחד מקלות לחימה, במספר קונסולות שונות ככל האפשר. מידע על הפרויקט ניתן למצוא בשרשור הבא ב- Shoryuken.com