עבור לתוכן

רוצה להתחיל ומרגיש אבוד...

Featured Replies

פורסם

שלום,

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

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

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

בגלל שבדקתי וגיליתי שארדואינו לא מתכנתים בjava בכלל אין לי מושג מה לעשות.

עד פה מה שאין לי (ידע)....

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

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

תודה מראש.

פורסם

כבר מרגיש אבוד? תתחיל לעבוד, תגלה כמה התחום הזה ענק ואז תרגיש מה זה אבוד ;D

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

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

http://arduino.cc/en/Tutorial/HomePage

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

בהצלחה!

פורסם
  • מחבר

תודה!

אוקיי, אז נכנסתי לקישור ולחלק של התכנות הבסיסי ונתקלתי בזה:

int buttonPin = 3;

void setup()

{

Serial.begin(9600);

pinMode(buttonPin, INPUT);

}

void loop()

{

// ...

}

בתור דוגמה.

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

int buttonPin = 3;

בjava ה int משמש להגדרת משתנה. לא הבנתי מה הוא אמור לעשות פה ולמה נקבע שהערך שלו 3.

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

Serial.begin(9600);

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

pinMode(buttonPin, INPUT);

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

אני ימשיך לנסות ולהבין אבל כמה שיותר תשובות- ככה יותר טוב ;D

פורסם

אתה רואה, את הרוב כבר הבנת לבד!

ההגדרה

int buttonPin = 3

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

Serial זו מחלקה מוגדרת מראש לניהול תקשורת (תקשורת טורית שמתבצעת בדרך כלל בין לוח הארדואינו למחשב, דרך כבל ה-USB). המתודה begin מאתחלת את התקשורת בפועל, וה-9600 הוא ערך שאנחנו שולחים כפרמטר למתודה הזאת, כדי להגיד לה באיזו מהירות התקשורת הזו תתרחש: 9600 ביטים בשניה. אפשר לעבוד במהירויות גדולות או קטנות יותר - 9600 זו פשוט ברירת המחדל של ה"Serial Monitor" בסביבת הפיתוח, אז הכי פשוט להישאר איתה.

pinMode זו פונקציה שמאפשרת להגדיר פין בלוח הארדואינו כמקור למידע נכנס (INPUT) או יוצא (OUTPUT). כמובן ש-INPUT ו-OUTPUT הם בסך הכל שמות של קבועים מוגדרים מראש. הפרמטר הראשון לפונקציה, אגב, הוא מספר הפין כפי שמופיע על הלוח (0-13, וגם A0-A5 שאפשר באותה מידה לקרוא להם 14-19).

פורסם
  • מחבר

תודה על התשובה המהירה!אז ככה-

המשכתי ללופ ודי הבנתי את הרעיון, ואת הפעולה של if ו- else אני מכיר מהjava.

void loop()

{

if (digitalRead(buttonPin) == HIGH)

Serial.write('H');

else

Serial.write('L');

delay(1000);

}

בכל זאת מספר שאלות-

אני מניח שהdigitalRead זה התגובה שהמחשב מקבל מהלחצן... השאלה היא- איפה הSerial.write שומר את H/L ואיך אני יכול להשתמש בזה אחרי שקיבלתי תשובה (במקרה הזה H/L).

השאלה השנייה היא מה עושה ה delay(1000);

נ.ב. באיזה שפה כל זה כתוב? (אמרת שיש c וגם אפשרות ל c++).

פורסם

הפונקציה digitalRead מחזירה את המצב של הפין המסוים באותו רגע שבו קראו לה. אם הגיע אליו מתח חשמלי מעל סף מסוים התשובה תהיה HIGH, אחרת LOW.

Serial.Write לא שומר שום דבר אלא פשוט שולח את הטקסט הלאה (במקרה זה, דרך ה-USB למחשב). מה המחשב עושה עם זה? זו כבר בעיה שלו... בדרך כלל נרצה שהוא יציג את זה על המסך. לכן, כדי לראות את הפלט של התוכנית הזו צריך לפתוח את ה-Serial Monitor של סביבת הפיתוח.

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

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

פורסם
  • מחבר

שאלתי על השפה כדי לדעת איזה סביבת עבודה להתקין (של c או של c++).

בינתיים חיפשתי קצת באיביי וזה מה שמצאתי

http://www.ebay.com/itm/Arduino-UNO-R3-Starter-Kit-Proto-Board-jumpers-LEDS-USB-Lead-More-/271130284736?pt=UK_Computing_Other_Computing_Networking&hash=item3f209fd2c0

וזה

http://www.ebay.com/itm/Arduino-Uno-R3-Starter-Kit-Breadboard-Jumpers-cables-LEDs-Resistance-IR-/200864208879?pt=UK_Sound_Vision_Other&hash=item2ec47097ef

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

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

פורסם

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

הנה דף ההורדה של התוכנה הרשמית:

http://arduino.cc/en/Main/Software

מבין הקיטים שהבאת, זה הזול הוא עדיף. הלוח ארדואינו שבו אמנם לא מקורי אבל זה לא באמת חשוב, ולעומת זו יש בו יותר רכיבים ובעיקר יותר נגדים (מאלה אף פעם אין מספיק). דבר אחד שחסר בשניהם זה לחצנים... את אלה אפשר להשיג בנפרד ומאד בזול אם בא לך, הם נקראים Tactile Momentary Switch.

הקיט הזה נראה נחמד:

http://www.ebay.com/itm/Arduino-Uno-Rev3-R3-Board-DIY-Starter-Kit-ATMEGA328P-ATMEGA16U2-/190767837235?pt=UK_Sound_Vision_Other&hash=item2c6aa63033

פורסם
  • מחבר

תודה על העזרה!

בינתיים די התקדמתי בחומר (יש דברים שזהים או כמעט זהים לjava אז זה לא היה קשה) :) ואני כנראה יזמין את הקיט מחר.

עכשיו אני מוריד את סביבת העבודה (ומאיזו שהיא סיבה שלא מובנת לי כרגע זה מראה שההורדה הולכת לקחת שעה(!)) אבל היא לא תעזור לי ממש עד שיגיע הקיט.

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

פורסם

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

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

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים