3.30. סיכום#

עברת על החלקים של המודול machine שעולים ברגע שסקריפט מדבר עם העולם הפיזי:

  • פלט וקלט GPIO – הנעת LED או טרנזיסטור, קריאת לחצן או מתג גבול. אבני הבניין שעליהן נשען כל פרויקט חומרה, עם נגדי pull ו-debouncing תוכנתי עבור קריאות שחייבות להיות אמינות.

  • אותות אנלוגיים – קריאת חיישן, פוטנציומטר, או כל מתח אחר המשתנה ברציפות עם ה-ADC; וכאשר אין DAC זמין, ייצור מתח מבוקר עם PWM ומסנן RC מעביר-נמוכים.

  • יישומי PWM – עמעום LED, שינוי מהירות של מנוע DC דרך גשר-H, מיקום סרוו. צורת גל אחת, ממצעים פיזיים שונים (העין, ההשראות של המנוע) ומסגורים שונים (מחזור עבודה לעומת רוחב פולס מוחלט).

  • אפיקים סיריאלייםUART עבור קישורים אסינכרוניים מנקודה לנקודה; SPI עבור התקנים היקפיים מהירים על-הלוח עם chip-select אחד לכל התקן; I2C עבור אפיקי חיישן איטיים מרובי-התקנים על שני חוטים בלבד; CAN עבור אפיקי שדה איתנים מרובי-בעלים בין מודולים.

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

זה מספיק כדי לבנות את לולאת ה-חוש – תכנן – פעל של התקן משובץ: קריאת חיישנים דרך I2C / SPI / ADC, קבלת החלטות ב-Python, הנעת מפעילים דרך PWM / GPIO, דיווח מצב דרך UART / CAN, שינה בין אירועים.

3.30.1. שימוש בעיון זה בהמשך#

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

3.30.2. לאן להמשיך מכאן#

חיישני ראייה הם הנושא הגדול הבא. במקום שבו חלק זה לימד את ההתקנים ההיקפיים הגנריים – Pin, ADC, PWM, UART, SPI, I2C, CAN – שמופיעים כמעט בכל MCU, החלק הבא מלמד את ההתקן ההיקפי ה-מגדיר של המצלמה לעומק רב: חיישן התמונה, והשרשרת הארוכה של אופטיקה, סיליקון, ועיבוד אותות בין פוטונים הפוגעים בזכוכית לחוצץ של פיקסלים ב-RAM. ערכת הכלים עוברת למודולים csi ו-image, אך כל מה שלמדת על הנעת GPIO, דיבור דרך I2C, ושימוש ב-PWM ממשיך הלאה ללא שינוי – מבזקים, טריגרים, ומגיני חיישנים כולם משתמשים באותם אפיקים שזה עתה כיסית.