Processing היא שפת תכנות בקוד פתוח שמיועדת בעיקר לאומנים אלקטרוניים ומעצבים חזותיים ונוצרה כדי ללמד תכנות בצורה חזותית. סביבת הפיתוח שלה מזכירה מאוד את סביבת הארדואינו וזה לא במקרה…ארדואינו מבוססת עליה.
ההיסטוריה שלהם הולכת הרבה שנים אחורה ומפתחי הארדואינו הם חובבים גדולים וממליצים עליה בחום. קלות השימוש בה, הדמיון שלה לארדואינו, והפונקציונליות החזותית/עיצובית שלה הופכות אותה לזיווג מושלם לארדואינו.
איך הם מדברים אחד עם השני?
באותה הדרך שבה לוח הארדואינו מתקשר עם חלון התקשורת הטורית. כשאנחנו לוחצים על הסמן הקטן בצורת זכוכית מגדלת בסביבת הפיתוח של הארדואינו, התוכנה שולחת פקודה להתחיל תקשורת עם הלוח. במקרה של Processing אותו רעיון מתבצע רק שאנחנו צריכים לתכנת את זה ידנית . אפשר להשתמש גם בשפות תכנות אחרות כמו פייתון למשל כדי לתקשר עם הארדואינו.
דבר אחד שחייבים לדעת הוא שם הפתחה שעליה יושב הארדואינו – בווינדוס זה בדרך כלל COM3 או אחר, ובלינוקס זה dev/ttyusb. בסביבת העבודה של הארדואינו אפשר ללחוץ על כלים ופתחה כדי למצוא את השם.
אם כן צורת התקשורת היא זהה לתקשורת רגילה עם הארדואינו והמחשב, ההבדל היחידי הוא שבמקום לקבל את המידע במחשב ע”י תוכנת הארדואינו לראות ולשלוח טקסט אנחנו רוצים לעשות עם המידע משהו יותר מעניין ע”י תוכנת Processing.
הורדה של Processing
היכנסו לאתר הראשי שלהם לחצו על הורדה, והורידו את הגרסה המתאימה למחשב שלכם, חלצו את הקובץ והפעילו אותו:
דומות לא? מצאו את ההבדלים…. לפני שנתחיל הנה סרטון קצר שמדגים את היכולות של התוכנה וייעודה:
תכנות והפעלה
באפליקציית Processing ניתן ליצור צורות, צבעים, אנימציות, טקסט לקבל פלט מעכבר או מקלדת, תקשורת טורית, אינטרנטית ועוד.
אפשר להבדיל את הסקיצות הקיימות לשתי סקיצות – סטטית ודינמית. סקיצה סטטית עושה משהו פעם אחת לדוגמה מציירת צורות:
אנחנו יוצרים מסך ייעודי בגודל 600×600 ואז מציירים צורות בקואורדינטות שאנחנו רוצים. פה מוסבר בדיוק איך לצייר צורות.
כדי לעשות דברים יותר מעניינים ואינטראקטיביים אנחנו יוצרים סקיצה דינמית שמשתנה בהתאם לקלט מסוים ע”י הפונקציה draw שהיא לולאה אינסופית:
תזוזה של העכבר יוצרת אליפסה חדשה ולחיצה עליו משנה את הצבע שלו. אפשר גם לקבל קלט ממקלדת ולעשות איתו דברים מעניינים. הפונקציה draw היא לולאה אינסופית והיא זו שיוצרת את הדינמיות.
הפעלה עם ארדואינו
עכשיו אפשר לתקשר עם הארדואינו דרך תקשורת טורית – serial.
הדרך הכי פשוטה ליצור דברים מעניינים היא ע”י פוטנציומטר כשאנחנו מחברים אותו בצורה הסטנדרטית לפין אנלוגי. את הערכים שלו נקבל ע”י Processing בצורה הבאה:
כל שינוי בהתנגדות של הפוטנציומטר מועבר למחשב דרך תקשורת טורית ומשנה את צבע הרקע של המסך.
מכיוון שאנחנו שולחים ערך שבין 0-255 אפשר ליצור מגוון של צבעים, במקרה הזה הצבע נע בין שחור לסגול. val הוא הערך המתקבל ב Processing. חשוב לציין כשהתוכנה רצה אי אפשר להעלות סקיצות לארדואינו כי שתיהן נמצאות על אותה פתחה, לכן צריך לסגור אותו קודם.
עוד דבר נחמד שאפשר לעשות הוא להזיז צורות תלת מימד ע”י הנגד המשתנה:
אפשר גם כמובן לקבל ערך מחיישנים אחרים, הנה דוגמה לתצוגת חיישן טמפרטורה עם טקסט וגרף בזמן אמת:
תקשורת הפוכה בין Processing לארדואינו
כדי להפעיל את הארדואינו מהתוכנה יש צורך לשלוח פקודות דרך התקשורת הטורית בצורה ההפוכה. אפשר להדליק נורה, להפעיל מנוע או כל דבר אחר.
משהו נחמד שאפשר לעשות הוא להעלות תמונות וללחוץ עליהן כדי להפעיל התקנים בארדואינו. בדוגמה הבאה בכל פעם שהעכבר לוחץ על תמונת הנורה מועברת פקודה לארדואינו להפעיל את פין 13. בכל פעם כשלוחצים על תמונת המנוע פין 9 נדלק במהירות מסוימת. בצורה זו אפשר ליצור ממשק משתמש ששולט בכל מיני התקנים ובמהירות שלהם.
קוד ארדואינו:
קוד Processing א:
קוד Processing ב:
ממשק משתמש:
אפשרויות נוספות
זהו על קצה הקרחון הסיפור בין ארדואינו ל Processing אבל יש עוד כמובן הרבה אפשרויות נוספות. Processing היא שפת תכנות לכל דבר וככזו מסוגלת לעשות הרבה דברים מעניינים.
אפשרות אחת מעניינת שחשבתי עליה היא הפעלה רבת משתמשים ואינטראקטיבית של התקנים בבקר ע”י רשת האינטרנט והצגה שלה על מסך ענק.
לדוגמה במועדון לילה או מסיבה אנשים יוכלו לשלוט על מה שמוצג על המסך ע”י הסמארטפון, או ע”י חיישנים שמחוברים לבקר(כפתורים, פוטנציומטר, חיישני לחץ וכדומה).
המחשב עם התוכנה ישמש כשרת אינטרנט שמקבל מידע מכל המשתמשים ומציג אותם על המסך בצורה חזותית.