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

Measurino: a Measuring Wheel Proof of Concept: 9 Βήματα
Measurino: a Measuring Wheel Proof of Concept: 9 Βήματα

Βίντεο: Measurino: a Measuring Wheel Proof of Concept: 9 Βήματα

Βίντεο: Measurino: a Measuring Wheel Proof of Concept: 9 Βήματα
Βίντεο: Стабилизация биохимических показателей крови. Большой восстановительный рефлекторный каскад 2024, Νοέμβριος
Anonim
Measurino: a Measuring Wheel Proof of Concept
Measurino: a Measuring Wheel Proof of Concept

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

Βήμα 1: Μέρη και εξαρτήματα

  • Arduino Nano αναθ.3
  • Διπλή OLED 128 × 64 (SSD1306)
  • Ενισχυτικός φωτοηλεκτρικός περιστροφικός κωδικοποιητής (400P/R)
  • Λαστιχένιος τροχός για μοντέλο αεροσκάφους (διάμετρος 51mm)
  • 2 κουμπιά
  • Μπαταρία 9V

Βήμα 2: Ο κωδικοποιητής

Ο κωδικοποιητής
Ο κωδικοποιητής
Ο κωδικοποιητής
Ο κωδικοποιητής

Για αυτό το έργο έχω δοκιμάσει αρκετούς φθηνούς περιστροφικούς κωδικοποιητές, αλλά τους πέταξα αμέσως λόγω ζητημάτων ακρίβειας/ευαισθησίας. Πήγα λοιπόν στον αυξητικό φωτοηλεκτρικό περιστροφικό κωδικοποιητή του DFRobot - 400P/R SKU: SEN0230. Πρόκειται για έναν βιομηχανικό πρόσθετο φωτοηλεκτρικό περιστροφικό κωδικοποιητή με υλικό αλουμινίου, μεταλλικό κέλυφος και άξονα από ανοξείδωτο χάλυβα. Δημιουργεί AB δύο φάσεων ορθογώνιο παλμικό σήμα μέσω της περιστροφής του δίσκου πλέγματος και του οπτικού ζεύκτη. 400 παλμοί/στρογγυλός για κάθε φάση και 1600 παλμοί/γύρος για διπλή φάση 4 φορές έξοδο. Αυτός ο περιστροφικός κωδικοποιητής υποστηρίζει μέγιστη ταχύτητα 5000 r/min. Και μπορεί να χρησιμοποιηθεί για ταχύτητα, γωνία, γωνιακή ταχύτητα και άλλες μετρήσεις δεδομένων.

Ο φωτοηλεκτρικός περιστροφικός κωδικοποιητής διαθέτει έξοδο συλλέκτη NPN, οπότε πρέπει να χρησιμοποιήσετε αντιστάσεις έλξης ή να ενεργοποιήσετε την εσωτερική ανύψωση του Arduino. Χρησιμοποιεί τσιπ ρυθμιστή τάσης 750L05, το οποίο διαθέτει μεγάλη είσοδο ισχύος DC4.8V-24V.

Βήμα 3: Ευαισθησία

Ευαισθησία
Ευαισθησία

Αυτός ο Optoelectric Rotary Encoder έχει πραγματικά μεγάλη ευαισθησία, κάτι που το καθιστά ιδανικό για εφαρμογές ελέγχου άξονα και τοποθέτησης. Αλλά για τον σκοπό μου ήταν πολύ λογικό. Με έναν τροχό 51 χιλιοστών, αυτός ο κωδικοποιητής έχει ευαισθησία 0,4 χιλιοστά, πράγμα που σημαίνει ότι αν το χέρι έχει ελάχιστους τρόμους, θα καταγραφούν. Έτσι, μείωσα την ευαισθησία προσθέτοντας μια υστέρηση στη ρουτίνα διακοπής:

void interrupt ()

{char i; i = digitalRead (B_PHASE); αν (i == 1) μετράει += 1 · else count -= 1; if (abs (count)> = υστέρηση) {flag_A = flag_A+count? μετρά = 0; }}

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

Βήμα 4: Μέτρηση

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

Μια πλήρης περιστροφή ενός τροχού με διάμετρο = D θα μετρήσει ένα μήκος D*π. Στην περίπτωσή μου, με τροχό 51mm, αυτό είναι 16,02cm και κάθε τσιμπούρι έχει 0,4mm (βλέπε παράγραφο Ευαισθησία).

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

Το PoC έχει κατασκευαστεί σε σανίδα για να δείξει το κύκλωμα. Κάθε στοιχείο έχει συνδεθεί στον πίνακα και ο περιστροφικός κωδικοποιητής είναι συνδεδεμένος σε ένα τερματικό μπλοκ βιδών πόλων 2x2. Η μπαταρία είναι μια τυπική μπαταρία 9v και η συνολική κατανάλωση ενέργειας του κυκλώματος είναι περίπου 60mA.

Βήμα 6: Κωδικός

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

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

attachInterrupt (digitalPinToInterrupt (A_PHASE), διακοπή, RISING);

Η οθόνη αλλάζει αυτόματα από χιλιοστά, σε μέτρα, σε χιλιόμετρα και (αν επιλεγεί από το κουμπί) από ίντσες, σε ναυπηγεία, σε μίλια, ενώ το κουμπί RST επαναφέρει το μέτρο στο μηδέν.

Βήμα 7: Διαγράμματα

Σχήματα
Σχήματα

Βήμα 8: Από το PoC στην παραγωγή

Γιατί είναι αυτό απόδειξη έννοιας; Λόγω πολλών βελτιώσεων που θα μπορούσαν/θα έπρεπε να γίνουν πριν από την κατασκευή ενός εξοπλισμού πλήρους λειτουργίας. Ας δούμε όλες τις πιθανές βελτιώσεις με λεπτομέρειες:

  • Ρόδα. Η ευαισθησία/ακρίβεια του Measurino εξαρτάται από τον τροχό. Ένας μικρότερος τροχός θα μπορούσε να σας δώσει καλύτερη ακρίβεια στη μέτρηση μικρών μηκών (της τάξης των χιλιοστών έως των εκατοστών). Ένας πολύ μεγαλύτερος τροχός με βραχίονα επέκτασης θα σας επιτρέψει να περπατήσετε στο δρόμο και να μετρήσετε χιλιόμετρα. Για τους μικρούς τροχούς, το υλικό πρέπει να ληφθεί υπόψη: ένας τροχός από καουτσούκ μπορεί να παραμορφωθεί ελαφρώς και να επηρεάσει την ακρίβεια, οπότε σε αυτή την περίπτωση θα προτείνω έναν τροχό αλουμινίου/χάλυβα με μια λεπτή ταινία για να αποφύγετε τις γλιστρήσεις. Με μια ασήμαντη επεξεργασία λογισμικού (επιλέξτε τη σωστή διάμετρο τροχού με έναν διακόπτη), θα μπορούσατε να εξετάσετε τη δυνατότητα εναλλάξιμων τροχών να προσαρμοστούν σε οποιοδήποτε μέτρο, χρησιμοποιώντας μια υποδοχή 4 ακίδων (δηλαδή: θύρα usb).
  • Λογισμικό. Προσθέτοντας ένα άλλο κουμπί, το λογισμικό θα μπορούσε επίσης να μεριμνήσει για τη μέτρηση περιοχών πλάτους ορθογωνίων ή γωνιών. Σας συμβουλεύω επίσης να προσθέσετε ένα κουμπί "Hold" για να παγώσει το μέτρο στο τέλος, αποφεύγοντας να μετακινήσετε ακούσια τον τροχό πριν διαβάσετε την τιμή στην οθόνη.
  • Αντικαταστήστε τον τροχό με ένα καρούλι. Για μικρά μέτρα (σε απόσταση λίγων μέτρων) ο τροχός θα μπορούσε να αντικατασταθεί με ένα ελατήριο καρούλι που περιέχει σπείρωμα ή ταινία. Με αυτόν τον τρόπο απλά πρέπει να τραβήξετε το νήμα (κάνοντας τον άξονα του κωδικοποιητή να περιστραφεί), να πάρετε το μέτρο και να παρακολουθήσετε την οθόνη.
  • Προσθήκη οθόνης κατάστασης μπαταρίας. Ο πείρος αναφοράς 3.3v Arduino (ακριβής εντός 1%) μπορεί να χρησιμοποιηθεί ως βάση για τον μετατροπέα ADC. Έτσι, κάνοντας μετατροπή αναλογικού σε ψηφιακό στον ακροδέκτη 3,3V (συνδέοντάς το με το Α1) και στη συνέχεια συγκρίνοντας αυτήν την ένδειξη με την ένδειξη από τον αισθητήρα, μπορούμε να κάνουμε παρέκταση μιας πραγματικής ανάγνωσης, ανεξάρτητα από το τι είναι το VIN (αρκεί να είναι πάνω από 3,4V). Ένα παράδειγμα εργασίας θα μπορούσε να βρεθεί σε αυτό το άλλο έργο μου.

Βήμα 9: Συλλογή εικόνων

Συνιστάται: