Το Raspberry Pi είναι ένας πίνακας βασισμένος σε επεξεργαστή αρχιτεκτονικής ARM σχεδιασμένος για ηλεκτρονικούς μηχανικούς και χομπίστες. Το PI είναι μια από τις πιο αξιόπιστες πλατφόρμες ανάπτυξης έργων εκεί έξω τώρα. Με υψηλότερη ταχύτητα επεξεργαστή και 1 GB RAM, το PI μπορεί να χρησιμοποιηθεί για πολλά έργα υψηλού προφίλ, όπως η επεξεργασία εικόνας και το Internet of Things.
Για την εκτέλεση οποιωνδήποτε έργων υψηλού προφίλ, πρέπει να κατανοήσουμε τις βασικές λειτουργίες του PI. Θα καλύψουμε όλες τις βασικές λειτουργίες του Raspberry Pi σε αυτά τα σεμινάρια. Σε κάθε σεμινάριο θα συζητήσουμε μία από τις λειτουργίες του PI. Μέχρι το τέλος αυτής της σειράς Raspberry Pi Tutorial, θα μπορείτε να κάνετε έργα υψηλού προφίλ μόνοι σας. Παρακολουθήστε τα παρακάτω σεμινάρια:
- Ξεκινώντας με το Raspberry Pi
- Διαμόρφωση Raspberry Pi
- LED Blinky
- Διασύνδεση κουμπιών Raspberry Pi
- Παραγωγή Raspberry Pi PWM
- Έλεγχος DC Motor με χρήση Raspberry Pi
Σε αυτό το σεμινάριο, θα ελέγξουμε την ταχύτητα ενός κινητήρα Stepper χρησιμοποιώντας το Raspberry Pi. Στο Stepper Motor, όπως λέει το ίδιο το όνομα, η περιστροφή του άξονα είναι σε μορφή Step. Υπάρχουν διαφορετικοί τύποι Stepper Motor. εδώ θα χρησιμοποιούμε το πιο δημοφιλές που είναι το Unipolar Stepper Motor. Σε αντίθεση με τον κινητήρα DC, μπορούμε να περιστρέψουμε τον βηματικό κινητήρα σε οποιαδήποτε συγκεκριμένη γωνία δίνοντάς του κατάλληλες οδηγίες.
Για να περιστρέψετε αυτό το Stepper Motor τεσσάρων σταδίων, θα παρέχουμε παλμούς ισχύος χρησιμοποιώντας το Circper Motor Driver Circuit. Το κύκλωμα οδήγησης λαμβάνει λογικές ενεργοποιήσεις από το PI. Εάν ελέγξουμε τις σκανδάλες λογικής, ελέγχουμε τους παλμούς ισχύος και επομένως την ταχύτητα του κινητήρα stepper.
Υπάρχουν 40 καρφίτσες εξόδου GPIO στο Raspberry Pi 2. Αλλά από τους 40, μπορούν να προγραμματιστούν μόνο 26 ακροδέκτες GPIO (GPIO2 έως GPIO27). Ορισμένες από αυτές τις ακίδες εκτελούν ορισμένες ειδικές λειτουργίες. Με το ειδικό GPIO να παραμεριστεί, απομένουν μόνο 17 GPIO. Κάθε ένας από αυτούς τους ακροδέκτες 17 GPIO μπορεί να αποδώσει μέγιστο ρεύμα 15mA. Και το άθροισμα των ρευμάτων από όλες τις ακίδες GPIO δεν μπορεί να υπερβαίνει τα 50mA. Για να μάθετε περισσότερα σχετικά με τις καρφίτσες GPIO, ανατρέξτε στο: LED που αναβοσβήνει με Raspberry Pi
Υπάρχουν πίνακες εξόδου ισχύος + 5V (Pin 2 & 4) και + 3.3V (Pin 1 & 17) για τη σύνδεση άλλων μονάδων και αισθητήρων. Αυτές οι σιδηροτροχιές δεν μπορούν να χρησιμοποιηθούν για την οδήγηση του Stepper Motor, γιατί χρειαζόμαστε περισσότερη ισχύ για να την περιστρέψουμε. Πρέπει λοιπόν να παραδώσουμε τη δύναμη στο Stepper Motor από άλλη πηγή ισχύος. Ο βηματικός κινητήρας μου έχει βαθμολογία τάσης 9V, οπότε χρησιμοποιώ μια μπαταρία 9v ως δεύτερη πηγή ισχύος. Αναζητήστε τον αριθμό μοντέλου κινητήρα stepper για να μάθετε την τάση. Ανάλογα με την αξιολόγηση, επιλέξτε τη δευτερεύουσα πηγή κατάλληλα.
Όπως αναφέρθηκε νωρίτερα, χρειαζόμαστε ένα κύκλωμα οδήγησης για την οδήγηση του Stepper Motor. Θα σχεδιάσουμε επίσης ένα κύκλωμα οδήγησης απλού τρανζίστορ εδώ.
Απαιτούμενα στοιχεία:
Εδώ χρησιμοποιούμε το Raspberry Pi 2 Model B με το Raspbian Jessie OS. Όλες οι βασικές απαιτήσεις υλικού και λογισμικού συζητήθηκαν προηγουμένως, μπορείτε να το αναζητήσετε στην Εισαγωγή Raspberry Pi, εκτός από αυτό που χρειαζόμαστε:
- Σύνδεση ακίδων
- 220Ω ή 1ΚΩ αντίσταση (3)
- Κινητήρας Stepper
- Κουμπιά (2)
- Τρανζίστορ 2N2222 (4)
- 1N4007 Δίοδος (4)
- Πυκνωτής - 1000uF
- Πίνακας ψωμιού
Επεξήγηση κυκλώματος:
Ο κινητήρας Stepper χρησιμοποιεί 200 βήματα για να ολοκληρώσει την περιστροφή 360 μοιρών, σημαίνει ότι περιστρέφεται 1,8 μοίρες ανά βήμα. Καθώς οδηγούμε ένα Four Step Stepper Motor, οπότε πρέπει να δώσουμε τέσσερις παλμούς για να ολοκληρώσουμε έναν κύκλο λογικής. Κάθε βήμα αυτού του κινητήρα ολοκληρώνει 1,8 βαθμούς περιστροφής, οπότε για να ολοκληρώσουμε έναν κύκλο χρειαζόμαστε 200 παλμούς. 200/4 = 50 λογικοί κύκλοι για την ολοκλήρωση μιας μόνο περιστροφής. Ελέγξτε αυτό για να μάθετε περισσότερα για το Steppers Motors και τους τρόπους οδήγησης.
Θα οδηγήσουμε καθένα από αυτά τα τέσσερα πηνία από ένα τρανζίστορ NPN (2N2222), αυτό το τρανζίστορ NPN παίρνει τον λογικό παλμό από το PI και οδηγεί το αντίστοιχο πηνίο. Τέσσερα τρανζίστορ παίρνουν τέσσερα λογικά από το PI για να οδηγήσουν τέσσερα στάδια του κινητήρα stepper.
Το κύκλωμα οδήγησης τρανζίστορ είναι μια δύσκολη ρύθμιση. Εδώ πρέπει να προσέξουμε ότι η λανθασμένη σύνδεση του τρανζίστορ μπορεί να φορτώσει την πλακέτα σε μεγάλο βαθμό και να την καταστρέψει. Ελέγξτε το για να κατανοήσετε σωστά το κύκλωμα οδήγησης κινητήρα Stepper.
Ο κινητήρας είναι επαγωγικός και έτσι, ενώ αλλάζουμε τον κινητήρα, βιώνουμε επαγωγική κίνηση. Αυτό εμβολιασμού θα ζεσταθεί το τρανζίστορ σε μεγάλο βαθμό, γι 'αυτό θα είναι με τη χρήση διόδων (1N4007) για να παρέχουν προστασία σε τρανζίστορ κατά επαγωγικά τιτλοδότηση.
Προκειμένου να μειωθούν οι διακυμάνσεις τάσης, θα συνδέσουμε έναν πυκνωτή 1000uF σε όλη την παροχή ισχύος, όπως φαίνεται στο Διάγραμμα κυκλώματος.
Επεξήγηση εργασίας:
Μόλις όλα συνδεθούν σύμφωνα με το διάγραμμα κυκλώματος, μπορούμε να ενεργοποιήσουμε το PI για να γράψουμε το πρόγραμμα σε PYHTON.
Θα μιλήσουμε για λίγες εντολές που πρόκειται να χρησιμοποιήσουμε στο πρόγραμμα PYHTON, Πρόκειται να εισαγάγουμε αρχείο GPIO από τη βιβλιοθήκη, η παρακάτω λειτουργία μας επιτρέπει να προγραμματίζουμε τις καρφίτσες GPIO του PI. Μετονομάζουμε επίσης "GPIO" σε "IO", οπότε στο πρόγραμμα όποτε θέλουμε να αναφερθούμε στις καρφίτσες GPIO θα χρησιμοποιήσουμε τη λέξη "IO".
εισαγάγετε RPi.GPIO ως IO
Μερικές φορές, όταν οι ακίδες GPIO, τις οποίες προσπαθούμε να χρησιμοποιήσουμε, μπορεί να κάνουν κάποιες άλλες λειτουργίες. Σε αυτήν την περίπτωση, θα λάβουμε προειδοποιήσεις κατά την εκτέλεση του προγράμματος. Η παρακάτω εντολή λέει στο PI να αγνοήσει τις προειδοποιήσεις και να συνεχίσει το πρόγραμμα.
IO.setwarnings (Λάθος)
Μπορούμε να παραπέμψουμε τους ακροδέκτες GPIO του PI, είτε με τον αριθμό καρφίτσας επί του σκάφους είτε με τον αριθμό λειτουργίας τους. Όπως το «PIN 35» στον πίνακα είναι «GPIO19». Λοιπόν, λέμε εδώ είτε πρόκειται να αντιπροσωπεύσουμε το pin εδώ με "35" ή "19".
IO.setmode (IO.BCM)
Ρυθμίζουμε τέσσερις από τους ακροδέκτες GPIO ως έξοδο για την οδήγηση τεσσάρων πηνίων stepper motor
IO.setup (5, IO.OUT) IO.setup (17, IO.OUT) IO.setup (27, IO.OUT) IO.setup (22, IO.OUT)
Ρυθμίζουμε τα GPIO26 και GPIO19 ως ακίδες εισόδου. Θα εντοπίσουμε το πάτημα του κουμπιού από αυτές τις καρφίτσες.
IO.setup (19, IO.IN) IO.setup (26, IO.IN)
Σε περίπτωση που η Συνθήκη στα στηρίγματα είναι αληθινή, οι δηλώσεις στο εσωτερικό του βρόχου θα εκτελεστούν μία φορά. Έτσι, εάν ο ακροδέκτης GPIO 26 πέσει χαμηλά, τότε οι δηλώσεις εντός του βρόχου IF θα εκτελεστούν μία φορά. Εάν ο ακροδέκτης GPIO 26 δεν πέσει χαμηλά, τότε οι δηλώσεις εντός του βρόχου IF δεν θα εκτελεστούν.
εάν (IO.input (26) == False):
Αυτή η εντολή εκτελεί το βρόχο 100 φορές, x αυξάνεται από 0 έως 99.
για x στην περιοχή (100):
Ενώ το 1: χρησιμοποιείται για το άπειρο βρόχο. Με αυτήν την εντολή, οι δηλώσεις εντός αυτού του βρόχου θα εκτελούνται συνεχώς.
Έχουμε όλες τις εντολές που απαιτούνται για την επίτευξη του Speed Control του Stepper Motor με αυτό.
Αφού γράψετε το πρόγραμμα και το εκτελέσατε, το μόνο που μένει είναι να χειριστείτε το χειριστήριο. Έχουμε δύο κουμπιά συνδεδεμένα στο PI. Ένα για αύξηση της καθυστέρησης μεταξύ των τεσσάρων παλμών και άλλο για μείωση της καθυστέρησης μεταξύ των τεσσάρων παλμών. Η ίδια η καθυστέρηση μιλά για ταχύτητα. εάν η καθυστέρηση είναι μεγαλύτερη, ο κινητήρας παίρνει φρένα μεταξύ κάθε βήματος και έτσι η περιστροφή είναι αργή. Εάν η καθυστέρηση είναι κοντά στο μηδέν, τότε ο κινητήρας περιστρέφεται με τη μέγιστη ταχύτητα.
Εδώ πρέπει να θυμόμαστε ότι, πρέπει να υπάρχει κάποια καθυστέρηση μεταξύ των παλμών. Αφού δώσει έναν παλμό, ο κινητήρας stepper χρειάζεται λίγα χιλιοστά του δευτερολέπτου για να φτάσει στο τελικό του στάδιο. Εάν δεν υπάρχει καθυστέρηση μεταξύ των παλμών, ο κινητήρας του βήματος δεν θα κινηθεί καθόλου. Κανονικά, η καθυστέρηση 50 ms είναι καλή μεταξύ των παλμών Για πιο ακριβείς πληροφορίες, ανατρέξτε στο φύλλο δεδομένων.
Έτσι, με δύο κουμπιά μπορούμε να ελέγξουμε την καθυστέρηση, η οποία με τη σειρά της ελέγχει την ταχύτητα του κινητήρα stepper.