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

Boe-Bot με ανιχνευτές υπερύθρων: 12 βήματα (με εικόνες)
Boe-Bot με ανιχνευτές υπερύθρων: 12 βήματα (με εικόνες)

Βίντεο: Boe-Bot με ανιχνευτές υπερύθρων: 12 βήματα (με εικόνες)

Βίντεο: Boe-Bot με ανιχνευτές υπερύθρων: 12 βήματα (με εικόνες)
Βίντεο: Boe Bot Demonstration 2024, Νοέμβριος
Anonim
Boe-Bot με ανιχνευτές υπερύθρων
Boe-Bot με ανιχνευτές υπερύθρων

Αυτό το διδακτικό θα δείξει πώς να δημιουργήσετε και να κωδικοποιήσετε ένα Boe-Bot που μπορεί να περιηγηθεί σε έναν λαβύρινθο χρησιμοποιώντας ανιχνευτές υπερύθρων για να αποφύγετε εμπόδια. Αυτός είναι ένας εύχρηστος οδηγός που επιτρέπει εύκολες τροποποιήσεις που ταιριάζουν στις ανάγκες σας. Αυτό απαιτεί μια βασική κατανόηση των κυκλωμάτων και του προγραμματισμού. Θα χρειαστεί να έχετε λογισμικό BASIC Stamp IDE για αυτό το έργο. Δωρεάν για λήψη εδώ. Καθώς και το ρομπότ Boe-Bot

Βήμα 1: Πόροι

ΗΛΕΚΤΡΟΝΙΚΑ ΕΞΑΡΤΗΜΑΤΑ

Boe -Bot με καλώδιο σύνδεσης Parallax Store - BoeBot Kit

5 Υπέρυθρες LED's Parallax Store - IR Transmitter Assembly Kit

5 Συνελεύσεις Υπέρυθρης Ασπίδας

5 υπέρυθρο ανιχνευτές Parallax Store - BoeBot IR Receiver

Αντιστάσεις

  • (2) 4,7 kΩ ABRA Electronics - 4,7 kΩ
  • (5) 220 Ω ABRA Electronics - 220 Ω
  • (2) 1 kΩ ABRA Electronics - 1 kΩ
  • (5) 2 k ABRA Electronics - 2 kΩ

Ποικιλία καλωδιώσεων ABRA Electronics - 22 Gauge Wire

3 LED's ABRA Electronics - Κόκκινο LED 5mm

Υποστήριξη

Υπολογιστή

BASIC Stamp Editor - (δωρεάν λογισμικό)

Εργαλεία

Wire Cutter ABRA Electronics - Wire Cutter (προαιρετικό)

Wire Stripper ABRA Electronics - Wire Stripper

Διάφορα

Τείχη (για την κατασκευή λαβύρινθου)

Βήμα 2: Κατανόηση του τρόπου λειτουργίας της ανίχνευσης υπερύθρων (προαιρετικό)

Κατανόηση του τρόπου λειτουργίας της ανίχνευσης υπερύθρων (προαιρετικό)
Κατανόηση του τρόπου λειτουργίας της ανίχνευσης υπερύθρων (προαιρετικό)

Υπέρυθροι προβολείς

Το σύστημα ανίχνευσης υπέρυθρων αντικειμένων που θα δημιουργήσουμε στο Boe-Bot μοιάζει με προβολείς αυτοκινήτου από πολλές απόψεις. Όταν το φως από τους προβολείς ενός αυτοκινήτου αντανακλά τα εμπόδια, τα μάτια σας εντοπίζουν τα εμπόδια και ο εγκέφαλός σας τα επεξεργάζεται και κάνει το σώμα σας να καθοδηγεί ανάλογα το αυτοκίνητο. Το Boe-Bot θα χρησιμοποιεί υπέρυθρες λυχνίες LED για προβολείς. Εκπέμπουν υπέρυθρο, και σε ορισμένες περιπτώσεις, το υπέρυθρο αντανακλά αντικείμενα και αναπηδά προς την κατεύθυνση του Boe-Bot. Τα μάτια του Boe-Bot είναι οι ανιχνευτές υπερύθρων. Οι ανιχνευτές υπέρυθρης ακτινοβολίας στέλνουν σήματα που υποδεικνύουν εάν ανιχνεύουν ή όχι υπέρυθρες ανακλώμενες από ένα αντικείμενο. Ο εγκέφαλος του Boe-Bot, το BASIC Stamp, λαμβάνει αποφάσεις και λειτουργεί τους σερβοκινητήρες με βάση αυτήν την είσοδο αισθητήρα. Εικόνα 7-1 Ανίχνευση αντικειμένου με προβολείς IR Οι ανιχνευτές IR διαθέτουν ενσωματωμένα οπτικά φίλτρα που επιτρέπουν πολύ λίγο φως εκτός από το υπέρυθρο 980 nm που θέλουμε να ανιχνεύσουμε με τον εσωτερικό αισθητήρα φωτοδιόδων. Ο ανιχνευτής υπερύθρων διαθέτει επίσης ένα ηλεκτρονικό φίλτρο που επιτρέπει να περάσουν μόνο σήματα περίπου 38,5 kHz. Με άλλα λόγια, ο ανιχνευτής ψάχνει μόνο για υπέρυθρο που αναβοσβήνει 38 και 500 φορές το δευτερόλεπτο. Αυτό αποτρέπει τις παρεμβολές IR από κοινές πηγές όπως το ηλιακό φως και τον εσωτερικό φωτισμό. Το φως του ήλιου είναι παρεμβολή DC (0 Hz) και ο εσωτερικός φωτισμός τείνει να αναβοσβήνει σε 100 ή 120 Hz, ανάλογα με την κύρια πηγή ισχύος στην περιοχή. Δεδομένου ότι τα 120 Hz βρίσκονται έξω από τη συχνότητα διέλευσης της ζώνης 38,5 kHz του ηλεκτρονικού φίλτρου, αγνοείται εντελώς από τους ανιχνευτές IR.

-Paralax Student Guide

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

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

Τοποθετήστε το LED IR στο μεγαλύτερο τμήμα του περιβλήματος

Κλείστε το καθαρό μέρος της λυχνίας LED με το μικρότερο τμήμα του περιβλήματος

Βήμα 4: Δοκιμή ζευγών υπερύθρων - κύκλωμα

Δοκιμή υπέρυθρων ζευγών - κύκλωμα
Δοκιμή υπέρυθρων ζευγών - κύκλωμα
Δοκιμή υπέρυθρων ζευγών - κύκλωμα
Δοκιμή υπέρυθρων ζευγών - κύκλωμα

Πριν εμβαθύνουμε σε οτιδήποτε, θα δοκιμάσουμε για να βεβαιωθούμε ότι λειτουργεί το ζεύγος IR (Ένα LED υπέρυθρων και ένας ανιχνευτής υπέρυθρων).

Ξεκινήστε χτίζοντας το παραπάνω κύκλωμα στο breadboard που είναι τοποθετημένο πάνω από το Boe-Bot

Βήμα 5: Δοκιμή ζευγών υπερύθρων - Βασικός κώδικας

Φυσικά, θα χρειαστεί να γράψουμε κώδικα για να λειτουργήσουν τα ζεύγη IR μας

Για να γίνει αυτό, θα χρησιμοποιήσει την εντολή FREQOUT. Αυτή η εντολή σχεδιάστηκε για ήχους, ωστόσο μπορεί να χρησιμοποιηθεί για την παραγωγή συχνοτήτων στην περιοχή υπέρυθρων ακτίνων. Για αυτό το τεστ θα χρησιμοποιήσουμε την εντολή:

ΣΥΧΝΟΤΗΤΑ 8, 1, 38500

αυτό θα στείλει συχνότητα 38,5 kHz που διαρκεί 1 ms στο P8. Το κύκλωμα LED υπέρυθρων που είναι συνδεδεμένο στο P8 θα εκπέμπει αυτήν τη συχνότητα. Εάν το υπέρυθρο φως αντανακλάται πίσω στο Boe-Bot από ένα αντικείμενο στη διαδρομή του, ο ανιχνευτής υπερύθρων θα στείλει ένα σήμα στη ΒΑΣΙΚΗ Σφραγίδα για να του ενημερώσει ότι το ανακλώμενο υπέρυθρο φως ανιχνεύθηκε.

Το κλειδί για να λειτουργήσει ένα ζεύγος IR είναι να στείλετε 1 ms 38.5 kHz FREQOUT και να αποθηκεύσετε αμέσως την έξοδο του ανιχνευτή IR σε μια μεταβλητή.

Αυτό το παράδειγμα δείχνει την αποθήκευση της τιμής του ανιχνευτή IR σε μια μεταβλητή bit που ονομάζεται irDectectLeft

ΣΥΧΝΟΤΗΤΑ 8, 1, 38500

irDetectLeft = IN9

Η κατάσταση εξόδου του ανιχνευτή IR όταν δεν βλέπει σήμα IR είναι υψηλή. Όταν ο ανιχνευτής IR βλέπει την αρμονική 38500 Hz να αντανακλάται από ένα αντικείμενο, η έξοδός του είναι χαμηλή. Η έξοδος του ανιχνευτή IR παραμένει χαμηλή μόνο για ένα κλάσμα του χιλιοστού του δευτερολέπτου αφού ολοκληρωθεί η αποστολή της αρμονικής από την εντολή FREQOUT, οπότε είναι απαραίτητο να αποθηκεύσετε την έξοδο του ανιχνευτή IR σε μια μεταβλητή αμέσως μετά την αποστολή της εντολής FREQOUT. Η τιμή που αποθηκεύεται από τη μεταβλητή μπορεί στη συνέχεια να εμφανιστεί στο τερματικό εντοπισμού σφαλμάτων ή να χρησιμοποιηθεί για αποφάσεις πλοήγησης από το Boe-Bot.

Βήμα 6: Δοκιμή ζευγών υπέρυθρων - Υλικό + Λογισμικό

Δοκιμή ζευγών υπέρυθρων - Υλικό + Λογισμικό
Δοκιμή ζευγών υπέρυθρων - Υλικό + Λογισμικό

Τώρα που γνωρίζετε τα βασικά, μπορούμε να συνδυάσουμε το υλικό και το λογισμικό για να δοκιμάσουμε ένα ζευγάρι μαζί και να λάβουμε σχόλια σε πραγματικό χρόνο από αυτά που εντοπίζει το ζεύγος IR

Μπορείτε να δοκιμάσετε να φτιάξετε μόνοι σας τον κωδικό ή να χρησιμοποιήσετε τον παρακάτω κώδικα

'{$ STAMP BS2}

'{$ PBASIC 2.5} irDetectLeft VAR Bit DO FREQOUT 8, 1, 38500 irDetectLeft = IN9 DEBUG HOME, "irDetectLeft =", BIN1 irDetectLeft PAUSE 100 LOOP

  1. Αφήστε το Boe-Bot συνδεδεμένο στο σειριακό καλώδιο, επειδή θα χρησιμοποιήσετε το τερματικό DEBUG για να δοκιμάσετε το ζεύγος IR σας.
  2. Τοποθετήστε ένα αντικείμενο, όπως το χέρι σας ή ένα φύλλο χαρτιού, περίπου μια ίντσα από το αριστερό ζεύγος IR
  3. Βεβαιωθείτε ότι όταν τοποθετείτε ένα αντικείμενο μπροστά από το ζεύγος IR, το τερματικό εντοπισμού σφαλμάτων εμφανίζει ένα 0 και όταν αφαιρείτε το αντικείμενο από μπροστά από το ζεύγος IR, εμφανίζει το 1.
  4. Εάν το τερματικό εντοπισμού σφαλμάτων δεν εμφανίζει τις αναμενόμενες τιμές, δοκιμάστε τα βήματα στο βήμα αντιμετώπισης προβλημάτων.

Βήμα 7: Αντιμετώπιση προβλημάτων (για ζητήματα με το τελευταίο βήμα)

Τερματικό DEBUG που εμφανίζει απροσδόκητες τιμές

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

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

Λαμβάνεται πάντα 0, ακόμη και όταν δεν υπάρχουν αντικείμενα τοποθετείται μπροστά από το Boe-Bot

Ελέγξτε αν υπάρχουν κοντινά αντικείμενα που αντανακλούν το υπέρυθρο σήμα. Το τραπέζι μπροστά από το Boe-Bot θα μπορούσε να είναι η αιτία. Μετακινήστε το Boe-Bot σε ανοιχτό χώρο, έτσι ώστε το IR LED και ο ανιχνευτής να μην μπορούν να αντανακλούν κανένα κοντινό αντικείμενο.

Η ανάγνωση είναι 1 τις περισσότερες φορές όταν δεν υπάρχει αντικείμενο μπροστά από το Boe-Bot, αλλά αναβοσβήνει στο 0 περιστασιακά

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

Βήμα 8: Δεύτερο ζεύγος IR

Δεύτερο ζεύγος IR
Δεύτερο ζεύγος IR

Τώρα που έχετε το πρόγραμμα για το αριστερό IR, είναι η σειρά σας να κάνετε το κύκλωμα και να προγραμματίσετε το σωστό ζεύγος IR

  1. Αλλάξτε τη δήλωση DEBUG, τον τίτλο και τα σχόλια για να αναφέρεστε στο σωστό ζεύγος IR.
  2. Αλλάξτε το όνομα της μεταβλητής από irDetectLeft σε irDetectRight. Θα χρειαστεί να το κάνετε σε τέσσερα σημεία του προγράμματος.
  3. Αλλάξτε το όρισμα Pin της εντολής FREQOUT από 8 σε 2.
  4. Αλλάξτε τον καταχωρητή εισόδου που παρακολουθείται από τη μεταβλητή irDetectRight από IN9 σε IN0.
  5. Επαναλάβετε τα βήματα ελέγχου σε αυτήν τη δραστηριότητα για το σωστό ζεύγος IR. με το κύκλωμα IR LED συνδεδεμένο στο P2 και τον ανιχνευτή συνδεδεμένο στο P0.

Βήμα 9: Ανίχνευση παρεμβολών υπέρυθρων (προαιρετικό)

Ανίχνευση παρεμβολών υπέρυθρων (προαιρετικό)
Ανίχνευση παρεμβολών υπέρυθρων (προαιρετικό)

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

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

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

'{$ STAMP BS2}

'{$ PBASIC 2.5} irDetectLeft VAR Bit DO irDetectLeft = IN9 irDetectRight = IN0 IF IN9 = 0 IN IN0 = 0 ΤΟΤΕ ΑΝΤΙΜΕΤΩΠΙΣΗ "Παρεμβολή εντοπίστηκε" ΠΑΥΣΗ 100 ΛΟΟΥΠ

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

Βήμα 10: Προσθήκη περισσότερων ζευγών IR

Προσθήκη περισσότερων ζευγών IR
Προσθήκη περισσότερων ζευγών IR

Εάν επιθυμείτε περισσότερη ακρίβεια στην κίνηση του Boe-Bot σας, μπορεί να θέλετε να προσθέσετε περισσότερα ζεύγη IR. 3 Βελτιώνει σημαντικά την απόδοση σε σύγκριση με δύο. μπορείτε να χρησιμοποιήσετε ένα κεντρικό ζεύγος για σάρωση για άμεσο εμπόδιο και να χρησιμοποιήσετε δύο πλευρικά IR για να καθορίσετε πόσο θα στρίψετε. Ωστόσο, η πτώση του σχεδιασμού ζεύγους 3 IR είναι ότι μπορεί να γνωρίζετε πότε γλιστράτε στον τοίχο, επειδή το κεντρικό ζεύγος IR χρησιμοποιείται για τον εντοπισμό εμποδίων. Για να λύσετε αυτό το πρόβλημα, μπορείτε να προσθέσετε ένα ζεύγος IR σε κάθε πλευρά με υψηλή τιμή αντίστασης-επομένως και το υπέρυθρο σήμα θα ανιχνευθεί μόνο εάν το Boe-Bot είναι κοντά στο πλάι ή σε τοίχο σε ήπια γωνία.

Βήμα 11: Πέντε ζεύγη IR - Κύκλωμα

Πέντε ζεύγη IR - Κύκλωμα
Πέντε ζεύγη IR - Κύκλωμα

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

Βήμα 12: Πέντε ζεύγη IR - Κωδ

Πέντε ζεύγη IR - Κωδ
Πέντε ζεύγη IR - Κωδ

Μπορεί να θέλετε να δοκιμάσετε να προγραμματίσετε το Boe-Bot πριν χρησιμοποιήσετε αυτόν τον κωδικό:

'{$ STAMP BS2}' {$ PBASIC 2.5} 'Five IR Pair Deatection Code' Matthew Shaw 'May 8 2019 (Έκδοση 7)' Ανίχνευση αντικειμένων και βασική λογική επεξεργασία για την επίλυση λαβυρίνθου

irDetectLeft VAR Bit 'Μεταβλητή για αριστερά

Bit του irDetectCentre VAR 'Variable for center irDetectRight VAR Bit' Variable for right irDetectLSide VAR Bit 'Variable for left side irDetectRSide VAR Bit' Variable for right side irDetectLSideFar VAR Bit 'Variable for left side low low resist irDetectRSideFar right side VAR Bit”

mLoop VAR Word

LMotor PIN 15 'Ο αριστερός κινητήρας είναι συνδεδεμένος με τον πείρο 14, οι παλμοί περνούν εδώ

PIN κινητήρα 14 'δεξιά = 15

Οι ταχύτητες είναι-> 650-750-850

LFast CON 850 'Conastant για αριστερό κινητήρα σε πλήρη ταχύτητα RFast CON 650' Conastant για δεξί κινητήρα σε πλήρη ταχύτητα

LStop CON 750 'Conastant για αριστερό κινητήρα σε πλήρη ταχύτητα

RStop CON 650 'Conastant για σωστό κινητήρα σε πλήρη ταχύτητα

LMid CON 830 'Conastant για αριστερό κινητήρα σε μεσαία ταχύτητα

RMid CON 700 'Conastant για σωστό κινητήρα σε μεσαία ταχύτητα

LSlow CON 770 'Conastant για αριστερό κινητήρα σε ελάχιστη ταχύτητα

RSlow CON 730 'Conastant για σωστό κινητήρα σε ελάχιστη ταχύτητα

LRev CON 650 'Conastant για αριστερό κινητήρα σε πλήρη ταχύτητα αντίστροφα

RRev CON 850 'Conastant για αριστερό κινητήρα σε πλήρη ταχύτητα αντίστροφα

ΣΥΧΝΟΤΗΤΑ 7, 1, 38500 'αριστερή πλευρά

irDetectLeft = IN8

FREQOUT 6, 1, 38500 'κέντρο

irDetectCentre = IN5

FREQOUT 3, 1, 38500 'δεξιά πλευρά

irDetectRight = IN2

ΣΥΧΝΟΤΗΤΑ 10, 1, 38500 'Αριστερά Κλείσιμο

irDetectLSide = IN11

ΣΥΧΝΟΤΗΤΑ 1, 1, 38500 'δεξιά Κλείσιμο

irDetectRSide = IN0

ΣΥΧΝΟΤΗΤΑ 9, 1, 38500

irDetectLSideFar = IN11

FREQOUT 4, 1, 38500 'δεξιά πλευρά

irDetectRSideFar = IN0

ΑΝ irDetectLSide = 0 ΚΑΙ irDetectRSide = 0 ΤΟΤΕ κύρια «ΕΝΑΡΞΗ ΕΝΑΡΞΗΣ κουνήστε τα χέρια σας πέρα από τους δύο πλευρικούς ανιχνευτές για να ξεκινήσει το πρόγραμμα

Κύριος:

ΠΑΥΣΗ 1000 ΚΑΝΕ

PULSOUT Lmotor, LFast 'αριστερό μοτέρ λειτουργεί σε πλήρη ταχύτητα

PULSOUT Ο κινητήρας Rmotor, RFast 'Right λειτουργεί σε πλήρη ταχύτητα

FREQOUT 6, 1, 38500 'κέντρο

irDetectCentre = IN5

ΣΥΧΝΟΤΗΤΑ 10, 1, 38500 'Αριστερά Κλείσιμο

irDetectLSide = IN11

ΣΥΧΝΟΤΗΤΑ 1, 1, 38500 'δεξιά πλευρά

irDetectRSide = IN0

ΑΝ irDetectLSide = 0 ΚΑΙ irDetectRSide = 1 ΤΟΤΕ

ΚΑΝΕ ΠΟΛΥΣΑΟΥΤ Lmotor, LFast

FREQOUT 6, 1, 38500 'κέντρο

irDetectCentre = IN5 IF irDetectCentre = 0 ΤΟΤΕ σεντ

ΣΥΧΝΟΤΗΤΑ 10, 1, 38500 'Αριστερά Κλείσιμο

irDetectLSide = IN11

FREQOUT 3, 1, 38500 'δεξιά πλευρά

irDetectRight = IN2

LOOP ΜΕΧΡΙ irDetectLSide = 1 ir irDetectRSide = 0

ELSEIF irDetectLSide = 1 ΚΑΙ irDetectRSide = 0 ΤΟΤΕ

DO PULSOUT Rmotor, RFast

FREQOUT 6, 1, 38500 'κέντρο

irDetectCentre = IN5 IF irDetectCentre = 0 ΤΟΤΕ σεντ

ΣΥΧΝΟΤΗΤΑ 10, 1, 38500 'Αριστερά Κλείσιμο

irDetectLSide = IN11

FREQOUT 3, 1, 38500 'δεξιά πλευρά

irDetectRight = IN2

ΒΛΑΒΕΤΕ ΜΕΧΡΙ irDetectLSide = 0 ir irDetectRSide = 1

'ΤΕΛΟΣ ΕΑΝ

IF irDetectCentre = 0 ΤΟΤΕ 'ΕΚΚΙΝΗΣΗ

ΣΥΧΝΟΤΗΤΑ 7, 1, 38500 'αριστερή πλευρά irDetectLeft = IN8

FREQOUT 6, 1, 38500 'κέντρο

irDetectCentre = IN5

ΣΥΧΝΟΤΗΤΑ 3, 1, 38500

irDetectRight = IN2

ΠΑΥΣΗ 1000 'παύση για εμφάνιση του εντοπισμένου σήματος

IF (irDetectLeft = 1 AND irDetectRight = 0) ΤΟΤΕ 'αξιολογήστε τη διάρκεια

GOSUB turnLeft

ELSEIF (irDetectLeft = 0 AND irDetectRight = 1) ΤΟΤΕ

GOSUB turnRight

ELSEIF (irDetectLeft = 1 ΚΑΙ irDetectRight = 1) ΤΟΤΕ

GOSUB turnDecide

ΑΛΛΟΥ

GOSUB turnReverse

ΤΕΛΟΣ ΕΑΝ

ENDIF 'END

ΒΡΟΧΟΣ

ΤΕΛΟΣ

στρίψτε αριστερά:

DO PULSOUT Lmotor, LRev FREQOUT 8, 1, 38500 irDetectLeft = IN9 FREQOUT 5, 1, 38500 irDetectCentre = IN4 FREQOUT 2, 1, 38500 irDetectRight = IN0 LOOP INTIL IN0 = 1 RETURN

στρίψτε δεξιά:

DO PULSOUT Rmotor, RRev FREQOUT 8, 1, 38500 irDetectLeft = IN9 FREQOUT 5, 1, 38500 irDetectCentre = IN4 FREQOUT 2, 1, 38500 irDetectRight = IN0 LOOP ΜΕΧΡΙ IN9 = 1

ΕΠΙΣΤΡΟΦΗ

turnReverse:

ΓΙΑ mLoop = 0 ΕΩΣ 50 PULSOUT Rmotor, RRev PULSOUT Lmotor, LRev PAUSE 20 PULSOUT Lmotor, LRev PAUSE 20 NEXT DO PULSOUT Rmotor, RRev FREQOUT 8, 1, 38500 irDetectLect, INT, 38500 irDetectRight = IN0 LOOP ΜΕΧΡΙ IN9 = 1

ΕΠΙΣΤΡΟΦΗ

turnDecide: 'χρησιμοποιεί χαμηλότερη αντίσταση για να δείτε περισσότερα

ΣΥΧΝΟΤΗΤΑ 9, 1, 38500

irDetectLSideFar = IN11

FREQOUT 4, 1, 38500 'δεξιά πλευρά

irDetectRSideFar = IN0

ΑΝ (irDetectLSideFar = 1 ΚΑΙ irDetectRSideFar = 0) ΤΟΤΕ 'αξιολογήστε τη διάρκεια

GOSUB turnLeft

ELSEIF (irDetectLSideFar = 0 AND irDetectRSideFar = 1) ΤΟΤΕ

GOSUB turnRight

ELSEIF (irDetectLSideFar = 1 ΚΑΙ irDetectRSideFar = 1) ΤΟΤΕ

GOSUB turnLeft

ΑΛΛΟΥ

GOSUB turnReverse

ΤΕΛΟΣ ΕΑΝ

ΕΠΙΣΤΡΟΦΗ

Συνιστάται: