Κινητό ρομπότ σε μικροελεγκτή που ανταποκρίνεται στο φως. Επιλογή μικροελεγκτή για τη δημιουργία του ρομπότ σας. πόρους για τον επίδοξο ρομποτικό

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

Εισαγωγή

Ετσι. Τι είναι ένα ρομπότ; Στις περισσότερες περιπτώσεις αυτό αυτόματη συσκευή, το οποίο αντιδρά σε τυχόν περιβαλλοντικές ενέργειες. Τα ρομπότ μπορούν να ελέγχονται από ανθρώπους ή να εκτελούν προ-προγραμματισμένες ενέργειες. Συνήθως, το ρομπότ είναι εξοπλισμένο με μια ποικιλία αισθητήρων (απόσταση, γωνία περιστροφής, επιτάχυνση), βιντεοκάμερες και χειριστές. Το ηλεκτρονικό μέρος του ρομπότ αποτελείται από έναν μικροελεγκτή (MC) - ένα μικροκύκλωμα που περιέχει έναν επεξεργαστή, μια γεννήτρια ρολογιού, διάφορα περιφερειακά, λειτουργικά και μόνιμη μνήμη. Υπάρχει ένας τεράστιος αριθμός διαφορετικών μικροελεγκτών στον κόσμο για διαφορετικές εφαρμογές και στη βάση τους μπορείτε να συναρμολογήσετε ισχυρά ρομπότ. Χρησιμοποιούνται ευρέως για ερασιτεχνικά κτίρια. Μικροελεγκτές AVR. Είναι μακράν τα πιο προσβάσιμα και στο Διαδίκτυο μπορείτε να βρείτε πολλά παραδείγματα με βάση αυτά τα MK. Για να εργαστείτε με μικροελεγκτές, πρέπει να είστε σε θέση να προγραμματίζετε σε assembler ή C και να έχετε βασικές γνώσεις ψηφιακών και αναλογικών ηλεκτρονικών. Στο έργο μας θα χρησιμοποιήσουμε το C. Ο προγραμματισμός για το MK δεν διαφέρει πολύ από τον προγραμματισμό σε υπολογιστή, η σύνταξη της γλώσσας είναι η ίδια, οι περισσότερες λειτουργίες ουσιαστικά δεν διαφέρουν και οι νέες είναι αρκετά εύκολες στην εκμάθηση και βολικές στη χρήση.

Τι χρειαζόμαστε

Αρχικά, το ρομπότ μας θα μπορεί απλώς να αποφύγει τα εμπόδια, δηλαδή να επαναλάβει την κανονική συμπεριφορά των περισσότερων ζώων στη φύση. Όλα όσα χρειαζόμαστε για να φτιάξουμε ένα τέτοιο ρομπότ, θα τα βρούμε στα καταστήματα ραδιοφώνου. Ας αποφασίσουμε πώς θα κινηθεί το ρομπότ μας. Νομίζω ότι οι πιο επιτυχημένες είναι οι ράγες που χρησιμοποιούνται στις δεξαμενές· αυτή είναι η πιο βολική λύση, επειδή οι ράγες έχουν μεγαλύτερη ευελιξία από τους τροχούς ενός οχήματος και είναι πιο βολικοί στον έλεγχο (για να στρίψετε, αρκεί να περιστρέψετε τις ράγες σε διαφορετικές κατευθύνσεις). Επομένως, θα χρειαστείτε οποιοδήποτε ντεπόζιτο παιχνιδιών του οποίου τα κομμάτια περιστρέφονται ανεξάρτητα το ένα από το άλλο, μπορείτε να αγοράσετε ένα σε οποιοδήποτε κατάστημα παιχνιδιών σε λογική τιμή. Από αυτή τη δεξαμενή χρειάζεστε μόνο μια πλατφόρμα με ράγες και κινητήρες με κιβώτια ταχυτήτων, τα υπόλοιπα μπορείτε να τα ξεβιδώσετε και να τα πετάξετε με ασφάλεια. Χρειαζόμαστε και μικροελεγκτή, η επιλογή μου έπεσε στο ATmega16 - έχει αρκετές θύρες για σύνδεση αισθητήρων και περιφερειακών και γενικά είναι αρκετά βολικό. Θα χρειαστεί επίσης να αγοράσετε μερικά εξαρτήματα ραδιοφώνου, ένα συγκολλητικό σίδερο και ένα πολύμετρο.

Φτιάχνοντας έναν πίνακα με το MK



Διάγραμμα ρομπότ

Στην περίπτωσή μας, ο μικροελεγκτής θα εκτελέσει τις λειτουργίες του εγκεφάλου, αλλά δεν θα ξεκινήσουμε με αυτόν, αλλά με την τροφοδοσία του εγκεφάλου του ρομπότ. Η σωστή διατροφή είναι το κλειδί για την υγεία, επομένως θα ξεκινήσουμε με το πώς να ταΐζουμε σωστά το ρομπότ μας, γιατί εδώ συνήθως κάνουν λάθη οι αρχάριοι κατασκευαστές ρομπότ. Και για να λειτουργεί κανονικά το ρομπότ μας, πρέπει να χρησιμοποιήσουμε σταθεροποιητή τάσης. Προτιμώ το τσιπ L7805 - έχει σχεδιαστεί για έξοδο σταθερή τάση 5V, που χρειάζεται ο μικροελεγκτής μας. Αλλά λόγω του γεγονότος ότι η πτώση τάσης σε αυτό το μικροκύκλωμα είναι περίπου 2,5 V, πρέπει να τροφοδοτηθεί τουλάχιστον 7,5 V. Μαζί με αυτόν τον σταθεροποιητή, χρησιμοποιούνται ηλεκτρολυτικοί πυκνωτές για την εξομάλυνση των κυματισμών τάσης και μια δίοδος περιλαμβάνεται απαραίτητα στο κύκλωμα για προστασία από την αντιστροφή πολικότητας.
Τώρα μπορούμε να προχωρήσουμε στον μικροελεγκτή μας. Η θήκη του MK είναι DIP (είναι πιο βολική η συγκόλληση) και έχει σαράντα ακίδες. Στο πλοίο υπάρχει ένα ADC, PWM, USART και πολλά άλλα που δεν θα χρησιμοποιήσουμε προς το παρόν. Ας δούμε μερικούς σημαντικούς κόμβους. Ο ακροδέκτης RESET (9ο σκέλος του MK) τραβιέται προς τα πάνω από την αντίσταση R1 στο «συν» της πηγής ισχύος - αυτό πρέπει να γίνει! Διαφορετικά, το MK σας ενδέχεται να μηδενιστεί ακούσια ή, πιο απλά, να παρουσιάσει σφάλμα. Ένα άλλο επιθυμητό μέτρο, αλλά όχι υποχρεωτικό, είναι η σύνδεση του RESET μέσω του κεραμικού πυκνωτή C1 στη γείωση. Στο διάγραμμα μπορείτε επίσης να δείτε έναν ηλεκτρολύτη 1000 uF, ο οποίος σας εξοικονομεί από βυθίσεις τάσης όταν λειτουργούν οι κινητήρες, κάτι που θα έχει επίσης ευεργετική επίδραση στη λειτουργία του μικροελεγκτή. Αντηχείο χαλαζίαΤο X1 και οι πυκνωτές C2, C3 πρέπει να βρίσκονται όσο το δυνατόν πιο κοντά στους ακροδέκτες XTAL1 και XTAL2.
Δεν θα μιλήσω για το πώς να αναβοσβήσετε το MK, αφού μπορείτε να διαβάσετε σχετικά στο Διαδίκτυο. Θα γράψουμε το πρόγραμμα σε C· επέλεξα το CodeVisionAVR ως περιβάλλον προγραμματισμού. Αυτό είναι ένα αρκετά φιλικό προς το χρήστη περιβάλλον και είναι χρήσιμο για αρχάριους επειδή έχει ενσωματωμένο οδηγό δημιουργίας κώδικα.


Η σανίδα ρομπότ μου

Μηχανικός έλεγχος

Ένα εξίσου σημαντικό εξάρτημα στο ρομπότ μας είναι ο οδηγός του κινητήρα, που μας διευκολύνει στον έλεγχο του. Ποτέ και σε καμία περίπτωση οι κινητήρες δεν πρέπει να συνδέονται απευθείας στο MK! Γενικά, τα ισχυρά φορτία δεν μπορούν να ελεγχθούν απευθείας από τον μικροελεγκτή, διαφορετικά θα καεί. Χρησιμοποιήστε βασικά τρανζίστορ. Για την περίπτωσή μας, υπάρχει ένα ειδικό τσιπ - L293D. Σε τόσο απλά έργα, προσπαθήστε πάντα να χρησιμοποιείτε το συγκεκριμένο τσιπ με δείκτη «D», καθώς έχει ενσωματωμένες διόδους για προστασία από υπερφόρτωση. Αυτό το μικροκύκλωμα είναι πολύ εύκολο στον έλεγχο και είναι εύκολο να το αποκτήσετε σε καταστήματα ραδιοφώνου. Διατίθεται σε δύο συσκευασίες: DIP και SOIC. Θα χρησιμοποιήσουμε DIP στη συσκευασία λόγω της ευκολίας τοποθέτησης στην πλακέτα. Το L293D έχει ξεχωριστό τροφοδοτικό για κινητήρες και λογική. Επομένως, θα τροφοδοτήσουμε το ίδιο το μικροκύκλωμα από τον σταθεροποιητή (είσοδος VSS) και τους κινητήρες απευθείας από τις μπαταρίες (είσοδος VS). Το L293D μπορεί να αντέξει φορτίο 600 mA ανά κανάλι και έχει δύο από αυτά τα κανάλια, δηλαδή, δύο κινητήρες μπορούν να συνδεθούν σε ένα τσιπ. Αλλά για να είμαστε ασφαλείς, θα συνδυάσουμε τα κανάλια και μετά θα χρειαστούμε ένα μικρό για κάθε κινητήρα. Ως εκ τούτου, το L293D θα μπορεί να αντέξει 1,2 A. Για να το πετύχετε αυτό, πρέπει να συνδυάσετε τα πόδια micra, όπως φαίνεται στο διάγραμμα. Το μικροκύκλωμα λειτουργεί ως εξής: όταν εφαρμόζεται ένα λογικό «0» στο IN1 και το IN2 και ένα λογικό εφαρμόζεται στο IN3 και το IN4, ο κινητήρας περιστρέφεται προς μία κατεύθυνση και εάν τα σήματα αντιστραφούν και εφαρμοστεί ένα λογικό μηδέν, τότε ο κινητήρας θα αρχίσει να περιστρέφεται προς την άλλη κατεύθυνση. Οι ακίδες EN1 και EN2 είναι υπεύθυνες για την ενεργοποίηση κάθε καναλιού. Τα συνδέουμε και τα συνδέουμε στο «συν» της τροφοδοσίας από τον σταθεροποιητή. Δεδομένου ότι το μικροκύκλωμα θερμαίνεται κατά τη λειτουργία και η εγκατάσταση καλοριφέρ σε αυτόν τον τύπο θήκης είναι προβληματική, η απομάκρυνση θερμότητας εξασφαλίζεται από τα πόδια GND - είναι καλύτερο να τα συγκολλήσετε σε ένα ευρύ μαξιλάρι επαφής. Αυτό είναι το μόνο που χρειάζεται να γνωρίζετε για τους οδηγούς κινητήρα για πρώτη φορά.

Αισθητήρες εμποδίων

Για να μπορεί το ρομπότ μας να πλοηγείται και να μην κολλάει σε όλα, θα εγκαταστήσουμε δύο αισθητήρες υπερύθρων σε αυτό. Ο απλούστερος αισθητήρας αποτελείται από μια δίοδο IR που εκπέμπει στο υπέρυθρο φάσμα και ένα φωτοτρανζίστορ που θα λάβει το σήμα από τη δίοδο IR. Η αρχή είναι η εξής: όταν δεν υπάρχει εμπόδιο μπροστά από τον αισθητήρα, οι ακτίνες IR δεν χτυπούν το φωτοτρανζίστορ και δεν ανοίγει. Εάν υπάρχει ένα εμπόδιο μπροστά από τον αισθητήρα, τότε οι ακτίνες αντανακλώνται από αυτόν και χτυπούν το τρανζίστορ - ανοίγει και το ρεύμα αρχίζει να ρέει. Το μειονέκτημα τέτοιων αισθητήρων είναι ότι μπορούν να αντιδράσουν διαφορετικά σε διαφορετικές επιφάνειες και δεν προστατεύονται από παρεμβολές - ο αισθητήρας μπορεί κατά λάθος να ενεργοποιηθεί από εξωτερικά σήματα από άλλες συσκευές. Η διαμόρφωση του σήματος μπορεί να σας προστατεύσει από παρεμβολές, αλλά δεν θα ασχοληθούμε με αυτό προς το παρόν. Για αρχή, αυτό είναι αρκετό.


Η πρώτη έκδοση των αισθητήρων του ρομπότ μου

Υλικολογισμικό ρομπότ

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

#περιλαμβάνω
#περιλαμβάνω

Οι ακόλουθες γραμμές είναι υπό όρους, επειδή οι τιμές PORTC εξαρτώνται από τον τρόπο σύνδεσης του προγράμματος οδήγησης κινητήρα στον μικροελεγκτή σας:

PORTC.0 = 1;
PORTC.1 = 0;
PORTC.2 = 1;
PORTC.3 = 0;

Η τιμή 0xFF σημαίνει ότι η έξοδος θα είναι log. Το "1" και το 0x00 είναι ημερολόγιο. "0".

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

Εάν (!(PINB & (1< {
...
}

Εάν το φως από μια δίοδο IR χτυπήσει το φωτοτρανζίστορ, τότε ένα κούτσουρο εγκαθίσταται στο πόδι του μικροελεγκτή. "0" και το ρομπότ αρχίζει να κινείται προς τα πίσω για να απομακρυνθεί από το εμπόδιο, στη συνέχεια γυρίζει για να μην συγκρουστεί ξανά με το εμπόδιο και μετά κινείται ξανά προς τα εμπρός. Δεδομένου ότι έχουμε δύο αισθητήρες, ελέγχουμε για την παρουσία ενός εμποδίου δύο φορές – στα δεξιά και στα αριστερά, και επομένως μπορούμε να βρούμε σε ποια πλευρά βρίσκεται το εμπόδιο. Η εντολή "delay_ms(1000)" υποδεικνύει ότι θα περάσει ένα δευτερόλεπτο πριν αρχίσει να εκτελείται η επόμενη εντολή.

συμπέρασμα

Έχω καλύψει τις περισσότερες πτυχές που θα σας βοηθήσουν να φτιάξετε το πρώτο σας ρομπότ. Όμως η ρομποτική δεν τελειώνει εκεί. Εάν συναρμολογήσετε αυτό το ρομπότ, θα έχετε πολλές ευκαιρίες να το επεκτείνετε. Μπορείτε να βελτιώσετε τον αλγόριθμο του ρομπότ, όπως τι να κάνετε εάν το εμπόδιο δεν βρίσκεται σε κάποια πλευρά, αλλά ακριβώς μπροστά από το ρομπότ. Επίσης, δεν θα ήταν κακό να εγκαταστήσετε έναν κωδικοποιητή - μια απλή συσκευή που θα σας βοηθήσει να τοποθετήσετε και να γνωρίζετε τη θέση του ρομπότ σας στο διάστημα. Για λόγους σαφήνειας, είναι δυνατή η εγκατάσταση μιας έγχρωμης ή μονόχρωμης οθόνης που μπορεί να εμφανίζει χρήσιμες πληροφορίες - επίπεδο φόρτισης μπαταρίας, απόσταση από εμπόδια, διάφορες πληροφορίες εντοπισμού σφαλμάτων. Δεν θα έβλαπτε να βελτιώσουμε τους αισθητήρες - εγκαθιστώντας TSOP (αυτοί είναι δέκτες υπερύθρων που αντιλαμβάνονται ένα σήμα μόνο μιας συγκεκριμένης συχνότητας) αντί για συμβατικά φωτοτρανζίστορ. Εκτός από τους αισθητήρες υπερύθρων, υπάρχουν αισθητήρες υπερήχων, οι οποίοι είναι πιο ακριβοί και έχουν επίσης τα μειονεκτήματά τους, αλλά πρόσφατα κερδίζουν δημοτικότητα μεταξύ των κατασκευαστών ρομπότ. Για να ανταποκρίνεται το ρομπότ στον ήχο, καλό θα ήταν να τοποθετήσετε μικρόφωνα με ενισχυτή. Αλλά αυτό που νομίζω ότι είναι πραγματικά ενδιαφέρον είναι η εγκατάσταση της κάμερας και ο προγραμματισμός της μηχανικής όρασης με βάση αυτήν. Υπάρχει ένα σετ ειδικών βιβλιοθηκών OpenCV με τις οποίες μπορείτε να προγραμματίσετε την αναγνώριση προσώπου, την κίνηση σύμφωνα με χρωματιστά beacon και πολλά άλλα ενδιαφέροντα πράγματα. Όλα εξαρτώνται μόνο από τη φαντασία και τις ικανότητές σας.
Λίστα εξαρτημάτων:
  • ATmega16 σε πακέτο DIP-40>
  • L7805 σε συσκευασία TO-220
  • L293D σε περίβλημα DIP-16 x2 τεμ.
  • αντιστάσεις ισχύος 0,25 W με ονομασίες: 10 kOhm x 1 τεμ., 220 Ohm x 4 τεμ.
  • κεραμικοί πυκνωτές: 0,1 µF, 1 µF, 22 pF
  • ηλεκτρολυτικοί πυκνωτές: 1000 µF x 16 V, 220 µF x 16 V x 2 τεμ.
  • δίοδος 1N4001 ή 1N4004
  • Αντηχείο χαλαζία 16 MHz
  • Δίοδοι υπερύθρων: οποιαδήποτε δύο από αυτές θα κάνουν.
  • φωτοτρανζίστορ, επίσης οποιαδήποτε, αλλά ανταποκρίνονται μόνο στο μήκος κύματος των υπέρυθρων ακτίνων
Κωδικός υλικολογισμικού:
/*****************************************************
Το υλικολογισμικό για το ρομπότ

Τύπος MK: ATmega16
Συχνότητα ρολογιού: 16.000000 MHz
Εάν η συχνότητα χαλαζία σας είναι διαφορετική, τότε πρέπει να το καθορίσετε στις ρυθμίσεις περιβάλλοντος:
Έργο -> Διαμόρφωση -> Καρτέλα "C Compiler".
*****************************************************/

#περιλαμβάνω
#περιλαμβάνω

Κενό κύριο (κενό)
{
//Διαμόρφωση θυρών εισόδου
//Μέσω αυτών των θυρών λαμβάνουμε σήματα από αισθητήρες
DDRB=0x00;
//Ενεργοποιήστε τις αντιστάσεις έλξης
PORTB=0xFF;

//Διαμόρφωση θυρών εξόδου
//Μέσω αυτών των θυρών ελέγχουμε τους κινητήρες
DDRC=0xFF;

//Κύριος βρόχος του προγράμματος. Εδώ διαβάζουμε τις τιμές από τους αισθητήρες
//και έλεγχος των κινητήρων
ενώ (1)
{
//Πάμε μπροστά
PORTC.0 = 1;
PORTC.1 = 0;
PORTC.2 = 1;
PORTC.3 = 0;
εάν (!(PINB & (1< {
//Μετάβαση 1 δευτερόλεπτο προς τα πίσω
PORTC.0 = 0;
PORTC.1 = 1;
PORTC.2 = 0;
PORTC.3 = 1;
καθυστέρηση_ms(1000);
//Τύλιξέ το
PORTC.0 = 1;
PORTC.1 = 0;
PORTC.2 = 0;
PORTC.3 = 1;
καθυστέρηση_ms(1000);
}
εάν (!(PINB & (1< {
//Μετάβαση 1 δευτερόλεπτο προς τα πίσω
PORTC.0 = 0;
PORTC.1 = 1;
PORTC.2 = 0;
PORTC.3 = 1;
καθυστέρηση_ms(1000);
//Τύλιξέ το
PORTC.0 = 0;
PORTC.1 = 1;
PORTC.2 = 1;
PORTC.3 = 0;
καθυστέρηση_ms(1000);
}
};
}

Σχετικά με το ρομπότ μου

Αυτή τη στιγμή το ρομπότ μου είναι σχεδόν ολοκληρωμένο.


Είναι εξοπλισμένο με μια ασύρματη κάμερα, έναν αισθητήρα απόστασης (τόσο η κάμερα όσο και αυτός ο αισθητήρας είναι εγκατεστημένοι σε έναν περιστρεφόμενο πύργο), έναν αισθητήρα εμποδίων, έναν κωδικοποιητή, έναν δέκτη σήματος από το τηλεχειριστήριο και μια διεπαφή RS-232 για σύνδεση σε υπολογιστή. Λειτουργεί σε δύο λειτουργίες: αυτόνομο και χειροκίνητο (λαμβάνει σήματα ελέγχου από το τηλεχειριστήριο), η κάμερα μπορεί επίσης να ενεργοποιηθεί/απενεργοποιηθεί από απόσταση ή από το ίδιο το ρομπότ για εξοικονόμηση ενέργειας της μπαταρίας. Γράφω firmware για την ασφάλεια του διαμερίσματος (μεταφορά εικόνων σε υπολογιστή, ανίχνευση κινήσεων, περπάτημα στις εγκαταστάσεις).

Σύμφωνα με τις επιθυμίες σας, δημοσιεύω ένα βίντεο:

UPD.Ανέβασα ξανά τις φωτογραφίες και έκανα κάποιες μικρές διορθώσεις στο κείμενο.

Για να δημιουργήσετε το δικό σας ρομπότ, δεν χρειάζεται να αποφοιτήσετε ή να διαβάσετε έναν τόνο. Απλώς χρησιμοποιήστε τις οδηγίες βήμα προς βήμα που προσφέρουν οι πλοίαρχοι της ρομποτικής στους ιστότοπούς τους. Στο Διαδίκτυο μπορείτε να βρείτε πολλές χρήσιμες πληροφορίες για την ανάπτυξη αυτόνομων ρομποτικών συστημάτων.

10 πόροι για τον επίδοξο ρομποτικό

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

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

Ο ιστότοπος διαθέτει ένα ειδικό μάθημα «Βήμα προς βήμα», το οποίο περιγράφει λεπτομερώς τη διαδικασία δημιουργίας των απλούστερων ρομπότ BEAM, καθώς και αυτοματοποιημένων συστημάτων που βασίζονται σε μικροελεγκτές AVR.

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

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

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

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

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

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

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

Επιλογή μικροελεγκτή για τη δημιουργία του ρομπότ σας. Πρώτα πρέπει να κατανοήσετε την έννοια του τι είναι ένας μικροελεγκτής και τι κάνει;

Μικροελεγκτήςείναι μια υπολογιστική συσκευή ικανή να εκτελεί προγράμματα (δηλαδή μια ακολουθία εντολών).

Συχνά αναφέρεται ως «εγκέφαλος» ή «κέντρο ελέγχου» του ρομπότ. Συνήθως, ο μικροελεγκτής είναι υπεύθυνος για όλους τους υπολογισμούς, τη λήψη αποφάσεων και τις επικοινωνίες.

Για να επικοινωνεί με τον έξω κόσμο, ο μικροελεγκτής έχει μια σειρά από ακίδες ή ακίδες για την ηλεκτρική αίσθηση του σήματος. Έτσι το σήμα μπορεί να μετατραπεί στο μέγιστο (1/C) ή στο ελάχιστο (0/off) χρησιμοποιώντας μια οδηγία προγραμματισμού. Αυτές οι ακίδες μπορούν επίσης να χρησιμοποιηθούν για την ανάγνωση ηλεκτρικών σημάτων. Προέρχονται από αισθητήρες ή άλλες συσκευές και καθορίζουν εάν τα σήματα είναι υψηλά ή χαμηλά.

Οι περισσότεροι σύγχρονοι μικροελεγκτές μπορούν επίσης να μετρήσουν την τάση των αναλογικών σημάτων. Αυτά είναι σήματα που μπορούν να έχουν ένα πλήρες εύρος τιμών αντί για δύο σαφώς καθορισμένα επίπεδα. Αυτό συμβαίνει χρησιμοποιώντας έναν αναλογικό ψηφιακό μετατροπέα (ADC). Ως αποτέλεσμα, ο μικροελεγκτής μπορεί να εκχωρήσει μια αριθμητική τιμή στο σήμα με τη μορφή αναλογικής τάσης. Αυτή η τάση δεν είναι ούτε υψηλή ούτε χαμηλή και τυπικά κυμαίνεται από 0 - 10 βολτ.

Τι μπορεί να κάνει ένας μικροελεγκτής;

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

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


Ομοίως, μικροελεγκτές μπορούν να χρησιμοποιηθούν για τον έλεγχο άλλων ηλεκτρικών συσκευών. Κυρίως όπως μονάδες δίσκου (όταν συνδέονται με ελεγκτή κινητήρα), συσκευές αποθήκευσης (όπως κάρτες SD), διεπαφές WiFi ή bluetooth κ.λπ. Ως συνέπεια αυτής της απίστευτης ευελιξίας, οι μικροελεγκτές μπορούν να βρεθούν στην καθημερινή ζωή.

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

Σε αντίθεση με τους μικροεπεξεργαστές (όπως η κεντρική μονάδα επεξεργασίας σε προσωπικούς υπολογιστές), ένας μικροελεγκτής δεν απαιτεί περιφερειακές συσκευές. Όπως εξωτερική μνήμη RAM ή εξωτερική συσκευή αποθήκευσης για εργασία. Αυτό σημαίνει ότι αν και ένας μικροελεγκτής μπορεί να είναι λιγότερο ισχυρός από τους αντίστοιχους υπολογιστές. Είναι σχεδόν πάντα πολύ πιο εύκολο και φθηνότερο να αναπτυχθούν κυκλώματα και προϊόντα που βασίζονται σε μικροελεγκτές επειδή απαιτούνται πολύ λίγα πρόσθετα εξαρτήματα υλικού.

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

Ποιες είναι οι πιο εξειδικευμένες λειτουργίες ενός μικροελεγκτή;

Το ειδικό υλικό που είναι ενσωματωμένο σε μικροελεγκτές επιτρέπει σε αυτές τις συσκευές να κάνουν περισσότερα από απλές ψηφιακές I/O, βασικούς υπολογισμούς και λήψη αποφάσεων. Πολλοί μικροελεγκτές υποστηρίζουν εύκολα τα πιο δημοφιλή πρωτόκολλα επικοινωνίας, όπως το UART (RS232 ή άλλο), το SPI και το I2C. Αυτή η δυνατότητα είναι απίστευτα χρήσιμη κατά την επικοινωνία με άλλες συσκευές, όπως υπολογιστές, αισθητήρες ή άλλους μικροελεγκτές.

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


Οι μετατροπείς αναλογικού σε ψηφιακό (ADC) χρησιμοποιούνται για τη μετατροπή σημάτων αναλογικής τάσης σε ψηφιακά. Εκεί η ποσότητα είναι ανάλογη με το μέγεθος της τάσης και ο αριθμός αυτός μπορεί στη συνέχεια να χρησιμοποιηθεί στο πρόγραμμα μικροελεγκτή. Για να κάνουν την ενδιάμεση παραγωγή ενέργειας διαφορετική από την υψηλή και τη χαμηλή, ορισμένοι μικροελεγκτές έχουν τη δυνατότητα να χρησιμοποιούν διαμόρφωση πλάτους παλμού (PWM). Για παράδειγμα, αυτή η μέθοδος σάς επιτρέπει να αλλάζετε ομαλά τη φωτεινότητα του LED.

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

Αναλογικό ή ψηφιακό;

Ποια σήματα εισόδου και εξόδου πρέπει να χρησιμοποιηθούν εξαρτάται από την εργασία και τις συνθήκες. Για παράδειγμα, εάν το καθήκον σας είναι απλώς να ενεργοποιήσετε ή να απενεργοποιήσετε κάτι, τότε το μόνο που χρειάζεστε είναι το σήμα στην ακίδα εισόδου του μικροελεγκτή να είναι ψηφιακό. Η δυαδική κατάσταση του διακόπτη είναι 0 ή 1. Η υψηλή στάθμη του σήματος μπορεί να είναι 5 volt και η χαμηλή στάθμη 0. Εάν πρέπει να μετρήσετε, για παράδειγμα, τη θερμοκρασία, τότε χρειάζεστε ένα αναλογικό σήμα εισόδου. Στη συνέχεια, το ADC στον μικροελεγκτή ερμηνεύει την τάση και τη μετατρέπει σε αριθμητική τιμή.


Πώς να προγραμματίσετε μικροελεγκτές;

Ο προγραμματισμός μικροελεγκτών έχει γίνει ευκολότερος χάρη στη χρήση σύγχρονων ολοκληρωμένων περιβαλλόντων ανάπτυξης (IDEs) με βιβλιοθήκες πλήρεις δυνατότητες. Καλύπτουν εύκολα όλες τις πιο συνηθισμένες εργασίες και έχουν πολλά έτοιμα παραδείγματα κώδικα.

Σήμερα, οι μικροελεγκτές μπορούν να προγραμματιστούν σε διάφορες γλώσσες υψηλού επιπέδου. Αυτές είναι γλώσσες όπως C, C++, C#, Java, Python, Basic και άλλες. Φυσικά, μπορείτε πάντα να γράψετε ένα πρόγραμμα σε γλώσσα assembly. Αν και αυτό είναι για πιο προχωρημένους χρήστες με ειδικές απαιτήσεις (με έναν υπαινιγμό μαζοχισμού). Υπό αυτή την έννοια, ο καθένας θα πρέπει να μπορεί να βρει μια γλώσσα προγραμματισμού που ταιριάζει καλύτερα στο γούστο του και στην προηγούμενη εμπειρία προγραμματισμού.

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


Οι ανεπτυγμένες πλακέτες μικροελεγκτών είναι αρκετά βολικές στη χρήση. Και είναι πιο εύκολο να χρησιμοποιηθούν για μεγάλο χρονικό διάστημα. Παρέχουν επίσης βολικές διεπαφές τροφοδοσίας USB και προγραμματισμού. Επομένως, είναι δυνατή η σύνδεση σε οποιονδήποτε σύγχρονο υπολογιστή.

Γιατί να μην χρησιμοποιήσετε έναν τυπικό υπολογιστή;

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


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

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

Πώς να επιλέξετε τον σωστό μικροελεγκτή;

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

  • Arduino
  • BasicATOM
  • BasicX
  • Lego EV3
  • και πολλοί άλλοι

Για να επιλέξετε τον σωστό μικροελεγκτή, κάντε τις ακόλουθες ερωτήσεις:

Ποιος είναι ο πιο δημοφιλής μικροελεγκτής για την εφαρμογή μου;

Φυσικά, η δημιουργία ρομπότ και γενικά ηλεκτρονικών έργων δεν είναι διαγωνισμός δημοτικότητας. Είναι πολύ καλό εάν ο μικροελεγκτής έχει μεγάλη υποστήριξη από την κοινότητα. Και χρησιμοποιείται με επιτυχία σε παρόμοιες ή και πανομοιότυπες καταστάσεις. Ως αποτέλεσμα, αυτό μπορεί να απλοποιήσει σημαντικά τη φάση σχεδιασμού. Με αυτόν τον τρόπο, θα μπορούσατε να επωφεληθείτε από τις εμπειρίες άλλων χρηστών, τόσο ερασιτεχνών όσο και επαγγελματιών.

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

Το ρομπότ σας έχει ειδικές απαιτήσεις;

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

Άλλοι ελεγκτές ενδέχεται να απαιτούν συγκεκριμένο υλικό (π.χ. υποστήριξη ADC, PWM και πρωτοκόλλου επικοινωνίας). Επίσης πρέπει να ληφθούν υπόψη οι απαιτήσεις μνήμης και ταχύτητας καθώς και ο αριθμός των ακίδων.

Ποια εξαρτήματα είναι διαθέσιμα για έναν συγκεκριμένο μικροελεγκτή;

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

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

Τι μας επιφυλάσσει το μέλλον;

Η τιμή των υπολογιστών πέφτει κατακόρυφα και η πρόοδος της τεχνολογίας τους καθιστά μικρότερους και πιο αποτελεσματικούς. Ως αποτέλεσμα, οι υπολογιστές με μία πλακέτα έχουν γίνει μια ελκυστική επιλογή για τα ρομπότ. Μπορούν να τρέξουν ένα πλήρες λειτουργικό σύστημα (τα Windows και το Linux είναι τα πιο κοινά).

Επιπλέον, οι υπολογιστές μπορούν να συνδεθούν με εξωτερικές συσκευές όπως συσκευές USB, οθόνες LCD κ.λπ. Σε αντίθεση με τους προγόνους τους, αυτοί οι υπολογιστές μιας πλακέτας τείνουν να καταναλώνουν σημαντικά λιγότερη ενέργεια.

Πρακτικό μέρος

Για να επιλέξουμε έναν μικροελεγκτή, ας κάνουμε μια λίστα με τα κριτήρια που χρειαζόμαστε:

  • Το κόστος του μικροελεγκτή πρέπει να είναι χαμηλό
  • Θα πρέπει να είναι εύκολο στη χρήση και να υποστηρίζεται καλά
  • Η διαθεσιμότητα προσβάσιμης τεκμηρίωσης είναι σημαντική
  • Πρέπει να προγραμματιστεί σε γραφικό περιβάλλον
  • Πρέπει να είναι δημοφιλές και να έχει ενεργή κοινότητα χρηστών
  • Δεδομένου ότι το ρομπότ μας θα χρησιμοποιεί δύο κινητήρες και διάφορους αισθητήρες, ο μικροελεγκτής θα χρειαστεί τουλάχιστον δύο θύρες για τον έλεγχο των κινητήρων και αρκετές θύρες για τη σύνδεση αισθητήρων. Θα πρέπει επίσης να είναι δυνατή η επέκταση του αριθμού των συνδεδεμένων συσκευών στο μέλλον.

Πληροί αυτά τα κριτήρια Μονάδα EV3από το σετ Lego Mindstorms EV3.


Επισκόπηση EV3 Brick

26.01.2011, 09:18
Πηγή:

Συνήθως, στα άρθρα προσπαθώ να παρουσιάζω το υλικό με τη σειρά ανάπτυξής του, αλλά νομίζω ότι δεν είναι έτσι. Επομένως, θα παραλείψουμε τα στάδια σχεδιασμού ενός διαγράμματος κυκλώματος, διάταξης PCB και οτιδήποτε άλλο. Στο Σχήμα 1 βλέπουμε τι είδους «ντροπή» πήρα.

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

Τώρα όλα είναι εντάξει. Ο μικροελεγκτής Attiny2313 λαμβάνει ένα σήμα εμποδίου (λογικό ένα ή μηδέν) από δύο αισθητήρες υπερύθρων. Στη συνέχεια, σύμφωνα με το υλικολογισμικό, ο μικροελεγκτής ελέγχει το τσιπ προγράμματος οδήγησης κινητήρα L293D (ρεύμα ελέγχου έως 1 Ampere). Το σχήμα 3 δείχνει μια φωτογραφία ενός ανεστραμμένου ρομπότ.

Η βάση του σχεδιασμού ενός σπιτικού ρομπότ είναι μια μεταλλική λωρίδα λυγισμένη σε ένα τραπεζοειδές. Η γωνία κάμψης είναι περίπου 120°. Είναι θεμελιωδώς σημαντικό να επιτευχθεί η ίδια κάμψη και στις δύο πλευρές, διαφορετικά το ρομπότ δεν θα κινηθεί σε ευθεία γραμμή. Αν και, από την άλλη πλευρά, αυτό που ένας μηχανικός ή ηλεκτρονικός μηχανικός δεν έκανε καλά μερικές φορές μπορεί να διορθωθεί από έναν προγραμματιστή, ας πούμε, χρησιμοποιώντας PWM για να επιτύχει γραμμική κίνηση του ρομπότ.

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

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

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

ΥΣΤΕΡΟΓΡΑΦΟ. Η ανταμοιβή για τη σπατάλη χρόνου για τη δημιουργία μιας άσκοπης συσκευής, ίσως, θα είναι η καθαρότητα της λειτουργίας και της μνήμης του μικροελεγκτή που θα μαζεύει σκόνη στο ράφι μέχρι να ενδιαφερθεί το παιδί κάποιου.




Μπλουζα