Γιατί το GPIO Zero είναι καλύτερο από το RPi.GPIO για έργα Raspberry Pi
Διαφήμιση
Το Raspberry Pi είναι ο τέλειος υπολογιστής για μάθηση. Το βασισμένο στο Linux Raspbian OS έχει ενσωματωμένο το Python, το οποίο το καθιστά ένα μεγάλο πρώτο σύστημα για αρχάριους κωδικοποιητές. Οι ακίδες γενικού σκοπού εισόδου / εξόδου (GPIO) καθιστούν εύκολο για τους αρχάριους κατασκευαστές να πειραματιστούν με τα ηλεκτρονικά έργα DIY.
Είναι ιδιαίτερα εύκολο όταν χρησιμοποιείτε βιβλιοθήκες κώδικα που ελέγχουν αυτές τις καρφίτσες και η δημοφιλής βιβλιοθήκη RPi.GPIO Python είναι ένα εξαιρετικό παράδειγμα μιας τέτοιας βιβλιοθήκης. Αλλά είναι η καλύτερη διαδρομή για αρχάριους; Ελάτε μαζί μας καθώς ερευνούμε.
Τι είναι το GPIO μηδέν;
Η βιβλιοθήκη GPIO Zero είναι βιβλιοθήκη Python για εργασία με ακίδες GPIO. Γράφτηκε από τον διευθυντή κοινότητας Raspberry Pi Ben Nuttall. Με στόχο να είναι διαισθητικός και "φιλικός", εξορθολογεί τον κώδικα Python για τις πιο συνηθισμένες περιπτώσεις χρήσης Raspberry Pi.
Συνδυάζοντας απλές πρακτικές ονοματοδοσίας και περιγραφικές λειτουργίες, το GPIO Zero είναι πιο προσιτό στους αρχάριους για κατανόηση. Ακόμα και οι έμπειροι χρήστες της βιβλιοθήκης του RPi.GPIO μπορεί να το προτιμούν - και να καταλάβουμε γιατί, ας ρίξουμε μια ματιά στο πώς το RPi.GPIO συγκρίνεται με το GPIO Zero.
Τι είναι λάθος με το RPi.GPIO;
Τίποτα. Τίποτα απολύτως. Το RPi.GPIO κυκλοφόρησε στις αρχές του 2012 από τον προγραμματιστή Ben Croston. Είναι μια ισχυρή βιβλιοθήκη που επιτρέπει στους χρήστες να ελέγχουν τους ακροδέκτες GPIO από κώδικα. Διαθέτει σχεδόν κάθε έργο αρχάριων Τα 11 έργα Best Raspberry Pi για αρχάριους Τα 11 καλύτερα σχέδια Raspberry Pi για αρχάριους Αυτά τα σχέδια Raspberry Pi για αρχάριους είναι ιδανικά για να ξεκινήσετε με τις δυνατότητες οποιουδήποτε μοντέλου Raspberry Pi. Διαβάστε περισσότερα που καλύψαμε.
Παρά την εκτεταμένη χρήση του, το RPi.GPIO δεν σχεδιάστηκε ποτέ για τελικούς χρήστες. Είναι μια δοκιμασία για το καλό σχέδιο του RPi.GPIO που χρησιμοποιούν όλοι πολλοί αρχάριοι.
Τι είναι τόσο καλό για το GPIO Zero;
Όταν μαθαίνετε τον κώδικα Python, μαθαίνετε ότι πρέπει να είναι εύκολο να το διαβάσετε και όσο το δυνατόν πιο σύντομα. Το GPIO Zero έχει ως στόχο να καλύψει και τα δύο σημεία. Χτισμένο στην κορυφή του RPi.GPIO ως περιτύλιγμα γλώσσας εμπρός, απλοποιεί τη ρύθμιση και τη χρήση του GPIO.
Εξετάστε το ακόλουθο παράδειγμα, ρυθμίζοντας και ενεργοποιώντας μια λυχνία LED:
Ο παραπάνω κώδικας θα πρέπει να είναι αρκετά γνωστός σε όποιον έχει χρησιμοποιήσει το Pi για τον έλεγχο των LED.
Η βιβλιοθήκη RPi.GPIO εισάγεται και δηλώνεται μια καρφίτσα για το LED. Ο τύπος της καρφίτσας έχει ρυθμιστεί (ο τρόπος λειτουργίας BCM και BOARD εξηγούνται στον οδηγό GPIO) Όλα όσα πρέπει να ξέρετε για Raspberry Pi GPIO Pins Όλα όσα πρέπει να ξέρετε για το Raspberry Pi GPIO Pins Το Raspberry Pi είναι ένας φανταστικός μικρός υπολογιστής, αλλά τι κάνει οι ακροδέκτες GPIO (γενικής χρήσης εισόδου / εξόδου) κάνουν ακριβώς; Εν συντομία, ανοίγουν έναν ολόκληρο κόσμο DIY ηλεκτρονικών tinkering και εφεύρεση (Read More), και ο πείρος έχει ρυθμιστεί ως έξοδος. Στη συνέχεια, ο πείρος είναι ενεργοποιημένος.
Αυτή η προσέγγιση έχει νόημα, αλλά ο τρόπος GPIO Zero είναι πολύ πιο απλός:
Το GPIO Zero διαθέτει μια μονάδα για LED που εισάγονται στην αρχή. Αυτό σημαίνει ότι μπορείτε να δηλώσετε τον αριθμό PIN και να καλέσετε τη μέθοδο led.on () .
Γιατί η προσέγγιση του GPIO Zero είναι καλύτερη;
Υπάρχουν ορισμένοι λόγοι για τους οποίους αυτή η μέθοδος εργασίας είναι μια βελτίωση στο RPi.GPIO.
Πρώτον, πληροί την απαίτηση "εύκολη στην ανάγνωση, όσο το δυνατόν πιο σύντομη". Ενώ οι δηλώσεις εγκατάστασης RPi.GPIO είναι αρκετά εύκολο να κατανοήσουν, δεν είναι απαραίτητες. Μια LED θα είναι πάντα μια έξοδος, έτσι GPIO Zero θέτει τις ακίδες πίσω από τις σκηνές. Το αποτέλεσμα είναι μόνο τρεις γραμμές κώδικα για τη ρύθμιση, στη συνέχεια, ανάβει ένα LED.
Ενδέχεται να παρατηρήσετε ότι δεν υπάρχει ρύθμιση στη λειτουργία του πίνακα στο παράδειγμα GPIO Zero. Η βιβλιοθήκη χρησιμοποιεί μόνο την αριθμοδότηση Broadcom (BCM) για τις ακίδες. Ο σχεδιαστής της βιβλιοθήκης Ben Nuttall εξηγεί γιατί σε μια συνέντευξη RasPi.tv του 2015:
"Η αρίθμηση του BOARD μπορεί να φαίνεται απλούστερη αλλά θα έλεγα ότι οδηγεί τους νέους χρήστες να σκέφτονται ότι όλες οι καρφίτσες έχουν γενικό σκοπό - και δεν είναι. Συνδέστε μια ενδεικτική λυχνία στον ακροδέκτη 11, γιατί να μην συνδεθείτε με τους πείρους 1, 2, 3 και 4; Καλά 1 είναι 3V3. 2 και 4 είναι 5V. Η έλλειψη συνειδητοποίησης για το ποιος είναι ο σκοπός των ακίδων μπορεί να είναι επικίνδυνος. "
Με αυτό τον τρόπο, είναι απόλυτη λογική η χρήση των αριθμών BCM. Δεδομένου ότι το GPIO Zero θα είναι στάνταρ στην τεκμηρίωση Raspberry Pi που προχωράει, αξίζει να μάθουμε!
Είναι το GPIO μηδέν πραγματικά βελτιωμένο;
Ενώ φαίνεται πιο απλή στην επιφάνεια, έχει η νέα βιβλιοθήκη κάποια προβλήματα; Όπως με κάθε νέα βιβλιοθήκη κωδικοποίησης, είναι θέμα γνώμης. Αφενός, η κατάργηση του κωδικού ρύθμισης είναι εξαιρετική τόσο για αρχάριους όσο και για έμπειρους κωδικοποιητές. Ο κώδικας γραφής είναι πιο απλός και γρηγορότερος.
Από την άλλη πλευρά, η γνώση του τι συμβαίνει είναι σημαντική για τη μάθηση. Ακολουθήστε το παράδειγμα της ρύθμισης ενός κουμπιού από την τεκμηρίωση GPIO Zero:
Η μονάδα κουμπιού απλοποιεί τη ρύθμιση για κουμπιά. Ξέρει ότι τα κουμπιά είναι είσοδοι, έτσι χρησιμοποιεί τον δηλωμένο αριθμό ακίδων για τη ρύθμιση. Ο έλεγχος για το πάτημα ενός κουμπιού είναι επίσης ευκολότερος, με το .is_εντοπισμένο για να ανιχνεύει το πάτημα πλήκτρων.
Χρησιμοποιήσαμε αυτή την ακριβή λειτουργικότητα στο φροντιστήριο κουμπιών Raspberry Pi 2 τρόποι για να προσθέσετε ένα κουμπί στο σχέδιο Raspberry Pi 2 τρόποι να προσθέσετε ένα κουμπί στο project Raspberry Pi Πώς συνδέετε ένα κουμπί με το Raspberry Pi; Ακολουθούν δύο τρόποι για να ξεκινήσετε, επιδεικνύοντας τη χρήση του Python και ενός LED. Διαβάστε περισσότερα, ο οποίος είναι ένας πολύ καλός τρόπος για να εξοικειωθείτε με τις διαφορές στις βιβλιοθήκες.
Οι χρήστες της βιβλιοθήκης RPi.GPIO θα παρατηρήσουν ότι οι εσωτερικές αντιστάσεις pull-up / pull-down του Pi δεν έχουν ρυθμιστεί σε κώδικα. Αυτό δημιουργεί μια ενδιαφέρουσα ερώτηση. Είναι απαραίτητο για τους αρχάριους να γνωρίζουν τις αντιστάσεις pull-up / down; Και πάλι, ο Ben Nuttall απαντά σε αυτό το ερώτημα:
"Μπορεί να υποστηρίξετε ότι είναι καλό να γνωρίζετε για τα ρεύματα και να κατεβάζετε τα κάτω και θα είχατε δίκιο - αλλά γιατί πρέπει να διδάσκω ότι την πρώτη μέρα; [...] Αν θέλετε να διδάξετε τα ηλεκτρονικά σε μεγαλύτερο βάθος, υπάρχουν πολλά του εύρους για αυτό - αλλά δεν θα πρέπει να είναι υποχρεωτικό αν ξεκινάτε απλά. "
Σε γενικές γραμμές, η απλή προσέγγιση του GPIO Zero είναι πιθανόν καλό για αρχάριους και βετεράνους. Εκτός αυτού, το RPi.GPIO δεν πηγαίνει πουθενά. Θα είναι πάντα εκεί για να επιστρέψετε αν χρειαστεί.
Είναι η μόνη επιλογή η Python;
Η Python είναι η γλώσσα που γνωρίζει η Pi, αλλά δεν είναι η μόνη επιλογή. Αν είστε ήδη εξοικειωμένοι με τον προγραμματισμό στη γλώσσα C, τότε η καλωδίωση Pi σας καλύπτει.
Εναλλακτικά, εάν προγραμματίζετε ήδη στο JavaScript, το Node.js μπορεί εύκολα να εγκατασταθεί στο Pi. Η πρόσβαση GPIO είναι διαθέσιμη μέσω της βιβλιοθήκης rpi-gpio npm. Το Ruby on Rails μπορεί επίσης να εγκατασταθεί στο Raspberry Pi, αν και το Pi μπορεί να μην είναι ο καλύτερος τρόπος για να μάθει Rails!
Όλες αυτές οι εναλλακτικές λύσεις, μαζί με τις πολυγλωσσικές βιβλιοθήκες όπως το εξαιρετικό pigpio, μπορούν να κάνουν τη βιβλιοθήκη να προκαλεί σύγχυση. Αυτό είναι όπου το GPIO Zero υπερέχει: για αρχάριους αναρωτιούνται πώς και πού να ξεκινήσουν.
Εάν βρίσκεστε σε ένα σημείο όπου χρειάζεστε κάτι που δεν παρέχει, θα είστε περισσότερο από έτοιμοι να βουτήξετε σε αυτές τις άλλες βιβλιοθήκες με τον δικό σας ρυθμό.
Ξεκινώντας με το GPIO μηδέν
Το GPIO Zero είναι η νεότερη βιβλιοθήκη για να κάνει μια βουτιά για το Pi και με καλό λόγο. Για τους περισσότερους χρήστες, κάνει την κωδικοποίηση για ακίδες GPIO απλούστερες στην ανάγνωση και ταχύτερη γραφή.
Δεδομένης της χρήσης της Raspberry Pi στην εκπαίδευση, οτιδήποτε κάνει την εκμάθηση πιο φυσική είναι ένα καλό πράγμα. Ενώ το RPi.GPIO είναι τέλειο μέχρι τώρα, το GPIO Zero έχει καλή ιδέα και το κάνει ακόμα καλύτερο.
Ένας πολύ καλός τρόπος για να ξεκινήσετε με το GPIO Zero είναι να πάρετε ένα αρχάριο έργο όπως ο αισθητήρας μουσικής πόρτας Παίξτε το δικό σας θέμα Συντονιστείτε όταν μπαίνετε στο δωμάτιο με το Raspberry Pi Παίξτε το δικό σας θέμα Συντονιστείτε όταν μπαίνετε στο δωμάτιο με το Raspberry Pi Έχετε ποτέ ήθελε να φτάσει στο σπίτι για ένα προσωπικό καλωσόρισμα; Σε αυτό το απλό πρόγραμμα Raspberry Pi θα χρησιμοποιήσουμε ένα διακόπτη καλαμιού για να ενεργοποιήσουμε μια μελωδία όταν ανοίξει μια πόρτα. Διαβάστε περισσότερα και μεταφορτώστε τη στη νέα βιβλιοθήκη.
Εξερευνήστε περισσότερα σχετικά με το: GPIO, Python, Raspberry Pi.