הכרה בסיסית של ארדואינו אונו
-
טיוטה לא פורסם
שלום רב.
במדריך זה נכיר קצת את הארדואינו אונו (arduino Uno) שזה הארדואינו הבסיסי ויכול לעשות את רוב הפעולות הנפוצות ביותר.
אז ראשית כל מה זה ארדואינו?
ארדואינו הינו מחשב קטן ששולח ואחראי על פקודות חשמל משתניםראשית כל לא נשכח את האתר הרשמי של ארדואינו https://www.arduino.cc/
אַרְדוּאִינוֹ (מאיטלקית: Arduino) הוא מיקרו-בקר בעל מעגל מודפס יחיד (Single Board MicroController), עם סביבת פיתוח משולבת (IDE) ברישיון קוד פתוח, אשר מטרתה ליצור סביבה נוחה וזולה לפיתוח פרויקטים המשלבים תוכנה עם רכיבי אלקטרוניקה.
לארדואינו קהילת משתמשים גדולה ומדריכים מקוונים המסייעים להוריד את חסם הכניסה לתחום הפיתוח המשלב חומרה ותוכנה.
היסטוריה
ארדואינו החל כפרויקט לסטודנטים במכון לתכנון אינטראקציה, איווריאה, איטליה. השם "ארדואינו" הוא כשמו של בר באיווריאה, היכן שכמה ממייסדי הפרויקט נהגו להיפגש. הבר עצמו קרוי על שמו של ארדואין מאיוורה מרקיז איווריאה בין השנים 990-999 ומלך איטליה בין השנים 1002 עד 1014.
רכיבי הארדואינו
חומרהרכיב החומרה העיקרי על המעגל המודפס של הארדואינו הוא מיקרובקר בן 8 סיביות מסדרת AVR של חברת ATMEL, אשר מבצע את התוכנה ומכיל זיכרון הבזק (Flash Memory) לאחסונה.
לוח Lilypad ארדואינו מ-2007
לארדואינו גרסאות חומרה שונות למטרות שונות. לדוגמה, ה-LilyPad הוא לוח ארדואינו בעיצוב דק הניתן לקיפול, שניתן לתופרו לתוך בגד.
המעגל המודפס מכיל, כמעט תמיד, בנוסף:
בקר USB וחיבור USB, המשמש לטעינת התוכנה, וכמקור מתח אפשרי
מייצב מתח עם ערך של 5 וולט ושקע לכבל חשמלי
14 פינים (ולפעמים יותר) לחיבורי חיישנים או התקני חומרה אחרים
6 פינים מתוכם מסוגלים לקבל קלט אנלוגי בדיוק של 10 ביט
6 פינים מתוכם מסוגלים לייצר Pulse-Width Modulated Signal
מתנד המספק אות שעון בתדירות של 16 MHZ
תוכנהסביבת הפיתוח של ארדואינו מאפשרת כתיבת תוכניות, הדרתן וצריבתן (Flashing) לארדואינו. שפת התכנות לארדואינו היא C או C++, והסביבה מגיעה עם תוכניות דוגמה רבות, על מנת להקל על משתמשים חדשים.
מפתח ארדואינו מתבקש לממש לפחות שתי פונקציות:
פונקציית אתחול, שתתבצע כאשר הארדואינו מקבל חשמל.
פונקציית לולאה, אשר מתבצעת מיד אחרי פונקציית האתחול בלולאה אינסופית.אחת מתוכניות הדוגמה של ארדואינו גורמת להבהוב של נורית LED המחוברת לפין מס' 13:
#define LED_PIN 13 void setup () { pinMode (LED_PIN, OUTPUT); // הגדרת יציאה מס' 13 כפלט, או ספקית מתח } void loop () { digitalWrite (LED_PIN, HIGH); // הדלקת הנורית על ידי אספקת מתח ליציאה delay (1000); // המתנה של שנייה או 1000 מילישניות digitalWrite (LED_PIN, LOW); // כיבוי הנורית על ידי הפסקת המתח ליציאה delay (1000); // המתנה של שנייה }
סביבת הפיתוח עצמה פותחה בשפת Java, וכך מתאפשרת הרצתה על מערכות הפעלה שונות כגון Windows, לינוקס, ו-OSX.
לוחות הרחבה
ארדואינו עם לוח הרחבה למנועיםיצרנים שונים בנו לוחות הרחבה רבים לארדואינו (Arduino Shields) שמרחיבים את יכולותיו. את הלוחות מרכיבים על מערך הפינים של הארדואינו, וניתן אף להרכיב לוחות זה על גבי זה.
להלן מספר דוגמאות ללוחות הרחבה:
לוח הרחבה לרשת אלחוטית
לוח הרחבה לרשת מקומית
לוח הרחבה להפעלת מנועים
לוח הרחבה להתקן ופרוטוקול CAN-BUS, פרוטוקול המשמש לתקשורת עם מחשב הרכב
רישויתרשימי הבנייה של הארדואינו פתוחים ומוגנים ברישיון קוד פתוח. מותר לבנות ולמכור לוחות ארדואינו, ולכנותם 'תואמי ארדואינו'.
ברם, על מנת להשתמש במותג "Arduino", יש צורך לרכוש רישיון שהכנסותיו משמשות לקידום פרויקטי ארדואינו, ולעמוד בדרישות איכות.
בפועל, קיימים בשוק לוחות משני הסוגים הנ"ל.
שימושים לדוגמה
ישנם פרויקטים רבים ומגוונים שעשו שימוש בארדואינו.
להלן כמה דוגמאות:
מנעול לדלת הנפתח בנקישה סודית
רובוט הפותר קובייה הונגרית
שלט רחוק אוניברסלי
אוסצילוסקופ קוד פתוח -
מדריך לארדואינו אונו: מבוא למתחילים
הארדואינו מאפשר לכם להיכנס בקלות לעולם האלקטרוניקה ולשלב אותו עם תכנות. עם סביבת הפיתוח הפתוחה שלו והמגוון הרחב של לוחות ההרחבה, אתם תוכלו ליצור פרויקטים מעניינים מאוד, החל מהדלקת נורות ועד רובוטים מורכבים.
מהו ארדואינו?
Arduino הוא מחשב קטן ויחסית פשוט הנועד לשלוט במערכות שונות כמו חיישנים, מנועים, ותצוגות על ידי שליחה וקבלת אותות חשמליים. הייחודיות שלו נובעת מכך שהוא קל לתכנות ופתוח למגוון פרויקטים, במיוחד בתחום החובבים והחינוך.
המטרה העיקרית
הארדואינו משמש לחיבור בין עולם החומרה לתוכנה, ומאפשר לשלוט בהתקנים אלקטרוניים שונים בעזרת קוד. הדגם הבסיסי ביותר הוא Arduino Uno, שיכול לבצע מגוון רחב של פעולות נפוצות, ולכן מתאים מאוד למתחילים.
היתרון העיקרי
מעגל הארדואינו פתוח לקוד, עם קהילה גדולה ומגוון עצום של פרויקטים לדוגמא באינטרנט, המאפשרים כניסה מהירה לעולם הפיתוח בשילוב חומרה ותוכנה.
רכיבי הארדואינו
הארדואינו מורכב ממרכיבים בסיסיים:
- מיקרו-בקר (Microcontroller): רכיב שאחראי על ביצוע הקוד שאתה כותב.
- חיבור USB: מאפשר חיבור המחשב לארדואינו לצורך תכנות והספקת מתח.
- 14 פינים דיגיטליים: לפלט/קלט דיגיטלי (כמו הפעלה וכיבוי של רכיבים).
- 6 פינים אנלוגיים: לקריאת ערכים משתנים כמו ערכי מתח מחיישנים.
- מייצב מתח (5V): מספק יציבות במתח שמועבר למעגלים.
סביבת הפיתוח (IDE)
Arduino IDE הוא הכלי שבו כותבים את הקוד עבור הארדואינו. הקוד נכתב בשפות C ו-C++, ויש המון דוגמאות זמינות בספריית ה-IDE.
שתי הפונקציות החשובות ביותר:
- setup() - מתבצעת פעם אחת כאשר הלוח מקבל חשמל. משמשת בדרך כלל להגדרת הפינים.
- loop() - מבצעת פעולות חוזרות ונשנות כל עוד הלוח דולק.
דוגמה בסיסית:
void setup() { pinMode(13, OUTPUT); // הגדרת פין 13 כפלט } void loop() { digitalWrite(13, HIGH); // הדלקת הנורה delay(1000); // המתנה של 1000 מילישניות (שנייה) digitalWrite(13, LOW); // כיבוי הנורה delay(1000); // המתנה של שנייה נוספת }
לוחות הרחבה (Shields)
לארדואינו קיימים לוחות הרחבה שניתן לחבר אליו בקלות על מנת להוסיף לו יכולות נוספות. דוגמאות כוללות:
- לוח לרשת אלחוטית (WiFi Shield): מוסיף קישוריות WiFi.
- לוח מנועים (Motor Shield): מאפשר שליטה במנועים.
- לוח לרשת מקומית (Ethernet Shield): מאפשר חיבור לרשתות מקומיות.
דוגמאות לשימושים בארדואינו
- מנעול לדלת בנקישה סודית: פתיחת דלת על ידי סדרת נקישות על החיישן.
- רובוט פותר קובייה הונגרית: תוכנית שמניעה רובוט לפתרון קובייה הונגרית.
- שלט רחוק אוניברסלי: יצירת שלט אוניברסלי לתפעול מכשירים שונים.
- אוסצילוסקופ קוד פתוח: כלי למדידת תדרים וזרמים במעגל חשמלי.
קהילת הארדואינו
הארדואינו פותח על ידי סטודנטים באיטליה ושואב את שמו מבר מקומי. המיקרו-בקר המשמש בארדואינו הוא בדרך כלל מסדרת AVR של חברת Atmel.
קהילת הארדואינו תומכת מאוד במשתמשים חדשים ומספקת מגוון מדריכים, פרויקטים לדוגמה ותמיכה בפורומים מקוונים.
ההבדל בין דיגיטלי לאנלוגי
- פינים דיגיטליים: עובדים ב-2 מצבים בלבד – פלט או קלט, כאשר הם מבוססים על 0 (נמוך) או 1 (גבוה). לדוגמה: הדלקת נורית (LED) או קריאה ממתג.
- פינים אנלוגיים: עובדים על סקלת מתח רציפה. לדוגמה, קריאת ערך מחיישן טמפרטורה שנותן טווח של ערכים (לא רק 0 או 1).