- Απαιτούμενα υλικά
- Έννοιες του Line Follower
- Επεξήγηση κυκλώματος
- Εργασία του ρομπότ Line Follower χρησιμοποιώντας MSP430
- Διάγραμμα κυκλώματος
- Επεξήγηση προγραμματισμού
Το ρομπότ Line follower είναι ένα από τα δημοφιλή έργα ρομποτικής στους μαθητές και τους αρχάριους λόγω της απλότητάς του. Ακολουθεί μια γραμμή, είτε ασπρόμαυρη, ανάλογα με τον τρόπο προγραμματισμού του μικροελεγκτή σας. Εδώ φτιάχνουμε ένα ρομπότ ακολουθίας γραμμών χρησιμοποιώντας το MSP430 launchpad από την Texas Instruments, το οποίο ακολουθεί τη μαύρη γραμμή. Εάν είστε νέοι στο MSP430 launchpad, διαβάστε το μάθημα Getting stared with MSP430.
Απαιτούμενα υλικά
- MSP430G2 LaunchPad από την Texas Instruments
- Η μονάδα οδήγησης κινητήρα L298D
- Σύνδεση καλωδίων
- Ενότητες αισθητήρα IR
- Chasis, τροχός, ρόλερ κόστερ
- Energia IDE
- Τροφοδοσία (3.3v) και 5v-12v
Έννοιες του Line Follower
Η έννοια του line follower σχετίζεται με το φως. Έχουμε χρησιμοποιήσει τη συμπεριφορά του φωτός σε ασπρόμαυρη επιφάνεια. Όταν το φως πέφτει σε μια λευκή επιφάνεια, θα αντανακλά σχεδόν πλήρως και σε περίπτωση μαύρης επιφάνειας το φως απορροφάται από τη μαύρη επιφάνεια. Αυτή η εξηγημένη συμπεριφορά του φωτός χρησιμοποιείται σε αυτό το ρομπότ ακόλουθων γραμμών.
Σε αυτό το ρομποτικό ρομπότ γραμμής που βασίζεται στο MSP430 χρησιμοποιήσαμε πομπούς IR και δέκτες IR που ονομάζονται επίσης φωτοδίοδοι. Χρησιμοποιούνται για αποστολή και λήψη φωτός. Το IR μεταδίδει υπέρυθρες λυχνίες. Όταν οι υπέρυθρες ακτίνες πέφτουν σε λευκή επιφάνεια, ανακλάται πίσω και πιάνεται από φωτοδιόδους που δημιουργούν κάποιες αλλαγές τάσης. Όταν το φως υπερύθρων πέφτει πάνω σε μια μαύρη επιφάνεια, το φως απορροφάται από τη μαύρη επιφάνεια και δεν ανακλάται καμία ακτίνα, επομένως η δίοδος φωτογραφίας δεν δέχεται φως ή ακτίνες. Για να μάθετε περισσότερα σχετικά με τους αισθητήρες υπερύθρων, ακολουθήστε τον σύνδεσμο.
Εδώ σε αυτό το ρομποτικό ρομπότ γραμμής βασισμένο στο MSP430 όταν ο αισθητήρας ανιχνεύει λευκή επιφάνεια, τότε το MSP παίρνει 1 ως είσοδο και όταν ανιχνεύει τη μαύρη γραμμή, το MSP παίρνει 0 ως είσοδο.
Επεξήγηση κυκλώματος
Μπορούμε να χωρίσουμε ολόκληρο το ρομπότ ακολουθίας σε διάφορες ενότητες όπως το τμήμα αισθητήρα, το τμήμα ελέγχου και το τμήμα οδηγού.
Ενότητα αισθητήρα: Αυτή η ενότητα περιέχει διόδους υπερύθρων, ποτενσιόμετρο, Συγκριτή (Op-Amp) και LED. Το ποτενσιόμετρο χρησιμοποιείται για τον καθορισμό της τάσης αναφοράς στο ένα τερματικό του συγκριτή και οι αισθητήρες IR ανιχνεύουν τη γραμμή και παρέχουν μια αλλαγή τάσης στο δεύτερο τερματικό του συγκριτή. Στη συνέχεια, ο συγκριτής συγκρίνει και τις δύο τάσεις και παράγει ένα ψηφιακό σήμα στην έξοδο. Εδώ σε αυτό το κύκλωμα χρησιμοποιήσαμε δύο συγκριτές για δύο αισθητήρες. Το LM358 χρησιμοποιείται ως συγκριτικό. Το LM358 έχει ενσωματωμένο δύο Op-amp χαμηλού θορύβου.
Τμήμα Ελέγχου: Το MSP430 Launchpad χρησιμοποιείται για τον έλεγχο ολόκληρης της διαδικασίας του ρομπότ follower. Οι έξοδοι των συγκριτών συνδέονται με την ψηφιακή ακίδα P1_3 και P1_4 του MPS430 Launchpad. Το MSP430 Launchpad διαβάζει αυτά τα σήματα και στέλνει εντολές στο κύκλωμα προγράμματος οδήγησης για να ακολουθήσει τον ακόλουθο γραμμής.
Τμήμα οδηγού: Το τμήμα οδηγού αποτελείται από οδηγό κινητήρα και δύο κινητήρες DC. Ο οδηγός κινητήρα χρησιμοποιείται για την οδήγηση κινητήρων, επειδή το MSP430 Launchpad δεν παρέχει αρκετή τάση και ρεύμα στον κινητήρα. Προσθέσαμε λοιπόν ένα κύκλωμα οδηγού κινητήρα για να έχουμε αρκετή τάση και ρεύμα για τον κινητήρα. Εδώ χρησιμοποιήσαμε τον οδηγό L298d για οδήγηση DC Motors. Το MSP430 Launchpad στέλνει εντολές σε αυτό το πρόγραμμα οδήγησης κινητήρα και στη συνέχεια οδηγεί κινητήρες.
Έχουμε αναπτύξει ρομπότ Line Follower χρησιμοποιώντας διαφορετικούς μικροελεγκτές:
- Line Follower Robot με χρήση μικροελεγκτή 8051
- Line Follower Robot χρησιμοποιώντας το Arduino
- Line Follower Robot χρησιμοποιώντας Raspberry Pi
- Line Follower Robot χρησιμοποιώντας PIC Microcontroller
Εργασία του ρομπότ Line Follower χρησιμοποιώντας MSP430
Η εργασία του follower είναι πολύ ενδιαφέρουσα. Το ρομπότ οπαδού γραμμής ανιχνεύει μαύρη γραμμή χρησιμοποιώντας αισθητήρα και στη συνέχεια στέλνει το σήμα στο MSP430 Launchpad. Στη συνέχεια, το MSP430 Launchpad οδηγεί τον κινητήρα σύμφωνα με την έξοδο των αισθητήρων.
Εδώ σε αυτό το έργο χρησιμοποιούμε δύο μονάδες αισθητήρων IR, δηλαδή αισθητήρα αριστερού και δεξιού αισθητήρα. Όταν τόσο ο αριστερός όσο και ο δεξί αισθητήρας ανιχνεύσουν λευκό, τότε το ρομπότ κινείται προς τα εμπρός.
Εάν ο αριστερός αισθητήρας έρθει σε μαύρη γραμμή, τότε το ρομπότ στρίβει αριστερά.
Εάν ο σωστός αισθητήρας αισθάνεται μαύρη γραμμή, τότε το ρομπότ στρίβει δεξιά έως ότου και οι δύο αισθητήρες φτάσουν στη λευκή επιφάνεια. Όταν έρχεται η λευκή επιφάνεια, το ρομπότ αρχίζει να κινείται πάλι προς τα εμπρός.
Εάν και οι δύο αισθητήρες έρχονται σε μαύρη γραμμή, το ρομπότ σταματά.
Διάγραμμα κυκλώματος
Το κύκλωμα για αυτό το ρομπότ Follower Line MSP430 είναι πολύ απλό. Η έξοδος των συγκριτών συνδέεται απευθείας με τον ψηφιακό αριθμό pin του MSP430 Launchpad p1_3 και P1_4. Και ο ακροδέκτης εισόδου του οδηγού κινητήρα IN1, IN2, IN3 και IN4 είναι συνδεδεμένοι στις ψηφιακές ακίδες MSP430 Launchpad P1_5, P2_0, P2_1, P2_2 αντίστοιχα. Ένας κινητήρας συνδέεται στον πείρο εξόδου του οδηγού κινητήρα OUT1 και OUT2 και ένας άλλος κινητήρας συνδέεται στα OUT3 και OUT4. Εδώ έχουμε χρησιμοποιήσει τροφοδοσία 3.3v για τροφοδοσία ολόκληρου του κυκλώματος εκτός από τη μονάδα Motor Driver Παρέχουμε 8v στη μονάδα οδηγού κινητήρα. Ο χρήστης μπορεί να χρησιμοποιήσει 5v-12v.
Μπορείτε επίσης να δημιουργήσετε τη δική σας μονάδα IR, όπως έχω δημιουργήσει στο Perf Board. Ακολουθεί το κύκλωμα για τη μονάδα IR:
Επεξήγηση προγραμματισμού
Μπορείτε να βρείτε πλήρες πρόγραμμα και βίντεο στο τέλος αυτού του άρθρου.
Σε ένα πρόγραμμα, πρώτα απ 'όλα, ορίζουμε τον πείρο εισόδου και εξόδου για αισθητήρα και κινητήρες. Στη συνέχεια, ορίστε μερικές μακροεντολές για την κατεύθυνση του ακόλουθου γραμμής και μετά γράψτε μια οδηγία για να επιλέξετε την έξοδο του αισθητήρα
Σημείωση: Ο αισθητήρας μπορεί να είναι ενεργός χαμηλός ή ενεργός υψηλός, επομένως ελέγξτε πρώτα ποια είναι η έξοδος του αισθητήρα και, στη συνέχεια, επιλέξτε οδηγία σχολιάζοντας ή αποσυνδέοντας το ενεργόLowMode . Για ενεργό HIGH, σχολιάστε τημακροεντολή activeLowMode .
#define l_sensor P1_3 #define r_sensor P1_4 int pins = {P1_5, P2_0, P2_1, P2_2}; #define forward 0x05 #define left 0x06 #define right 0x09 #define stop 0x00 // # define activeLowMode #ifdef activeLowMode int res = {εμπρός, αριστερά, δεξιά, στάση}; #else int res = {στάση, δεξιά, αριστερά, προς τα εμπρός}; #τέλος εαν
Μετά από αυτό, στη λειτουργία ρύθμισης , δίνουμε κατεύθυνση στον αισθητήρα και τον πείρο του κινητήρα. Στη συνέχεια, στη λειτουργία βρόχου , ελέγχουμε τις εισόδους και στέλνουμε έξοδο στη μονάδα οδηγού κινητήρα για να τρέξουμε τους κινητήρες.
άκυρη ρύθμιση () { για (int i = 0; i <4; i ++) pinMode (pin, OUTPUT); pinMode (l_sensor, INPUT); pinMode (r_sensor, INPUT); } κενό βρόχου () {int sense = (digitalRead (l_sensor) << 1) - digitalRead (r_sensor); για (int i = 0; i <4; i ++) digitalWrite (pin, (res >> i) & 0x01); }
Υπάρχουν τέσσερις συνθήκες σε αυτόν τον ακόλουθο που διαβάζουμε χρησιμοποιώντας το MSP430 Launchpad. Έχουμε χρησιμοποιήσει δύο αισθητήρες, δηλαδή τον αριστερό αισθητήρα και τον δεξιό αισθητήρα.
Συνθήκες: Ενεργή έξοδος ΥΨΗΛΗΣ
Εισαγωγή |
Παραγωγή |
Κίνηση Του ρομπότ |
||||
Αριστερός αισθητήρας |
Δεξί αισθητήρα |
Αριστερός κινητήρας |
Δεξιά μηχανή |
|||
LS |
RS |
LM1 |
LM2 |
RM1 |
RM2 |
|
0 |
0 |
0 |
0 |
0 |
0 |
Να σταματήσει |
0 |
1 |
1 |
0 |
0 |
0 |
Στρίψτε δεξιά |
1 |
0 |
0 |
0 |
1 |
0 |
Στρίψτε αριστερά |
1 |
1 |
1 |
0 |
1 |
0 |
Προς τα εμπρός |
Το πρόγραμμα γράφεται σύμφωνα με τις παραπάνω συνθήκες του πίνακα. Δείτε τον πλήρη κώδικα κώδικα και επίδειξης παρακάτω.