שְׁאֵלָה:
כיצד לארגן את מבנה פרויקטי Arduino שלי לשליטה קלה במקורות?
jfpoilpret
2014-02-22 13:31:10 UTC
view on stackexchange narkive permalink

זה זמן רב שחיפשתי תשובה טובה לשאלה זו.

בדרך כלל, כל פרויקט Arduino, אך הפשוט ביותר, יכלול:

  • קובץ קוד המקור הראשי MyProject.ino
  • ספריות ספציפיות לפרויקט ( MyProjectLibrary1.h , MyProjectLibrary1.cpp . ..)
  • ספריות צד שלישי (בדרך כלל קוד פתוח בחינם, נוסף ידנית לספריית ספריות Arduino)
  • סכימות, דיאגרמות PCB
  • תיעוד
  • ...

כל זה מקשה על שמירת כל הקוד והמסמך של פרויקט אחד תחת ניהול קוד המקור (למשל על Subversion, Git או GitHub).

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

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

  • כולל את כל קבצי הפרויקט כמתואר לעיל
  • אני יכול להתחייב לחלוטין לכלי ניהול קוד קוד (כולל 3 - תלויות צד)
  • אני יכול לבצע צ'ק-אאוט בכל מקום בכונן הקשיח ולבנות את הפרויקט משם (האם זה צריך להיות מיקום יחיד כפי שהוטל על ידי Arduino IDE)
  • אני יכול להתמקד ארכיון עצמאי שאוכל לשלוח לחבר עבורו כדי לבנות אותו בקלות האפשרית (ללא הורדה ידנית נוספת)

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

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

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

נאבקתי גם בזה. יש לי שני פרויקטים שזקוקים לגירסאות שונות של ספרייה חיצונית, וכרגע הם מחוץ לשליטת הגרסאות.
לידיעתך, למחקר נוסף מדובר במנהלי חבילות ***. JavaScript קיבל את Node.js / npm ו- bower, PHP קיבל PEAR ו- Composer וכו '.
שבע תשובות:
#1
+31
zmo
2014-03-03 17:57:40 UTC
view on stackexchange narkive permalink

הדרך שלי לארגן פרויקט ארדואינו היא פשוטה למדי, כל הפרויקט שלי הוא מאגרי git כך שיש לפחות את הדברים הבאים:

יש לי העדפה באמצעות העורך המועדף עלי ו Makefile אשר יצרתי לעבוד נגד רוב מקרי השימוש (ואף שיפרתי את זה שאני אשתף בקרוב).

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

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

  • project
    • project. ino
    • Makefile
    • project_hal_lib
      • library 1
      • library2
      • library3

למרות שמציעה arduino 1.5.xa דרך חדשה לציין ספריות, שתציע דרך ליצור ולבנות פרויקטים של arduino באותה הדרך אנחנו כבר עושים עם pipy ו- virtualenv ב- python, כלומר אתה מגדיר את מערך הספריות שאתה צריך והן יורדות.

עבדתי על תשובה דומה. הקדמת אותי!
+1 תודה! דרך זו נראית די מעניינת. אצטרך לנסות השבוע (אני צריך לבדוק כיצד להתקין את הדברים של Makefile קודם).
@AsheeshR אם התשובה שלך הייתה דומה, זה אומר שיש לה עדיין כמה הבדלים, נכון? הייתי מעוניין לדעת על אלה!
למעשה השינויים העיקריים שיגיעו עם הגרסה הבאה של ה- Makefile שלי יהיו היכולת 'להבהב' באמצעות מתכנת או 'להעלות' באמצעות מנהל האתחול. כמו גם טיפול במיזוג מטען האתחול עם הקושחה. כתבתי גם מגדיר נתיכים מקומי.
ראוי היה לשפע של @zmo, אם כי פתרון ה- Makefile שלך ​​לא יכול לעבוד במצבי (באמצעות Windows אך לא ציינתי נקודה זו). אבל אני משוכנע כי השימוש באחד מפתרונות הקבצים הקיימים הקיימים הוא הדרך. ברגע שמצאתי עבודתי אחת, אפרסם את תשובתי כאן.
ובכן, למעשה תכננתי את ה- Makefile שלי על ידי איכשהו תואם חלונות ... אם כי באותה תקופה לא היו לי חלונות לבדוק אותו! אז בהחלט, אם אתה רוצה לעזור בשיפור זה, אתה מוזמן :-)
#2
+23
sachleen
2014-02-23 00:38:39 UTC
view on stackexchange narkive permalink

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

  myproject / myproject.ino somelib.h somelib.cpp  

בקוד שלך, אתה יכול לכלול "somelib.h"

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


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

myproject / schematics / - קבצי נשר או כל מה שיש לך מסמכים / - כלול כאן גליונות נתונים רלוונטיים בדוק / ​​- כל מקרי בדיקה או קוד אחר לבדיקת חלקי המערכת. myproject / - מכיוון שקוד Arduino חייב להיות בספריה באותו שם myproject.ino ...
חסרון נוסף הוא שאצטרך להעתיק את אותן ספריות בפרויקטים רבים. כמו כן, לא ברור לי אם אתה שם שם רק את הספריות שלך או גם ספריות של צד שלישי?
נקודה ראשונה: זה לא ממש צד למטה, זה רק תופעת לוואי של שמירה על ספריות ומקור פרויקטים כמו שרציתם עם בקרת גרסאות. מה אם פרויקט אחר זקוק לגרסה מעודכנת של הספרייה? מה אם תשנה אותו? נקודה שנייה: שניהם יעבדו.
מוסכם. איפה אתה שם קבצים אחרים לפרויקט ולספריות (סכימות, תיעוד)? בתת משנה, בפרויקט דיר, בחוץ?
@jfpoilpret עדכנתי את תשובתי במבנה הספריה האופייני שלי.
תודה על העדכון, +1 על תשובתך. אני סקרן לראות מה אחרים עושים למען הפרויקטים שלהם.
שאלה נוספת, לאחר שכפול הספריות שלך לפרויקטים השונים המשתמשים בהן, אחד מהפרויקטים האלה עשוי למצוא כמה באגים או שיפורים בספריה משוכפלת; אז אתה צריך לשכפל שינויים בכל מקום שוב, זה נוטה לשגיאה ולוקח זמן! כמו כן, אם ברצונך "לפתוח" אחת מהספריות הללו בפני עצמה (מחוץ לכל פרויקט) לשימוש אחר, עליך גם לשכפל שינויים לשם. האם יש לך שום טריק לעקוף את הבעיה הזו.
אני לא. IDE של ארדואינו מוגבל למדי מבחינות רבות. ייתכן שתרצה לבחון סביבה טובה יותר לעבוד בה שתמיכה טובה יותר בכך. אנשים יצרו קבצים בהתאמה אישית המאפשרים לך לייבא ספריות גם ממקורות אחרים.
זו לא דרך טובה לארגן פרויקטים מנקודת מבט של רישיונות תוכנה. אם אתה כולל ספריות צד שלישי בפרויקט שלך, שעשויות להיות בעלות רישיונות שונים, ייתכן שתפר אותם ברגע שתתחיל לשתף את קובץ הפרויקט. רישיונות קוד פתוח שונים * בדרך כלל * אינם תואמים זה לזה.
@AsheeshR שיש את כל הקבצים בספרייה אחת כך ש- IDE של ארדואינו לא מתלונן זו לא דרך טובה לארגן פרויקטים בכלל. זו פשוט * דרך *. אל תהסס להציע פיתרון טוב יותר. אני לא יודע על אחת שעדיין מאפשרת לך להשתמש בתוכנת Arduino.
#3
+21
asheeshr
2014-03-04 21:54:18 UTC
view on stackexchange narkive permalink

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

מבנה ספריות

דרך לארגן את הפרויקטים שלך. יהיה:

  • projectA - מדריך הורים

    • projectA - מקור ספריית קוד המכילה קוד ארדואינו

      1. projectA.ino
      2. כותרת.ה
      3. implement.cpp
    • מסמכים - ספריית התיעוד הראשית שלך

    • סכמות - ניתן לשמור על אלה בנפרד בנפרד Git repo או חלק מאותו repo

    • libs - זה יכיל את ספריות הצד השלישי שלך.

      1. libA - אלה עשויים להישמר כמאגרי צד ג '
      2. libC - ...
    • רישיון

    • README

    • Makefile - הכרחי לטיפול בתלות בין ספריות

זרימת עבודה

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

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

אתה יכול לעשות זאת באמצעות מודול המשנה git להוסיף <repo. פקודת git> . כדי לעדכן אותו, באפשרותך להשתמש ב- git submodule update <path> .

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

כדי להוסיף ריפו של צד שלישי ל libs השתמש בפקודה git submodule add <lib1.git> libs / lib1 . לאחר מכן, כדי לתחזק את הספרייה בנקודה קבועה במחזור השחרור, בדוק את הספרייה והתחייב. כדי לעדכן את הספרייה, השתמש בפקודה git submodule update <path> .

כעת תוכל לשמור על מאגרים מרובים בתוך מאגר ראשי וכן מספר ספריות של צד שלישי בספריות שלהם שלבי שחרור עצמאיים.

לעומת הגישה לספרייה יחידה

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

גישה זו מאפשרת לשמור על מאגרים מרובים אך מביאה את הצורך ב- Makefile לטיפול בתהליך האוסף והקישור.

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

+1, אבל ממש בתור סינוטוט: מודולי Git הם מסלול די יציב וככל הנראה רופף. זה לא משנה אם אתה משתמש בספרייה אחת או בכפולות (כמו 'ספק', 'צומת_מודולות' וכו '). גיט מפנה אותם ועוקב אחריו.
"זה לא משנה אם אתה משתמש בספרייה אחת או בכפולות (כמו ספק, מודולי node וכו ')." לא הבנתי את החלק הזה. האם תוכל לפרט?
#4
+18
jfpoilpret
2014-03-30 15:23:10 UTC
view on stackexchange narkive permalink

הנה הדרך שבה החלטתי סוף סוף לעקוב אחר הפרויקטים שלי.

Arduino-CMake

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

בדקתי כלים שונים להכנת קוד פתוח של Arduino:

  • Guyzmo Makefile (המוצע על ידי @zmo תשובה): זהו רק Makefile סטנדרטי שנעשה בעבודת יד לבניית ארדואינו; זהו Unix Makefile אך יש יציאה טובה של Unix make עבור Windows ; עדיין, למרבה הצער Makefile זה עובד רק עבור יוניקס, כמובן שהוא יכול להיות מותאם לחלונות, אבל רציתי כלי שעובד "מחוץ לקופסה".
  • Arduino-Makefile (המוצע על ידי תשובת @adnues): זהו פרויקט מתקדם יותר, המבוסס על יוניקס Makefile, שמטרתו לשימוש חוזר בקלות על ידי כל פרויקטי Arduino; זה מתועד כפועל ב- Mac, Linux ו- Windows, אך התמיכה ב- Windows הוכיחה את עצמה כלא נכונה בניסויים הראשונים שלי (תלות רבות במעטפת יוניקס).
  • Graduino (לא מוצע על ידי תשובה כלשהי): כלי בנייה זה מבוסס על כלי בנייה ידוע דרגה מעולם גרובי; הכלי נראה די טוב אבל דורש מעט ידע (מעט) גרובי / דרגה, ויש לו רק מעט תיעוד; החלטתי לא ללכת איתו בגלל הנטל להתקין גרוב ודרדר רק בשביל זה (הייתי רוצה להימנע מיותר מדי דרישות מראש לאנשים שרוצים לבנות את הפרויקטים שלי על הסביבה שלהם).
  • Arduino-CMake (לא מוצע בשום תשובה): זה נראה הכי טוב מכולם, יש לו היסטוריה ארוכה, יש לו הרבה תומכים ומתחזקים, מתועד היטב, מגיע עם דוגמאות פשוטות ויש לו גם כמה פוסטים טובים בבלוג הדרכה באינטרנט, למשל כאן ו שם. הוא מבוסס על CMake, "Make Cross-Platform Make".

מצאתי גם את ArduinoDevel , כלי בנייה נוסף של Arduino - שלא ניסיתי - שיכול ליצור Unix Makefiles או נמלים build.xml קבצים; אחד נראה מעניין אבל מעט מוגבל מבחינת הפונקציונליות.

לבסוף החלטתי ללכת עם Arduino-CMake :

  • זה היה קל להתקנה: פשוט התקן את CMake במחשב שלך והעתק את Arduino-CMake בספרייה כלשהי שנגישה בקלות (דרך נתיבים יחסית) מספריות הפרויקטים שלך.
  • הדוגמאות שעבדו מתוך את התיבה בשבילי (פשוט עקב אחר ההערות בקובץ התצורה CMakeLists.txt כדי להתאים את המאפיינים הדרושים לסביבה שלי, למשל סוג Arduino, יציאה טורית)
  • אתה יכול לארגן את מקרין בכל דרך שתרצו
  • הוא יכול ליצור קבצי תצורה עבור כלי בנייה שונים שם (בכל זאת בדקתי את יוניקס מקפיילס ), כולל פרויקטים של Eclipse.
  • בתוצרת שנוצרה, נוצרים מספר יעדים לתמיכה:

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

מבנה הפרויקט

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

הנה מה שעשיתי באופן אישי (זה עדיין דורש חידוד נוסף, אבל אני מרוצה מזה עכשיו):

enter image description here

החלטתי להכניס את כל הפרויקטים שלי לספריה משותפת של arduino-stuff (שאני מתחייב ל- github בכללותה, אני יודע שאוכל להשתמש ב git submodules לארגון טוב יותר ב- github, אך לא היה לו זמן לבדוק זאת עדיין).

arduino-stuff מכיל את התוכן הבא:

  • build : זו ספריה בה cmake and make תייצר את כל הדברים שלהם (קבצי makache, cache, קבצי אובייקטים ...); זה לא מתחייב ל- github
  • cmake : זה הוא רק עותק (ללא שינוי) של הספרייה Arduino-CMake cmake. זה עולה ל- github כך שיהיה קל יותר למי שרוצה לבנות את הפרויקטים שלי
  • CMakeLists.txt : זו תצורת CMake "הגלובלית" שמצהירה על כל ברירות המחדל עבור הסביבה שלי ( לוח, יציאה טורית) ורשימת ספריות המשנה של מטרת הבניין
  • TaskManager : זהו הפרויקט הראשון שלי המבוסס על Arduino-CMake, זוהי ספרייה עם דוגמאות; מכוון זה מכיל גם CMakeLists.txt המציין את היעדים לפרויקט

נקודות לשיפור

הפיתרון הנוכחי אינו מושלם אם כי .בין שיפורים שאני רואה (זה דווקא בשביל שפרויקט Arduino-CMake יכלול שיפורים אלה אם הם ימצאו לנכון):

  • תכונה להעתקת ספריית ספריות מהפרויקט הנוכחי לספריית Arduino ספריות
  • תכונה להעלאת ספרייה ל- github
  • תכונה להורדת ספרייה מ- github
ניסיתם כבר את PlatformIO? יתכן שזה לא היה כששאלת את השאלה הזו .. http://platformio.org/
נראה כי הפרויקט מת וקם לתחייה כמה פעמים: [arduino-cmake] (https://github.com/queezythegreat/arduino-cmake) → [arduino-cmake מזלג] (https://github.com/arduino- cmake / arduino-cmake) → [Arduino-CMake-NG] (https://github.com/arduino-cmake/Arduino-CMake-NG) → [Arduino-CMake-Toolchain] (https://github.com/ a9183756-gh / Arduino-CMake-Toolchain).
#5
+6
per1234
2017-11-04 09:30:49 UTC
view on stackexchange narkive permalink
  MyProject | _MyProject | _MyProject.ino | _data | | _ תיעוד | | _PCB | | _schematics | _src | _MyProjectLibrary1 | _ThirdPartyLibrary  

MyProject folder (root repository)

הסיבה שאני מציע לתיקיית השורש לכאורה מיותרת MyProject שציינת באמצעות GitHub. כשאתה מוריד (ולא משכפל) את התוכן של מאגר GitHub הענף או שם התג מצורפים לשם המאגר (למשל MyProject-master ). ה- IDE של ארדואינו דורש ששם תיקיית השרטוט יתאים לשם קובץ השרטוט. אם אתה פותח קובץ .ino שנמצא בתיקייה שאינה תואמת את שם הסקיצה ש- Arduino IDE מצווה עליך ליצור תיקיית סקיצות בשם מתאים ולהעביר את הסקיצה לתיקיה זו. בנוסף לכך שלא תהיה חוויה ראשונית טובה מאוד עבור המשתמש, הבעיה הגדולה יותר היא ש- Arduino IDE לא יכול להעתיק את כל שאר הקבצים המשויכים לתיקיה החדשה שנוצרה, מה שעלול לגרום לתכנית להיערך עוד. על ידי הצבת השרטוט בתיקיית משנה, אתה נמנע מ- GitHub לשנות את שם תיקיית השרטוט.

אם שם הקובץ GitHub אינו נושא עבורך, תיקיית השורש המיותרת אינה נחוצה.

תיקיית נתונים

אני ממליץ להשתמש בתיקיית המשנה data עבור קבצי ה- non-code שלך ​​מכיוון של- Arduino IDE יש טיפול מיוחד בתיקיות משנה בשם זה. הם מועתקים למיקום החדש כאשר אתה מבצע קובץ> שמירה בשם ... . תיקיות משנה של כל שם אחר אינן.

תיקיית src

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

  #include "src / MyProjectLibrary1 / MyProjectLibrary1.h "#include" src / ThirdPartyLibrary / ThirdPartyLibrary.h " 

תומך גם מבנה התיקיות של תבנית הספרייה Arduino 1.5, רק עליך להתאים את הצהרות #include שלך בהתאם.

שים לב שרק Arduino IDE 1.6.10 (arduino-builder 1.3.19) ואוסף סקיצות רקורסיביות תומכות יותר.

למרבה הצער, ספריות מסוימות משתמשות בתחביר שגוי #include עבור קובץ מקומי כולל (למשל #include <ThirdPartyLibrary.h> במקום #include "ThirdPartyLibrary.h" ). פעולה זו עדיין פועלת כאשר הספרייה מותקנת באחת מתיקיות ארדואינו ספריות קוד> אך אינה פועלת כאשר הספריה מצורפת לשרטוט. כך שספריות מסוימות עשויות לדרוש עריכות קלות בכדי להשתמש בדרך זו.

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

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

שלח לחבר כדי שהוא יבנה כמה שיותר קל

הסרת הדרישה באופן ידני התקנת ספריות הופכת את הפרויקט להרבה יותר קל לשימוש.

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

#6
+3
anujdeshpande
2014-03-15 15:22:25 UTC
view on stackexchange narkive permalink

תוכל להשתמש ב- https://github.com/sudar/Arduino-Makefile makefile להרכבת קודי Arduino. אינך זקוק בהכרח ל- IDE.

ניסיתי אבל לצערי זה יעבוד רק במכונות יוניקס ואני זקוק לתמיכה של Windows. נכון לעכשיו אני מעריך פרויקט אחר על סמך CMake אך עדיין לא סיימתי עם זה. אפרסם תשובה כשאחליט על כלי.
#7
+1
Mike Alger
2017-06-07 20:34:19 UTC
view on stackexchange narkive permalink

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

אם אתה צריך לשמור על תאימות עם Arduino IDE ישירות אתה יכול להשתמש במשהו כמו זה שתיארתי כאן:

https://gitlab.com/mikealger/ExampleArduinoProjectStructure/ עץ / מאסטר / ExampleSketchBook

את רוב זה ביססתי על פי ההערות של Arduino - מבנה הפרויקט ותהליך הבנייה, וכמה טיפים שאספתי במהלך שנים.

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

הכי טוב של מזל שם

נראה שקישור gitlab נשבר
מוזר האם זה עובד בלי הקישור הישיר? כלומר https://gitlab.com/mikealger/ExampleArduinoProjectStructure
למעשה שני הקישורים עובדים ב- Firefox, אך אף אחד מהם לא עובד בגירסת Chrome המיושנת שלי 49.0.2623.112 (64 סיביות). אין מה לדאוג, אני מניח. :-)


שאלה ותשובה זו תורגמה אוטומטית מהשפה האנגלית.התוכן המקורי זמין ב- stackexchange, ואנו מודים לו על רישיון cc by-sa 3.0 עליו הוא מופץ.
Loading...