27
www.arikporat.com הההההההה – הההה – ההההה הההההה1 . הה הה הההההההה ? לללל לללל ללarduino : http://www.arduino.cc לללל לל לל ללללל לל) ללל( לללללללל ללל " לללללללל ללללל : לללללללללל לללל לללל, ללללללל לל ללללל ללללל לללללל, לללל לללללל . ללל לללללל לללללל, ללללללל, לללל ללללללל לללל ללללללללל ". ללל לללללללל לללללל ללללללללל ללללללללללללל ללל- "לללללללל לל ללללל " ללל לל לללל לללללל לללללללללללללללל ללללללל ללללל-ללל לללל ללל- לללל לל ללללל- ללללל- ללללל לללללל – לללללIDE ) Integrated Development Environment ( . - "לללללללללל לללל לללל" ללל לללל ללללל לללללל לללל לללל ללללל לללללל לל לללללל לללללל ללל לל ללל ללל לללל ללללל לללללל לללל ללללל לללללל . לל לללללללל לללללל לללללל לל ללל ללללללל לללללללל ללללל לללללל ללללל ללללל ללל לללל לל ללל לללללל לל ללללללל לללל. לללל לללל לל ללללל לללללל ללללל לללל לל ללללל ל( 20 ללללללל ללללל . לללל) לללללל ללללל ללללללל ללללל ללל ללל ללללל לללל ללללללל לללללללל ללללArduino Uno ללללל ללללל ללללל. ללללל1 : ללל לללללללל לללל1

introductio.docx · Web viewארדואינו – מבוא – חומרה ותוכנה מה זה ארדואינו? באתר הבית של arduino : נמצא את ההסבר ... מתח

Embed Size (px)

Citation preview

Page 1: introductio.docx · Web viewארדואינו – מבוא – חומרה ותוכנה מה זה ארדואינו? באתר הבית של arduino : נמצא את ההסבר ... מתח

www.arikporat.com

ארדואינו – מבוא – חומרה ותוכנה

מה זה ארדואינו ?.1

נמצא את ההסבר : " ארדואינו הואarduino : http://www.arduino.ccבאתר הבית של פלטפורמת ) מצע ( אב טיפוס של אלקטרוניקת מקור פתוח, המבוססת על חומרה ותכנה

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

"פלטפורמת אב טיפוס " הוא שם כולל לכרטיס אלקטרוניקה - לוח פיתוח - שבהם יש IDE ) Integratedמיקרו-בקר פשוט ורב-תכליתי ולסביבת פיתוח משולבת – חומרה ותכנה -

Development Environment (.

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

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

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

אנחנו נעבוד.

: לוח ארדואינו אונו 1שרטוט

וכו' ( – בפיתוח עם ארדואינוC , C++ , JAVAבניגוד לפיתוח תוכנה בשפות נפוצות ) מדובר במוצר פיזי – לוח אלקטרוניקה )שאותו יש לקנות...התוכנה בחינם... ( ואליו יש

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

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

. מייסדי הארדואינו הם : 2005הארדואינו התחיל את דרכו בשנת

1

Page 2: introductio.docx · Web viewארדואינו – מבוא – חומרה ותוכנה מה זה ארדואינו? באתר הבית של arduino : נמצא את ההסבר ... מתח

www.arikporat.com

,David Cuartielles, Tom Igoe, Gianluca Martino, and David Mellis Massimo Banzi

הכרת סביבת העבודה של הארדואינו.

( הוא:arduinoכפי שהזכרנו במבוא , ארדואינו )

20 )למעלה מ ATMEL של חברת AVR - המכיל 'מיקרו בקר' מסדרת כרטיס .1 .ATMEGA328כרטיסים שונים(. אנחנו נשתמש במיקרו בקר

( IDE סביבת פיתוח משולבת ).2 - חובבים ומקצוענים, פורומים ומדריכים מקוונים, קהיליית משתמשים גדולה.3

AVR : הוא ראשי תיבות של - Alf )Egil Bogen( and Vegard )Wollan('s RISC processor הנקראת לארכיטקטורה modifiedשקשורים Harvard architectureארכיטקטורת -

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

– מחשב עם סט הוראותRISC – Redused Instructions Set Computer המושג ספציפיות.מופחת , כך שיחידת הפענוח של הפקודות קטנה יותר ומהירות העבודה גדולה יותר.

- Arduino uno המאפיינים העיקריים של ערכת ארדואינו אונו א.

16תדר שעוןMHZ. עבודה ליציאת 5vמתח מחברים אם -USBמומלץ מתח אספקת או במחשב

וולט.(20 ל 6 וולט. )הגבולות בין 9 ל 7מספק/מטען בין כל הדקI/O 40 יכול לספק או לקבל זרם של עדmA.( זיכרון תכניתflash בגודל )32K.בתים ( זיכרון נתוניםram בגודל )2K.בתים זיכרון נתונים נוסף מסוגEEPROM 1 בגודלKבתים 14 ויציאות דיגיטאליות מתוכן כניסות יציאות שיכולות לתת 6 PWMאפנון רוחב(

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

כניסות/יציאות(.( תקשורת טוריתrs232 , i2c ,spi.)2.פסיקות חיצוניות

2

Page 3: introductio.docx · Web viewארדואינו – מבוא – חומרה ותוכנה מה זה ארדואינו? באתר הבית של arduino : נמצא את ההסבר ... מתח

www.arikporat.com

: מאפיינים חשמליים1טבלה

הדקי המיקרו בקר :ב.

בקר 2בשרטוט הדקי המיקרו נראה את ATMEGA328 במבנה DIP - Dual In line Package.

- הדקי המיקרו בקר.2שרטוט מספר

ו7 וולט מתחבר בין ההדקים 5בשרטוט ההדקים רואים שמתח ההפעלה – מתח ספק – של הם הדקי המינוס ) - האדמה(. מתח ספק מותר22 ו 8 שהם הדקי הפלוס ) + ( וההדקים 20

וולט.6 ועד 1.8הוא מ

. הגביש משמש כמעגל תהודה ויחד עם המגבר16MHz מתחבר גביש של 10 ו 9בין ההדקים (clock pulsesהנמצא בתוך המיקרו בקר יוצרים מעגל שנקרא מתנד שנותן את פולסי השעון )

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

' בהדק הזה גורם לאתחול של כל0 - של המיקרו. 'RESET הוא הדק האתחול – 1הדק הרגיסטרים הפנימיים ומעגלי האלקטרוניקה שבתוך המיקרו למצב ידוע ומוגדר.

איננו מחובר.21הדק

3

Page 4: introductio.docx · Web viewארדואינו – מבוא – חומרה ותוכנה מה זה ארדואינו? באתר הבית של arduino : נמצא את ההסבר ... מתח

www.arikporat.com

הדקי כניסה אנלוגיים.6 הם 28 עד 23ההדקים

הדקים שיכולים לשמש כקלט או פלט דיגיטאליים.14 הם 19 עד 11 ו 6 עד 2ההדקים לשמש כהדקי התקשורת הטורית של המיקרו ואילו3 ו 2מתוך ההדקים האלו יכולים ההדקים

PWM – Pulse Width הדקים ( , לשמש ל 6 )סה"כ 17 עד 15 ו 12 , 11 ,5ההדקים Modulatorאפנן רוחב דופק ) לקביעת עצמת מהירות מנוע או עצמת תאורה של לד – יוסבר -

במהלך הניסויים (. מספרי הפינים משמשים גם בהוראות התכנה.

ערכת הארדואינו אונוג.

רואים את כרטיס הארדואינו אונו.3בשרטוט מספר

– כרטיס ארדואינו אונו ותפקיד הרכיבים. 3שרטוט

4

רגלים לתקשורת2 )RS232טורית RX ו TX)

כניסות ויציאות14דיגיטאליות

PWM יציאות 6מתוכם

כניסות6אנאלוגיות

'מיקרובקר'Atmega328p

להמרהAT16U2רכיב מתקשורת טורית ל

וולט5מייצב ל

הדק לכניסת מתח ייחוס ל

ADC

358מגבר שרת I2Cלתקשורת

וולט(5 )יש ONלד למצב

Page 5: introductio.docx · Web viewארדואינו – מבוא – חומרה ותוכנה מה זה ארדואינו? באתר הבית של arduino : נמצא את ההסבר ... מתח

www.arikporat.com

תפקיד מיוחד של ההדקים בארדואינו אונו1ג.

להדקים של האדואינו יש שמות ולחלק מהם יש תפקיד מיוחד . ההדק בתכניות שנרשום -3 ו 2הוא תפקיד ההדק ולא המספר הפיזי של ההדק ברכיב. לדוגמה : ההדקים הפיזיים

ו0 - הם הדקים פיזיים של הרכיב ומשמשים כהדקים דיגיטאליים 2ראה שרטוט מספר ו D0 למטרות תוכנה ונקראים 1 D1.הם יכולים לשמש גם כרגלי התקשורת הטורית .

נתאר את התפקידים המיוחדים של הדקים :

2 0 הדקים טוריים - הדקים ( RX ו ) 1 ( TX( משמשים לקליטה ושידור טוריים .) (. TTLברמת הדקים אלו מחוברים לרכיב 2 ATmega8U2שהוא רכיב לתקשורת

ולהפך .TTL ל USBטורית להעברה מ ו 2הדקי פסיקות חיצוניות – הדקים . הדקים אלו יכולים לתכנת להפעלת פסיקה3

או שינוי ברמת המתח.0 ל 1 ( או בירידה מ 1 ל 0 ( או בעליה ) מ 0ברמה נמוכה ) ) ( . attachInerruptכאשר רוצים שהדקים אלו ישמשו לפסיקה נעזרים בפונקציה

PWM - Pulse Width Modulation . 9, 6 , 5 , 3 הדקים אלו הם 6 – אפנון רוחב דופק ,10 , ב 11 אלו בהדקים להשתמש נרצה כאשר . PWMבפונקציה ניעזר

analogWrite) (. SPI - Serial Peripheral Interface 10 – תקשורת טורית פריפריאלית . הדק ( SS -

Slave Select , ) 11 ) MOSI – Master Out Slave In ( , 12 – ) MISO - Master In Slave Out ( , 13 ) SCK - Serial ClocK (גאשר נרצה להשתמש בהדקים אלו .

.SPI library ניעזר בספריה SPIבתקשורת טורית LED – 13 (. כאשר19 ) שהוא הדק פיזי מספר 13 . בערכה יש לד המתחבר להדק

וולט בהדק והלד דולק. אם נרשום5 ( יצא כ 1 )או HIGHנוציא להדק זה – נרשום - LOW וולט והלד יכבה.0 ( יצא להדק כ 0 ) או

כניסות אנאלוגיות המסומנות 6לארדואינו אונו A0 עד A5כאשר כל הדק יכול לשמש 1024 ביט ) 10 שיש לו רזולוציה של ADCגם כהדק דיגיטאלי או ככניסה אנאלוגית ל

בין ל 0ערכים שונים(. ברירת המחדל היא מדידה ניתן לשנות את הגבול5 וולט. ) ( .analogReference ובפונקציה AREFהעליון של התחום בעזרת שימוש בהדק

בנוסף לכך למספר הדקים אנאלוגיים אלו יש אפשרות תפקוד נוסף. בכרטיסים עם רכיבATmega 328 במבנה שאיננו DIP אלא מבנה מרובע שנקרא TQFP

A6 לכניסות אנאלוגיות בלבד הנקראים 22 ו 19 יש עוד שני הדקים ברכיב QFN/MLFאו A7 באוקטובר ראיתי ( ובחלק מהכרטיסים החדשים ישנה אפשרות להתחבר2018 )

אליהם.

5

Page 6: introductio.docx · Web viewארדואינו – מבוא – חומרה ותוכנה מה זה ארדואינו? באתר הבית של arduino : נמצא את ההסבר ... מתח

www.arikporat.com

.MLF ובמבנה TQFP במבנה ATmega328 – רכיב 4שרטוט

TWI - Two Wire Interface שנקרא גם ( ממשק שני חוט – I2C הדק .) A4יכול SCL – Serial יכול להיות הדק A5 – נתון טורי והדק SDA- Serial Dataלהיות הדק

Clock שעון טורי. תקשורת זו נתמכת כל ידי הספרייה – Wire library. סביבת הפיתוח - תכנהד.

http://www.arduino.cc - של הארדואינו נוריד מהאתר IDEאת סביבת הפיתוח המשולבת - .

Cאת התוכנית נכתוב בעזרת 'עורך התכניות' או כל מעבד תמלילים. שפת התכנות היא שפת ++.Cאו

בצע את השלבים הבאים:

שברשותך. usbחבר את כרטיס הארדואינו אל המחשב, באמצעות כבל ה .1להפעלת 'סביבת הפיתוח' של הארדואינו, לחץ 'לחיצה כפולה' על הצלמית:.2 בעקבות ה 'לחיצה כפולה' ייפתח החלון של עורך התוכניות )כמוראה בתמונה עבור.3

(1.0.5גרסת התוכנה

6

Page 7: introductio.docx · Web viewארדואינו – מבוא – חומרה ותוכנה מה זה ארדואינו? באתר הבית של arduino : נמצא את ההסבר ... מתח

www.arikporat.com

:1.5.7או בגרסה חדשה יותר

(1.0.5תפקידי הסמלים שבמסך )גרסת תוכנה .4

7 פתח מסך )לתצוגתתקשורת טורית(

Page 8: introductio.docx · Web viewארדואינו – מבוא – חומרה ותוכנה מה זה ארדואינו? באתר הבית של arduino : נמצא את ההסבר ... מתח

www.arikporat.com

1.5.7או בגרסה

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

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

בחירת הכרטיס .5(1.0.5 )כמוראה בתמונה עבור גרסה Arduino Uno , ובחר Tools ->Boardבחר

8

בצעאימות

העלאה חדש

שמורפתח

פתח מסך )לתצוגת תקשורת

טורית(

Page 9: introductio.docx · Web viewארדואינו – מבוא – חומרה ותוכנה מה זה ארדואינו? באתר הבית של arduino : נמצא את ההסבר ... מתח

www.arikporat.com

:1.5.7או בעברית בגרסה החדשה יותר

9

Page 10: introductio.docx · Web viewארדואינו – מבוא – חומרה ותוכנה מה זה ארדואינו? באתר הבית של arduino : נמצא את ההסבר ... מתח

www.arikporat.com

בחירת פורט התקשורת הטורית.6

Tools ->Serialבחר Port -> COM אבל לא( . com1( כמוראה בתמונה )האחרון!! ברשימה(.

:1.5.7ובגרסה

10

Page 11: introductio.docx · Web viewארדואינו – מבוא – חומרה ותוכנה מה זה ארדואינו? באתר הבית של arduino : נמצא את ההסבר ... מתח

www.arikporat.com

התוכנה בארדואינוה.

תכנית במערכות עם מיקרו בקרים כתובות בדרך כלל בצורה הבאה:

. קטע תכנית המתבצע פעם אחת בלבד בתחילת התכנית.1

. קטע תכנית הרץ בלולאה אין סופית. השרטוט הבא מתאר זאת:2

תכנית במיקרו בקר

פונקציות. 2כל תכנית בארדואינו מכילה לפחות

– תכנית האתחול שבה כותבים הגדרות ו/או הוראות שהמיקרו בקר יבצע ) ( setup פונקצית או פלט, אתחול משתנים לערכים רצויים לדוגמא אתחול הדקים לקלט בלבד. פעם אחת

אתחול רכיבי חומרה וכו' .

- שבה כותבים הוראות שהמיקרו בקר יבצע שוב ושוב בלולאה אין ) ( loop פונקצית .1סופית.

הפונקציות האלה :2בתמונה הבאה נראה את

11

תכנית אתחול המתבצעת פעם אחת

) (setupבלבד

תכנית המתבצעת בלולאה אין סופית

Page 12: introductio.docx · Web viewארדואינו – מבוא – חומרה ותוכנה מה זה ארדואינו? באתר הבית של arduino : נמצא את ההסבר ... מתח

www.arikporat.com

ההוראות בארדואינוו.

ההדקים הדיגיטאליים של הארדואינו אונו , יכול לשמש כקלט או פלט תוך14כל אחד מ הפונקציות הבאות : ) יש לשים לב לאותיות "קטנות" ו "גדולות" (. 3שימוש ב

) (pinModeא.

) (digitalWriteב.

) (digitalReadג.

וולט . כל הדק יכול לספק או לקבל מקסימום זרם של 5הפונקציות עובדות ב מילי40 20K – 50KOhms - של pull up resistorאמפר. לכל הדק יש נגד "משיכה למעלה" –

- הנגדים לא מחוברים להדקים(. reset – אחרי default) בברירת המחדל –

) ( pinMode. הפונקציה 1ו.

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

Pull Up .משיכה למעלה( או לא(

;)pinMode)pin,mode התחביר :

pin . אומר מהו מספר ההדק שרוצים לקבוע את תפקודוmode מצבים : א. 3 קובע את התפקיד ויש לו INPUT .מבוא . ב - OUTPUT. מוצא -

'1 קובעים שההדק יהיה מבוא עם נגד משיכה למעלה )יהיה בו ' INPUT_PULLUP- ג. במצב שלא מחברים בהדק זה שום דבר. הפונקציה איננה מחזירה ערך.

      ;pinMode(13, OUTPUT) כפלט D13דוגמה: קבע את הדק

) (digitalWrite. הפונקציה 2ו.

12

התקנה – אתחול- תכניתsetupפונקציית המתבצעת פעם אחת בלבד בהתחלה .

שבה קודloopפונקציית המתבצע בלולאה אין סופית

בלבד.

Page 13: introductio.docx · Web viewארדואינו – מבוא – חומרה ותוכנה מה זה ארדואינו? באתר הבית של arduino : נמצא את ההסבר ... מתח

www.arikporat.com

)נמוך ( להדק מסוים.LOW ) גבוה ( או HIGHהפונקציה כותבת

בחלק3.3v ) או 5v יהיה בהדק HIGH אז אם קבענו OUTPUTאם ההדק נקבע כמוצא – , .0v יהיה בהדק LOWמלוחות הארדואינו (. אם קבענו

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

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

יגביל את הזרם !!

)digitalWrite)pin, valueתחביר :

pin . מספר ההדק - value - HIGH או LOW.

הפונקציה איננה מחזירה ערך.

דוגמה:

pinMode)13, OUTPUT(; // כמוצא13קבע הדק digitalWrite)13,HIGH(; // בהדק זה יש לד והוא יידלק13שים גבוה בהדק .

) ( digitalRead. הפונקציה 3ו.

.LOW או HIGHהפונקציה קוראת את הערך מהדק מסוים. הערך יכול להיות

)digitalRead)pinהתחביר :

pin.מספר ההדק שממנו רוצים לקרא -

.LOW או HIGHהפונקציה מחזירה

.13 ולד מתחברת בהדק 7דוגמה : נניח שבחומרה יש לנו מפסק בהדק

ללד. 13 יצא בהדק 7קטע תכנית שבו קובעים שמה שמכניס המפסק שבהדק

int ledPin = 13; // 13הגדרת משתנה מטיפוס שלם שערכוint inPin = 7;   // 7הגדרת משתנה שערכוint val = 0; // 0הגדרת משתנה שערכו

תכנית האתחול המתבצעת פעם אחת בלבד כאשר התכנית מתחילה לרוץ //void setup(){  pinMode(ledPin, OUTPUT);      // כמוצא13קביעת הדק   pinMode(inPin, INPUT);      // כמבוא7קביעת הדק }

13

Page 14: introductio.docx · Web viewארדואינו – מבוא – חומרה ותוכנה מה זה ארדואינו? באתר הבית של arduino : נמצא את ההסבר ... מתח

www.arikporat.com

תכנית המתבצעת בלולאה אין סופית //void loop(){  val = digitalRead(inPin);   // קוראים את המצב שנכנס מהמפסק  digitalWrite(ledPin, val);  // מעבירים את הערך שנקרא אל הלד } 

תקשורת בין ארדואינו למחשבז.

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

שבו 'תקשורת טורית'( של המחשב. לכרטיס הארדואינו יש Serial Monitor , )הטורי'

הוא יכול לשלוח הודעות ולהציגן במחשב או/ ו לקבל הודעות מהמחשב . במערכות מיקרו

(.MONITORבקרים אחרות נקראת תצוגה כזו תכנית מוניטור )

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

Serial.begin קובעת את קצב התקשורת . לדוגמא הפקודה ) ( Serial.begin)9600(;

סיביות בשנייה".9600פירושה: "קבע את קצב התקשורת ל

) ( . בתוךSerial.printכדי שהמיקרו בקר ידפיס מידע על גבי המוניטור, משתמשים בפונקציה

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

; תדפיס) "Serial.print)"www.arikporat.comצריך להיות בתוך גרשיים. למשל: הפקודה

. www.arikporat.comבמסך המחשב את המשפט

בקצב של שנייה אחת בין .www.arikporat.comהתוכנית הבאה מציגה במסך את ההודעה

void setup)( {

Serial.begin)9600(; ביטים בשנייה9600קצב תקשורת //

{

void loop{ )(

Serial.print)"www.arikporat.com\n"(; // הדפס את הכתוב בין הגרשיים ורד לתחילת השורה הבאה

delay)1000(; // המתן שנייה

{

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

דרך ב. ללחוץTools -> Serial monitor ( . דרך א. לבחור 1.0.5)כמוראה באיור הבא עם התוכנה

: cntr+shift+Mעל הצלמית ג. ללחוץ יחד על

14

Page 15: introductio.docx · Web viewארדואינו – מבוא – חומרה ותוכנה מה זה ארדואינו? באתר הבית של arduino : נמצא את ההסבר ... מתח

www.arikporat.com

1.5.7עם התוכנה

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

15

אפשרותא אפשרות

ב

אפשרותג

אפשרותא

אפשרותג

אפשרותב

מסךהמוניטור

שלCOM (6)מספר ה התקשורת הטורית

מראה מהו קצב

התקשורת

Page 16: introductio.docx · Web viewארדואינו – מבוא – חומרה ותוכנה מה זה ארדואינו? באתר הבית של arduino : נמצא את ההסבר ... מתח

www.arikporat.com

) ( Serial.print הפונקציה

( (. לפונקציה מספר צורות. מספריםASCIIהפונקציה מדפיסה למסך הטורי ) למוניטור ( טקסט אסקי

( מודפסים בצורה דומהfloatמודפסים כאשר כל מספר מיוצג על ידי ערך האסקי שלו. גם מספרים ממשיים )

) בתים ( נשלחים כתו בודד. תווים ומחרוזות נשלחים כמוBytes ספרות אחרי הנקודה. 2עם ברירת מחדל של

שהם.

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

דוגמאות :

Serial.print)78( gives "78" Serial.print)1.23456( gives "1.23" Serial.print)'N'( gives "N" Serial.print)"Hello world."( gives "Hello world."

פרמטר נוסף שניתן לשלוח הוא ציון הבסיס שבו יוצג הנתון הנשלח.

BIN .הנתון מוצג בצורתו הבינארית - OCT (. 8 – בצורה אוקטאלית ) בסיס DEC,בסיס עשרוני – HEX ( . עבור מספרים ממשיים 16 – הקסה דצימאלי )בסיס floatהפרמטר מציין את מספר ,

הנקודות אחרי הנקודה.

דוגמאות :

Serial.print)78, BIN( gives "1001110" Serial.print)78, OCT( gives "116" Serial.print)78, DEC( gives "78" Serial.print)78, HEX( gives "4E" Serial.println)1.23456, 0( gives "1" Serial.println)1.23456, 2( gives "1.23" Serial.println)1.23456, 4( gives "1.2346"

; אז הדפס ת ערכו בהקסהint number = 56ניתן להדפיס את ערכו של משתנה לדוגמא : אם הוגדר (38: )

Serial.print)number,HEX(;

; . כאן הדפסנו מחרוזת וירדנו לתחילת)"Serial.print)"hello\nניתן להדפיס מחרוזת : ) ( ; ואז נרד שורה בסיום ההדפסה.Serial.printlnהשורה הבאה. ניתן היה גם לרשום :

אפשרויות :3) ( שלה Serial.write ניתן גם להשתמש בפונקציות נוספות כמו

1. Serial.write)val( 2. Serial.write)str( 3. Serial.write)buf, len(

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

16

Page 17: introductio.docx · Web viewארדואינו – מבוא – חומרה ותוכנה מה זה ארדואינו? באתר הבית של arduino : נמצא את ההסבר ... מתח

www.arikporat.com

אומר אורך )גודל (len הוא מערך של בתים כאשר buf נשלח מחרוזת. strבפרמטר המערך .

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

void setup)({ Serial.begin)9600(;{void loop)({ Serial.write)95(; למסך הטורי ) למוניטור(95שולחים את הערך // int bytesSent = Serial.write)"hello"(;// ומקבלים את אורכה hello שולחים את המחרוזת{

POLLING )וקצת על שאילתה ) interrupt פסיקות –

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

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

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

התוכנית שהמחשב היה.

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

Interrupt קיצור של IRQהאישי מתחברים בעזרת פסיקות. במחשב נקראות בקשות הפסיקה ReQuest .או דרישת פסיקה

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

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

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

המנהל בהפרעה יהיה לפי השלבים הבאים :

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

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

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

ממנו בעזרת הסימון שעשה מקודם.

17

Page 18: introductio.docx · Web viewארדואינו – מבוא – חומרה ותוכנה מה זה ארדואינו? באתר הבית של arduino : נמצא את ההסבר ... מתח

www.arikporat.com

.Pollingעבודה עם עם שאילתות .2 מנהל זה איננו עובד עם פסיקות . מנהל זה איננו מוכן לקבל הפרעות. הוא עושה את

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

השיטות.2 השיטות . גם במיקרו ניתן לשלב בין 2כמובן שיש מנהלים המשלבים בין

חסימה / אפשור ועדיפות

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

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

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

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

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

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

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

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

בקר:

נצא מתוך ההנחות הבאות :

.101 במסמך. המשפט הבא הוא משפט מספר 100המנהל קורא את משפט מספר

.101 בתוכנית. הפקודה הבאה נמצאת בכתובת 100המיקרו מבצע פקודה בכתובת

השלב בהיענותלפסיקה

הערותמיקרו בקרמנהל המפעל

המנהל מסיים את1 המשפט שבו הוא

נמצא

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

המנהל מסיים לקרא את והמיקרו100משפט

מסיים לבצע את הפקודה100שבכתובת

המנהל שומר2 בעזרת סימנייה את

מיקום המשפט אליוהגיע.

המיקרו שומר בזיכרון במקום שנקרא "מחסנית" את

הכתובת של הפקודה אליההגיע )"כתובת החזרה" (.

המנהל שם את הסימנייה . המיקרו101על כתובת

מכניס למחסנית את .101כתובת

18

Page 19: introductio.docx · Web viewארדואינו – מבוא – חומרה ותוכנה מה זה ארדואינו? באתר הבית של arduino : נמצא את ההסבר ... מתח

www.arikporat.com

המנהל מכניס את3 העובד ומטפל בו.

בזמן הזה הוא איננו מקבל פסיקות

נוספות ומקדיש אתעצמו לעובד בלבד.

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

יש כתובת ספציפית בזיכרון שבה היא רשומה. המיקרו

חוסם את כל הפסיקות כדי לאלקבל פסיקות נוספות.

בסיום הטיפול הוא4 אומר לעובד

"שלום" וחוזר בעזרת הסימנייה אל המשפט אליו הגיע.

עכשיו הוא יכול לקבל פסיקות

נוספות.

בסיום תכנית הטיפול מופיעה )קיצור שלretiפקודת

RETurn from Interruptחזור - מפסיקה ( . המיקרו מושך

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

הוא מאפשר קבלת פסיקותנוספות.

המנהל חוזר למשפט )בעזרת101מספר

הסימנייה ( וממשיך לקרא את המסמך

ממשפט זה. המיקרו מושך מהמחסנית את

וממשיך את101כתובת התוכנית מכתובת זו.

– תהליך השוואה בין הענות לבקשת פסיקה במיקרו לבקשת טיפול של עובד1טבלה

סוגי פסיקות במיקרו בקר

במיקרו בקר יש פסיקות חיצוניות ופסיקות פנימיות.

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

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

לארדואינו אונו יש שני מקורות פסיקה חיצוניים:interrupt 0 - פסיקה מספר 2בהדק ( . 2 מתחברת להדק דיגיטאלי 0 D2.) - interrupt 1 - פסיקה מספר .3בהדק ( 3 מתחברת להדק דיגיטאלי 1 D3.) -

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

– פונקציות מסוימות לא יפעלו כראוי !!ISR: כאשר מופעלת תכנית טיפול בפסיקה – הערה ) ( תפסיק לספור אלפיות שנייהmillisec) ( לא תעבוד והפונקציה delayלדוגמא הפונקציה

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

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

19

Page 20: introductio.docx · Web viewארדואינו – מבוא – חומרה ותוכנה מה זה ארדואינו? באתר הבית של arduino : נמצא את ההסבר ... מתח

www.arikporat.com

for )int i = 0 ; i > 0 ;i++({סדרת פקודות { אם נתרגם את קטע התכנית הזה הקומפיילר לא יתרגם אותו ויגיד שיש בעיה עם האופטימייזר

אז הואvolatile int i=0 והתנאי בלולאה לא יתקיים אף פעם. אם נרשום 0 יהיה תמיד iכי יכול להשתנות ) על ידי פסיקה למשל(.iיתרגם את הקטע הזה כי אומרים לו שהערך של

הערות חשובות:

) שגרת השרותISR – Interrupt Service Routine לתהליך הטיפול בפסיקה קוראים א. .ISRלפסיקה( ולתכנית המטפלת בפסיקה קוראים פונקציית

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

כדאי מאוד לרשום אותה קצרה ומהירה מאוד. ג.

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

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

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

.volatileומומלץ להגדיר אותם גם כ ) ( attachInterruptהפונקציה

- יקרא המיקרו בקר כאשר קורית הפסיקה. ISRהפונקציה מציינת לאיזו תכנית טיפול - התחביר :

attachInterrupt)interrupt, ISR, mode(

interrupt . מספר הפסיקה –

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

mode אפשרויות :4 – מגדיר מה צריך להיות בהדק כדי לקבל פסיקה. יש

.0 – להפעיל פסיקה כאשר בהדק יש LOW א.

להפעיל פסיקה כל פעם שיש חילוף מצב בהדק. – CHANGEב.

.1 ל 0להפעיל פסיקה כשיש עליה מ - RISINGג.

.0 ל 1 להפעיל פסיקה כשיש ירידה מ - FALLINGד.

הפונקציה איננה מחזירה ערך.

; אומרת שמדובר)attachInterrupt ) 1,monitor,FALLINGלדוגמה : הפקודה ( , כשהיא תופעל תבוצע פונקציהD3 ) מתחברת להדק 1בפסיקה מספר

20

Page 21: introductio.docx · Web viewארדואינו – מבוא – חומרה ותוכנה מה זה ארדואינו? באתר הבית של arduino : נמצא את ההסבר ... מתח

www.arikporat.com

.0 ל 1 . הפסיקה תקרה אם יש בהדק ירידה מ monitorשנקראת

דוגמה :

של הארדואינו ) שישמש אותנו כהדק פסיקה2נחבר מפסק להדק דיגיטאלי ' אל ההדק.0' . לחיצה על המפסק תעביר '1 (. במצב רגיל יש בהדק זה '0מספר

שבארדואינו לפי הלחיצות13נכתוב תכנית שתהבהב את מצב הלד שבהדק במפסק. כל לחיצה תחליף את מצב הלד. לחיצה ראשונה תדליק אותו, לחיצה

שנייה תכבה אותו, הלחיצה השלישית תדליק אותו וחוזר חלילה.

#define pin 13 // מספר ההדק הגדרה של שבו מחוברת הלד

volatile int state = LOW; // הגדרת משתנה מטיפוס שלם שערכו יכול להשתנות בפסיקהvoid setup)({  pinMode)pin, OUTPUT(; // כמוצא13הגדרת הדק

(, 2 )מתחברת להדק דיגיטאלי 0נגדיר פסיקה שמספרה blink והיא תופעל //שתפעיל את הפונקציה0 ל 1 או מ 1 ל 0כאשר יש שינוי בהדק מ //  attachInterrupt)0, blink, CHANGE(; {

void loop)({  digitalWrite)pin, state(; // 13הוצאת הערך שבמשתנה ללד שבהדק {// ------ D2 אליה מגיעים בכל פעם שיש שינוי בהדק פונקציית הפסיקה -----void blink)({  state = !state; // ולהפך1 יהיה 0הפוך מצב המשתנה . אם היה בו {

)(detachInterruptפונקציה נוספת הקשורה לפסיקות היא :

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

)detachInterrupt)interruptהתחביר :

Interrupt. הוא מספר הפסיקה שרוצים לחסום/ להפסיק

1; חוסמת/מפסיקה את פסיקה מספר )detachInterrupt)1לדוגמה, הפקודה : .D3המתחברת להדק

21

Page 22: introductio.docx · Web viewארדואינו – מבוא – חומרה ותוכנה מה זה ארדואינו? באתר הבית של arduino : נמצא את ההסבר ... מתח

www.arikporat.com

22