מרצה: גיא ברשפ

‫סדנאת ארדואינו‬
‫(מנקודת מבט של מייקר‪)..‬‬
‫מרצה‪ :‬גיא ברשפ‬
‫רגע לפני‪-‬מי שעוד שלא מכיר‪...‬‬
‫‪ ‬בימי חמישי‪ -‬הרצאות‪/‬סדנאות העשרה בתחומים כלליים וטכנולוגיים‪ ,‬כולכם‬
‫מוזמנים לגראג' סייבר בצריפין‪ ,‬לשמוע וליזום שת"פים‪.‬‬
‫‪ ‬מהרצאות העבר‪:‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫שרשראות מרקוב ושימושים בסיסמאות פרו‪-‬אקטיביות‬
‫‪–NEO 4J‬דטהבייס גראפי ( ‪)NOSQL‬‬
‫‪Bitcoin‬‬
‫‪Synthetic terrain‬‬
‫‪Phone OS‬‬
‫למידה חישובית ו‪SVM -‬‬
‫‪VLSI Design‬‬
‫ועוד'‬
‫‪ ‬היום‪ ,‬בפעם השנייה‪ ,‬באירוע קדם מחנט‪:‬‬
‫‪ ‬סדנאת ‪ Hands ON‬בנושא ארדואינו‬
‫‪ ‬בעתיד הנראה לאופק‪ -WIFI HACKING 101 :‬לקהל הרחב‪.‬‬
‫עקרונות הסדנא‪-‬מתחילים!‬
‫‪ ‬מטרות הסדנא הינן‪ :‬חציית המעבר מתיאוריה לפרקטיקה בפלטפורמת ארדואינו‪.‬‬
‫‪ ‬האופן שבו תבוצע ההדרכה (באידאל)‪:‬‬
‫‪‬‬
‫הסברים בסיסיים על תוכנה‪ ,‬אלקטרוניקה‪ ,‬והעברת דגשים למשימות ולאתגר‪.‬‬
‫הדרכה בסיסית‬
‫לביצוע משימות‬
‫‪ 20-30‬דקות‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫עבודה עצמית הכוללת ליווי חונכים‬
‫כולל פתירת האתגר‬
‫‪ 60-80‬דקות‬
‫סיכום הכולל טיפים להמשך‪.‬‬
‫הצגת הדגמות משתתפים‪,‬‬
‫ופתרון האתגר!‬
‫‪ 15-20‬דקות‬
‫סדנא מוכוונת תרגול וניסוי עצמי ‪ ,‬והקניית כלים להמשך העמקה‪.‬‬
‫ההנחת עבודה למשתתפי הסדנא‪ -‬מכירים תיאורטית ארדואינו‪ ,‬וטרם "לכלכו ידיים"‬
‫המלצה לעבודה‪ :‬חלוקת אחריות לחומרה‪/‬תוכנה עבור משימה‪ ,‬ושיתוף פעולה‪.‬‬
‫מוזמנים לעבוד צמוד עם החונכים וצוות האדמניסטרציה‬
‫לכלל הפורמליסטיים ‪>-‬יהיו הרבה הסברים מופשטים (בכל זאת ‪ 20‬דקות הסבר‪)‬‬
‫מוטיבציה קצרצרה לארדואינו‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫לאנשי תוכנה‪-‬אינו דורש ידע מעמיק באלקט' והלחמות כדי לפתח!‬
‫לאנשי אלקט' ‪-‬אינו מצריך ידע בשפת סף כדי לפתח על בקרים! (‪)..,C‬‬
‫אינו "ייעודי" לבניית לוח ספציפי‪ ,‬אלא נותן יכולות גנריות לפיתוח‪.‬‬
‫זמן לימוד יחסית קצר לביצוע מדגים ראשוני‬
‫קיימים מגוון הרחבות חומרה של יכולות ארדואינו לפרוייקטי‪-‬‬
‫‪ ,Hacking ,Internet of Things‬מחשוב לביש וכד'‪.‬‬
‫קהילה גדולה ומתרחבת‪ ,‬המוציאה הדגמות חדשות מידי יום‬
‫רקע קצר –‬
‫‪ 5/10‬דקות על אלקטרוניקה הרלוונטית לארדואינו‬
‫‪ ‬מעגל אלקטרוני קלאסי ואיך ממומש באמצעות ארדואינו‬
‫נגד‬
‫נורה‬
‫פין נשלט‬
‫ע"י תוכנה‬
‫אדמה‬
‫מקור מתח‬
‫‪ ‬מקור מתח (באדואינו‪-‬סוללה‪ – )USB/‬עבודה במתח ישר‬
‫‪ ‬זרם חשמלי זורם מפוטנציאל מתח חיובי לשלילי‬
‫‪ ‬אנלוגיית מושגי חשמל למושגי מים‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫מתח ="לחץ המים" ‪,‬נמדד ב ‪Volts‬‬
‫זרם החשמל= "זרם המים"‪ ,‬נמדד באמפר ‪A‬‬
‫התנגדות="הגבלת זרם המים"‪ ,‬נמדד באוהם )‪(Ω‬‬
‫‪ ‬חוטי חשמל (מגשרים‪–)Jumper wires/‬מוליכי זרם (התנגדות קרובה לאפס אוהם)‬
‫שנועד "לחבר" בין רכיבי המערכת‬
‫‪" ‬תפקידו של הנגד הוא לייצר הפסד אנרגיה כדי לא "לשרוף" צרכנים שאינם ערוכים לזרם‬
‫כה רב"‬
‫רקע קצר –‬
‫‪ 8/10‬דקות אלקטרוניקה הרלוונטית לארדואינו‬
‫‪ ‬אות דיגיטלי ‪ VS‬אנלוגי (ו‪ 2-‬מילים על ‪)~PWM‬‬
‫‪ ‬רזולוציה של המרת אות אנלוגי לדיגיטלי(באונו זה ‪10‬ביט‪)...‬‬
‫‪ ‬בדיקת מתח זרם והתנגדות מבצעים באמצעות מולטימטר‬
‫‪‬‬
‫התנגדות ניתן לחשב לפי הצבעים באתר‪-‬לדוגמא‬
‫או באפליקציה ‪ -‬לדוגמא ‪ElectroDroid‬‬
‫‪www.dannyg.com/examples/res2/resistor.htm‬‬
‫‪ ‬הזרם המקסימאלי שמותר להעביר דרך‪ pin‬בודד ב‪ Arduino Uno-‬הוא‬
‫‪40 mA‬‬
‫‪ ‬הזרם המקסימאלי שמותר להעביר דרך כלל ה‪-pin‬ים (סכום של הזרם בכל‬
‫אחד מה ‪-pin‬ים) הוא ‪200mA‬‬
‫‪‬‬
‫‪‬‬
‫לרכיבים שנדרש יותר זרם ‪ -‬יש להשתמש בממסרים וכד'‬
‫לרכיבים שנדרש פחות זרם ‪ -‬יש להשתמש בנגדים‪.‬‬
‫‪ ‬להדגמות מורכבות יותר ניתן להעזר חוקי אלקטורניקה‬
‫‪‬‬
‫חוק אוהם ‪ ,V=IR‬חוקי המתחים והזרמים של קירכהוף‬
‫אילוסטרציה ‪PWM‬‬
‫בטיחות‬- ‫לפני שמתחילים מעגל ראשון‬10/10
‫ דרכים בטוחות להרוס את הארדואינו‬
Method #1: Shorting I/O Pins to Ground
Method #2: Shorting I/O Pins to Each Other
Method #3: Apply Overvoltage to I/O Pins
Method #4: Apply External Vin Power Backwards
Method #5: Apply >5V to the 5V Connector Pin
Method #6: Apply >3.3V to the 3.3V Connector Pin
Method #7: Short Vin to GND
Method #8: Apply 5V External Power with Vin Load
Method #9: Apply >13V to Reset Pin
!+220V ‫מילה וחצי על בטיחות – נא לא להתעסק עם מתח‬
‫במעגלים הראשונים הקפידו לוודא עם החונכים את החיבורים‬
.‫החשמליים טרם חיבור מקור המתח והפעלת המעגל‬
....‫הוראות אלו נכתבו בעשן וריח של שרוף‬
‫רקע קצר –‬
‫‪ 5/10‬דקות על תכנות הרלוונטי לארדואינו‬
‫‪ ‬שפת המיקרו בקר הינה ‪ ,C/C++‬לכן ניתן להשתמש בהם כרגיל‪-‬‬
‫‪‬‬
‫הגדרת משתנים )‪(int,float..‬לולאות(‪ , )for,while..‬תנאים ( ‪)if,switch..‬‬
‫‪ ‬למתקדמים – גם שימוש בפוינטרים‪ ,‬מבני ‪ structs‬וכד' – אך בזהירות ‪..‬‬
‫‪ ‬קיימים מגוון של פקודות המקלות על העבודה עם האלקטרוניקה (כחלק‬
‫ממילים שמורות בסביבת ‪ )Wiring‬כדוגמאת‪:‬‬
‫‪‬‬
‫‪‬‬
‫קריאה‪/‬כתיבה מתח מפין ‪X‬‬
‫קבועים‬
‫‪‬‬
‫‪‬‬
‫)(‪pinMode() / digitalWrite‬‬
‫‪LOW/HIGH‬‬
‫‪ – Bare-minimum ‬פונקציות ‪Setup , loop‬‬
‫‪ ‬לארדואינו ‪ 2‬זכרונות ‪ >-‬לא נדיפים ‪ FLASH‬ו ‪. EEPROM -‬‬
‫‪‬‬
‫וזכרון ‪ SRAM‬שהינו נדיף‪ ,‬וגודלו יחסית קטן – ב ‪ UNO‬מכיל רק ‪2KB‬‬
‫‪ 10/10‬הדגמה חיה על הסביבה האמיתית‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫היכרות עם סביבת העבודה‬
‫הגדרות לסוג ה‪, board‬קצב ה‪ baud‬והממשק הסריאלי‬
‫כתיבת התוכנית הראשונה ‪Hello world (blink) >-‬‬
‫שימוש בספריות חיצוניות‬
‫קמפול (הפיכת קוד התוכנה לקובץ ריצה)‬
‫העלאת התוכנית המקומפלת לבקר‬
‫הרצה!!‬
‫הסבר על תרגולי הסדנא –יאללה מתחילים!‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪QR-Code:‬‬
‫מעגל הראשון!‬
‫פלט אנלוגי ודיגיטלי‬
‫קלט מכפתור לחיץ‬
‫תקשורת סריאלית לדיבור עם הבקר‬
‫הפעלת מנועי צעד‪SERVO /‬‬
‫כתיבה לזכרון לא נדיף – ‪EEPROM‬‬
‫בונוס ‪ -‬שימוש בממסר ו‪/‬או סנסור כלשהו‬
‫דגשים לתרגילים מופיעים ב ‪ CheatSheet‬שקיבלתם‬
‫אה וכמובן‪-‬‬
‫@@@@@@@@אתגר הקדם מחנ"ט@@@@@@@@@@@‬
‫לינק להורדת האתגר –‬
‫‪ Barshapp.roadmap.co.il‬‬
‫בסיום האתגר מוזמנים להודיע לכולם ולהכות בגונג‬
‫שומר מקום‬
‫סיכום וטיפים להמשך‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫שימוש בפונקציונליות נוספת‪ :‬פסיקות‪ ,‬תכנות ‪ SPI‬ועוד'‪.‬‬
‫הרחבת זכרון ע"י שימוש ב‪SD Sheild‬‬
‫עבודה עם מנועים גדולים ע"י שימוש בממסרים‬
‫תכנות הארדואינו כ‪( HID -‬דימוי מקלדת‪)..‬‬
‫הקטנת גודל‪ – SHRINKIFY‬תכנות בקר‬
‫שימוש במחשוב לביש ( ‪)FLORA/EDISON/ LilyPad‬‬
‫חיבור לאינטרנט (‪YUN(66$) ,SPARK(20$), ESP8266 (3$‬‬
‫חיבור ל‪ BT‬וכד'‪..‬‬
‫מקורות‬
http://www.ladyada.net/learn/arduino/
BLOG Jermey blum
)‫ (המדריך של טובי‬Hwzone.co.il
http://www.idogendel.com/whitebyte ‫הבייט הלבן‬
Arduino.cc
:‫כמוכן את המצגת תוכלו למצוא ב‬
Barshapp.roadmap.co.il






`