ה- Raspberry Pi הוא מחשב עם לוח יחיד רב-תכליתי שהפך למועדף על חובבים, מחנכים ואנשי מקצוע כאחד. אחת התכונות החזקות ביותר שלה היא היכולת לקיים אינטראקציה עם העולם הפיזי באמצעות סיכות קלט/פלט כללי (GPIO). על ידי מינוף פיתון, שפת תכנות ידידותית למתחילים ועוצמתית, תוכלו לשלוט על סיכות ה- GPIO הללו כדי לבנות מגוון רחב של פרויקטים, החל ממצמוץ LED פשוט ועד מערכות אוטומציה ביתיות מורכבות. בפוסט בבלוג זה, אנו נעביר אותך דרך היסודות של שימוש ב- Raspberry Pi כדי לשלוט ב- GPIO עם Python.
הבנת סיכות GPIO
סיכות GPIO הן ממשקים רב -תכליתיים ב- Raspberry Pi המאפשרים לך לחבר ולשלוט במכשירים חיצוניים כמו נוריות LED, חיישנים, מנועים ועוד. תלוי בדגם של Raspberry Pi, תמצא מספר משתנה של סיכות GPIO המסודרות בתבנית ספציפית. ניתן להגדיר את הסיכות הללו ככניסות או תפוקות:
- קֶלֶט: קרא אותות ממכשירים חיצוניים (למשל, כפתורים, חיישנים).
- תְפוּקָה: שלח אותות למכשירים חיצוניים (למשל, נוריות LED, ממסרים).
לפני שאתה צולל להיבט התכנות, חיוני להבין את פריסת ה- PIN של ה- Raspberry Pi שלך. עיין בתרשים הרשמי של Raspberry Pi Gpio Pinout למידע מדויק ספציפי למודל שלך.
הגדרת ה- Raspberry Pi שלך
כדי להתחיל לשלוט על סיכות GPIO עם פייתון, וודא כי ה- Raspberry Pi שלך מוגדר נכון:
- התקן את ה- Raspberry Pi OS האחרון: וודא ש- Raspberry Pi שלך מפעיל את הגרסה האחרונה של Raspberry Pi Os. אתה יכול להוריד אותו מהאתר הרשמי של Raspberry Pi ולהשתמש בכלים כמו Raspberry Pi Imager כדי להבהב אותו בכרטיס ה- SD שלך.
- עדכן את המערכת שלך: פתח את הטרמינל והפעל את הפקודות הבאות כדי לעדכן את חבילות המערכת שלך:
sudo apt update
sudo apt upgrade -y
sudo apt install python3-rpi.gpio
כתיבת התסריט הראשון שלך ב- GPIO Python
נתחיל עם פרויקט פשוט: מהבהב LED. תזדקק לרכיבים הבאים:
- Raspberry Pi
- LED
- נגד 220 אוהם
- חוטי לחם וגשר
חיווט LED:
- חבר את הרגל הארוכה (האנודה) של ה- LED ל- GPIO PIN 17 דרך הנגד.
- חבר את הרגל הקצרה (הקתודה) של ה- LED לסיכה קרקעית (GND) ב- Raspberry Pi.
עכשיו, בואו נכתוב את התסריט של פייתון כדי לשלוט ב- LED.
מהבהב LED עם פייתון
import RPi.GPIO as GPIO
import time
# Use BCM GPIO numbering
GPIO.setmode(GPIO.BCM)
# Set GPIO pin 17 as output
LED_PIN = 17
GPIO.setup(LED_PIN, GPIO.OUT)
try:
while True:
GPIO.output(LED_PIN, GPIO.HIGH) # Turn LED on
time.sleep(1) # Wait for 1 second
GPIO.output(LED_PIN, GPIO.LOW) # Turn LED off
time.sleep(1) # Wait for 1 second
except KeyboardInterrupt:
pass
finally:
GPIO.cleanup() # Reset GPIO settings
הֶסבֵּר:
-
import RPi.GPIO as GPIO
: מייבא את ספריית RPI.GPIO. -
import time
: מייבא את מודול הזמן לפונקציונליות שינה. -
GPIO.setmode(GPIO.BCM)
: מגדיר את תוכנית מספור ה- PIN של GPIO ל- BCM (ערוץ Broadcom SOC). -
GPIO.setup(LED_PIN, GPIO.OUT)
: מגדיר את התצורה של GPIO PIN 17 כסיכת פלט. - THE
try
בלוק מכיל לולאה אינסופית שמפעילה את ה- LED ומכבה כל שנייה. -
GPIO.cleanup()
: מנקה את הגדרות ה- GPIO כדי להבטיח יציאה נקייה.
הפעלת התסריט שלך
שמור את התסריט שלך כ- blink_led.py
והריץ אותו באמצעות הפקודה הבאה:
python3 blink_led.py
אתה אמור לראות את ה- LED המחובר ל- GPIO PIN 17 מהבהב ומכבה כל שנייה. כדי לעצור את התסריט, לחץ על Ctrl + C
.
הרחבת הפרויקט שלך
לאחר ששלטת בממצמצים של LED, אתה יכול לחקור פרויקטים מורכבים יותר על ידי שילוב חיישנים ומפעילים שונים. להלן מספר רעיונות כדי להתחיל:
- אינטראקציה של כפתורים: שלוט ב- LED באמצעות כפתור פיזי. זה כרוך בהגדרת סיכת GPIO כקלט וקריאת מצבה בתסריט הפיתון שלך.
- רישום נתוני חיישנים: השתמש בחיישנים כמו גלאי טמפרטורה או תנועה כדי לאסוף נתונים ולהתחבר אותם לניתוח.
- אוטומציה ביתית: שליטה במכשירי חשמל מרחוק על ידי שילוב בקרת GPIO עם ממשקי אינטרנט או אפליקציות סלולריות.
שליטה על כפתור
בואו נרחיב את הדוגמה הקודמת שלנו על ידי הוספת כפתור לשליטה על ה- LED. תצטרך:
- לְחִיץ
- נגן 10K-OHM
- חוטי מגשר נוספים
חיווט הכפתור:
- חבר רגל אחת של הכפתור ל- GPIO PIN 27.
- חבר את הרגל השנייה לסיכה קרקעית (GND) דרך נגן 10K-OHM.
להלן סקריפט Python כדי לשלוט ב- LED עם הכפתור:
import RPi.GPIO as GPIO
import time
# Use BCM GPIO numbering
GPIO.setmode(GPIO.BCM)
# Define GPIO pins
LED_PIN = 17
BUTTON_PIN = 27
# Set up GPIO pins
GPIO.setup(LED_PIN, GPIO.OUT)
GPIO.setup(BUTTON_PIN, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
try:
while True:
button_state = GPIO.input(BUTTON_PIN)
if button_state == GPIO.HIGH:
GPIO.output(LED_PIN, GPIO.HIGH) # Turn LED on
else:
GPIO.output(LED_PIN, GPIO.LOW) # Turn LED off
time.sleep(0.1)
except KeyboardInterrupt:
pass
finally:
GPIO.cleanup()
הֶסבֵּר:
- GPIO PIN 27 מוגדר כקלט עם נגן נשלף כדי להבטיח מצב יציב כאשר הכפתור לא לוחץ.
- התסריט קורא ברציפות את מצב הכפתור ומדליק את ה- LED כאשר לחיצה על הכפתור.
שיטות עבודה מומלצות וטיפים לבטיחות
כשאתה עובד עם סיכות GPIO, חשוב לדבוק בשיטות העבודה המומלצות כדי להימנע מפגיעה ב- Raspberry Pi או רכיבים מחוברים שלך:
- כבה בעת חיבור חומרה: כבה תמיד את ה- Raspberry Pi שלך לפני חיבור או ניתוק חומרה כדי למנוע מעגלים קצרים.
- השתמש בנגדים מגבילים זרם: הגן על הרכיבים שלך באמצעות נגדים מתאימים, במיוחד בעבודה עם נוריות LED.
- חיווט בדוק כפול: ודא שכל החיבורים נכונים כדי למנוע נזק מקרי לסיכות GPIO.
- טיפול בזהירות: הימנע מפריקה סטטית על ידי טיפול ב- PI של פטל ורכיבים בזהירות.
מַסְקָנָה
שליטה על סיכות GPIO עם פייתון ב- Raspberry Pi פותחת עולם של אפשרויות ליצירת פרויקטים אינטראקטיביים ואוטומטיים. החל ממשימות פשוטות כמו נוריות LED למערכות מורכבות יותר הכוללות חיישנים ומפעילים מרובים, שליטה בשליטה על GPIO היא מיומנות בסיסית עבור כל חובב פטל PI. על ידי ביצוע הצעדים המפורטים במדריך זה והקפדה על שיטות עבודה מומלצות, תהיה בדרך שלך לבנות פרויקטים מרגשים וחדשניים.
מתעסק שמח!