מרצה: גיא ברשפ
Download
Report
Transcript מרצה: גיא ברשפ
סדנאת ארדואינו
(לאנשי תוכנה )
מרצה :גיא ברשפ
רגע לפני-מי שעוד שלא מכיר...
בימי חמישי -הרצאות/סדנאות העשרה בתחומים כלליים וטכנולוגיים ,כולכם
מוזמנים לגראג' לשמוע וליזום שת"פים.
מהרצאות העבר:
שרשראות מרקוב ושימושים בסיסמאות פרו-אקטיביות
–NEO 4Jדטהבייס גראפי ( )NOSQL
Bitcoin
Synthetic terrain
Phone OS
למידה חישובית וSVM -
VLSI Design
ועוד'
מהרצאות העתידECC,Natural language proccessing, :
ובפעם הראשונה :
סדנאת !Hands ON
עקרונות הסדנא-מתחילים!
מטרות הסדנא הינן :שיתוף פעולה ,תרגול עקרונות פשוטים ,כדי לקבל
תחושה מספיק טובה כדי לעבוד עם הארדואינו בהמשך.
האופן שבו תבוצע ההדרכה (באידאל):
הסבר תיאורטי קצר (אני) 5-דקות
הדגמה פשוטה(אני) 5 -דקות
תרגול של דברים מתקדמים (אתם) 10-15-דקות
כלל הרכיבים הנם רכוש פרטי,נא להקפיד לשמור עליהם.
לאחר ביצוע המשימות הניתנות,מוזמנים בזמן שנותר לנסות דברים חדשים.
המלצה לעבודה :חלוקת אחריות לחומרה/תוכנה עבור משימה ,ושיתוף
פעולה.
התלהבות ועזרה הדדית בסיום המשימות.
מה נדבר ומה נתרגל?
ארדואינו סקירה (סוגי החומרות,מבנה,שימושים,היכרות עם הציוד)
סביבה ,שפה ,ועקרונות בסיסיים
המעגל האלקטרוני הראשון שלנו
היכרות בסיסית עם מושגי "חומרה"(אנלוגי/דיגטלי)
קריאה מסנסור ראשון (והכנת בקר למשאיות ברברס)..
הנעת מנוע צד ()...
התחברות לממשק סריאלי (/RPIמחשב/מע' שו )...ופיצוח סיסמאות
נסיון לבניית פרוייקט עם הרכיבים שהבאתם
הדגמת "רואה יורה" .open-source
קצת רקע על עולם המיקרו-בקרים
מיקרו-בקר הוא רכיב מתוכנת ,שהוא למעשה מערכת מחשבפונקציונלית
שלמה ,המוכללת ברכיב אלקטרוני בודד .כך ניתן למצוא בתוך הרכיב את כל
המרכיבים המקובלים של מערכת מחשב ,כמויחידת עיבוד וזיכרון.
כפי ששמו מרמז ,מטרתו של המיקרו-בקר היא לבקר על תהליכים ,ולצורך
כך ,נמצא במיקרו-בקרים גם רכיבי כניסות ויציאות ( I/O),המשמשים
לבקרה ולתקשורת עם העולם החיצוני.
מיקרו-בקרים מצויים כמעט בכל מוצר המכיל אלמנט אלקטרוני/חשמלי
כלשהו ,כגון כלי-רכב ,מכונות ביתיות ומשרדיות וצעצועים.
השימוש במיקרו-בקר כמעגל משולב בודד ,במקום מספר רכיבים נפרדים
(מיקרו-מעבד ,זכרונות ובקרי I/O),מאפשר להקטין בגודל ועלות היצור
של מוצרים.
קיימים מיקרו בקרים שניתן לתכנת אליהם ב python , .NETועוד'..
סקירה-ארדואינו
ַארדּואִ ינֹו (מאיטלקית )Arduinoהוא מיקרו-בקר בעל מעגל
ְ
מודפס יחיד ( Single Board MicroController),עם סביבת
פיתוח משולבת ( )IDEברישיון קוד פתוח ,אשר מטרתה ליצור סביבה
נוחה וזולה לפיתוח פרויקטים המשלבים תוכנה עם רכיבי אלקטרוניקה.
דוגמאות לפרוייקטים
(או :למי יש $40לבזבז?)
!Soon….YOUR ‘S HACKS
סוגי ארדואינו
mega2560 uno /Duemilanove mini
ליליפאד
.מס' יציאות,אפשרויות משחק עם גודל
:יש מלא סוגים נוספים,open hardware – מאחר שהארדואינו
Freeduino, RBBB (Really Bare Bones Board), DFRuino,
Seeeduino, Roboduino (for robotics), Gator
תכלס ,מה נדרש כדי להתחיל עם ארדואינו?
(או :בוא נפתח את קופסאת ההפתעות)....
מחשב)$35-300( ...
לוח ארדאינו ( )$30-$12
-Breadboardאופציונלי ( )$5
סנסורים (..סדר גודל $5-10לאחד)
( Shieldsסדר גודל של )$40
לדים,נגדים,טרנזיסטורים (...סדר גודל של )$15
ערכת בסיסית טובה ניתן למצוא ב ,$60אחרי חיפוש יסודי בגוגל
ארדואינו אונו-היכרות ציוד
Background Specs
Flash Memory32 KB
(ATmega328) of which 0.5 KB
used by bootloader
SRAM2 KB (ATmega328)
EEPROM1 KB (ATmega328)
Clock Speed16 MHz
היכרות ציודBreadBoard-
איור :איך חוטי החשמל מחוברים בלוח מאחורה.
היכרות ציודLED -
יש לבדוק Vבאמצעות מולטימטר
נגדים ( )resistors
נמדדים באוהם)Ω(.
אין חשיבות לכיוון.
ככל שערכם גדול יותר,כך מאבדים יותר מתח.
ניתן לחשב את עוצמת ההתנגדות ע"פ טבלת צבעים( .או להיעזר
במולטימטר )
Sensor-Ultrasonic
מודד מרחק ע"י שליחת פולס
בהמשך נחקור את ה data-sheetשלו
ציוד נוסף שיהיה זמין בסדנא
באזר(משמיע קול)
כפתור-מפסק
מנוע צד
רגש אור
רגיסטר
ועוד כ 40-סנסורים בסוף הסדנא
(גלאי אש ,IR ,ג'ויסטיק ועוד')...
שפה וסביבה-מתחילים לתכנת...
סביבת ארדואינו דומה ל -Cנקראת ( Wiringה IDEבנוי ב)JAVA -
עוטפת פקודות מכונה של ארדואינו לעבודה בצורה כמעט מיידית.
ניתן להוריד אותה בצורה חופשית מarduino.cc :
תוכנית נקראת sketchנכתבת בסינטקס של C
ניתן לצרף Headersומס' קבצים,אך אין לעבור תוכנית מקומפלת
גדולה מגודל ה –FLASHבמקרה של K32 – UNO
יש להגדיר את סוג ה, boardקצב ה baudוהCOM-
תרגול -הארדואינו מחובר למחשב(אם יש צורך,נא להתקין
driverמהתיקייה של ארדואינו)
היכרות סביבת עבודה
Basics programming
Setup,loop -שני מתודות הכרחיות
נגדיר את כל הפינים שהולכים להשתמש בהםSetupב
. נשתמש בהםLoop ב
:פקודות בסיסיות להתחלה
PinMode( pinNumber, type:Output/input)
digitalWrite)pinNumber,HIGH/LOW)
digitalRead(pinNumber, HIGH/LOW)
Delay(msec)
13 הדלקת פין:תרגול ראשון לחימום
…Now for the real thing
אחרי ששיחקנו עם לד קבוע...
הגיע הזמן ל....
הרכבת מעגל ראשון!!!!!!!
...לפני שמתחילים מעגל ראשון
דרכים בטוחות להרוס את הארדואינו1o
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
Method #10: Exceed Total Microcontroller Current
....הוראות אלו נכתבו בעשן וריח של שרוף
מעגל חשמלי ראשון(קלט/פלט)
ממה מורכב?
זרם ממתח גבוה למתח נמוך
הארקה
רכיבים לטובת מעגלים שניצור:
לד (החלק הקצר יותר מיועד ל)GND
נגד(בכיר)..
BreadBoard
איך נראית הסכימה? ( UMLשל עולם החומרה)..
הדגמה פשוטה :הדלקת לד בדיליי
קצת על חומרה ,חוק אום וחוק קירכהוף
חוק אום-V ,V=IR:מתח-I ,זרם חשמלי-R ,התגנדות
לכן אם נתונה לנו נורת לד שתומכת בעלת מתח 1.7וזרםmA20 :
ע"י חישוב פשוט נקבל כי נצטרך X = )5-1.7 (: 0.020 :אוהם
חוקי קירכהוף(מה לעשות כשיש מספר רכיבים):
בחיבור חשמלי בטור של שניים או יותר רכיבים חשמליים ,הזרם שעובר בכל
אחד מהרכיבים -זהה ,והמתח הכולל עליהם שווה לסכום המתחים על כל אחד
מהם בנפרד.ואילו ההנגדות הינהReq = R1 + R2 + .... Rn :
בחיבור חשמלי במקביל של שניים או יותר רכיבים חשמליים ,המתח על כל
אחד מהם -זהה ,והזרם הכולל שעובר בהם שווה לסכום הזרמים שעובר בכל
אחד מהם בנפרדReq = 1/{(1/R1)+(1/R2)+(1/R3)..+(1/Rn)} .
הדגמה:מעגל עם נורה .תרגול :הפעלת דימר
תרגול בונוס :עבודה עם רגיסטר
Digital vs analog
רציף מול בדיד
אנלוגי -אותות רציפים,חלקים,הרבה רעשים,צריך עיבוד.
החלפת אנלוגי לדיגטלי מבצע קוואנטיזציה
כדי לבצע המרה הפוכה משתמשים ב ,)~( PWMוכותבים בצורה
אנלוגית
בשיטה זו בעזרת ארדואינו,ניתן להמיר אות דיגטלי למספר בכ( 1024-
) 210
(תמונה שווה יותר מ 100מילים)PWM
אות דיגטלי יודע להוציא מתח של V5או )duty cycle ( V0
כדי לשלוט על עוצמת אור/מנוע חשמלי נדרשים יותר מצבים.
איך ניתן למשל להעביר ? V2.5
נעביר חצי מהזמן V5חצי מהזמן )duty cycle 50% ( V0
בעזרת הטריק הזה בעצם מבצעים "אינטגרציה" כדי לקבל טווח גדול
יותר של ערכים,כאשר זה מתבצע בתדירות גבוהה יחסית
פונקציות שימושיות
map(val, 300, 700, 0, 1024);
analogRead() –from A0-A6 pins
שימו לב כי sensorValue * (5.0 / 1023.0)= Sensor Votls
analogWrite() -via PWM
תרגול :קריאת אות אנלוגי מפוטומטר ,והדלקת הנורה בעוצמת
האור ההפוכה
סנסור Ultra Sonic
דרכי הפעולה בהתממשקות לסנסור
חיפוש וקנייה ב…DX/seed studio/
עיון בData sheet-
מחקר עצמאי ( לעשות לו)Reversing.. :
מציאת קוד שמישהו כבר מימש...
משימה :כתיבת מערכת למשאיות
(ככל שמתקרב יותר,ככה משמיע צלצול בתדירות גבוהה יותר)
מנוע סרבו
ניעזר בספרייה Servo.h
סרבו הינו סוג של מנוע מיני רבים( סטפר,וכד')
מנוע מוגבל ל 180מעלות(וניתן לקבוע לו את הערך ()POS
יש לשים לב לחבר אותו ליציאה .PWM
יש לשים לב לא להחליף את ה ( - , +אדום זה ,+חום זה ,-
כתום=דאטה)
אל תקטינו את הדיליי יותר מדיי! זה יתקע אותו.
תרגול Clapper :עם כפתור
ממשק סריאלי עם המחשב
תקשורת סדרתית ()byte by byte
הקצב נמדד ב ( baud- bits per secondנכוון ל)9600-
ניעזר בספרייה Serial
;)Serial.begin(baud
)if (Serial. available () > 0
{
;)(value = Serial.read
///
;)Serial.write(value
;)delay(200
}
משימה :לכתוב הזדהות רק ליוזר בשם שלכם להפעיל לד )נתונה תוכנית
בפייתון)
הדגמה ממשק סריאלי
מערכת רואה יורה
שימוש ב, Raspberry Piלקבלת Inputממצלמה וביצוע "ראייה
ממוחשבת" לצורך זיהוי בן אדם.
שימוש ב SimpleCV
ביצוע reversingלאקדח בועות,והתחברות למנוע שמפגעיל
לא "מבצעי" עקב זרם נמוך מהפינים של ארדואינו
ארדואינו בפעם הבאהSheilds ..
סנסורים זה כיף ומגניב...
אבל מה עם תקשורת ?zigbee/BT/ethernet
שמירה על זכרון קבוע (?)SD
התממשקות זה למיקום ?GPS
קבלת מידע מתגי ?RFID
תקשורת בין רכיבים ( ,)SPIמגוון מנועים
כל אלו ועוד נעשו ע"י Shieldsייעודיים,ופונקציות מוכנות לשליפה,
בכ $40 -לאחד
מקורות
http://www.ladyada.net/learn/arduino/
BLOG Jermey blum
) (המדריך של טוביHwzone.co.il
Arduino.cc
:כמוכן את המצגת תוכלו למצוא ב
Barshapp.roadmap.co.il