GPIO: όλα σχετικά με τις συνδέσεις Raspberry Pi 4 και 3

Raspberry Pi 4 GPIO

Ο GPIO καρφίτσες του Raspberry Pi 4 board, the 3, και επίσης οι προκάτοχοί του, παρέχουν στον πίνακα SBC δυνατότητες παρόμοιες με αυτές που μπορεί να έχει το Arduino, καθώς μαζί τους μπορείτε να δημιουργήσετε πολύ ενδιαφέροντα ηλεκτρονικά έργα που ελέγχονται από το λειτουργικό σύστημα μέσω κώδικα σε διαφορετικές γλώσσες, όπως η Python.

Αυτό κάνει τον πίνακα περισσότερο από έναν απλό υπολογιστή. Θα σας επιτρέψει να συνδέσετε ένα πλήθος ηλεκτρονικά στοιχεία που μπορείτε να χρησιμοποιήσετε με το Arduino, αλλά αυτό μπορεί επίσης να ελεγχθεί από το Pi. Σε αυτόν τον οδηγό θα προσπαθήσω να σας δώσω όσο το δυνατόν περισσότερες πληροφορίες σχετικά με αυτές τις καρφίτσες GPIO, ώστε να μπορείτε να τις εκμεταλλευτείτε ...

Τι είναι το GPIO;

GPIO

GPIO είναι το αρκτικόλεξο για την εισαγωγή / έξοδο γενικού σκοπού, δηλαδή την είσοδο / την έξοδο γενικού σκοπού. Διαφορετικά ηλεκτρονικά προϊόντα μπορούν να το έχουν, όπως τα ίδια τα τσιπ ή ορισμένες πλακέτες PCB όπως αυτό το Raspberry Pi. Όπως υποδηλώνει το όνομα, είναι καρφίτσες που μπορούν να διαμορφωθούν για να εκτελούν διαφορετικές λειτουργίες, επομένως είναι γενικού σκοπού και όχι για συγκεκριμένη χρήση.

Θα είναι ο χρήστης στο χρόνο εκτέλεσης που μπορεί διαμορφώστε αυτές τις ακίδες 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

Raspberry Pi GPIO

Το σχήμα ισχύει για την έκδοση 4, 3, Zero

νέος Πίνακες Raspberry Pi 4 και έκδοση 3 Είναι εξοπλισμένα με μεγάλο αριθμό καρφιών GPIO. Δεν προσφέρουν όλες οι εκδόσεις το ίδιο ποσό, ούτε αριθμούνται με τον ίδιο τρόπο, οπότε πρέπει να είστε προσεκτικοί με αυτό για να γνωρίζετε καλά πώς πρέπει να κάνετε τη σύνδεση σύμφωνα με το μοντέλο και την αναθεώρηση που έχετε.

Αλλά αυτό που είναι πιο γενικό είναι οι τύποι GPIO που μπορείτε να βρείτε στο λιμάνι των πινάκων Raspberry Pi. Και αυτό θα είναι το πρώτο πράγμα που θα ήθελα να ξεκαθαρίσω, γιατί έτσι θα ξέρετε τους τύπους καρφίτσες μπορείτε να βασιστείτε στα έργα σας:

  • σίτισηΑυτές οι ακίδες χρησιμοποιούνται για τη σύνδεση των καλωδίων ή των καλωδίων για τα ηλεκτρονικά σας έργα. Αντιστοιχούν σε καρφίτσες παρόμοιες με εκείνες της πλακέτας Arduino και που παρέχουν τάσεις 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 είναι μια άλλη σύνδεση που εξήγησα επίσης σε αυτό το blog. Αυτός ο δίαυλος αποτελείται από το σήμα δεδομένων (GPIO2) και το ρολόι (GPIO3). Εκτός από τα δεδομένα EEPROM (GPIO0) και το ρολόι EEPROM (GPIO1).
    • Σειριακή, μια άλλη πολύ πρακτική επικοινωνία με τις ακίδες TX (GPIO14) και RX (GPIO15) όπως αυτές που μπορείτε να βρείτε στον πίνακα Arduino UNO.

Θυμηθείτε ότι τα GPIO είναι η διεπαφή μεταξύ του Raspberry Pi και του εξωτερικού κόσμου, αλλά έχουν τους περιορισμούς του, ειδικά ηλεκτρικά. Κάτι που πρέπει να λάβετε υπόψη για να μην χαλάσετε το ταμπλό είναι να θυμάστε ότι αυτές οι καρφίτσες GPIO είναι συνήθως χωρίς προσθήκη, δηλαδή χωρίς buffer. Αυτό σημαίνει ότι δεν έχουν προστασία, επομένως πρέπει να παρακολουθείτε τα μεγέθη της τάσης και της έντασης που εφαρμόζονται, ώστε να μην καταλήξετε σε μια άχρηστη πλάκα ...

GPIO διαφορές μεταξύ των εκδόσεων

Παλιά καρφίτσες Raspberry Pi GPIO

Οπως είπα, δεν είναι όλα τα μοντέλα τα ίδια καρφίτσεςΕδώ είναι μερικά διαγράμματα, ώστε να μπορείτε να δείτε τις διαφορές μεταξύ των μοντέλων και, ως εκ τούτου, να μπορείτε να εστιάσετε στο Raspberry Pi 4 και 3, τα οποία είναι τα νεότερα και αυτά που πιθανώς έχετε στην κατοχή σας. Διαφέρει μεταξύ (κάθε ομάδα μοιράζεται τις ίδιες καρφίτσες):

  • Raspberry Pi 1 Model B Rev 1.0, με 26 ακίδες ελαφρώς διαφορετικό από το Rev2.
  • Raspberry Pi 1 Model A και B Rev 2.0, και τα δύο μοντέλα με 26 ακίδες.
  • Rapsberry Pi Model A +, B +, 2B, 3B, 3B +, Zero και Zero W, καθώς και 4 μοντέλα. Όλα με κεφαλίδα GPIO 40 ακίδων.

Τι μπορώ να συνδέσω στα GPIO;

Καπέλο Raspberry Pi

Όχι μόνο θα μπορείτε συνδέστε ηλεκτρονικές συσκευές ως τρανζίστορ, αισθητήρες υγρασίας / θερμοκρασίας, θερμίστορ, κινητήρες stepper, LEDs, και τα λοιπά. Μπορείτε επίσης να συνδέσετε εξαρτήματα ή μονάδες που δημιουργήθηκαν ειδικά για το Raspberry Pi και που επεκτείνουν τις δυνατότητες του πίνακα πέρα ​​από αυτό που περιλαμβάνεται στη βάση.

Αναφέρομαι στο διάσημο καπέλα ή καπέλα και πιάτα που μπορείτε να βρείτε στην αγορά. Υπάρχουν πολλοί τύποι, από εκείνους που χρησιμοποιούνται για τον έλεγχο κινητήρων με προγράμματα οδήγησης, έως άλλους για τη δημιουργία ένα σύμπλεγμα υπολογιστών, Με Πίνακας LED ελεγχόμενο, για προσθήκη Δυνατότητα τηλεόρασης DVB, οθόνη LCDΚ.λπ.

Αυτά τα καπέλα ή καπέλα Είναι τοποθετημένα στον πίνακα Raspberry Pi, ταιριάζουν με τα GPIO που χρειάζονται για να λειτουργήσει. Επομένως, η συναρμολόγηση είναι αρκετά απλή και γρήγορη. Φυσικά, βεβαιωθείτε ότι η έκδοση πινακίδας είναι συμβατή με κάθε καπέλο, καθώς η θύρα GPIO είναι διαφορετική όπως έχετε δει ...

Το λέω αυτό σε περίπτωση που έχετε παλαιότερη πλάκα, καθώς τα καπέλα είναι συμβατό μόνο με το νεότερο. Όπως και τα μοντέλα Raspberry Pi Model A +, B +, 2, 3 και 4.

Εισαγωγή στη χρήση του GPIO στο Raspberry Pi

Έξοδος εντολής Pinout

Πηγή: Raspberry Pi

Για να ξεκινήσετε, στο Raspbian, μπορείτε να ανοίξετε την κονσόλα και να πληκτρολογήσετε την εντολή καρφίτσαΑυτό που θα σας επιστρέψει είναι μια εικόνα στο τερματικό με τις καρφίτσες GPIO διαθέσιμες στην πλακέτα σας και για ποιον είναι ο καθένας. Κάτι πολύ πρακτικό να το έχετε πάντα παρόν τη στιγμή της εργασίας, ώστε να μην μπερδεύεστε.

Πρώτο έργο: αναβοσβήνει ένα LED με τα GPIO

GPIO με LED στο Raspberry Pi

Ο πιο βασικός τρόπος για να φτιάξετε ένα είδος "Γεια σου κόσμος" με GPIO είναι να χρησιμοποιήσετε ένα απλό LED συνδεδεμένο στις ακίδες του Raspberry Pi ώστε να μπορείτε να δείτε πώς λειτουργούν. Σε αυτήν την περίπτωση, το έχω συνδέσει με το GND και το άλλο στην καρφίτσα 17, αν και μπορείτε να επιλέξετε άλλη από τις κανονικές ακίδες ...

Μόλις συνδεθείτε, μπορείτε ελέγξτε τα από το Raspbian κάνοντας χρήση του τερματικού. Στο Linux, χρησιμοποιούνται συγκεκριμένα αρχεία όπως αυτά στον κατάλογο / sys / class / gpio /. Για παράδειγμα, για να δημιουργήσετε ένα αρχείο με την απαραίτητη δομή για να ξεκινήσετε να εργάζεστε:

echo 17 > /sys/class/gpio/export

Τότε μπορείς διαμόρφωση ως είσοδος (in) ή ως έξοδος (out) αυτός ο ακροδέκτης 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 script και στη συνέχεια εκτελέστε τα σε δέσμες ταυτόχρονα, αντί να τα πληκτρολογήσετε ένα προς ένα. Αυτό είναι βολικό όταν επαναλαμβάνετε την ίδια άσκηση πολλές φορές, οπότε δεν χρειάζεται να ξαναγράψετε. Απλά τρέξτε και φύγε. Για παράδειγμα:

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

Μόλις τελειώσετε, αποθηκεύετε και στη συνέχεια μπορείτε να του δώσετε τα κατάλληλα δικαιώματα εκτέλεσης και εκτέλεσης το σενάριο για να ανάψει η λυχνία LED, περιμένετε 1.3 δευτερόλεπτα και σβήστε έτσι σε ένα βρόχο ...

chmod +x led.sh
./led.sh

Προόδου προγραμματισμού

πηγαίος κώδικας γλώσσας προγραμματισμού

Προφανώς τα παραπάνω λειτουργούν για μικρά ηλεκτρονικά έργα με λίγα στοιχεία, αλλά αν θέλετε να δημιουργήσετε κάτι πιο προηγμένο, αντί για τις εντολές, αυτό που μπορείτε να χρησιμοποιήσετε είναι γλώσσες προγραμματισμού για να δημιουργήσετε διαφορετικά σενάρια ή πηγαίους κωδικούς που αυτοματοποιούν τη λειτουργία.

Μπορούν να χρησιμοποιηθούν διαφορετικά εργαλεία να προγραμματίσετε, με πολύ διαφορετικές γλώσσες. Οι βιβλιοθήκες που έχει αναπτύξει η κοινότητα κάνουν τα πράγματα πολύ πιο εύκολα για εσάς, όπως WiringPi, sysfs, pigpio κ.λπ. Τα προγράμματα μπορούν να ποικίλλουν, από την Python, η οποία είναι η προτιμώμενη επιλογή πολλών, μέσω των Ruby, Java, Perl, BASIC και ακόμη και C #.

Επισήμως, το Raspberry Pi σας προσφέρει πολλές εγκαταστάσεις για να προγραμματίσετε τα GPIO σας, όπως:

  • γρατσουνιά, για όσους δεν ξέρουν πώς να προγραμματίζουν και θέλουν να χρησιμοποιήσουν τα μπλοκ παζλ αυτού του έργου με τα οποία μπορεί επίσης να προγραμματιστεί το Arduino κ.λπ. Ο προγραμματισμός με γραφικά μπλοκ είναι αρκετά διαισθητικός και πολύ πρακτικός για τον τομέα της εκπαίδευσης.
  • Python: Αυτή η απλή ερμηνευμένη γλώσσα προγραμματισμού σάς επιτρέπει να δημιουργείτε απλούς και ισχυρούς κωδικούς, με πλήθος βιβλιοθηκών στη διάθεσή σας για να κάνετε σχεδόν ό, τι φαντάζεστε.
  • C / C ++ / C #: είναι πιο ισχυρές γλώσσες προγραμματισμού για τη δημιουργία δυαδικών αρχείων με τα οποία μπορούν να αλληλεπιδρούν με τους GPIO Μπορείτε να το κάνετε με διάφορους τρόπους, χρησιμοποιώντας την τυπική φόρμα ή διεπαφή πυρήνα μέσω της βιβλιοθήκηςlibgpiod, αλλά και μέσω βιβλιοθήκης τρίτων όπως χοίρος.
  • Επεξεργασία3, παρόμοιο με το Arduino.

Επιλέξτε με ευελιξία αυτό που σας αρέσει περισσότερο ή νομίζετε ότι είναι απλό.


4 σχόλια, αφήστε τα δικά σας

Αφήστε το σχόλιό σας

Η διεύθυνση email σας δεν θα δημοσιευθεί. Τα υποχρεωτικά πεδία σημειώνονται με *

*

*

  1. Υπεύθυνος για τα δεδομένα: Miguel Ángel Gatón
  2. Σκοπός των δεδομένων: Έλεγχος SPAM, διαχείριση σχολίων.
  3. Νομιμοποίηση: Η συγκατάθεσή σας
  4. Κοινοποίηση των δεδομένων: Τα δεδομένα δεν θα κοινοποιούνται σε τρίτους, εκτός από νομική υποχρέωση.
  5. Αποθήκευση δεδομένων: Βάση δεδομένων που φιλοξενείται από τα δίκτυα Occentus (ΕΕ)
  6. Δικαιώματα: Ανά πάσα στιγμή μπορείτε να περιορίσετε, να ανακτήσετε και να διαγράψετε τις πληροφορίες σας.

  1.   Εχθρός dijo

    Πολύ ωραίο άρθρο για το ξεκίνημα στο Rasperry

    1.    Ισαάκ dijo

      Σας ευχαριστώ πολύ.

      1.    Ρουθ Μεντίνα dijo

        είσαι ο συγγραφέας;

        1.    Ισαάκ dijo

          Ναί