GPIO: הכל על חיבורי Raspberry Pi 4 ו- 3

פטל פי 4 GPIO

ل סיכות GPIO של לוח Raspberry Pi 4, 3, וגם קודמיו, מספקים ללוח SBC יכולות דומות לאלו שיכולות להיות לארדואינו, מכיוון שאיתם תוכלו ליצור פרויקטים אלקטרוניים מעניינים מאוד הנשלטים ממערכת ההפעלה באמצעות קוד בשפות שונות, כמו Python.

זה הופך את הלוח ליותר מסתם מחשב זול. זה יאפשר לך לחבר מספר רב של אלמנטים אלקטרוניים שתוכלו להשתמש בהם עם Arduino, אך ניתן לשלוט בכך גם מה- Pi. במדריך זה אנסה לתת לך מידע רב ככל האפשר על סיכות GPIO אלה כדי שתוכל להתחיל לנצל אותם ...

מה זה GPIO?

GPIO

GPIO הוא ראשי התיבות של קלט / פלט לשימוש כללי, כלומר קלט / פלט לשימוש כללי. מוצרים אלקטרוניים שונים יכולים לקבל את זה, כמו השבבים עצמם או לוחות PCB מסוימים כגון פטל זה. כפי שהשם מרמז, הם פינים שניתן להגדיר לבצע פונקציות שונות, ולכן הם מטרה כללית ולא לשימוש ספציפי.

זה יהיה המשתמש בזמן הריצה שיכול הגדר את סיכות GPIO אלה כדי שיעשו מה שהוא רוצה. זה יכול להיעשות בדרכים שונות, כמו למשל בקודים או סקריפטים מסוימים מהקונסולה או באמצעות תוכנית Python, שהיא אחת הדרכים הפשוטות והמועדפות ביותר בגלל כמות האפשרויות העומדות לרשותך.

באופן זה, ל- Raspberry Pi לא רק יש סדרה של יציאות ו- ממשקים לחיבור התקנים סטנדרטיים מרובים, אך הוסף סיכות GPIO אלה כדי שתוכל להוסיף מכשירים אלקטרוניים אחרים או פרויקטים של יצרנים שיצרת בעצמך. באותו אופן שהיית עושה עם Arduino וסיכות ה- I / O שלו לשליטה.

Y לא בלעדי ל- Arduino או Raspberry Piכך גם לוחות SBC ומוצרים משובצים דומים אחרים.

פונקציות GPIO

ובין לבין המאפיינים שלה הבולט ביותר:

  • מאי להיות מוגדרים כך כקלט כפלט. יש להם את הדואליות הזו כפי שקורה לאלה של Arduino.
  • גם ה- GPIO מצמיד ניתן להפעיל ולנטרל לפי קוד. כלומר, ניתן להגדיר אותם ל -1 (רמת מתח גבוהה) או 0 (רמת מתח נמוך).
  • כמובן שהם יכולים קרא נתונים בינאריים, כאלו ואפסים, כלומר אות מתח או היעדרו.
  • ערכי פלט של קריאה וכתיבה.
  • ניתן להגדיר את ערכי הקלט במקרים מסוימים כ- אירועים כך שהם מייצרים סוג כלשהו של פעולה על הלוח או המערכת. ישנן מערכות משובצות המשתמשות בהן כ- IRQ. מקרה נוסף הוא להגדיר שכאשר סיכה אחת או יותר פעילות על ידי חיישנים מסוימים, בצע פעולה כלשהי ...
  • באשר למתח ולעוצמה, עליך לדעת היטב את היכולות המרביות המקובלות על הלוח, במקרה זה ה- Raspberry Pi 4 או 3. אתה לא צריך לעבור אותם כדי להימנע מפגיעה בו.

אגב, כאשר קבוצה של סיכות GPIO מקובצת, כמו שקורה ב- Raspberry Pi, הקבוצה ידועה בשם יציאת GPIO.

סיכות ה- GPIO של ה- Raspberry Pi

פטל פי GPIO

התוכנית תקפה לגרסה 4, 3, אפס

חדש Raspberry Pi 4 לוחות וגרסה 3 הם מצוידים במספר גדול של סיכות GPIO. לא כל הגרסאות מציעות את אותה הסכום, והן גם לא ממוספרות באותו אופן, לכן עליכם להיזהר עם זה כדי לדעת היטב כיצד עליכם ליצור את החיבור בהתאם למודל ולתיקון שיש לכם.

אבל מה שיותר כללי הוא סוגי ה- GPIO שתוכלו למצוא בנמל לוחות ה- Raspberry Pi. וזה יהיה הדבר הראשון שהייתי רוצה להבהיר, מכיוון שכך תדעו את סוגי הסיכות אתה יכול לסמוך על הפרויקטים שלך:

  • האכלה: פינים אלה משמשים לחיבור קווי החשמל או החיווט לפרויקטים האלקטרוניים שלך. הם תואמים לסיכות דומות לאלו שעל לוח הארדואינו ומספקים מתח של 5V ו- 3V3 (3.3V מוגבלים לעומס 50mA). בנוסף, תוכלו למצוא גם את הקרקעיים (GND או Ground). אם אינך משתמש במקורות חשמל חיצוניים כגון סוללות או מתאמים, פינים אלה יכולים להועיל להפעלת המעגל שלך.
  • DNC (לא להתחבר): הם פינים שיש בגרסאות מסוימות ואין להם שום פונקציה, אלא שבלוחות החדשים הם קיבלו מטרה אחרת. תוכלו למצוא אותם רק במודלים פרימיטיביים יותר של ה- Pi. ב- 3 וב -4 החדשים הם יסומנו כ- GND בדרך כלל, ויכולים להשתלב בקבוצה הקודמת.
  • סיכות הניתנות להגדרה: הם ה- GPIO הרגיל, וניתן לתכנת אותם באמצעות קודים כפי שאסביר בהמשך לעשות את מה שאתה צריך.
  • סיכות מיוחדות: מדובר בכמה חיבורים המיועדים לחיבורים או ממשקים מיוחדים כמו חיבורי סדרת UART, TXD ו- RXD וכו ', כפי שקורה עם Arduino. תוכלו למצוא אפילו כאלה כמו SDA, SCL, MOSI, MISO, SCLK, CE0, CE1 וכו '. הם בולטים ביניהם:
    • PWM, שיכולים לווסת את רוחב הדופק כפי שראינו במאמר קודם. ב- Raspberry Pi 3 ו- 4 הם GPIO12, GPIO13, GPIO18 ו- GPIO19.
    • SPI הוא ממשק תקשורת נוסף שדנתי בו גם במאמר אחר. במקרה של לוחות 40 פינים חדשים, הם הפינים (עם ערוצי תקשורת שונים כפי שאתה יכול לראות):
      • SPI0: MOSI (GPIO10), MISO (GPIO9), SCLK (GPIO11), CE0 (GPIO8), CE1 (GPIO7)
      • SPI1: MOSI (GPIO20); MISO (GPIO19); SCLK(GPIO21); CE0 (GPIO18); CE1 (GPIO17); CE2 (GPIO16)
    • I2C הוא קשר נוסף שהסברתי גם בבלוג זה. אוטובוס זה מורכב מאותות הנתונים (GPIO2) ומהשעון (GPIO3). בנוסף לנתוני EEPROM (GPIO0) ושעון EEPROM (GPIO1).
    • סדרתי, עוד תקשורת מעשית מאוד עם סיכות TX (GPIO14) ו- RX (GPIO15) כמו אלה שאתה יכול למצוא על הלוח Arduino UNO.

זכור כי GPIOs הם הממשק בין ה- Raspberry Pi לבין העולם החיצון, אך יש להם מגבלותיו, במיוחד חשמל. משהו שעליך לקחת בחשבון כדי לא לקלקל את הלוח הוא לזכור שסיכות GPIO אלה בדרך כלל אינן מאופקות, כלומר ללא מאגר. משמעות הדבר היא שאין להם הגנה, לכן עליכם לפקח על גודל המתח והעוצמה המופעלים על מנת שלא יהיה בסוף צלחת חסרת תועלת ...

הבדלי GPIO בין גרסאות

סיכות פטל GPIO ישנות

כמו שאמרתי, לא כל הדגמים הם אותם סיכותלהלן מספר דיאגרמות כך שתוכלו לראות את ההבדלים בין הדגמים וכך תוכלו להתמקד ב- Raspberry Pi 4 ו- 3, שהם החדשים ביותר וזה כנראה שיש ברשותכם. זה שונה בין (כל קבוצה חולקת את אותם סיכות):

  • Raspberry Pi 1 דגם B Rev 1.0, עם 26 פינים שונה במקצת מ- Rev2.
  • Raspberry Pi 1 דגם A ו- B Rev 2.0, שני הדגמים עם 26 פינים.
  • Rapsberry Pi דגם A +, B +, 2B, 3B, 3B +, Zero ו- Zero W, וגם 4 דגמים. כולם עם כותרת GPIO של 40 פינים.

מה אוכל לחבר ל- GPIO?

כובע פטל פי

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

אני מתייחס למפורסם כובעים או כובעים וצלחות שתוכלו למצוא בשוק. ישנם סוגים רבים, מאלה המשמשים לשליטה במנועים עם נהגים, וכלה באחרים ליצירה אשכול מחשוב, עם פנל לד לשליטה, להוסיף יכולת טלוויזיה DVB, מסך LCD, וכו '

כובעים או כובעים אלה הם מותקנים על לוח Raspberry Pi, התאמת GPIOs הדרושים כדי שזה יעבוד. לכן ההרכבה שלה די פשוטה ומהירה. כמובן, וודאו שגרסת הצלחת תואמת לכל כובע, מכיוון שיציאת GPIO שונה כפי שראיתם ...

אני אומר זאת למקרה שיש לך צלחת ישנה יותר, שכן כובעים הם תואם רק לחדשים ביותר. כמו גם פטל פי דגם A +, B +, 2, 3 ו -4 דגמים.

מבוא לשימוש ב- GPIO ב- Raspberry Pi

פלט פקודה Pinout

מקור: פטל פי

כדי להתחיל, ב- Raspbian, אתה יכול לפתוח את המסוף ולהקליד הפקודה pinoutמה שהוא יחזיר לכם הוא תמונה בטרמינל עם סיכות ה- GPIO הזמינות על הלוח שלכם ולמה כל אחד נועד. משהו מאוד פרקטי שתמיד יהיה נוכח ברגע העבודה כדי שלא תתבלבל.

פרויקט ראשון: מהבהב נורית עם GPIO

GPIO עם נורית על פטל פי

הדרך הבסיסית ביותר להכין סוג של "שלום עולם" עם GPIO זה להשתמש במנורת LED פשוטה המחוברת לסיכות של Raspberry Pi כדי שתוכלו לראות כיצד הם עובדים. במקרה זה חיברתי אותו ל- GND והשני לסיכה 17, אם כי אתה יכול לבחור עוד אחד מהסיכות הרגילות ...

לאחר חיבור, אתה יכול לשלוט בהם מ- Raspbian שימוש במסוף. בלינוקס משתמשים בקבצים ספציפיים כמו בקבצים / sys / class / gpio / directory. לדוגמה, כדי ליצור קובץ עם המבנה הדרוש כדי להתחיל לעבוד:

echo 17 > /sys/class/gpio/export

אז את \ ה יכול \ ה הגדר כקלט (פנימה) או כפלט (החוצה) אותו סיכה 17 שנבחרה לדוגמא שלנו. אתה יכול לעשות את זה בקלות רבה עם:

echo out > /sys/class/gpio/gpio17/direction

במקרה זה כפלט, מכיוון שאנחנו רוצים לשלוח דופק חשמלי אל ה- LED כדי להדליק אותו, אבל אם זה היה חיישן וכו ', אתה יכול להשתמש בו. עכשיו בשביל הפעל (1) או כבה (0) את LED אתה יכול להשתמש:

echo 1 > /sys/class/gpio/gpio17/value
echo 0 > /sys/class/gpio/gpio17/value

אם אתה רוצה לעבור לפרויקט אחר ו מחק רשומה שנוצר, אתה יכול לעשות זאת בדרך זו:

echo 17 > /sys/class/gpio/unexport

אגב, אתה יכול גם לאסוף את כל הפקודות הדרושות לפרויקט שלך, כמו כל הקודמות, לשמור אותן בסוג קובץ תסריט bash ואז הפעל אותם בצרור בבת אחת, במקום להקליד אותם בזה אחר זה. זה שימושי כשאתה חוזר על אותו תרגיל פעמים רבות, כך שלא תצטרך לכתוב מחדש. פשוט לרוץ וללכת. לדוגמה:

nano led.sh

#!/bin/bash
source gpio 
gpio mode 17 out
while true; do 
gpio write 17 1 
sleep 1.3 
gpio write 17 0 
sleep 1.3 done

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

chmod +x led.sh
./led.sh

התקדמות התכנות

קוד מקור שפת תכנות

ברור שהאמור לעיל עובד לפרויקטים אלקטרוניים קטנים עם מעט רכיבים, אך אם ברצונך ליצור משהו מתקדם יותר, במקום הפקודות, אתה יכול להשתמש בו שפות תכנות כדי ליצור סקריפטים או קודי מקור שונים, אשר מבצעים אוטומציה לפעולה.

ניתן להשתמש בהם כלים שונים לתכנות, עם שפות שונות מאוד. הספריות שפיתחה הקהילה מקלות עליך הרבה דברים כמו WiringPi, sysfs, pigpio וכו '. התוכניות יכולות להיות מגוונות מאוד, החל מ- Python, שהיא האופציה המועדפת על רבים, דרך Ruby, Java, Perl, BASIC ואפילו C #.

באופן רשמי, ה- Raspberry Pi מציע לך מתקנים רבים לתכנת את ה- GPIO שלך, כגון:

  • Scratch, למי שלא יודע לתכנת ורוצה להשתמש בגושי הפאזלים של הפרויקט הזה שאיתו ניתן לתכנת גם ארדואינו וכו '. תכנות עם בלוקים גרפיים הוא די אינטואיטיבי ומעשי מאוד לתחום החינוך.
  • פיתון: שפת התכנות הפירושה הפשוטה הזו מאפשרת לך ליצור קודים פשוטים ועוצמתיים, עם מספר רב של ספריות העומדות לרשותך כדי לעשות כמעט כל מה שאתה מדמיין.
  • C / C ++ / C #: הן שפות תכנות חזקות יותר ליצירת קבצים בינאריים איתם ניתן לקיים אינטראקציה עם ה- GPIO. אתה יכול לעשות את זה בכמה דרכים, באמצעות הטופס הסטנדרטי או ממשק הליבה דרך הספרייהlibgpiod, אך גם באמצעות ספריית צד שלישי כגון פיגיו.
  • עיבוד 3, בדומה לארדואינו.

בחר בגמישות זה שאתה הכי אוהב או שאתה חושב שהוא פשוט.


תוכן המאמר עומד בעקרונותינו של אתיקה עריכתית. כדי לדווח על שגיאה לחץ כאן.

2 תגובות, השאר את שלך

השאירו את התגובה שלכם

כתובת הדוא"ל שלך לא תפורסם. שדות חובה מסומנים *

*

*

  1. אחראי לנתונים: מיגל אנחל גטון
  2. מטרת הנתונים: בקרת ספאם, ניהול תגובות.
  3. לגיטימציה: הסכמתך
  4. מסירת הנתונים: הנתונים לא יועברו לצדדים שלישיים אלא בהתחייבות חוקית.
  5. אחסון נתונים: מסד נתונים המתארח על ידי Occentus Networks (EU)
  6. זכויות: בכל עת תוכל להגביל, לשחזר ולמחוק את המידע שלך.

  1.   אויב דיג'ו

    מאמר נחמד מאוד על התחלה ברספררי

    1.    יצחק דיג'ו

      תודה רבה.