Ξεκινώντας με το GPIO σε ένα σμέουρο Pi

Αν όμως το Arduino ήταν δροσερό, απλά περιμένετε μέχρι να φτάσετε σε ένα Raspberry Pi - αυτά τα πράγματα είναι εκπληκτικά. Εκτός του ότι είναι ένας πλήρως λειτουργικός υπολογιστής, έχουν επίσης μια επιλογή από ακίδες εισόδου / εξόδου γενικής χρήσης.

Αν όμως το Arduino ήταν δροσερό, απλά περιμένετε μέχρι να φτάσετε σε ένα Raspberry Pi - αυτά τα πράγματα είναι εκπληκτικά.  Εκτός του ότι είναι ένας πλήρως λειτουργικός υπολογιστής, έχουν επίσης μια επιλογή από ακίδες εισόδου / εξόδου γενικής χρήσης.
Διαφήμιση

χαρακτηρισμένο-rpi-gpio Αν όμως το Arduino ήταν δροσερό, απλά περιμένετε μέχρι να φτάσετε σε ένα Raspberry Pi - αυτά τα πράγματα είναι εκπληκτικά. Εκτός του ότι είναι ένας πλήρως λειτουργικός υπολογιστής, έχουν επίσης μια επιλογή από ακίδες εισόδου / εξόδου γενικής χρήσης . Ακριβώς όπως ένα Arduino, μπορούμε να τα χρησιμοποιήσουμε για να δημιουργήσουμε ηλεκτρονικά έργα - και είναι εκπληκτικά εύκολο να ξεκινήσετε.

Σήμερα θα συνδέσουμε ένα ρελέ και θα το χρησιμοποιήσουμε για να ενεργοποιήσουμε μια λυχνία LED, αλλά θα μπορούσατε να ενεργοποιήσετε την λάμπα.

Αυτή η εισαγωγή χρησιμεύει ως πρώτο μέρος σε ένα μεγαλύτερο έργο αυτοματισμού στο σπίτι. Ο Christian έχει ήδη βάλει τα θεμέλια για να ξεκινήσει με ένα Pi, οπότε δεν θα επαναλάβω τα αρχικά βήματα εδώ για τη λήψη ενός λειτουργικού συστήματος ή την ενσωμάτωση της κάρτας SD - θα υποθέσω ότι έχετε ήδη δημιουργήσει ένα Raspian σύστημα .

Προειδοποίηση : Αν και το Raspberry Pi μπορεί να χρησιμοποιηθεί όμοια με ένα Arduino, χρειάζεται λίγο περισσότερη προσοχή. Οι ακίδες του Pi λειτουργούν σε 3.3v, ενώ το Arduino χρησιμοποιεί 5v . Ενώ είναι δυνατό να σπάσει ένα Arduino, είναι πολύ πιο εύκολο να σπάσει ένα Pi, καθώς οι ακίδες συνδέονται απευθείας με το chip onboard - στέλνοντας 5v κάτω εκεί μπορεί να το τηγανίσει.

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

Απαιτήσεις:

  • Τρανζίστορ NPN, όπως P2N2222A
  • 1k αντίσταση
  • Αναμετάδοση; Χρησιμοποιώ μια ηλεκτρονική μονάδα 4-ρελέ 5v η οποία έχει ενσωματωμένο πρόσθετο κύκλωμα προστασίας (οπότε δεν χρειάζεται πρόσθετες δίοδοι
  • LED και αντίσταση 220 ohm για δοκιμή
  • Καλώδιο ξεμπλοκαρίσματος

Καλώδιο ξεμπλοκάρισμα ("Cobbler Kit")

Οι ακροδέκτες GPIO βρίσκονται στην πλευρά του Pi, δίπλα στην υποδοχή βίντεο RCA.

breakout-cable

Παρόλο που θα μπορούσατε να συνδέσετε τεχνικά ορισμένα καλώδια βραχυκύκλωσης με θηλυκό άκρο απευθείας σε αυτά, δεν είναι ετικέτα με κανένα χρήσιμο τρόπο και επομένως έχετε περισσότερες πιθανότητες να σπάσετε κάτι. Αντ 'αυτού, πάρτε ένα καλώδιο ξεμπλοκάρισμα όπως αυτό από το Adafruit, ή ένας από τους πολλούς φθηνότερους κλώνους στο eBay. Μπορεί να χρειαστεί να κολλήσετε αυτό καθώς θα έρθει σε μορφή κιτ.

breakout-board

Παρόλο που η πλευρά του πίνακα έχει μια εγκοπή σε αυτό για να υποδείξει τη σωστή τοποθέτηση καλωδίων, η πλευρά Pi δεν το κάνει. Βεβαιωθείτε ότι οι ακίδες 3v και 5v στην μακρινή γωνία του Pi ευθυγραμμίζονται με τους αντίστοιχους ακροδέκτες του πίνακα. Φυσικά, εάν αγοράσατε μια θήκη που δεν εκθέτει την κεφαλίδα GPIO τότε θα χρειαστεί να τρέξετε με γυμνό Pi, ή να κόψετε μια τρύπα.

σαφή περίπτωση-gpio

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

Βασικό κύκλωμα

Ρυθμίστε το κύκλωμα όπως περιγράφεται παρακάτω. Έχω αφήσει έξω το κύκλωμα ρελέ, καθώς αυτό θα ποικίλει. Χρησιμοποιήστε τα τερματικά NO (κανονικά κλειστά) και COM του ρελέ σας για το LED ή άλλη συσκευή.

κύκλωμα

Χρησιμοποιήστε τον ακροδέκτη 4 από το Raspberry Pi. Στον πίνακα ξεμπλοκαρίσματός μου, ονομάζεται + GPCLK0. ανεξάρτητα, είναι η τέταρτη πένα που μετράει από 3V3.

pin4

Δοκιμή γραμμής εντολών

Στα παρακάτω παραδείγματα, υποθέτω ότι είστε συνδεδεμένοι μέσω SSH ή διαφορετικά ως χρήστης root. Εάν όχι, θα χρειαστεί να προφέρετε μερικές από τις εντολές με το sudo για αυξημένα προνόμια.

Πρώτον, πρέπει να εγκαταστήσουμε το WiringPi .

git clone git://git.drogon.net/wiringPi cd wiringPi ./build 

Υποθέτοντας ότι όλα πήγαν καλά, θα έπρεπε τώρα να είμαστε σε θέση να ελέγξουμε άμεσα τον GPIO από τη γραμμή εντολών όπως αυτή:

 gpio -g λειτουργία 4 από gpio -g γράψτε 4 1 

Η πρώτη εντολή είναι παρόμοια με τη λειτουργία ρύθμισης του Arduino, όπου λέμε στον ακροδέκτη 4 την έξοδο. Η επόμενη εντολή γράφει μια τιμή 1 στον ακροδέκτη, η οποία πρέπει να ενεργοποιήσει το τρανζίστορ, να ενεργοποιήσει το ρελέ, να κλείσει το κύκλωμα για τη λυχνία LED και να την ενεργοποιήσει.

Φοβερός. Εάν δεν συμβαίνει, γυρίστε πίσω και ελέγξτε την καλωδίωση. Κάνει κλικ το ρελέ;

Πύθων

Παρόλο που η Python δεν είναι ο μόνος τρόπος επικοινωνίας με τους ακροδέκτες GPIO, θεωρείται γενικά ο ευκολότερος και είναι ο πιο συνηθισμένος τρόπος που υπάρχει στα υπάρχοντα έργα. Σε αντίθεση με το C, η Python είναι σχετικά εύκολο να πάρει (εδώ είναι 5 τοποθεσίες για να μάθουν Python Οι 5 καλύτερες ιστοσελίδες για να μάθετε Python Προγραμματισμός Οι 5 καλύτερες ιστοσελίδες για να μάθετε Python Προγραμματισμός Κατά την τελευταία δεκαετία, η γλώσσα προγραμματισμού Python έχει εξεγέρσει στη δημοτικότητα μεταξύ των προγραμματιστών σε όλα περιοχές από την κωδικοποίηση. Από τους προγραμματιστές Ιστού έως τους σχεδιαστές βιντεοπαιχνιδιών για τους δημιουργούς εργαλείων στο σπίτι, πολλοί άνθρωποι έχουν πέσει ... Διαβάστε περισσότερα).

Ξεκινήστε εγκαθιστώντας τις ακόλουθες επεκτάσεις του Python:

 apt-get install python-dev apt-get install python-rpi.gpio 

Τώρα, δημιουργήστε ένα νέο αρχείο που ονομάζεται test.py. εάν χρησιμοποιείτε μια γραμμή εντολών, πληκτρολογήστε

 nano test.py 

Επικολλήστε ή πληκτρολογήστε τα παρακάτω (επίσης σε αυτό το pastebin):

 import RPi.GPIO as GPIO import time GPIO.setmode(GPIO.BCM) GPIO.setup(4, GPIO.OUT) for x in range(0, 10): time.sleep(5) GPIO.output(4, 1) time.sleep(5) GPIO.output(4, 0) 

Αυτό είναι ένα πολύ απλό σενάριο Python το οποίο πρόκειται να ενεργοποιήσει το LED (ή ό, τι συνδέσατε με το ρελέ σας) για 5 δευτερόλεπτα, μετά απενεργοποιήστε για 5 δευτερόλεπτα, 10 φορές . Θα πρέπει να είστε σε θέση να κατανοήσετε το μεγαλύτερο μέρος του κώδικα. Η γραμμή GPIO.setmode χρησιμοποιείται απλά για να υποδείξει το σχήμα αρίθμησης pin που πρόκειται να χρησιμοποιήσουμε.

Αυτό είναι! Για να εκτελέσετε τον κώδικα, πληκτρολογήστε:

 python test.py 

πεπερασμένος

Την επόμενη εβδομάδα, θα επεξεργαστούμε λίγο την εγκατάσταση και θα κάνουμε κάποια συναρπαστικά πράγματα όπως την προσθήκη φωνητικού ελέγχου. Εάν πρόκειται να προσθέσετε ηλεκτρικά είδη υψηλής τάσης στο κύκλωμα ρελέ, θα θελήσετε να είστε σίγουροι ότι χρησιμοποιείτε ένα κατάλληλα βαθμολογημένο ρελέ στο ζωντανό καλώδιο και βεβαιωθείτε ότι έχετε περικλείσει τα πάντα έτσι είναι μακριά από τα αδιάκριτα δάχτυλα των μωρών ή της μαμάς. Σοβαρά όμως, να είστε ασφαλείς.

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

In this article