Raspberry Pi הוא לוח מבוסס מעבד ארכיטקטורה של ARM המיועד למהנדסים אלקטרוניים וחובבים. ה- PI היא אחת מפלטפורמות פיתוח הפרויקטים המהימנות ביותר שקיימות כעת. עם מהירות מעבד גבוהה יותר ו- 1 GB RAM, ניתן להשתמש ב- PI לפרויקטים רבים בפרופיל גבוה כמו עיבוד תמונה ואינטרנט של הדברים.
לצורך ביצוע פרויקטים בפרופיל גבוה, יש להבין את הפונקציות הבסיסיות של PI. אנו נסקור את כל הפונקציות הבסיסיות של פטל פאי במדריכים אלה. בכל הדרכה נדון באחת הפונקציות של PI. בסוף סדרות ההדרכה תוכלו לבצע פרויקטים בעלי פרופיל גבוה בעצמכם. בדוק אלה לתחילת העבודה עם Raspberry Pi ו- Raspberry Pi Configuration.
שוחחנו על LED Blinky, ממשק כפתורים ודור PWM בהדרכות קודמות. במדריך זה נשלוט על מהירות מנוע DC בטכניקת Raspberry Pi ו- PWM. PWM (Pulse Width Modulation) היא שיטה המשמשת להוצאת מתח משתנה ממקור חשמל קבוע. שוחחנו על PWM במדריך הקודם.
ישנם 40 סיכות פלט של GPIO ב- Raspberry Pi 2. אך מתוך 40 ניתן לתכנת רק 26 סיכות GPIO (GPIO2 ל- GPIO27). חלק מהפינים הללו מבצעים כמה פונקציות מיוחדות. עם הצבת GPIO מיוחד, נותרו לנו 17 GPIO. למידע נוסף על סיכות GPIO, עברו על: LED מהבהב עם Raspberry Pi
כל אחד מ- 17 סיכות ה- GPIO הללו יכול לספק מקסימום 15mA. וסכום הזרמים מכל סיכות GPIO אינו יכול לעלות על 50mA. כך שנוכל לצייר מקסימום 3mA בממוצע מכל אחד מהסיכות של GPIO אלה. אז לא צריך להתעסק בדברים האלה אלא אם כן אתה יודע מה אתה עושה.
יש +5V (פינים 2 ו -4) ו -3.3 וולט (פינים 1 ו -17) סיכות פלט על הלוח לחיבור מודולים וחיישנים אחרים. מסילת הכוח הזו מחוברת במקביל לעוצמת המעבד. כך ששואב זרם גבוה ממעקה הכוח הזה משפיע על המעבד. ישנו נתיך בלוח ה- PI שייכנס ברגע שתחיל עומס גבוה. אתה יכול לשאוב 100mA בבטחה ממעקה + 3.3V. אנחנו מדברים על זה כאן כי; אנו מחברים את מנוע DC ל- 3.3V. עם מגבלת ההספק בחשבון, נוכל לחבר כאן רק מנוע בעל הספק נמוך, אם ברצונך להניע מנוע בעל הספק גבוה, שקול להפעיל אותו ממקור חשמל נפרד.
רכיבים נדרשים:
כאן אנו משתמשים ב- Raspberry Pi 2 דגם B עם Raspbian Jessie OS. כל דרישות החומרה והתוכנה הבסיסיות נדונו בעבר, אתה יכול לחפש את זה במבוא לפטל, מלבד זה שאנחנו צריכים:
- סיכות חיבור
- 220Ω או 1KΩ נגד (3)
- מנוע DC קטן
- כפתורים (2)
- טרנזיסטור 2N2222
- 1N4007 דיודה
- קבלים- 1000uF
- לוח לחם
הסבר מעגל:
כפי שנאמר קודם, איננו יכולים לשאוב יותר מ- 15mA מכל סיכות GPIO ומנוע DC שואב יותר מ- 15mA, ולכן לא ניתן להעביר את ה- PWM שנוצר על ידי Raspberry Pi ישירות למנוע DC. אז אם נחבר את המנוע ישירות ל- PI לבקרת מהירות, הלוח עלול להיפגע לצמיתות.
אז אנחנו הולכים להשתמש בטרנזיסטור NPN (2N2222) כמכשיר מיתוג. טרנזיסטור זה מניע כאן את מנוע ה- DC בעל הספק גבוה על ידי לקיחת אות PWM מ- PI. כאן צריך לשים לב שחיבור שגוי של הטרנזיסטור עלול להעמיס את הלוח בכבדות.
המנוע הוא אינדוקציה ולכן בזמן החלפת המנוע, אנו חווים קפיצה אינדוקטיבית. דוקרן זה יחמם את הטרנזיסטור בכבדות, לכן נשתמש בדיודה (1N4007) בכדי לספק הגנה לטרנזיסטור מפני ספייק אינדוקטיבי.
על מנת להפחית את תנודות המתח, נחבר קבל של 1000uF על פני ספק הכוח כפי שמוצג בתרשים המעגלים.
הסבר עבודה:
לאחר שהכל מחובר לפי דיאגרמת המעגל, אנו יכולים להפעיל את ה- PI כדי לכתוב את התוכנית ב- PYHTON.
נדבר על כמה פקודות בהן נשתמש בתוכנית PYHTON.
אנו הולכים לייבא קובץ GPIO מהספרייה, הפונקציה הבאה מאפשרת לנו לתכנת סיכות GPIO של PI. אנו גם משנים את השם "GPIO" ל- "IO", ולכן בתוכנית בכל פעם שברצוננו להתייחס לסיכות GPIO נשתמש במילה 'IO'.
ייבא את RPi.GPIO כ- IO
לפעמים, כאשר סיכות ה- GPIO, בהן אנו מנסים להשתמש, עשויות לבצע פונקציות אחרות. במקרה כזה נקבל אזהרות בזמן ביצוע התוכנית. הפקודה למטה אומרת ל- PI להתעלם מהאזהרות ולהמשיך בתוכנית.
IO.setwarnings (שקר)
אנו יכולים להפנות את סיכות ה- GPIO של PI, על ידי מספר סיכה על הלוח או על ידי מספר הפונקציה שלהן. כמו 'PIN 35' על הלוח הוא 'GPIO19'. אז אנו אומרים כאן או שאנחנו נציג את הסיכה כאן על ידי '35' או '19'.
IO.setmode (IO.BCM)
אנו מגדירים את GPIO19 (או PIN35) כסיכת פלט. נקבל פלט PWM מהסיכה הזו.
IO.setup (19, IO.IN)
לאחר הגדרת הסיכה כפלט עלינו להגדיר את הסיכה כסיכת פלט PWM, p = IO.PWM (ערוץ פלט, תדירות אות PWM)
הפקודה שלעיל מיועדת להגדרת הערוץ וגם להגדרת תדר אות ה- PWM. 'p' הנה משתנה זה יכול להיות כל דבר. אנו משתמשים ב- GPIO19 כערוץ הפלט של PWM. ' תדר של אות PWM ' נבחר 100, מכיוון שאיננו רוצים לראות נורית LED מהבהבת.
מתחת לפקודה משמש להפעלת יצירת אותות PWM, ' DUTYCYCLE ' מיועד להגדרת יחס הפעלה, 0 פירושו שהנורית תהיה דולקת למשך 0% מהזמן, 30 פירושה שהדלקת LED תהיה דולקת במשך 30% מהזמן ו- 100 פירושו מופעל לחלוטין.
p.start (DUTYCYCLE)
במקרה והתנאי בסוגריים נכון, ההצהרות בתוך הלולאה יבוצעו פעם אחת. אז אם סיכת ה- GPIO 26 תישאר נמוכה, ההצהרות בתוך לולאת ה- IF יבוצעו פעם אחת. אם סיכת ה- GPIO 26 אינה נמוכה, ההצהרות בתוך לולאת ה- IF לא יבוצעו.
אם (IO.input (26) == False):
בעוד 1: משמש לולאת אינסוף. באמצעות פקודה זו ההצהרות בתוך הלולאה הזו יבוצעו ברציפות.
יש לנו את כל הפקודות הדרושות כדי להשיג את בקרת המהירות בעזרת זה.
לאחר כתיבת התוכנית וביצועה, כל מה שנותר הוא הפעלת השליטה. יש לנו שני כפתורים המחוברים ל- PI; אחד להגדלת מחזור החובה של אות ה- PWM ואחר להפחתת מחזור החובה של אות ה- PWM. על ידי לחיצה על כפתור אחד המהירות של מנוע DC עולה ועל ידי לחיצה על הכפתור השני, מהירות מנוע DC יורדת. בעזרת זאת השגנו את בקרת המהירות של מנוע DC על ידי Raspberry Pi.
בדקו גם:
- בקרת מהירות מנוע DC
- בקרת מנוע DC באמצעות Arduino