Πίνακας περιεχομένων:

Ρομπότ που ακολουθεί τη γραμμή PID με σειρά αισθητήρων POLOLU QTR 8RC: 6 βήματα (με εικόνες)
Ρομπότ που ακολουθεί τη γραμμή PID με σειρά αισθητήρων POLOLU QTR 8RC: 6 βήματα (με εικόνες)

Βίντεο: Ρομπότ που ακολουθεί τη γραμμή PID με σειρά αισθητήρων POLOLU QTR 8RC: 6 βήματα (με εικόνες)

Βίντεο: Ρομπότ που ακολουθεί τη γραμμή PID με σειρά αισθητήρων POLOLU QTR 8RC: 6 βήματα (με εικόνες)
Βίντεο: Robotics Club Intro Presentation 2014-15 2024, Νοέμβριος
Anonim
Ρομπότ που ακολουθεί τη γραμμή PID με πίνακα αισθητήρων POLOLU QTR 8RC
Ρομπότ που ακολουθεί τη γραμμή PID με πίνακα αισθητήρων POLOLU QTR 8RC

Γειά σου!

Αυτό είναι το πρώτο μου γράψιμο για οδηγίες, και σήμερα θα σας ακολουθήσω και θα σας εξηγήσω πώς να κάνετε bulid μια γραμμή που βασίζεται σε PID μετά από ρομπότ χρησιμοποιώντας πίνακα αισθητήρων QTR-8RC.

Πριν πάμε στο κτίριο του ρομπότ, πρέπει να καταλάβουμε τι ονομάζεται PID,

Βήμα 1: Αρχή εργασίας

Τι είναι το PID;;

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

βασικούς όρους όπως αναφέρονται στα έγγραφα polalu

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

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

Το παράγωγο είναι ο ρυθμός μεταβολής της αναλογικής αξίας

Σε αυτό το σεμινάριο, θα μιλήσουμε μόνο για τους όρους Kp και Kd, ωστόσο, τα αποτελέσματα μπορούν να επιτευχθούν και με τον όρο Ki. Οι ενδείξεις που λαμβάνουμε από τον αισθητήρα δεν είναι μόνο αναλογικές αναγνώσεις, αλλά και οι ενδείξεις θέσης του ρομπότ. βασικά ο αισθητήρας παρέχει τιμές από 0 έως 2500 που κυμαίνονται από τη μέγιστη ανάκλαση έως την ελάχιστη ανάκλαση, αλλά, ταυτόχρονα, παρέχει επίσης πληροφορίες για το πόσο μακριά έχει απομακρυνθεί το ρομπότ από τη γραμμή.)

Τώρα πρέπει να λάβουμε υπόψη τον όρο σφάλματος, Αυτή είναι η διαφορά της τιμής τιμής δύο τιμών και της τρέχουσας τιμής. (Η τιμή σημείου ρύθμισης είναι η ένδειξη που αντιστοιχεί στην "τέλεια" τοποθέτηση αισθητήρων πάνω από τις γραμμές. η τιμή είναι οι στιγμιαίες αναγνώσεις του αισθητήρα. Για παράδειγμα: Εάν χρησιμοποιείτε αυτόν τον αισθητήρα συστοιχίας και χρησιμοποιείτε 8 αισθητήρες, θα λάβετε μια ένδειξη θέσης 3500 εάν βρίσκεστε στο σημείο, περίπου 0 αν είστε πολύ μακριά από τη γραμμή και γύρω στα 7000 αν είστε πολύ δεξιά.). Στόχος μας είναι να κάνουμε το σφάλμα μηδενικό. Τότε μόνο το ρομπότ μπορεί να ακολουθήσει ομαλά τη γραμμή.

Στη συνέχεια, έρχεται το τμήμα υπολογισμού,.

1) υπολογίστε το σφάλμα.

Σφάλμα = Τιμή σημείου - Τρέχουσα τιμή = 3500 - θέση

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

2) καθορίστε τις προσαρμοσμένες ταχύτητες των κινητήρων.

MotorSpeed = Kp * Error + Kd * (Σφάλμα - LastError);

LastError = Σφάλμα

RightMotorSpeed = RightBaseSpeed + MotorSpeed;

LeftMotorSpeed = LeftBaseSpeed - MotorSpeed;

Λογικά μιλώντας, ένα σφάλμα 0 σημαίνει ότι το ρομπότ μας είναι προς τα αριστερά, πράγμα που σημαίνει ότι το ρομπότ μας πρέπει να πάει λίγο δεξιά, πράγμα που σημαίνει ότι το δεξί μοτέρ πρέπει να επιβραδύνει και το αριστερό μοτέρ πρέπει να επιταχύνει. ΑΥΤΟ ΕΙΝΑΙ PID!

Η τιμή MotorSpeed καθορίζεται από την ίδια την εξίσωση. RightBaseSpeed και LeftBaseSpeed είναι οι ταχύτητες (οποιαδήποτε τιμή PWM 0-255) στις οποίες λειτουργεί το ρομπότ όταν το σφάλμα είναι μηδενικό.

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

Εάν αντιμετωπίζετε προβλήματα κατά την εφαρμογή του ρομπότ σας, απλώς ελέγξτε αν και δείτε αλλάζοντας τα πρόσημα των εξισώσεων !!!

Και τώρα το πιο δύσκολο κομμάτι ΒΡΩ Kp ΚΑΙ Kd, έπρεπε να περάσω πάνω από 1 ώρα για να συντονίσω τέλεια το ρομπότ μου. Αντί να βάζω τυχαίες τιμές, βρήκα μια ευκολότερη μέθοδο για να το προσδιορίσω.

  1. Ξεκινήστε με kp και Kd ίσο με 0, και ξεκινήστε με Kp, δοκιμάστε πρώτα να ρυθμίσετε το Kp στο 1 και παρατηρήστε το ρομπότ, στόχος μας είναι να ακολουθήσουμε τη γραμμή ακόμη και αν είναι ασταθής, αν το ρομπότ ξεπεράσει και χάσει τη γραμμή, μειώστε την τιμή kp.αν το ρομπότ δεν μπορεί να περιηγηθεί σε μια στροφή και είναι νωθρό αυξάνει την τιμή Kp.
  2. Μόλις το ρομπότ φαίνεται να ακολουθεί κάπως τη γραμμή, προσαρμόστε την τιμή Kd (τιμή Kd> τιμή Kp) ξεκινήστε από το 1 και αυξήστε την τιμή μέχρι να δείτε μια ομαλή κίνηση με μικρότερη ταλάντευση.
  3. Μόλις το ρομπότ αρχίσει να ακολουθεί τη γραμμή, αυξήστε την ταχύτητα και δείτε αν είναι σε θέση να διατηρήσει και να ακολουθήσει τη γραμμή.

Λάβετε υπόψη ότι η ταχύτητα έχει άμεσο αντίκτυπο στον συντονισμό PID και μπορεί μερικές φορές να χρειαστεί να επαναρυθμιστείτε για να ταιριάζει με την ταχύτητα του ρομπότ σας.

Τώρα μπορούμε να φτάσουμε στο κτίριο του ρομπότ μας.

Βήμα 2: Η κατασκευή

Το χτίσιμο
Το χτίσιμο
Το χτίσιμο
Το χτίσιμο
Το χτίσιμο
Το χτίσιμο

Arduino atmega 2560 με καλώδιο USB - αυτός είναι ο κύριος μικροελεγκτής που χρησιμοποιείται.

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

www.ebay.com/itm/2WD-DIY-2-Wheel-Drive-Rou…

Μικρομεταλλικοί κινητήρες- το ρομπότ χρειαζόταν κινητήρες γρήγορης περιστροφής για να αντιμετωπίσει τη ρουτίνα PID, γι 'αυτό έχω χρησιμοποιήσει κινητήρες ονομαστικής ισχύος 6V 400rpm και κατάλληλους τροχούς.

www.ebay.com/itm/12mm-6V-400RPM-Torque-Gea…

www.ebay.com/itm/HOT-N20-Micro-Gear-Motor-…

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

www.ebay.com/itm/Pololu-QTR-8RC-Reflectanc…

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

www.ebay.com/itm/Pololu-Dual-DC-Motor-Driv…

Μπαταρία Lipo- 11.1V Lipo μπαταρία χρησιμοποιείται για την παροχή ενέργειας στο ρομπότ. Αν και έχω χρησιμοποιήσει μια μπαταρία λιπών 11.1 V, αυτή η χωρητικότητα είναι μεγαλύτερη από αυτή που απαιτείται για το arduino και τους κινητήρες.αν βρείτε ελαφρύ 7,4V μπαταρία lipo ή μπαταρία Ni-MH 6V θα είναι τέλεια. για αυτόν τον λόγο πρέπει να χρησιμοποιήσω έναν μετατροπέα buck για να μετατρέψω την τάση σε 6V.

11.1V-

7.4 V-

Ενότητα μετατροπέα Buck-

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

Βήμα 3: Συναρμολόγηση

Συναρμολόγηση
Συναρμολόγηση
Συναρμολόγηση
Συναρμολόγηση
Συναρμολόγηση
Συναρμολόγηση
Συναρμολόγηση
Συναρμολόγηση

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

Εδώ είναι ένα τέλειο διάγραμμα που βρήκα στο Διαδίκτυο, το οποίο σας λέει πώς πρέπει να γίνουν οι συνδέσεις.

Βήμα 4: Σχεδιάστε το κομμάτι γραμμής σας

Σχεδιάστε το κομμάτι της γραμμής σας
Σχεδιάστε το κομμάτι της γραμμής σας

Τώρα το έργο σας φαίνεται να έχει σχεδόν τελειώσει. Καθώς για το τελευταίο στάδιο πρέπει να έχετε μια μικρή αρένα για να δοκιμάσετε το ρομπότ σας. Έχω χρησιμοποιήσει μια τυχαία γραμμή πλάτους 3 εκατοστών λευκή γραμμή σε μαύρο φόντο. Βεβαιωθείτε ότι έχετε επικολλήσει τα πάντα καλά. Και προς το παρόν αποφεύγετε διασταυρώσεις και διατομές γωνίας 90 degees, επειδή πρόκειται για μια περίπλοκη περίπτωση όσον αφορά την κωδικοποίηση.

Βήμα 5: Προγραμματίστε τον κωδικό σας

1. Κατεβάστε και εγκαταστήστε το Arduino

IDE επιφάνειας εργασίας

· Παράθυρα -

· Mac OS X -

· Linux -

2. Κατεβάστε και επικολλήστε το αρχείο συστοιχίας αισθητήρων QTR 8 RC στο φάκελο βιβλιοθηκών Arduino.

·

· Επικόλληση αρχείων στη διαδρομή - C: / Arduino / βιβλιοθήκες

3. Κατεβάστε και ανοίξτε τοLINEFOLLOWING.ino

4. Ανεβάστε τον κωδικό στην πλακέτα arduino μέσω καλωδίου USB

Βήμα 6: ΕΓΙΝΕ

Image
Image

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

Ελπίζω ότι αυτό το σεμινάριο ήταν χρήσιμο. Μη διστάσετε να επικοινωνήσετε μαζί μου μέσω [email protected] εάν έχετε οποιοδήποτε πρόβλημα.

τα λέμε σύντομα με ένα άλλο νέο έργο.

Απολαύστε το κτίριο !!

Συνιστάται: