Raspberry Pi הוא לוח מבוסס מעבד ארכיטקטורה של ARM המיועד למהנדסים אלקטרוניים וחובבים. ה- PI היא אחת מפלטפורמות פיתוח הפרויקטים המהימנות ביותר שקיימות כעת. עם מהירות מעבד גבוהה יותר ו- 1 GB RAM, ניתן להשתמש ב- PI לפרויקטים רבים בפרופיל גבוה כמו עיבוד תמונה ואינטרנט של הדברים.
לצורך ביצוע פרויקטים בפרופיל גבוה, יש להבין את הפונקציות הבסיסיות של PI. אנו נסקור את כל הפונקציות הבסיסיות של פטל פאי במדריכים אלה. בכל הדרכה נדון באחת הפונקציות של PI. בסוף סדרת ההדרכה של פטל זה תוכלו לבצע פרויקטים בעלי פרופיל גבוה בעצמכם. עבור להדרכות למטה:
- תחילת העבודה עם פטל פי
- תצורת פטל פי
- נורית LED מהבהבת
- ממשק כפתור פטל פי
- דור ה- PWM של פטל פי
- שליטה במנוע DC באמצעות Raspberry Pi
- בקרת מנוע צעד עם פטל פי
- ממשק ממשק משמרות עם פטל פי
- מדריך ADC לפטל פטל
במדריך זה נשלוט על מנוע סרוו עם פטל פי. לפני שנלך לסרוו בואו נדבר על PWM כי הרעיון של שליטה על סרוו מנוע נובע ממנו.
PWM (אפנון רוחב הדופק):
בעבר דיברנו על PWM פעמים רבות ב: אפנון רוחב הדופק עם ATmega32, PWM עם Arduino Uno, PWM עם 555 IC טיימר ו- PWM עם Arduino Due. PWM מייצג 'אפנון רוחב דופק'. PWM היא שיטה המשמשת להשגת מתח משתנה מאספקת חשמל יציבה. להבנה טובה יותר של PWM שקול את המעגל להלן,
באיור לעיל, אם המתג נסגר ברציפות לאורך תקופה מסוימת, נורית ה- LED תהיה 'דולקת' במהלך הזמן הזה ברציפות. אם המתג סגור לחצי שנייה ונפתח למחצית השנייה הבאה, אז נורית ה- LED דולקת רק במחצית השנייה השנייה. כעת הפרופורציה שעבורה נורת LED דולקת לאורך הזמן הכולל נקראת מחזור החובה, וניתן לחשב אותה באופן הבא:
מחזור עבודה = הפעל זמן / (הפעל זמן + כיבוי זמן)
מחזור חובה = (0.5 / (0.5 + 0.5)) = 50%
אז מתח המוצא הממוצע יהיה 50% ממתח הסוללה.
כשאנחנו מגדילים את מהירות ההפעלה והכיבוי לרמה נראה את ה- LED מעומעמת במקום להיות מופעלת וכיבויה. הסיבה לכך היא שעינינו אינן יכולות לתפוס בבירור תדרים גבוהים מ- 25 הרץ. שקול מחזור 100ms, נורית LED כבויה למשך 30msec ו- ON למשך 70msec. יהיה לנו 70% מהמתח היציב ביציאה, כך שנורית LED תבריק ברציפות בעוצמה של 70%.
יחס החובה עובר מ- 0 ל 100. '0' פירושו OFF לחלוטין ו- '100' מופעל לחלוטין. יחס החובה הזה חשוב מאוד עבור מנוע הסרוו. עמדת סרוו מוטור נקבעת על ידי יחס חובה זה. בדוק זאת להפגנת PWM עם LED ו- Raspberry Pi.
מנוע סרוו ו- PWM:
מנוע סרוו הוא שילוב של מנוע DC, מערכת בקרת מיקום והילוכים. סרוו יש יישומים רבים בעולם המודרני ועם זה, הם זמינים בצורות ובגדלים שונים. אנו נשתמש במנוע סרוו SG90 במדריך זה, הוא אחד הפופולריים והזולים ביותר. SG90 הוא סרוו של 180 מעלות. אז עם סרוו זה אנו יכולים למקם את הציר בין 0-180 מעלות.
למנוע סרוו יש בעיקר שלושה חוטים, אחד מיועד למתח חיובי, אחר מיועד לקרקע והאחרון הוא להגדרת מיקום. החוט האדום מחובר למקור מתח, חוט בראון מחובר לקרקע צהוב תיל (או לבן) מחובר אות.
בסרוו, יש לנו מערכת בקרה שלוקחת את אות ה- PWM מסיכת האות. זה מפענח את האות ומקבל ממנו את יחס החובה. לאחר מכן, הוא משווה את היחס לערכי המיקומים שהוגדרו מראש. אם יש הבדל בערכים, הוא מתאים את מיקום הסרוו בהתאם. אז מיקום הציר של מנוע הסרוו מבוסס על יחס החובה של אות ה- PWM בסיכת האות.
תדירות האות PWM (Pulse Width Modulated) יכולה להשתנות בהתאם לסוג מנוע הסרוו. עבור SG90 תדר אות ה- PWM הוא 50Hz. כדי לברר את תדירות הפעולה של סרוו שלך, עיין בגליון הנתונים עבור אותו דגם מסוים. אז לאחר שנבחר התדר, הדבר החשוב הנוסף כאן הוא יחס החובה של אות ה- PWM.
הטבלה שלהלן מציגה את עמדת סרוו עבור יחס החובה המסוים. אתה יכול לקבל כל זווית בין לבין על ידי בחירת הערך בהתאם. אז עבור 45 מעלות סרוו יחס החובה צריך להיות '5' או 5%.
עמדה |
יחס חובה |
0º |
2.5 |
90 מעלות |
7.5 |
180º |
12.5 |
לפני שתממשק מנוע סרוו לפטל פי, תוכלו לבדוק את סרווכם בעזרת מעגל הבוחן המנועי סרוו הזה. בדוק גם את הפרויקטים הבאים של סרוו:
- בקרת מנוע סרוו באמצעות Arduino
- בקרת מנוע סרוו עם Arduino Due
- ממשק מנועי סרוו עם מיקרו-בקר 8051
- בקרת מנוע סרוו באמצעות MATLAB
- בקרת מנוע סרוו על ידי חיישן Flex
- בקרת מיקום סרוו עם משקל (חיישן כוח)
רכיבים נדרשים:
כאן אנו משתמשים ב- Raspberry Pi 2 דגם B עם Raspbian Jessie OS. כל דרישות החומרה והתוכנה הבסיסיות נדונו בעבר, אתה יכול לחפש את זה במבוא לפטל, מלבד זה שאנחנו צריכים:
- סיכות חיבור
- קבל 1000uF
- מנוע סרוו SG90
- קרש לחם
תרשים מעגל:
חייבים לחבר A1000µF על מסילת הכוח + 5V אחרת ה- PI עלול להיסגר באופן אקראי תוך כדי שליטה על הסרוו.
הסבר על עבודה ותכנות:
לאחר שהכל מחובר לפי דיאגרמת המעגל, אנו יכולים להפעיל את ה- PI כדי לכתוב את התוכנית ב- PYHTON.
נדבר על כמה פקודות בהן נשתמש בתוכנית PYHTON, אנו הולכים לייבא קובץ GPIO מהספרייה, הפונקציה הבאה מאפשרת לנו לתכנת סיכות GPIO של PI. אנו גם משנים את השם "GPIO" ל- "IO", ולכן בתוכנית בכל פעם שברצוננו להתייחס לסיכות GPIO נשתמש במילה 'IO'.
ייבא את RPi.GPIO כ- IO
לפעמים, כאשר סיכות ה- GPIO, בהן אנו מנסים להשתמש, עשויות לבצע פונקציות אחרות. במקרה כזה נקבל אזהרות בזמן ביצוע התוכנית. הפקודה למטה אומרת ל- PI להתעלם מהאזהרות ולהמשיך בתוכנית.
IO.setwarnings (שקר)
אנו יכולים להפנות את סיכות ה- GPIO של PI, על ידי מספר סיכה על הלוח או על ידי מספר הפונקציה שלהן. כמו 'PIN 29' על הלוח הוא 'GPIO5'. אז אנו אומרים כאן או שנציג את הסיכה כאן על ידי '29' או '5'.
IO.setmode (IO.BCM)
אנו מגדירים את PIN39 או GPIO19 כסיכת פלט. נקבל פלט PWM מהסיכה הזו.
IO.setup (19, IO.OUT)
לאחר הגדרת סיכת הפלט, עלינו להתקין את הפין כסיכת פלט PWM, p = IO.PWM (ערוץ פלט, תדירות אות PWM)
הפקודה הנ"ל היא להגדרת הערוץ וגם להגדרת תדר הערוץ ". 'p' הנה משתנה זה יכול להיות כל דבר. אנו משתמשים ב- GPIO19 כערוץ הפלט של PWM. "תדר של אות PWM" נבחר 50, שכן תדר העבודה SG90 הוא 50 הרץ.
הפקודה למטה משמשת להפעלת יצירת אותות PWM. ' DUTYCYCLE ' מיועד לקביעת יחס 'הפעל' כמוסבר קודם, p.start (DUTYCYCLE)
הפקודה למטה משמשת לולאה לנצח, עם פקודה זו ההצהרות בתוך לולאה זו יבוצעו ברציפות.
בעוד 1:
כאן התוכנית לבקרת סרוו באמצעות פטל פאי מספקת אות PWM ב- GPIO19. יחס החובה של אות ה- PWM משתנה בין שלושה ערכים למשך שלוש שניות. אז בכל שנייה הסרוו מסתובב למצב שנקבע על ידי יחס החובה. סרוו מסתובב ברציפות ל- 0º, 90º ו- 180º בשלוש שניות.