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

Rover ελεγχόμενης χειρονομίας χρησιμοποιώντας επιταχυνσιόμετρο και ζεύγος πομπού-δέκτη RF: 4 βήματα
Rover ελεγχόμενης χειρονομίας χρησιμοποιώντας επιταχυνσιόμετρο και ζεύγος πομπού-δέκτη RF: 4 βήματα

Βίντεο: Rover ελεγχόμενης χειρονομίας χρησιμοποιώντας επιταχυνσιόμετρο και ζεύγος πομπού-δέκτη RF: 4 βήματα

Βίντεο: Rover ελεγχόμενης χειρονομίας χρησιμοποιώντας επιταχυνσιόμετρο και ζεύγος πομπού-δέκτη RF: 4 βήματα
Βίντεο: 2023 Land Rover Defender V8 - σύγχρονο πολυτελές παντός εδάφους SUV! 2024, Ιούλιος
Anonim
Rover ελεγχόμενης χειρονομίας χρησιμοποιώντας επιταχυνσιόμετρο και ζεύγος πομπού-δέκτη RF
Rover ελεγχόμενης χειρονομίας χρησιμοποιώντας επιταχυνσιόμετρο και ζεύγος πομπού-δέκτη RF

Γεια σου, Πάντα επιθυμούσατε να φτιάξετε ένα ρόβερ που θα μπορούσατε να το οδηγήσετε με απλές χειρονομίες, αλλά δεν θα μπορούσατε ποτέ να συγκεντρώσετε το θάρρος να μπείτε στις περιπλοκές της επεξεργασίας εικόνας και τη διασύνδεση μιας κάμερας web με τον μικροελεγκτή σας, για να μην αναφέρουμε την ανηφορική μάχη για την υπέρβαση του κακού εύρους και της γραμμής προβλήματα όρασης; Λοιπόν, μην φοβάστε… γιατί υπάρχει εύκολη διέξοδος! Ιδού, όπως σας παρουσιάζω το πανίσχυρο ΑΚΕΛΕΡΟΜΕΤΡΟ! *ba dum tsss*

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

Απλώς πρέπει να το έχετε υπόψη σας προς το παρόν: ένα επιταχυνσιόμετρο είναι το gizmo (συχνά σε συνδυασμό με ένα γυροσκόπιο) που ανοίγει πόρτες σε όλα αυτά τα παιχνίδια με αισθητήρες κίνησης που παίζουμε στα smartphone μας. ένα παιχνίδι αγώνων αυτοκινήτου για παράδειγμα, όπου οδηγούμε το όχημα απλά γέρνοντας τις συσκευές μας προς οποιαδήποτε κατεύθυνση. Και, μπορούμε να μιμηθούμε αυτό ακριβώς το αποτέλεσμα κολλώντας ένα επιταχυνσιόμετρο (με λίγα βοηθητικά, φυσικά) σε ένα γάντι. Απλώς βάζουμε τα μαγικά μας γάντια και γέρνουμε τα χέρια μας αριστερά ή δεξιά, μπροστά ή πίσω και βλέπουμε τα rovers μας να χορεύουν στις μελωδίες μας. Το μόνο που πρέπει να κάνουμε εδώ είναι να μεταφράσουμε τις ενδείξεις του επιταχυνσιόμετρου σε ψηφιακά σήματα, ώστε οι κινητήρες στο rover να μπορούν να ερμηνεύσουν και να επινοήσουν έναν μηχανισμό για τη μετάδοση αυτών των σημάτων στο rover. Για να το πετύχουμε αυτό, καλούμε τον καλό Arduino και τους βοηθούς του για το σημερινό πείραμα, ένα ζεύγος πομπού-δέκτη RF που λειτουργεί στα 434MHz, αποδίδοντας έτσι μια εμβέλεια περίπου 100-150m σε ανοιχτό χώρο, πράγμα που μας εξοικονομεί επίσης από θέματα όρασης.

Αρκετά έξυπνο hack, ε; Ας βουτήξουμε…

Βήμα 1: Συγκεντρώστε τα αναλώσιμά σας

Συγκεντρώστε τα Προμήθειά σας
Συγκεντρώστε τα Προμήθειά σας
Συγκεντρώστε τα Προμήθειά σας
Συγκεντρώστε τα Προμήθειά σας
Συγκεντρώστε τα Προμήθειά σας
Συγκεντρώστε τα Προμήθειά σας
Συγκεντρώστε τα Προμήθειά σας
Συγκεντρώστε τα Προμήθειά σας
• Arduino Nano x1
• Επιταχυνσιόμετρο (ADXL335) x1
• Μοτέρ 5V DC + Τροχοί x2 το καθένα
• Τροχός βοοειδών* x1
• L293D Motor Driver + υποδοχή IC 16 ακίδων x1 το καθένα
• Πομπός RF 434 MHz x1
• Δέκτης RF 434 MHz x1
• Υποδοχή IC κωδικοποιητή HT-12E IC + 18 ακίδων x1 το καθένα
• Υποδοχή IC-αποκωδικοποιητή HT-12D + 18 ακίδων x1 το καθένα
• Ρυθμιστής Τάσης LM7805 x1
• Διακόπτης Pushbutton x2
• Κόκκινη αντίσταση LED + 330O x2 το καθένα
• Κίτρινη αντίσταση LED + 330O x1 το καθένα
• Πράσινη αντίσταση LED + 330O (προαιρετικό) x4 το καθένα
• Αντιστάσεις 51kO και 1MO x1 το καθένα
• Ακτινωτοί πυκνωτές 10μF x2
Μπαταρίες, Συνδετήρες μπαταρίας, Καλώδιο USB, Καλώδια Jumper, Γυναικείες κεφαλίδες, Τερματικά βίδας 2 ακίδων, PCB, Chasis και τα συνηθισμένα αξεσουάρ συγκόλλησης

Αν αναρωτιέστε γιατί χρησιμοποιούμε έναν τροχό βοοειδών, το θέμα είναι ότι, οι μονάδες πομπού και δέκτη RF έχουν μόνο 4 ακίδες δεδομένων, πράγμα που σημαίνει ότι μπορούμε να οδηγήσουμε μόνο 2 κινητήρες και ως εκ τούτου τη χρήση ενός τροχού βοοειδών υποστηρίζουν τη δομή. Ωστόσο, αν πιστεύετε ότι το rover σας θα φαινόταν λίγο πιο δροσερό με τέσσερις τροχούς, μην ανησυχείτε, υπάρχει δουλειά γύρω! Σε αυτή την περίπτωση, απλώς ξύστε τον τροχό των βοοειδών από τη λίστα και προσθέστε ένα άλλο ζευγάρι κινητήρες 5V DC, συνοδευόμενους από έναν τροχό ο καθένας και προσέξτε το απλό hack που συζητήθηκε προς το τέλος του βήματος 3.

Τέλος, για τους γενναίους, υπάρχει περιθώριο για μια άλλη μικρή τροποποίηση στο σχεδιασμό, η οποία περιλαμβάνει την κατασκευή του δικού σας Arduino. Μεταβείτε στην ενότητα μπόνους στο επόμενο βήμα και δείτε μόνοι σας. Θα χρειαστείτε επίσης μερικές επιπλέον προμήθειες: ATmega328P, υποδοχή IC 28pin, ταλαντωτή κρυστάλλου 16Mhz, δύο κεραμικά καλύμματα 22pF, άλλο ρυθμιστή τάσης 7805, δύο ακόμη ακτινικά καλύμματα 10μF και αντίσταση 10kΩ, 680Ω, 330Ω και ναι, μείον το Arduino!

Βήμα 2: Συνδέστε τον πομπό

Wire Up the Transmitter
Wire Up the Transmitter
Wire Up the Transmitter
Wire Up the Transmitter
Wire Up the Transmitter
Wire Up the Transmitter
Wire Up the Transmitter
Wire Up the Transmitter

Θα χωρίσουμε το έργο σε δύο στοιχεία: τα κυκλώματα πομπού και δέκτη. Ο πομπός αποτελείται από ένα επιταχυνσιόμετρο, ένα Arduino και μια μονάδα πομπού RF σε συνδυασμό με ένα IC κωδικοποιητή HT-12E, όλα ενσύρματα σύμφωνα με το συνημμένο σχήμα.

Το επιταχυνσιόμετρο, όπως παρουσιάστηκε νωρίτερα, χρησιμεύει για την αναγνώριση των χειρονομιών μας. Θα χρησιμοποιήσουμε ένα επιταχυνσιόμετρο τριών αξόνων (βασικά τρία επιταχυνσιόμετρα ενός άξονα σε ένα) για να καλύψουμε τις ανάγκες μας. Μπορεί να χρησιμοποιηθεί για τη μέτρηση της επιτάχυνσης και στις τρεις διαστάσεις, και όπως ίσως μαντέψατε, δεν αποδίδει μία, αλλά ένα σύνολο τριών αναλογικών τιμών σε σχέση με τους τρεις άξονές της (x, y και z). Στην πραγματικότητα, χρειαζόμαστε μόνο την επιτάχυνση κατά μήκος των αξόνων x και y, καθώς μπορούμε να οδηγήσουμε το ρόβερ μόνο προς τέσσερις κατευθύνσεις: προς τα πίσω ή προς τα πίσω (δηλαδή κατά τον άξονα y) και προς τα αριστερά ή προς τα δεξιά (δηλαδή κατά τον άξονα x). Θα χρειαζόμασταν τον άξονα z αν χτίζαμε ένα drone, ώστε να μπορούμε επίσης να ελέγχουμε την άνοδο ή την κάθοδό του με χειρονομίες. Σε κάθε περίπτωση, αυτές οι αναλογικές τιμές που αποδίδει το επιταχυνσιόμετρο πρέπει να μετατραπούν σε ψηφιακά σήματα για να μπορούν να κινούνται οι κινητήρες. Αυτό φροντίζεται από το Arduino που επίσης μεταδίδει αυτά τα σήματα, κατά τη μετατροπή, στο rover μέσω της μονάδας πομπού RF.

Ο πομπός RF έχει μόνο μία δουλειά: να μεταδώσει τα "σειριακά" δεδομένα που είναι διαθέσιμα στην ακίδα 3 από την κεραία στον ακροδέκτη 1. Αυτό υποστηρίζει τη χρήση του HT-12E, ενός κωδικοποιητή δεδομένων 12 bit παράλληλων σειριακών δεδομένων, ο οποίος συλλέγει έως 4 bits παράλληλων δεδομένων από το Arduino στις γραμμές AD8 έως AD11, επιτρέποντάς μας έτσι να κάνουμε χώρο για έως και 24 = 16 διαφορετικούς συνδυασμούς εισόδου/εξόδου σε αντίθεση με τον μοναδικό πείρο δεδομένων στον πομπό RF. Τα υπόλοιπα 8 bits, που αντλούνται από τις γραμμές A0 έως A7 στον κωδικοποιητή, αποτελούν το byte διεύθυνσης, το οποίο διευκολύνει τη σύζευξη του πομπού RF με έναν αντίστοιχο δέκτη RF. Στη συνέχεια, τα 12 bits συγκεντρώνονται και σειριοποιούνται και μεταφέρονται στην ακίδα δεδομένων του πομπού RF, ο οποίος με τη σειρά του, διαμορφώνει τα δεδομένα σε ένα κύμα φορέα 434MHz και τα εκτοξεύει μέσω της κεραίας στην ακίδα 1.

Εννοιολογικά, κάθε δέκτης RF που ακούει στα 434Mhz θα πρέπει να είναι σε θέση να υποκλέψει, να αποδιαμορφώσει και να αποκωδικοποιήσει αυτά τα δεδομένα. Ωστόσο, οι γραμμές διευθύνσεων στο HT-12E, και εκείνες στο αντίστοιχο HT-12D (αποκωδικοποιητής σειριακών δεδομένων σε παράλληλο 12 bit), μας επιτρέπουν να καταστήσουμε ένα ζεύγος πομπού-δέκτη RF μοναδικό δρομολογώντας τα δεδομένα μόνο στο δέκτης που περιορίζει την επικοινωνία με όλους τους άλλους. Το μόνο που απαιτείται από εμάς είναι να διαμορφώσουμε τις γραμμές διευθύνσεων πανομοιότυπα και στα δύο μέτωπα. Για παράδειγμα, δεδομένου ότι έχουμε γειώσει όλες τις γραμμές διευθύνσεων για το HT-12E, πρέπει να κάνουμε το ίδιο για το HT-12D στο τέλος λήψης, διαφορετικά το rover δεν θα μπορεί να λάβει τα σήματα. Με αυτόν τον τρόπο, μπορούμε επίσης να ελέγξουμε πολλαπλά rovers με ένα μόνο κύκλωμα πομπού διαμορφώνοντας ταυτόσημα τις γραμμές διευθύνσεων στα HT-12D σε καθένα από τους δέκτες. Or, θα μπορούσαμε να φορέσουμε δύο γάντια, το καθένα τοποθετημένο με ένα κύκλωμα πομπού που περιέχει μια ξεχωριστή διαμόρφωση γραμμής διεύθυνσης (ας πούμε, μία με όλες τις γραμμές διευθύνσεων γειωμένες και η άλλη με όλες κρατημένες ψηλά, ή μία με μία γραμμή γειωμένη ενώ τα υπόλοιπα επτά κρατιούνται υψηλή και η άλλη με δύο γραμμές γειωμένες, ενώ οι υπόλοιπες έξι κρατιούνται ψηλά, ή οποιοσδήποτε άλλος συνδυασμός τους) και κάθε τιμόνι πολλαπλών όμοιων διαμορφωμένων ρόβερ. Παίξτε το μαέστρο σε μια συμφωνία Android!

Ένα σημαντικό πράγμα που πρέπει να σημειωθεί κατά τη συναρμολόγηση του κυκλώματος είναι η τιμή του Rosc. Το HT-12E διαθέτει εσωτερικό κύκλωμα ταλαντωτή μεταξύ των ακίδων 15 και 16, το οποίο ενεργοποιείται με τη σύνδεση μιας αντίστασης, που ονομάζεται Rosc, μεταξύ αυτών των ακίδων. Η τιμή που επιλέγεται για το Rosc καθορίζει στην πραγματικότητα τη συχνότητα ταλαντωτή, η οποία μπορεί να ποικίλει ανάλογα με την τάση τροφοδοσίας. Η επιλογή της κατάλληλης τιμής για το Rosc είναι ζωτικής σημασίας για τη λειτουργία του HT-12E! Ιδανικά, η συχνότητα ταλαντωτή του HT-12E πρέπει να είναι 1/50 φορές μεγαλύτερη από αυτή του HT-12D. Επομένως, δεδομένου ότι λειτουργούμε σε 5V, επιλέξαμε αντιστάσεις 1MΩ και 51kΩ ως Rosc για τα κυκλώματα HT-12E και HT-12D αντίστοιχα. Εάν σκοπεύετε να λειτουργήσετε τα κυκλώματα σε διαφορετική τάση τροφοδοσίας, ανατρέξτε στο γράφημα «Ταλαντωτής συχνότητας έναντι τάσης τροφοδοσίας» στη σελίδα 11 του συνημμένου φύλλου δεδομένων HT-12E για να προσδιορίσετε την ακριβή συχνότητα ταλαντωτή και αντίσταση που θα χρησιμοποιηθεί.

Επίσης, ως δευτερεύουσα σημείωση, θα χρησιμοποιήσουμε γυναικείες κεφαλίδες εδώ (εξυπηρετούν παρόμοιο σκοπό όπως οι πρίζες IC) για να συνδέσετε το επιταχυνσιόμετρο, τον πομπό RF και το Arduino στο κύκλωμα αντί να τα κολλήσετε απευθείας στο PCB. Η πρόθεση είναι η προσαρμογή μιας μικρής επαναχρησιμοποίησης συστατικών. Ας πούμε, έχει περάσει αρκετός καιρός από τότε που σχεδιάσατε το χειριστήριο που ελέγχεται από χειρονομίες και μόλις κάθεται εκεί, μισοσκεπασμένο στη σκόνη, πάνω στο ράφι του τροπαίου σας και πέφτετε πάνω σε ένα άλλο σπουδαίο οδηγό που αξιοποιεί την αποτελεσματικότητα ενός επιταχυνσιόμετρου. Λοιπόν τι κάνεις? Απλώς το βγάζετε από το rover σας και το σπρώχνετε στο νέο σας κύκλωμα. Δεν χρειάζεται να καλέσετε τις "Αμαζόνες" για να σας αποκτήσουμε ένα νέο:-p

Μπόνους: Καταργήστε το Arduino και ακόμα όχι

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

Ο στόχος μας εδώ είναι να κάνουμε το Arduino (ο εγκέφαλος του Arduino, στην πραγματικότητα, ναι, μιλάω για το ATmega IC!) Μόνιμο μέλος της ομάδας. Το ATmega θα έχει προγραμματιστεί να εκτελεί μόνο ένα σκίτσο ξανά και ξανά, έτσι ώστε να μπορεί να χρησιμεύσει ως ένα αέναο μέρος του κυκλώματος, όπως ακριβώς και το HT-12E-ένα απλό IC, που κάθεται εκεί, κάνοντας αυτό που υποτίθεται. Δεν είναι έτσι το πραγματικό ενσωματωμένο σύστημα που υποτίθεται ότι είναι;

Τέλος πάντων, για να προχωρήσετε σε αυτήν την αναβάθμιση, απλώς τροποποιήστε το κύκλωμα σύμφωνα με το δεύτερο σχηματικό συνημμένο. Εδώ, απλώς αντικαθιστούμε τις θηλυκές κεφαλίδες για το Arduino με μια υποδοχή IC για το ATmega, προσθέτουμε μια αντίσταση έλξης 10K στον ακροδέκτη επαναφοράς (ακίδα 1) του IC και την αντλούμε με ένα εξωτερικό ρολόι μεταξύ των ακίδων 9 και 10 Δυστυχώς, εάν καταργήσουμε το Arduino, αφήνουμε επίσης τους ενσωματωμένους ρυθμιστές τάσης. έτσι, πρέπει να αντιγράψουμε το κύκλωμα LM7805 που είχαμε χρησιμοποιήσει για τον δέκτη και εδώ. Επιπλέον, χρησιμοποιούμε επίσης ένα διαχωριστή τάσης για να σχεδιάσουμε τα 3,3V που απαιτούνται για την τροφοδοσία του επιταχυνσιόμετρου.

Τώρα, το μόνο άλλο πρόβλημα είναι ο προγραμματισμός του ATmega να κάνει τη δουλειά του. Ωστόσο, θα πρέπει να το περιμένετε μέχρι το βήμα 4. Μείνετε συντονισμένοι λοιπόν…

Βήμα 3: Και, ο δέκτης

Και, ο Δέκτης
Και, ο Δέκτης
Και, ο Δέκτης
Και, ο Δέκτης
Και, ο Δέκτης
Και, ο Δέκτης
Και, ο Δέκτης
Και, ο Δέκτης

Ο δέκτης αποτελείται από μια μονάδα δέκτη RF σε συνδυασμό με ένα IC αποκωδικοποιητή HT-12D και ένα ζεύγος κινητήρων DC που λειτουργούν με τη βοήθεια ενός οδηγού κινητήρα L293D, όλα ενσύρματα σύμφωνα με το συνημμένο σχήμα.

Η μόνη δουλειά του δέκτη RF είναι να αποδιαμορφώσει το κύμα φορέα (που λαμβάνεται μέσω της κεραίας του στην ακίδα 1) και να αποδώσει τα "σειριακά" δεδομένα που ανακτήθηκαν στον πείρο 7 από όπου συλλέγεται από το HT-12D για αποστείρωση. Τώρα, υποθέτοντας ότι οι γραμμές διευθύνσεων (A0 έως A7) στο HT-12D έχουν διαμορφωθεί πανομοιότυπες με τις αντίστοιχες HT-12E, τα 4 παράλληλα δυαδικά ψηφία δεδομένων εξάγονται και μεταδίδονται μέσω των γραμμών δεδομένων (D8 έως D11) στο HT-12D, στον οδηγό του κινητήρα, ο οποίος με τη σειρά του ερμηνεύει αυτά τα σήματα για να οδηγήσει τους κινητήρες.

Και πάλι, δώστε προσοχή στην αξία του Rosc. Το HT-12D, επίσης, έχει ένα εσωτερικό κύκλωμα ταλαντωτή μεταξύ των ακίδων 15 και 16, το οποίο ενεργοποιείται με τη σύνδεση μιας αντίστασης, που ονομάζεται Rosc, μεταξύ αυτών των ακίδων. Η τιμή που επιλέγεται για το Rosc καθορίζει στην πραγματικότητα τη συχνότητα ταλαντωτή, η οποία μπορεί να ποικίλει ανάλογα με την τάση τροφοδοσίας. Η επιλογή της κατάλληλης τιμής για το Rosc είναι ζωτικής σημασίας για τη λειτουργία του HT-12D! Ιδανικά, η συχνότητα ταλαντωτή του HT-12D πρέπει να είναι 50 φορές μεγαλύτερη από αυτή του HT-12E. Επομένως, δεδομένου ότι λειτουργούμε σε 5V, επιλέξαμε αντιστάσεις 1MΩ και 51kΩ ως Rosc για τα κυκλώματα HT-12E και HT-12D αντίστοιχα. Εάν σκοπεύετε να λειτουργήσετε τα κυκλώματα σε διαφορετική τάση τροφοδοσίας, ανατρέξτε στο γράφημα «Ταλαντωτής συχνότητας έναντι τάσης τροφοδοσίας» στη σελίδα 5 του συνημμένου φύλλου δεδομένων HT-12D για να προσδιορίσετε την ακριβή συχνότητα ταλαντωτή και αντίσταση που θα χρησιμοποιηθεί.

Επίσης, μην ξεχνάτε τις γυναικείες κεφαλίδες για τον δέκτη RF.

Προαιρετικά, μια λυχνία LED μπορεί να συνδεθεί μέσω αντίστασης περιορισμού ρεύματος 330Ω σε κάθε μία από τις 4 ακίδες δεδομένων του HT-12D, ώστε να βοηθήσει στον προσδιορισμό του δυαδικού ψηφίου που λαμβάνεται σε αυτόν τον πείρο. Η λυχνία LED θα ανάψει εάν το ψηφίο που λαμβάνεται είναι Υ HIGHΗΛΟ (1) και θα χαμηλώνει εάν το ψηφίο που λαμβάνεται είναι ΧΑΜΗΛΟ (0). Εναλλακτικά, ένα μόνο LED θα μπορούσε να συνδεθεί με τον πείρο VT του HT-12D (και πάλι, μέσω αντίστασης περιορισμού ρεύματος 330Ω), το οποίο θα ανάβει σε περίπτωση έγκυρης μετάδοσης.

Τώρα, αν ψάχνετε για το hack με τους κινητήρες για τους οποίους μιλούσα στο πρώτο βήμα, είναι πολύ εύκολο! Απλά συνδέστε παράλληλα τους δύο κινητήρες σε κάθε σετ όπως φαίνεται στο δεύτερο σχηματικό σχήμα. Αυτό λειτουργεί με τον τρόπο που υποτίθεται ότι επειδή οι κινητήρες σε κάθε σετ (ο μπροστινός και ο πίσω κινητήρας στα αριστερά και ο μπροστινός και ο πίσω κινητήρας στα δεξιά) δεν κινούνται ποτέ σε αντίθετες κατευθύνσεις. Δηλαδή, για να στρίψετε το rover προς τα δεξιά, οι μπροστινοί και οι πίσω κινητήρες στα αριστερά πρέπει να κινούνται προς τα εμπρός και οι μπροστινοί και οι πίσω κινητήρες στα δεξιά πρέπει να κινούνται και οι δύο προς τα πίσω. Ομοίως, για να στρίψετε αριστερά το rover, οι μπροστινοί και οι πίσω κινητήρες στα αριστερά πρέπει να κινούνται προς τα πίσω και οι μπροστινοί και οι πίσω κινητήρες στα δεξιά πρέπει να κινούνται προς τα εμπρός. Επομένως, είναι ασφαλές να τροφοδοτείτε με το ίδιο ζεύγος τάσεων και στους δύο κινητήρες σε ένα σετ. Και, ο τρόπος για να το πετύχετε είναι απλά να τους συνδέσετε παράλληλα τους κινητήρες.

Βήμα 4: Μετάβαση στον κώδικα

Στον Κώδικα
Στον Κώδικα

Υπάρχει μόνο ένα πράγμα που πρέπει να κάνετε για να ενεργοποιήσετε το rover. Ναι, σωστά το μαντέψατε! (Ελπίζω να το κάνατε) Πρέπει ακόμα να μεταφράσουμε τις ενδείξεις του επιταχυνσιόμετρου σε μια μορφή που ο οδηγός του κινητήρα μπορεί να ερμηνεύσει για να μπορεί να οδηγεί τους κινητήρες. Εάν σκέφτεστε ότι δεδομένου ότι οι ενδείξεις του επιταχυνσιόμετρου είναι αναλογικές και ο οδηγός του κινητήρα περιμένει ψηφιακά σήματα, θα πρέπει να εφαρμόσουμε ένα είδος ADC, καλά, όχι τεχνικά, αλλά αυτό είναι που πρέπει να κάνουμε. Και είναι αρκετά απλό.

Γνωρίζουμε ότι ένα επιταχυνσιόμετρο μετρά τη βαρυτική επιτάχυνση κατά μήκος ενός γραμμικού άξονα και ότι αυτή η επιτάχυνση αντιπροσωπεύεται ως ένα επίπεδο τάσης που κυμαίνεται μεταξύ της γείωσης και της τάσης τροφοδοσίας, το οποίο ο μικροελεγκτής μας διαβάζει ως αναλογική τιμή που κυμαίνεται μεταξύ 0 και 1023. Αλλά, δεδομένου ότι Λειτουργώντας το επιταχυνσιόμετρο στα 3.3V, είναι σκόπιμο να ορίσουμε την αναλογική αναφορά για το 10-bit ADC (που ενσωματώνεται στο ATmeaga στο Arduino) σε 3.3V. Απλώς θα καταστήσει τα πράγματα πιο απλά για κατανόηση. αν και, δεν θα έχει μεγάλη σημασία για το μικρό μας πείραμα ακόμα κι αν δεν το κάναμε (θα πρέπει απλώς να τροποποιήσουμε λίγο τον κώδικα). Για να γίνει αυτό, ωστόσο, απλώς συνδέουμε τον πείρο AREF στο Arduino (ακίδα 21 στο ATmega) σε 3.3V και υποδηλώνουμε αυτήν την αλλαγή στον κώδικα καλώντας το analogReference (ΕΞΩΤΕΡΙΚΟ).

Τώρα, όταν τοποθετούμε το επιταχυνσιόμετρο επίπεδο και αναλογικό Διαβάζουμε την επιτάχυνση κατά μήκος των αξόνων x και y (θυμάστε; χρειαζόμαστε μόνο αυτούς τους δύο άξονες), παίρνουμε μια τιμή περίπου 511 (δηλ. Στο μισό μεταξύ 0 και 1023), η οποία είναι απλώς τρόπος να πούμε ότι υπάρχει 0 επιτάχυνση σε αυτούς τους άξονες. Αντί να εμβαθύνετε στις λεπτομέρειες του γεγονότος, απλώς φανταστείτε αυτό ως άξονες x και y σε ένα γράφημα, με την τιμή 511 να υποδηλώνει την αρχή και το 0 και 1023 τα τελικά σημεία όπως απεικονίζεται στο σχήμα. προσανατολίστε το επιταχυνσιόμετρο με τέτοιο τρόπο ώστε οι καρφίτσες του να δείχνουν προς τα κάτω και να κρατούνται πιο κοντά σας, αλλιώς μπορείτε να αντιστρέψετε/εναλλάξετε τους άξονες. Αυτό σημαίνει ότι, εάν γείρουμε το επιταχυνσιόμετρο προς τα δεξιά, θα πρέπει να διαβάσουμε μια τιμή μεγαλύτερη από 511 κατά μήκος του άξονα x και εάν γείρουμε το επιταχυνσιόμετρο προς τα αριστερά, θα πρέπει να έχουμε μια τιμή χαμηλότερη από 511 κατά μήκος του άξονα x Το Ομοίως, εάν γείρουμε το επιταχυνσιόμετρο προς τα εμπρός, θα πρέπει να διαβάσουμε μια τιμή μεγαλύτερη από 511 κατά μήκος του άξονα y και εάν γείρουμε το επιταχυνσιόμετρο προς τα πίσω, θα πρέπει να διαβάσουμε μια τιμή χαμηλότερη από 511 κατά μήκος του άξονα y. Και έτσι συμπεραίνουμε, στον κώδικα, την κατεύθυνση στην οποία πρέπει να οδηγηθεί το ρόβερ. Αυτό όμως σημαίνει επίσης ότι πρέπει να διατηρούμε το επιταχυνσιόμετρο πραγματικά σταθερό και ευθυγραμμισμένο παράλληλα με μια επίπεδη επιφάνεια για να μπορούμε να διαβάζουμε ένα 511 και στους δύο άξονες για να σταθμεύσει το ρόβερ ακίνητο. Για να διευκολύνουμε λίγο αυτό το έργο, ορίζουμε ορισμένα κατώφλια που σχηματίζουν ένα όριο, όπως απεικονίζει το σχήμα, έτσι ώστε το rover να παραμένει ακίνητο εφόσον οι ενδείξεις x και y βρίσκονται εντός των ορίων και γνωρίζουμε με βεβαιότητα ότι το rover πρέπει να ρυθμιστεί κίνηση μόλις ξεπεραστεί το όριο.

Για παράδειγμα, εάν ο άξονας y είναι 543, γνωρίζουμε ότι το επιταχυνσιόμετρο είναι κεκλιμένο προς τα εμπρός, οπότε πρέπει να οδηγήσουμε το rover προς τα εμπρός. Το κάνουμε αυτό ρυθμίζοντας τις ακίδες D2 και D4 HIGH και τις ακίδες D3 και D5 LOW. Τώρα, δεδομένου ότι αυτές οι ακίδες συνδέονται απευθείας με το HT-12E, τα σήματα σειριοποιούνται και εκπέμπονται από τον πομπό RF μόνο για να τα πιάσει ο δέκτης RF που κάθεται στο rover, ο οποίος με τη βοήθεια του HT-12D αποστείρωση των σημάτων και τα μεταφέρει στο L293D, το οποίο με τη σειρά του ερμηνεύει αυτά τα σήματα και οδηγεί τους κινητήρες προς τα εμπρός

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

Και, αυτό είναι! Ανεβάστε τον κωδικό στο Arduino σας και απολαύστε !! Or, ίσως όχι τόσο σύντομα:-(Αν δεν παραλείψατε την ενότητα μπόνους, η μεταφόρτωση του κώδικα στο ATmega σας θα σήμαινε λίγο περισσότερη δουλειά. Έχετε δύο επιλογές:

Επιλογή A: Χρησιμοποιήστε μια συσκευή USB to Serial, όπως ο βασικός πίνακας ανάρτησης FTDI FT232. Απλώς εκτελέστε καλώδια από την κεφαλίδα TTL στις αντίστοιχες ακίδες στο ATmega σύμφωνα με την παρακάτω χαρτογράφηση:

Καρφίτσες στο Breakout Board Καρφίτσες στον μικροελεγκτή
DTR/GRN RST/Επαναφορά (Καρφίτσα 1) μέσω καπακιού 0.1μF
Rx Tx (Pin 3)
Tx Rx (Pin 2)
Vcc +Έξοδος 5v
CTS (αχρησιμοποίητος)
Gnd Εδαφος

Τώρα, συνδέστε το ένα άκρο ενός καλωδίου USB στην πλακέτα breakout και το άλλο στον υπολογιστή σας και ανεβάστε τον κώδικα όπως θα κάνατε συνήθως: ξεκινήστε το Arduino IDE, επιλέξτε μια κατάλληλη σειριακή θύρα, ορίστε τον τύπο του πίνακα, συντάξτε το σκίτσο και πατήστε upload Το

Επιλογή Β: Χρησιμοποιήστε ένα UNO εάν έχετε κάποιο που βρίσκεται κάπου. Απλώς συνδέστε το ATmega στο UNO, ανεβάστε τον κωδικό όπως θα κάνατε συνήθως, τραβήξτε το IC έξω και σπρώξτε το πίσω στο κύκλωμα πομπού. Πανεύκολος!

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

Άντ, τελειώσαμε επίσημα! Ελπίζω να σας άρεσε αυτό το παράξενο μακρύ διδακτικό. Συνεχίστε, τελειώστε με την κατασκευή του rover σας αν δεν έχετε τελειώσει ήδη, παίξτε με αυτό για λίγο και επιστρέψτε για να πλημμυρίσετε την παρακάτω ενότητα σχολίων με ερωτήματα ή/και εποικοδομητικές κριτικές.

Ευχαριστώ

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

Συνιστάται: