MATLAB היא תוכנה מגוונת שיכולה לשמש למגוון רחב של יישומים. בהדרכות קודמות של MATLAB, הסברנו כיצד להשתמש ב- MATLAB כדי לשלוט על מנוע DC, מנוע סרוו ומכשירים ביתיים. כאן במדריך זה נלמד כיצד להשתמש ב- MATLAB לתקשורת סדרתית. לקצה המקבל של תקשורת טורית, אנחנו כאן משתמשים בארדואינו.
ישנן שתי דרכים להתקין תקשורת טורית בין MATLAB לארדואינו, האחת משתמשת בחלון הפקודה והשנייה באמצעות MATLAB GUI. קוד הארדואינו לשתי השיטות יישאר זהה. אם אתה חדש ב- MATLAB, מומלץ להתחיל בתכנית מצמוץ LED פשוטה עם MATLAB וללמוד את המינוח הבסיסי המשמש ב- MATLAB.
רכיבים נדרשים
- מחשב נייד מותקן של MATLAB (העדפה: גרסאות R2016a ומעלה)
- ארדואינו UNO
- נורית LED (בכל צבע)
- נגד (330 אוהם)
תרשים מעגל
תרשים המעגל לעיל יישאר זהה בשתי הדרכים ליצור תקשורת טורית בין MATLAB לארדואינו.
תקשורת טורית באמצעות חלון הפקודה MATLAB
זוהי השיטה הפשוטה להתקנת תקשורת טורית בין Arduino ו- MATLAB. כאן פשוט נשלח את הנתונים מ- MATLAB לארדואינו באופן סדרתי באמצעות חלון הפקודה ואז ארדואינו קורא את הנתונים הטוריים הנכנסים. לאחר מכן ניתן להשתמש בנתונים המועברים באופן סדרתי כדי לשלוט בכל מה שקשור לארדואינו. כאן חיברנו נורית LED לארדואינו, שתופעל וכבה על פי הנתונים שהתקבלו סדרתי על ידי הארדואינו.
ראשית, העלה את קוד הארדואינו הנתון ב- Arduino UNO ואז התחל קידוד בחלון עורך MATLAB. כדי לפתוח סקריפט עורך חדש לחץ על ' סקריפט חדש' כפי שמוצג בתמונה למטה:
לאחר מכן, העתק והדבק את קוד MATLAB המלא שלהלן בחלון העורך לתקשורת סדרתית בין MATLAB לארדואינו.
קוד MATLAB% לתקשורת סדרתית בין Arduino ו- MATLAB x = סידורי ('COM18', 'BAUD', 9600); fopen (x); ללכת = נכון; בזמן ללכת a = קלט ('לחץ על 1 כדי להדליק את נורית ההפעלה & 0 כדי לכבות:'); fprintf (x, a); אם (a == 2) go = false; סוף סוף
בקוד הנתון, הפקודה למטה משמשת להגדרת התקשורת הטורית ב- MATLAB. ודא שמספר יציאת ה- com הוא מספר היציאה שעליו מחובר Arduino וקצב השידור צריך להיות מוגדר זהה בשני הקודים של Arduino ו- MATLAB.
x = סדרתי ('COM18', 'BAUD', 9600);
כדי לפתוח יציאה טורית השתמש בפקודה הבאה, fopen (x);
הפקודה למטה משמשת לשליחת נתונים מ MATLAB לארדואינו באופן סדרתי, כאשר x מיועד לשיחות סדרתיות ו- a הוא הערך שהוזן על ידי המשתמש.
fprintf (x, a);
יש לנו שימוש בזמן פונקציה ליצירת לולאה אינסופית ובכל פעם שהמשתמש יזין את המספר '2' הלולאה תישבר.
בזמן ללכת a = קלט ('לחץ על 1 כדי להדליק את נורית ההפעלה & 0 כדי לכבות:'); fprintf (x, a); אם (a == 2) go = false; סוף סוף
לאחר השלמת קידוד סקריפט העורך של MATLAB לחץ על ' הפעל ' כדי להפעיל את התוכנית שלך כפי שמוצג בתמונה למטה,
MATLAB לוקח מספר שניות לעיבוד הקוד ולהתחיל את התקשורת הטורית, המתן עד ש- MATLAB תציג את ההודעה 'BUSY' בפינה השמאלית התחתונה של מסך התוכנה, כפי שמוצג בתמונה למטה.
כעת תראה את חלון הפקודה לשליחת קלט המשתמש, הגדרנו את הודעת ברירת המחדל, 'לחץ על 1 כדי להדליק את נורית ה- LED ועל 0 כדי לכבות:'
שלח '1' להפעלת הנורית, '0' כדי לכבות את הנורית ו- '2' כדי להפסיק את הפעולה. אתה יכול להגדיר כל מספר לכל משימה, כל שעליך לעשות הוא פשוט לשנות את קוד הארדואינו בהתאם. קוד ארדואינו מלא ניתן בסוף.
אתה יכול לבדוק את הסרטון למטה כדי להבין את התהליך המלא של שליחת נתונים סידוריים מ- MATLAB לארדואינו באמצעות חלון הפקודה.
תקשורת טורית באמצעות MATLAB GUI
לצורך הדגמת התקשורת הסדרתית באמצעות MATLAB GUI, ניצור שני כפתורים גרפיים באמצעות MATLAB להפעלה וכיבוי של ה- LED המחובר לארדואינו. הנתונים יישלחו באופן סדרתי מ- MATLAB לארדואינו בלחיצה על כפתורים אלה כדי להדליק ולכבות את הנורית. Arduino יכיל את הקוד לקבלת נתונים סדרתיים מ- MATLAB ושליטה על ה- LED בהתאם לנתונים הסדרתיים שהתקבלו. קוד הארדואינו יישאר זהה לקודמו, ההבדל היחיד הוא שבעבר שלחנו נתונים סידוריים '1' ו- '0' דרך חלון הפקודה של MATLAB, ועכשיו אותם נתונים יישלחו בעת הצמדה על שני כפתורים גרפיים.
להפעלת ה- GUI, הקלד את הפקודה למטה בחלון הפקודה
להנחות
ייפתח חלון קופץ ואז בחר ממשק משתמש חדש ריק כמוצג בתמונה למטה,
בחר כעת שני לחצני כפתור להפעלת וכיבוי הנורית, כפי שמוצג להלן,
כדי לשנות את גודל או לשנות את צורת הכפתורים, פשוט לחץ עליו ותוכל לגרור את פינות הכפתור. על ידי לחיצה כפולה על כפתור הלחיצה תוכלו לשנות את הצבע, המחרוזת והתג של אותו כפתור מסוים. התאמנו שני לחצנים כפי שמוצג בתמונה למטה.
אתה יכול להתאים אישית את הכפתורים לפי בחירתך. כעת כשאתה שומר את זה, ייווצר קוד בחלון העורך של MATLAB. ערוך קוד זה בהתאם למשימה שברצונך לבצע על ידי ארדואינו באמצעות ממשק המשתמש MATLAB. אז למטה ערכנו את קוד MATLAB. תוכל ללמוד עוד על חלון פקודה, חלון עורך וכו 'במדריך תחילת העבודה עם MATLAB.
קוד MATLAB מלא לקביעת תקשורת טורית בין MATLAB לארדואינו ניתן בסוף פרויקט זה. יתר על כן אנו כוללים את קובץ ה- GUI (.fig) ואת קובץ הקוד (.m) כאן להורדה (לחץ לחיצה ימנית על קישור ואז בחר 'שמור קישור כ…'), באמצעותו תוכל להתאים אישית את הכפתורים בהתאם לדרישתך. להלן כמה שינויים שעשינו לשליטה על ה- LED המחובר לארדואינו.
העתק והדבק את הקוד שלהלן בשורה מס '. 74 כדי להגדיר את היציאה הטורית ואת קצב השידור.
נקה הכל; גלובלי x; x = סדרתי ('COM18', 'BAUD', 9600); % וודא שקצב השידור ויציאת ה- COM זהים לזה ב- Arduino IDE fopen (x);
איפה, fopen (x) משמש לפתיחת היציאה הטורית לתקשורת טורית.
כשתגלול מטה, תראה שיש שתי פונקציות שנוצרו עבור שני הכפתורים בממשק המשתמש. כעת כתוב את הקוד בשתי הפונקציות בהתאם למשימה שברצונך לבצע בלחיצה.
בשנת LED-ON הפונקציה של הכפתור, להעתיק ולהדביק את קוד מתחת לפני תום הפונקציה להדליק את הנורית. כפי שאתה רואה בקוד שלהלן, fprintf (x, 1) משמש לשליחת נתונים סדרתיים מ- MATLAB לסידורי Arduino. כאן אנו שולחים '1' לסדרת Arduino ואם תבדוק את קוד Arduino, תגלה ש Arduino תדליק את ה- LED על ידי הפיכת הפין ה -13 שלו לגובה HIGH, כאשר הוא מקבל '1' ביציאה הטורית שלו.
גלובלי x; fprintf (x, 1);
בשנת LED-OFF הפונקציה של הכפתור, להעתיק ולהדביק את קוד מתחת לפני תום הפונקציה לכבות את הנורית. כפי שאתה רואה בקוד שלהלן, fprintf (x, 0) משמש לשליחת נתונים סדרתיים מ- MATLAB לסידורי Arduino. בחלק זה אנו שולחים '0' לסדרת הארדואינו ואם תבדוק את קוד הארדואינו תגלה שארדואינו יכבה את נורית ה- LED על ידי הפיכת הפין ה -13 שלו ל- LOW כאשר הוא מקבל '0' ביציאה הטורית.
גלובלי x; fprintf (x, 0);
לאחר השלמת קידוד MATLAB GUI והתקנת החומרה על פי תרשים המעגל, פשוט לחץ על כפתור ההפעלה כדי להריץ את הקוד הערוך בקובץ.m.
MATLAB עשויה לקחת מספר שניות להגיב, אל תלחץ על שום כפתור GUI עד ש MATLAB מראה אינדיקציה BUSY, שאותה תוכל לראות בפינה השמאלית התחתונה של המסך כמוצג למטה
כאשר הכל מוכן, לחץ על כפתור LED-ON ו- LED-OFF כדי להדליק ולכבות את ה- LED. כאשר אתה לוחץ על כפתור ה- LED-ON , הסיכה ה -13 של Arduino הולכת ל- HIGH ו- LED המחובר ל- PIN זה מתחיל להאיר, וכאשר אתה לוחץ על כפתור ה- LED-OFF , ה- PIN ה -13 של Arduino הולך LOW מה שהופך את ה- LED לכיבוי.
אתה יכול לבדוק את הסרטון למטה כדי להבין את התהליך המלא של שליחת נתונים סידוריים מ- MATLAB ל- Arduino באמצעות MATLAB GUI.