Το Raspberry Pi είναι ένας πίνακας βασισμένος σε επεξεργαστή αρχιτεκτονικής ARM σχεδιασμένος για ηλεκτρονικούς μηχανικούς και χομπίστες. Το PI είναι μια από τις πιο αξιόπιστες πλατφόρμες ανάπτυξης έργων εκεί έξω τώρα. Με υψηλότερη ταχύτητα επεξεργαστή και 1 GB RAM, το PI μπορεί να χρησιμοποιηθεί για πολλά έργα υψηλού προφίλ, όπως η επεξεργασία εικόνας και το Internet of Things.
Για την εκτέλεση οποιωνδήποτε έργων υψηλού προφίλ, πρέπει να κατανοήσουμε τις βασικές λειτουργίες του PI. Γι 'αυτό είμαστε εδώ, θα καλύψουμε όλες τις βασικές λειτουργίες του Raspberry Pi σε αυτά τα σεμινάρια. Σε κάθε σειρά μαθημάτων θα συζητήσουμε μία από τις λειτουργίες του PI. Μέχρι το τέλος της σειράς σεμιναρίων θα μπορείτε να κάνετε έργα υψηλού προφίλ μόνοι σας. Ελέγξτε αυτά για να ξεκινήσετε με το Raspberry Pi και το Raspberry Pi Configuration.
Η δημιουργία επικοινωνίας μεταξύ PI και χρήστη είναι πολύ σημαντική για το σχεδιασμό έργων σε PI. Για την επικοινωνία, το PI πρέπει να λαμβάνει εισόδους από τον χρήστη. Σε αυτό το δεύτερο σεμινάριο της σειράς PI, θα διεπαφή ένα κουμπί στο Raspberry Pi, για να λαμβάνουμε ΕΙΣΟΔΟΙ από τον χρήστη.
Εδώ θα συνδέσουμε ένα κουμπί σε ένα GPIO Pin και ένα LED σε ένα άλλο GPIO pin του Raspberry Pi. Θα γράψουμε ένα πρόγραμμα στο PYTHON, για να αναβοσβήνει συνεχώς το LED, πατώντας το κουμπί από τον χρήστη. Η λυχνία LED αναβοσβήνει ενεργοποιώντας και απενεργοποιώντας το GPIO.
Πριν ξεκινήσουμε για τον προγραμματισμό, ας μιλήσουμε λίγο για το LINUX και το PYHTON.
LINUX:
Το LINUX είναι ένα λειτουργικό σύστημα όπως τα Windows. Εκτελεί όλες τις βασικές λειτουργίες που μπορεί να κάνει το λειτουργικό σύστημα Windows. Η κύρια διαφορά μεταξύ τους είναι, το Linux είναι λογισμικό ανοιχτού κώδικα όπου τα Windows δεν είναι. Αυτό που ουσιαστικά σημαίνει είναι ότι το Linux είναι δωρεάν, ενώ τα Windows δεν είναι. Μπορείτε να κατεβάσετε και να χρησιμοποιήσετε το Linux OS δωρεάν, αλλά για τη λήψη γνήσιου λειτουργικού συστήματος Windows, πρέπει να πληρώσετε τα χρήματα.
Και μια άλλη σημαντική διαφορά μεταξύ τους είναι ότι το Linux OS μπορεί να «τροποποιηθεί» τροποποιώντας τον κώδικα, αλλά το λειτουργικό σύστημα Windows δεν μπορεί να τροποποιηθεί, κάτι τέτοιο θα οδηγήσει σε νομικές επιπλοκές. Έτσι ο καθένας μπορεί να πάρει το λειτουργικό σύστημα Linux και να το τροποποιήσει στις απαιτήσεις του για να δημιουργήσει το δικό του λειτουργικό σύστημα. Αλλά δεν μπορούμε να το κάνουμε αυτό στα Windows, το λειτουργικό σύστημα Windows διαθέτει περιορισμούς για να σας εμποδίσει να επεξεργαστείτε το λειτουργικό σύστημα.
Εδώ μιλάμε για Linux γιατί, το JESSIE LITE (Raspberry Pi OS) είναι λειτουργικό σύστημα LINUX, το οποίο έχουμε εγκαταστήσει στο μέρος Εισαγωγή Raspberry Pi. Το λειτουργικό σύστημα PI δημιουργείται βάσει του LINUX, οπότε πρέπει να γνωρίζουμε λίγο για τις εντολές λειτουργίας του LINUX. Θα συζητήσουμε για αυτές τις εντολές Linux στα ακόλουθα σεμινάρια.
ΠΥΘΩΝ:
Σε αντίθεση με το LINUX, το PYTHON είναι μια γλώσσα προγραμματισμού όπως C, C ++ και JAVA κ.λπ. Αυτές οι γλώσσες χρησιμοποιούνται για την ανάπτυξη εφαρμογών. Θυμηθείτε τις γλώσσες προγραμματισμού που εκτελούνται στο λειτουργικό σύστημα. Δεν μπορείτε να εκτελέσετε μια γλώσσα προγραμματισμού χωρίς λειτουργικό σύστημα. Επομένως, το λειτουργικό σύστημα είναι ανεξάρτητο ενώ οι γλώσσες προγραμματισμού εξαρτώνται. Μπορείτε να εκτελέσετε PYTHON, C, C ++ και JAVA σε Linux και Windows.
Οι εφαρμογές που αναπτύσσονται από αυτές τις γλώσσες προγραμματισμού μπορεί να είναι παιχνίδια, προγράμματα περιήγησης, εφαρμογές κ.λπ. Θα χρησιμοποιήσουμε τη γλώσσα προγραμματισμού PYTHON στο PI μας, για να σχεδιάσουμε έργα και να χειριστούμε τα GPIO.
Θα συζητήσουμε λίγο για το PI GPIO προτού προχωρήσουμε περαιτέρω,
Καρφίτσες GPIO:
Όπως φαίνεται στο παραπάνω σχήμα, υπάρχουν 40 ακίδες εξόδου για το PI. Αλλά όταν κοιτάξετε τη δεύτερη εικόνα, μπορείτε να δείτε ότι δεν μπορούν να προγραμματιστούν και οι 40 ακίδες pin για τη χρήση μας. Αυτές είναι μόνο 26 καρφίτσες GPIO που μπορούν να προγραμματιστούν. Αυτές οι καρφίτσες πηγαίνουν από GPIO2 στο GPIO27.
Αυτές οι 26 καρφίτσες GPIO μπορούν να προγραμματιστούν ανάλογα με τις ανάγκες. Ορισμένες από αυτές τις καρφίτσες εκτελούν επίσης ορισμένες ειδικές λειτουργίες, θα το συζητήσουμε αργότερα. Με το ειδικό GPIO να παραμεριστεί, έχουμε 17 GPIO που απομένουν (ανοιχτό πράσινο Cirl).
Κάθε μία από αυτές τις 17 καρφίτσες GPIO μπορεί να αποδώσει μέγιστο ρεύμα 15mA. Και το άθροισμα των ρευμάτων από όλο το GPIO δεν μπορεί να υπερβαίνει τα 50mA. Έτσι μπορούμε να αντλήσουμε κατά μέσο όρο 3mA από κάθε μία από αυτές τις ακίδες GPIO. Επομένως, δεν πρέπει να παραβιάζετε αυτά τα πράγματα εκτός και αν ξέρετε τι κάνετε.
Απαιτούμενα στοιχεία:
Εδώ χρησιμοποιούμε το Raspberry Pi 2 Model B με το Raspbian Jessie OS. Όλες οι βασικές απαιτήσεις υλικού και λογισμικού συζητήθηκαν προηγουμένως, μπορείτε να το αναζητήσετε στην Εισαγωγή Raspberry Pi, εκτός από αυτό που χρειαζόμαστε:
- Σύνδεση ακίδων
- 220Ω ή 1KΩ
- LED
- Κουμπί
- Πίνακας ψωμιού
Επεξήγηση κυκλώματος:
Όπως φαίνεται στο διάγραμμα κυκλώματος πρόκειται να συνδέσουμε ένα LED στο PIN35 (GPIO19) και ένα κουμπί στο PIN37 (GPIO26). Όπως ειπώθηκε νωρίτερα, δεν μπορούμε να αντλήσουμε περισσότερα από 15mA από οποιαδήποτε από αυτές τις ακίδες, οπότε για να περιορίσουμε το ρεύμα συνδέουμε μια αντίσταση 220Ω ή 1KΩ σε σειρά με το LED.
Επεξήγηση εργασίας:
Μόλις συνδεθούν όλα, μπορούμε να ενεργοποιήσουμε το Raspberry Pi για να γράψουμε το πρόγραμμα σε PYHTON και να το εκτελέσουμε. (Για να μάθετε πώς να χρησιμοποιείτε το PYTHON, μεταβείτε στο PI BLINKY).
Θα μιλήσουμε για λίγες εντολές που πρόκειται να χρησιμοποιήσουμε στο πρόγραμμα PYHTON.
Πρόκειται να εισαγάγουμε αρχείο GPIO από τη βιβλιοθήκη, η παρακάτω λειτουργία μας επιτρέπει να προγραμματίζουμε τις καρφίτσες GPIO του PI. Μετονομάζουμε επίσης "GPIO" σε "IO", οπότε στο πρόγραμμα όποτε θέλουμε να αναφερθούμε στις καρφίτσες GPIO θα χρησιμοποιήσουμε τη λέξη "IO".
εισαγάγετε RPi.GPIO ως IO
Μερικές φορές, όταν οι ακίδες GPIO, τις οποίες προσπαθούμε να χρησιμοποιήσουμε, μπορεί να κάνουν κάποιες άλλες λειτουργίες. Σε αυτήν την περίπτωση, θα λάβουμε προειδοποιήσεις κατά την εκτέλεση του προγράμματος. Η παρακάτω εντολή λέει στο PI να αγνοήσει τις προειδοποιήσεις και να συνεχίσει το πρόγραμμα.
IO.setwarnings (Λάθος)
Μπορούμε να παραπέμψουμε τους ακροδέκτες GPIO του PI, είτε με τον αριθμό καρφίτσας επί του σκάφους είτε με τον αριθμό λειτουργίας τους. Στο διάγραμμα καρφιτσών, μπορείτε να δείτε το «PIN 37» στον πίνακα είναι «GPIO26». Λοιπόν, λέμε εδώ είτε πρόκειται να αντιπροσωπεύσουμε το pin εδώ με «37» ή «26».
IO.setmode (IO.BCM)
Ρυθμίζουμε το GPIO26 (ή το PIN37) ως πείρο εισόδου. Θα εντοπίσουμε το πάτημα του κουμπιού από αυτόν τον πείρο.
IO.setup (26, IO.IN)
Ενώ το 1: χρησιμοποιείται για το άπειρο βρόχο. Με αυτήν την εντολή, οι δηλώσεις εντός αυτού του βρόχου θα εκτελούνται συνεχώς.
Μόλις εκτελεστεί το πρόγραμμα, το LED που είναι συνδεδεμένο στο GPIO19 (PIN35) αναβοσβήνει κάθε φορά που πατάτε το κουμπί. Με την απελευθέρωση του LED, θα πάει πάλι στην κατάσταση OFF.