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

חיבור עיבוד וארדואינו ובצע 7 מגזרים ובקר ממשק משתמש GUI: 4 שלבים
חיבור עיבוד וארדואינו ובצע 7 מגזרים ובקר ממשק משתמש GUI: 4 שלבים

וִידֵאוֹ: חיבור עיבוד וארדואינו ובצע 7 מגזרים ובקר ממשק משתמש GUI: 4 שלבים

וִידֵאוֹ: חיבור עיבוד וארדואינו ובצע 7 מגזרים ובקר ממשק משתמש GUI: 4 שלבים
וִידֵאוֹ: בעברית - איך מתחילים עם תכנות של ארדוינו ARDUINO 2024, נוֹבֶמבֶּר
Anonim
חיבור עיבוד וארדואינו ובצע 7 פלחים ובקר GUI של סרוו
חיבור עיבוד וארדואינו ובצע 7 פלחים ובקר GUI של סרוו

עבור כמה פרויקטים שעשית צורך להשתמש ב- Arduino מכיוון שהוא מספק פלטפורמת אב טיפוס קלה אך הצגת גרפיקה במסך הטורי של Arduino עשויה להימשך זמן רב ואף קשה לביצוע. אתה יכול להציג גרפים במסך הסידורי של Arduino אך גרפים הם לא הדבר היחיד שתצטרך להציג. כל האובייקטים האינטראקטיביים כמו מחוונים, לחצנים, תוכניות עם פלט דו -ממדי, תלת -ממדי, PDF או SVG ותוכל גם ליצור אנימציות בקלות. מצב התכנות המוגדר כברירת מחדל לעיבוד הוא Java, אך תוכל להחליף אותו ל- Android, p5.js, REPL, CoffeeScript ו- JavaScript. עם זאת, במדריך זה נשתמש במצב תכנות Java.

כל התוכן והקוד זמינים גם ב github שלי כאן.

שלב 1: שימוש ב- Processing.serial

קוד עיבוד

שתי שורות הקוד הראשונות יהיו

ייבוא עיבוד. סדרה.*; MyPort סידורי;

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

בעיבוד יש לנו התקנת void () ו- void draw () כאשר void הוא סוג ההחזרה של הפונקציה, תוכל גם לשנות אותו ל- int setup () ו- int draw () או סוג נתונים אחר שאתה אוהב, אך יהיה עליך להחזיר ערך בעל אותו סוג נתונים כמו סוג הנתונים שבו אתה משתמש לפני הפונקציות.

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

בהגדרת הריק () נאתחל את האובייקט myPort.

הגדרת בטל () {

גודל (800, 800);

myPort = סידורי חדש (זה, "COM18", 9600);

}

גודל הקו (800, 800); מגדיר את גודל המסך שהוא 800 פיקסלים על 800 פיקסלים.

מילת המפתח חדשה בשורה השנייה משמשת לשמירת מקום לאובייקט בזיכרון, הטענה שמדובר במשתנה התייחסות המתייחס לאובייקט הנוכחי. הטענה COM18 היא הנמל של Arduino מחובר, אנו זקוקים לזה מכיוון שנעביר את הנתונים באמצעות ממשק טורי. המספר 18 עשוי להיות שונה במקרה שלך, תוכל למצוא אותו תחת כלים> יציאה ב- Arduino IDE ו- 9600 הוא קצב השידור שאתה יכול לשנות זאת הן בארדואינו והן בעיבוד.

שלב 2: הבנת המעמד הסידורי

הבונה של סדרת

סידורי (אב, שם שם, baudRate, זוגיות, dataBits, stopBits)

טיעונים:

הורה: השתמש בדרך כלל ב"זה"

baudRate (int): 9600 היא ברירת המחדל

portName (String): שם היציאה (COM1 היא ברירת המחדל)

זוגיות (char): 'N' עבור אף אחד, 'E' עבור זוגיות, 'O' עבור אי -זוגיות, 'M' לסימן, 'S' עבור רווח ('N' היא ברירת המחדל)

dataBits (int): 8 היא ברירת המחדל

stopBits (float): 1.0, 1.5 או 2.0 (1.0 היא ברירת המחדל)

שיטות חשובות:

  1. myPort.available () - מחזירה את מספר הבייטים הזמינים.
  2. myPort.clear () - מרוקנת את המאגר ומסירה את כל הנתונים המאוחסנים שם.
  3. myPort.read () - מחזירה מספר בין 0 ל -255 עבור הבייט הבא שמחכה במאגר.
  4. myPort.readString () - מחזירה את כל הנתונים מהמאגר כמחרוזת או null אם אין שום דבר זמין.
  5. myPort.write ("test") - כותב בתים, תווים, ints, בתים , מחרוזות ליציאה הטורית.
  6. myPort.stop () - עוצר את הנחלת הנתונים ביציאה.

שלב 3: מחלקה סדרתית של ארדואינו

אין צורך לייבא את המחלקה הסדרתית בארדואינו לפני השימוש בה.

בארדואינו יש 2 פונקציות הנקראות setup () ו- loop () ההתקנה פועלת רק פעם אחת אך הלולאה פועלת מספר פעמים. ב- setup () עלינו לכתוב השתמש בשיטת begin () כדי להתחיל את התקשורת הטורית. בארדואינו בניגוד לעיבוד אין צורך להזכיר את הפורט כטיעוני השיטה begin () מכיוון שכבר אנו מציינים את היציאה תוך העלאת הסקיצה בארדואינו.

אז ההתקנה () תיראה כך:

הגדרת בטל () {

Serial.begin (9600); // התחל את התקשורת הסדרתית

}

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

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

כדי לבדוק אם יש נתונים זמינים נשתמש בשיטת Serial.available (). אם הוא מחזיר ערך גדול מ -0 - נתונים מסוימים זמינים.

אז חלק הלולאה () ייראה כך:

לולאת חלל () {

אם (Serial.available ()> 0) {// אם יש נתונים מסוימים ביציאה הטורית

char char = Serial.read (); // קרא את הערך

// אם הצהרות או החלפת מקרה

}

}

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

שלב 4: בנה בקר פלחי GUI 7

בנה בקר פלחי GUI 7
בנה בקר פלחי GUI 7
בנה בקר פלחי GUI 7
בנה בקר פלחי GUI 7
בנה בקר פלח GUI 7
בנה בקר פלח GUI 7

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

מספרי סיכה

7 מקטעים (בסדר אלפביתי) מפנים את התמונה

א - סיכה דיגיטלית 2

ב - סיכה דיגיטלית 3

c - סיכה דיגיטלית 4

d - סיכה דיגיטלית 5

e - סיכה דיגיטלית 6

f - סיכה דיגיטלית 7

g - סיכה דיגיטלית 8

dp - סיכה דיגיטלית 9

כל התוכן והקוד זמינים גם ב github שלי כאן

מוּמלָץ: