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

Arduino IDE: יצירת לוחות מותאמים אישית: 10 שלבים
Arduino IDE: יצירת לוחות מותאמים אישית: 10 שלבים

וִידֵאוֹ: Arduino IDE: יצירת לוחות מותאמים אישית: 10 שלבים

וִידֵאוֹ: Arduino IDE: יצירת לוחות מותאמים אישית: 10 שלבים
וִידֵאוֹ: Control 32 Servo over Wi-Fi using ESP32 and PCA9685 via desktop or mobile phone V5 2024, יולי
Anonim
Arduino IDE: יצירת לוחות מותאמים אישית
Arduino IDE: יצירת לוחות מותאמים אישית
Arduino IDE: יצירת לוחות מותאמים אישית
Arduino IDE: יצירת לוחות מותאמים אישית
Arduino IDE: יצירת לוחות מותאמים אישית
Arduino IDE: יצירת לוחות מותאמים אישית

במהלך ששת החודשים האחרונים ביליתי הרבה זמן בהעברת ספריות שונות ללוח Robo HAT MM1 שפותח על ידי רובוטיקס מאסטרס. זה הוביל לגלות הרבה על הספריות האלה, איך הן פועלות מאחורי הקלעים והכי חשוב - מה לעשות כדי להוסיף לוחות חדשים בעתיד.

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

היום נסתכל על פלטפורמת הארדואינו. יש לו יותר מ- 700, 000 גרסאות לוח שונות ברחבי העולם והיא אחת מפלטפורמות האלקטרוניקה הפופולריות ביותר לחינוך, לתעשייה ולייצרנים.

יכולתי למצוא מקורות מידע מוגבלים מאוד כיצד לעשות זאת לאחר חיפושים רבים של Google. אז חשבתי שאכתוב על איך שעשיתי את זה בפירוט.

מתחילים!

שלב 1: לפני שתתחיל

לפני שתתחיל בהעברת ספריית תוכנה או קושחה ללוח שלך, עליך לדעת כמה נקודות מפתח אודות הטכנולוגיה שבה אתה משתמש ולהיות מסוגל לענות על השאלות להלן.

  1. באיזה מעבד אתה משתמש?
  2. באיזו ארכיטקטורה היא משתמשת?
  3. האם יש לי גישה לגליון הנתונים של המיקרו -מעבד הזה?
  4. האם קיים לוח דומה בשוק המשתמש באותו מיקרו -מעבד?

אלה חשובים מאוד. זה ישפיע על היבטים רבים של האופן שבו אתה ניגש לתהליך הפיתוח.

לוחות Arduino משתמשים בדרך כלל במספר מצומצם של סוגי מעבדים וארכיטקטורות. הנפוץ ביותר הוא טווח ATMEGA באמצעות ארכיטקטורת AVR (Arduino Uno). ישנם דורות חדשים יותר של Arduinos שהופכים נפוצים יותר באמצעות מעבדי SAMD (ARM) ומעבדים חזקים אחרים. לכן חשוב לבדוק באיזה מהם אתה משתמש.

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

ברגע שיש לך את כל המידע הדרוש לך על המעבד שבו אתה משתמש, תוכל להתחיל להסתכל על התוכנה ולשנות אותה כך שתתאים ללוח המותאם אישית שלך.

שלב 2: סקירה כללית

החלק הכי קשה בכל פרויקט הוא למצוא נקודת התחלה טובה. זה לא שונה. התאמצתי למצוא הדרכות טובות עם מספיק פרטים על איך ליצור לוחות מותאמים אישית עבור Arduino. רוב ההדרכות מראות לך כיצד 'להוסיף לוח מותאם אישית' אך לא כיצד 'ליצור לוח מותאם אישית'. להלן סיכום קצר של המעורבים.

  1. הורד הגדרות לוח קיימות והעתק
  2. עדכון קבצי הגדרות (variant.h, varient.cpp)
  3. צור כניסה ללוח (board.txt)
  4. עדכון גירסת לוח (platform.txt)
  5. הכנה להתקנה (json)
  6. התקנת לוח ב- Arduino IDE

כל שלב יוסבר בפירוט להלן. יתקיים גם דיון מקיף על האופן שבו כל קובץ מתקיים ביניהם כדי לעזור להבהיר כיצד הכל עובד מאחורי ה- Arduino IDE.

להדרכה זו אראה לך כיצד ליצור לוח מותאם אישית עבור מעבדי SAMD. ליתר דיוק, SAMD21G18A - שהוא המיקרו -מעבד המשמש על לוח Robo HAT MM1 אותו העברתי.

אני גם מניח שכבר הורדת את Arduino IDE 1.8 ואילך. השתמשתי ב- Arduino 1.8.9 בזמן הכתיבה.

שלב 3: הורדת לוחות קיימים

הורדת לוחות קיימים
הורדת לוחות קיימים
הורדת לוחות קיימים
הורדת לוחות קיימים
הורדת לוחות קיימים
הורדת לוחות קיימים

השלב הראשון הוא הורדת הלוח הקרוב ביותר של Arduino המתאים ללוח שלך. עבור לוחות SAMD, זהו ה- Arduino Zero.

מאז Arduino IDE 1.6, השיטה להורדת לוחות חדשים לסביבה הייתה על ידי הוספת קבצי JSON מיוחדים שמפתחי תוכנה מספקים ולאחר מכן התקנת הלוחות המותאמים אישית באמצעות "מנהל הלוחות". גרסאות קודמות של Arduino IDE השתמשו בשיטה אחרת שלא נדון בה היום. אנו ניצור קובץ JSON משלנו בהמשך הדרכה זו, אולם עלינו להוסיף את לוח Arduino Zero בשיטה זו תחילה.

למזלנו, הלוח שברצוננו להוריד אינו זקוק לקובץ JSON מכיוון שקובץ ה- JSON מצורף מראש עם Arduino IDE - לכן עלינו להתקין את הלוח מ"מנהל לוחות ".

לשם כך, עבור אל "כלים" ולאחר מכן הרחב את תפריט "לוח". בראש התפריט "לוח" יופיע "מנהל הלוחות". לחץ על אפשרות תפריט זו כדי להציג את מנהל הלוחות.

(ראה תמונות)

כאשר מנהל הלוחות ייפתח, הוא יסתכל על כל קבצי JSON שהוא שמר ב- Arduino IDE ולאחר מכן יוריד את ההגדרות מהקובץ. אתה אמור לראות רשימה ארוכה של לוחות Arduino זמינים שתוכל להתקין.

(ראה תמונות)

אנו מעוניינים רק בלוח "לוחות SAMD Arduino (32 סיביות ARM Cortex-M0+)" עבור הדרכה זו, אך תוכל לסטות ולהתקין את הלוח הדרוש לך בשלב זה. אנא חפש והתקן את לוח "לוחות SAMD Arduino (32 סיביות ARM Cortex-M0+)". ניתן לעשות זאת על ידי לחיצה על הטקסט מהרשימה ולאחר מכן על כפתור "התקן" בצד ימין שיופיע לאחר לחיצה על הטקסט. ייקח כמה דקות להתקין.

לפרטים נוספים התקנת לוחות חדשים: ל- Adafruit יש כאן הדרכה מצוינת המסבירה כיצד להתקין לוחות Feature M0 שלהם.

כעת, לאחר שהותקנו קובצי הלוח, נוכל להעתיק אותם כך שניתן יהיה לשנות אותם ללוח המותאם אישית שלך.

שלב 4: איתור והעתקת קבצי לוח

איתור והעתקת קבצי לוח
איתור והעתקת קבצי לוח
איתור והעתקת קבצי לוח
איתור והעתקת קבצי לוח
איתור והעתקת קבצי לוח
איתור והעתקת קבצי לוח

עבור Windows קבצי הלוח נמצאים (זכור לשנות שם משתמש לשם המשתמש שלך):

C: / משתמשים / שם משתמש / AppData / Local / Arduino15 / חבילות

בתיקיה זו, עליך להעמיק מעט כדי להגיע לקבצים אותם עליך להעתיק כדי לשנות. להדרכה זו נלך ונקבל את קבצי לוח Arduino Zero אשר יותקנו ל- (זכור לשנות שם משתמש לשם המשתמש שלך):

C: / משתמשים / שם משתמש / AppData / Local / Arduino15 / חבילות / arduino / hardware / samd

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

התיקייה מכילה מספר תיקיות וספריות. אלה בהם נשתמש מצויינים בטבלה בצילום המסך.

שלב 5: יצירת וריאנט

יצירת וריאנט
יצירת וריאנט
יצירת וריאנט
יצירת וריאנט
יצירת וריאנט
יצירת וריאנט
יצירת וריאנט
יצירת וריאנט

כעת אנו מוכנים להתחיל ליצור ערך לוח מותאם אישית. במדריך זה אשתמש ב- Robo HAT MM1 כדוגמה. כפי שצוין לעיל, זהו לוח מבוסס SAMD המתאים ביותר לבניין Arduino Zero.

נתחיל בכניסה לתיקיית הגרסאות והעתקת התיקייה arduino_zero הממוקמת בה. נשנה את גרסת הלוח החדשה 'robohatmm1'. אתה יכול לקרוא לשלך איך שבא לך.

(ראה תמונה)

בתוך התיקייה robohatmm1 יהיו שני הפינים שעלינו להתחיל לערוך: variant.cpp ו- variant.h. פתח את שניהם.

לקח לי זמן להתאמן, אז אסביר את זה כאן כדי לחסוך לך זמן. הקובץ variant.cpp מכיל מערך סיכות גדול מאוד שאליו מתייחס בכל variant.h. כל הפניות הסיכות ב- variant.h הן הפניה לתצורת הסיכה במיקום מסוים במערך variant.cpp.

(ראה צילום מסך עם שני קבצים)

לכן, רוב העריכות שלך יתרחשו בשני הקבצים הללו אך עליך לוודא שאם תשנה את סדר הפינים ב- variants.cpp - עליך לשנות את ההפניות בקובץ הכותרת (variants.h). עבור רובו HAT MM1, הייתי צריך לשנות רק כמה מהסיכות והפונקציות. זה נעשה בגרסאות.ח. הוספתי כמה סיכות PWM חדשות מכיוון ש- SAMD21 מסוגל להתמודד עם 12 ערוצי PWM. הוספתי גם כמה שמות ל- Servos, Signals (במקום ADC/Digital) ומיפוי מותאם אישית לפונקציות הנכונות - כגון SPI, UART ו- I2C.

הדבר החשוב שצריך לשים לב אליו הוא לבדוק שוב כי הפניות המערך שבהן אתה משתמש עבור הפונקציות המתוארות ב- variants.h תואמות את זו של הסיכה ב- varaints.cpp - עליה נבחן כעת.

Variants.cpp הוא קובץ חזק מאוד וחשוב. זה עושה את כל העבודה הקשה של הגדרת הסיכות כך שיתאימו להגדרות החומרה. הדרך הקלה ביותר להסביר זאת היא באמצעות דוגמה והסבר של כל חלק.

(ראה טבלה בצילום מסך)

דוגמה (תמצית מתוך variants.cpp)

{PORTA, 22, PIO_SERCOM, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE}, // SDA

זהו הסיכה הראשונה במערך variants.cpp עבור Robo HAT MM1. הטבלה מתוך גליון הנתונים ניתנה כתמונה (טבלה אפורה).

(ראה תמונות)

סיכה מסוימת זו משמשת לפונקציית פיני הנתונים I2C. בהסתכלות על הטבלה, אנו יכולים לראות שהסיכה הזו יכולה לשמש כסיכת I2C SDA (התחלה טובה!). הסיכה נקראת "PA22", קיצור של PORTA על סיכה 22. מיד נוכל להגדיר את מספר הנמל והסיכה לסיכה זו.

הדבר הבא שעלינו לעשות הוא להגדיר את הסיכה כיציאת תקשורת טורית. לסיכה תקשורת טורית זמינה באמצעות הפונקציה C (PIO_SERCOM) באמצעות SERCOM 3 ו- D באמצעות SERCOM5 (PIO_SERCOM_ALT). למטרות Robo HAT MM1, אנו משתמשים ב- SERCOM3 לתקשורת I2C. זה נמצא בפונקציה C; aka. PIO_SERCOM עבור variants.cpp.

מכיוון שאנו מתכננים להשתמש בסיכה זו רק כ- SD2 I2C, אין צורך להגדיר אף אחת מהפונקציות האחרות. ניתן להגדיר את כולם כאפשרויות "לא" או "לא" מהטבלה הקודמת. עם זאת, אם אכן נרצה להשתמש בפונקציות האחרות - נוכל לעבור על גליון הנתונים ולהכניס את כולם למקומות הנכונים. זה הכל בגליון הנתונים.

שינוי קבצי הגרסאות עשוי להימשך זמן מה. היזהר ותמיד בדוק את המשולש.

שלב 6: צור הגדרת לוח

צור הגדרת לוח
צור הגדרת לוח

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

החל מ- boards.txt.

(ראה תמונה)

תרצה להעתיק ולהדביק הגדרת לוח שכבר קיימת. אני ממליץ שוב על ה- Arduino Zero.

לשם הפשטות, שנה רק את שם הלוח (שורה ראשונה), usb_product, usb_manufacturer והגרסה (robohat). תוכל להתאים אישית את שאר הטיעונים בהמשך לצרכיך - כגון מטען אתחול מותאם אישית או USB VID/PIDs שונים לזיהוי הלוח שלך.

גרסת הלוח חייבת להתאים לשם שניתן לתיקיה שנוצרה בתחילת הדרך. עבור הדרכה זו קראתי לזה 'robohatmm1'.

כמו כן, מומלץ לשנות את החלק הראשון של כל שורה כך שיתאים לשם הלוח שלך. בצילום המסך הוא השתנה ל- 'robo_hat_mm1'. עליך לבחור שם ללוח שלך באותו פורמט.

זה הכל עבור boards.txt אלא אם כן אתה רוצה לבצע שינויים נוספים שהוזכרו לעיל מאוחר יותר.

שלב 7: עדכן את גרסת הלוח

עדכן את גרסת הלוח
עדכן את גרסת הלוח

ב- platforms.txt שנה את השם לשם הלוח המותאם אישית שלך. שנה גם את מספר הגרסה. זכור למה הגדרת את זה, נזדקק לזה מאוחר יותר.

שלב 8: צור קובץ חבילת JSON

צור קובץ חבילות JSON
צור קובץ חבילות JSON
צור קובץ חבילות JSON
צור קובץ חבילות JSON

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

חשוב מאוד שתשמור את הקובץ הזה מחוץ לתיקייה בה עבדנו זה עתה.

ניתן להעתיק את רוב הקובץ ולהדביק אותו בקובץ שלך. יהיה עליך לשנות רק את סעיף "לוחות" ואת המטא נתונים האחרים בראש הקובץ. עיין בצילום המסך של מה צריך להתעדכן.

(ראה תמונה)

  • קטע אדום: זהו מטא נתונים שמשתמשים יכולים להשתמש בהם למציאת עזרה. יש לו רלוונטיות טכנית קטנה מאוד.
  • סעיף כחול: כל אלה חשובים. הם מראים ב- IDE של Arduino. שם, אדריכלות וגירסה יוצגו לכל מי שמנסה להתקין את החבילה. כאן אתה צריך לשים את מספר הגרסה מ- platforms.txt. החלק הכחול השני הוא רשימת הלוחות הכלולים באריזה. יכול להיות שיש לך מספר לוחות.
  • סעיף ירוק: סעיף זה דורש הסבר נוסף.

(ראה טבלה בתמונות)

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

הקפד להעלות גם את קובץ package_boardname_index.json שלך למיקום ציבורי באינטרנט. GitHub היא אופציה טובה.

קובץ הלוח המותאם אישית של Robo HAT MM1 ניתן למצוא כאן.

שלב 9: השלב האחרון - התקן את הלוח המותאם אישית שלך

השלב האחרון - התקן את הלוח המותאם אישית שלך!
השלב האחרון - התקן את הלוח המותאם אישית שלך!
השלב האחרון - התקן את הלוח המותאם אישית שלך!
השלב האחרון - התקן את הלוח המותאם אישית שלך!

הכל בסדר, כעת אתה אמור לכלול את קובץ ה- JSON שלך ב- Arduino IDE ולהתקין את הלוח המותאם אישית שלך.

קל לכלול את קובץ JSON! ב- Arduino IDE - פשוט עבור אל "קובץ"> "העדפות" והעתק והדבק את המיקום (כתובת האתר) של package_boardname_index.json שלך לקטע "כתובות אתרים נוספות של מנהל לוחות" בתחתית התפריט העדפות.

(ראה תמונה)

לאחר מכן לחץ על אישור.

בצע את ההוראות מלמעלה להתקנת לוחות חדשים אם שכחת. זכור לחפש הפעם את הלוח המותאם אישית שלך!

(ראה תמונה)

לפרטים נוספים התקנת לוחות חדשים: ל- Adafruit יש כאן הדרכה מצוינת המסבירה כיצד להתקין לוחות Feature M0 שלהם.

שלב 10: סיכום

סיכום
סיכום
סיכום
סיכום

זה היה כיף ליצור לוחות Arduino מותאמים אישית. יש לי עוד הרבה מה להתנסות איתם בעתיד (הוספת יציאות טוריות נוספות) אבל זו הייתה חווית למידה נהדרת!

הקפד לבדוק גם את קמפיין אספקת ההמונים. הוא מסתיים ב -11 ביוני 2019.

www.crowdsupply.com/robotics-masters/robo-…

אני מקווה שזה עזר לך או שנהנית לקרוא יחד!

תודה!

מוּמלָץ: