במדריך הקודם שלנו למדנו כיצד להתקין פיתון במכונת החלונות שלנו וכיצד לממשק ארדואינו עם פיתון באמצעות פרויקט בקרת LED פשוט. אם אתה חדש, אני ממליץ לך בחזרה לחזור להדרכה הקודמת מאחר והדרכה זו היא המשך של אותה.
אולי כבר התחלת לתהות מדוע נצטרך פיתון עם ארדואינו אם כל מה שהוא יכול לעשות זה פשוט לתקשר דרך יציאה טורית. אבל, פייתון היא פלטפורמת פיתוח חזקה מאוד בה ניתן לשלב הרבה יישומים מגניבים בהם ניתן לשלב למידת מכונה, ראיית מחשב ועוד. במדריך זה נלמד כיצד נוכל ליצור ממשק גרפי קטן באמצעות פייתון. לשם כך נצטרך מודול בשם Vpython. ההדרכה הבאה חלה רק על משתמשי חלונות מכיוון שלמשתמש מק או לינוקס, ההליך שונה.
בסוף הדרכה זו נלמד כיצד נוכל ליצור ממשק משתמש פשוט פשוט באמצעות Python. נכין אנימציה קטנה המגיבה לערכו של חיישן אולטרה סאונד המחובר לארדואינו. יישום זה עוקב אחר האובייקט באמצעות חיישן אולטרה סאונד ומציג אותו בצורה גרפית במחשב באמצעות VPython. כשאנחנו מזיזים את האובייקט, חיישן אולטרה סאונד חש את המרחק ושולח מידע זה לתוכנית פייתון באמצעות Arduino והוא גם יעביר את האובייקט במחשב. נשמע מעניין נכון! אז בואו נתחיל…
דרישות קדם:
- ארדואינו (כל גרסה)
- חיישן קולי HC-SR04
- חוטי חיבור
- מחשב עם פייתון
- ידע בהדרכה הקודמת
התקנת VPython במחשב שלך:
במדריך הקודם שלנו כבר למדנו כיצד להתקין פיתון במחשב שלך וכיצד לנוע סביבו וליצור תוכנית פשוטה עם Arduino. עכשיו התקנו את Visual Python (VPython) על גבי זה כדי שנוכל ליצור גרפיקה מגניבה באמצעות Python עבור Arduino. לקבלת השלבים הפשוטים להלן כדי להתחיל לעבוד עם VPython
שלב 1. ודא שפייתון כבר מותקן בהתאם להנחיות הדרכה קודמות.
שלב 2. לחץ על VPython כדי להוריד את קובץ ה- exe עבור Visual Python. אל תבחר להתקין גרסת 64 סיביות גם אם המחשב שלך פועל על 64 סיביות. פשוט עקוב אחר הקישור שניתן.
שלב 3. הפעל את קובץ ה- exe ובצע את ההתקנה. אל תשנה את נתיב הספריה המוגדר כברירת מחדל וודא שבחרת "התקנה מלאה".
שלב 4. לאחר ההתקנה, עליך למצוא יישום חדש בשם "VIDLE (VPython)" בשולחן העבודה או בלוח היישום שלך, כמוצג להלן.
שלב 5. הפעל את היישום ואתה אמור לקבל חלון כפי שמוצג להלן.
שלב 6. זהו החלון בו נקליד את התוכנית עבור VPython. אבל, בינתיים הבה נבדוק אם Vpython עובד על ידי פתיחת תוכנית לדוגמא. לשם כך בחרו File-> Open-> Bounce
שלב 7. אתה אמור לפתוח תוכנית לדוגמא. נסה להפעיל את התוכנית באמצעות הפעלה -> הפעלת מודול . אם הכל עובד כצפוי אתה אמור לקבל את המסך הבא.
אתה אמור לראות את חלון המעטפת (משמאל) עם שני >>> המציינים אוסף מוצלח ואת החלון הממשי (מלפנים) המציג כדור מקפץ.
שלב 8. אתה יכול גם לנסות תוכניות דוגמה אחרות כדי לגלות את כוחו של VPython, למשל תוכנית הדוגמא הנקראת "מנוע חשמלי" תדהים אותך על ידי המסך הבא.
שלב 9. המשמעות היא שה- VPython שלך מוכן לשימוש ותוכל לרדת לנושא " תכנות ה- Vpython שלך ".
שלב 10. אחרת אם אתה כמו אחד מבין הרבים שמקבלים "שגיאה מטומטמת" אל תאבד את התקווה שכן אנו מסדרים את הנושא בשלבים הבאים
שלב 11. פתח את המחשב שלי -> כונן C -> פייתון 27 -> סקריפטים -> local.bat . פעולה זו תפעיל שורת פקודה כמוצג להלן
שלב 12. כעת הקלד "pip install - upgrade numpy" ולחץ על Enter. הגרסה החדשה של Numpy צריכה להיות מותקנת במחשב שלך. ייתכן שתצטרך לחכות זמן מה אם חיבור האינטרנט שלך איטי.
שלב 13. לאחר שתסיים אתה יכול לחזור לשלב מספר 4 ולנסות תוכנית לדוגמא ואתה אמור להיות מסוגל לגרום לזה לעבוד.
תכנות VPython:
לאחר מכן אנו מתחילים לתכנת לחלון ה- VPython שלנו. בתוכנית זו ניצור שני אובייקטים מלבניים תלת-ממדיים, אחד מהם יוצב במרכז המסך, תוך התייחסות לחיישן האולטרסאוני הנייח והשני יהיה במיקום דינמי על בסיס המרחק בין החיישן האמריקאי לאובייקט (נייר).
את קוד הפייתון המלא תוכלו למצוא בסוף עמוד זה. בהמשך הסברתי את קוד הפיתון הזה על ידי פיצולם לזבלונים משמעותיים קטנים.
השורה הראשונה תהיה ייבוא הספרייה החזותית כדי שנוכל ליצור אובייקטים תלת ממדיים. השורה שלמטה עושה את אותו הדבר.
מייבוא חזותי *
אתה צריך להכיר את ארבע השורות הבאות, מכיוון שהשתמשנו בהן כבר במדריך הקודם שלנו. הם משמשים לייבוא ספריית סדרות וזמנים וכן ליצור חיבור טורי עם Arduino ב- COM18 עם 9600 כ- Baudrate
ייבא סדרתי #Serial המיובא לתקשורת סדרתית זמן ייבוא # נדרש להשתמש בפונקציות עיכוב ArduinoSerial = serial.Serial ('com18', 9600) # צור אובייקט יציאה טורית בשם arduinoSerialData time.sleep (2) # המתן ל -2 שניות לתקשורת להתבסס
עכשיו הגיע הזמן ליצור אובייקטים. יש לי יצר שני מלבנים 3D בשם obj ואת הקיר. WallL הוא קיר נייח בצבע ציאן להציב במרכז המסך ואת obj הוא אובייקט המטלטלין בצבע לבן. הנחתי טקסט "חיישן ארה"ב" ליד אובייקט הקיר.
obj = תיבה (pos = (- 5,0,0), size = (0.1,4,4), color = color.white) wallL = box (pos = (- 1,0,0), size = (0.2, 12,12), color = color.cyan) טקסט (טקסט = 'חיישן ארה"ב', ציר = (0,1,0), pos = (- 2, -6,0), עומק = -0.3, צבע = color.cyan)
אני בטוח ששלושת השורות שלעיל היו מופיעות כיווניות ולטיניות עבור רוב הקוראים בפעם הראשונה, אך עם הזמן תוכל להבין זאת. כל מה שמוזכר בסוגריים הוא (x, y, z) קואורדינטות. והקואורדינטות הללו דומות מאוד לאלו שאנו מוצאים בכיתת הגיאומטריה בתיכון, כפי שמוצג להלן.
כעת, הגרפיקה והיציאה הטורית מוכנים כל שעלינו לעשות הוא לקרוא את הנתונים ולהניח את ה"אוב " (מלבן לבן) במקום על פי הנתונים המגיעים מהארדואינו. זה יכול להיעשות על ידי השורות הבאות, כאשר obj.pos.x שולט במיקום ה- X לתאם של האובייקט (מלבן לבן).
t = int (ArduinoSerial.readline ()) קרא את הנתונים הסידוריים והדפס אותם כקו t = t * 0.05 obj.pos.x = t
הכנת Arduino שלך מוכנה:
סקריפט הפייתון מוכן להאזנה לערכים מיציאת COM ולהנפיש את הגרפיקה בהתאם, אך הארדואינו שלנו עדיין לא מוכן. ראשית עלינו לחבר את החיישן הקולי לארדואינו על פי דיאגרמת המעגלים הבאה. אם אתה חדש לגמרי בחיישן בארה"ב ובארדואינו, אתה צריך לחזור ללימוד מדידת מרחק מבוסס Arduino & Ultrasonic חיישנים.
לאחר מכן העלה את תוכנית Arduino שניתנה בסוף עמוד זה. התוכנית מוסברת באופן עצמי באמצעות שורות תגובה. אנו יודעים כי חיישן קולי עובד על ידי חישוב הזמן שלוקח לדופק לפגוע באובייקט ולחזור חזרה. ערך זה מחושב על ידי שימוש בפונקציה PulseIn בארדואינו . מאוחר יותר הזמן שנלקח מומר למרחק באמצעות השורה למטה.
dist = (לוח זמנים / 2) / 2.91;
כאן המרחק מחושב במונחים של מילימטרים (מ"מ).
עובד:
העבודה של הפרויקט היא פשוטה. הפעל את תוכנית הפייתון והצב אובייקט לפני החיישן האמריקאי כמוצג להלן:
עכשיו הפעל את תוכנית הפיתון ואתה אמור להיות מסוגל להבחין במלבן הלבן נע יחד עם הנייר שלך, המרחק בין הנייר לחיישן שלך יוצג גם בחלון המעטפת כפי שמוצג בתמונה למטה.
כך אנו יכולים לעקוב אחר תנועת האובייקט באמצעות חיישן קולי ופייתון עם Arduino.
מקווה שהבנתם את הפרויקט ונהניתם לבנות. זה רק צעד אחד עדין לעבר פיתון, אבל אתה יכול לבנות הרבה דברים יצירתיים יותר באמצעות זה. אם יש לך מושג מה לבנות עם זה פרסם אותם בסעיף ההערות והשתמש בפורומים לעזרה טכנית. נתראה עם פרויקט פיתון מעניין נוסף.