3D σαρωτής με δύο κάμερες. Σαρωτής DIY D

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

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

Στο κιτ έχουμε αυτό το "χαλαρό":

Η συναρμολόγηση είναι απλή, αλλά υπάρχουν μερικά σημεία:
1. Δεν χρειάζεται να βιαστείτε να σφίξετε όλα τα παξιμάδια - θα πρέπει επίσης να ρυθμίσετε τις γεωμετρικές διαστάσεις - τη σύγκλιση των λέιζερ στο κέντρο του χώρου, την απόσταση από το πικάπ.
2. Στη βάση μου, η κάμερα «ταλαντεύτηκε» λίγο, κατά ένα κλάσμα του χιλιοστού - αλλά αυτό ήταν αρκετό για να παραμορφώσει την εικόνα. Αποβάλλεται με την προσθήκη αφρώδους υλικού.
4. Το πικάπ ήταν διάφανο και δεν είχε επίστρωση (όπως στο πρωτότυπο) - το έβαψα με plastidip.
5. Ελέγξτε τα μοτίβα σκακιέρας βαθμονόμησης. Δεν ξέρω πώς τύπωσαν αυτό από το σετ μου, αλλά οι αναλογίες των τετραγώνων ήταν σβηστές. Το πήρα από το Διαδίκτυο και το ξανατύπωσα μόνος μου.
6. Η εστίαση της κάμερας δεν προσαρμόζεται στην απόσταση από την πλατφόρμα. Έβγαλα το κάλυμμα και προσάρμοσα την εστίαση στη θέση του.











Όπως μπορείτε να δείτε, ο «εγκέφαλος» του σαρωτή είναι ένα κανονικό Arduino Uno σε συνδυασμό με μια ασπίδα σάρωσης ZUM και ένα πρόγραμμα οδήγησης βηματικού κινητήρα A4988. Η διαχείριση της φάρμας γίνεται από εγγενές λογισμικό Horus από την BQ.

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

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

Έχοντας επιλέξει «υποψήφιους» για οντισιόν, ετοιμάστηκα.

Οι απαιτήσεις για το αντικείμενο είναι οι εξής:
1. Το αντικείμενο πρέπει να είναι μεγαλύτερο από 5x5 cm, αλλά μικρότερο από 20x20 cm
2. Το αντικείμενο πρέπει να είναι αδιαφανές και ακίνητο
3. Το αντικείμενο δεν πρέπει να ζυγίζει περισσότερο από 3 κιλά

Δύσκολη σάρωση:
1. Λαμπερά, φωτεινά αντικείμενα
2. Τα αντικείμενα είναι πολύ σκοτεινά
3. Αντικείμενα με θολές επιφάνειες (όπως λούτρινα ζωάκια)

Το αποτέλεσμα της σάρωσης είναι ένα σύννεφο σημείων σε μορφή PLY (το οποίο στη συνέχεια πρέπει να μετατραπεί σε επιφάνεια). Εδώ προετοιμάζετε το αρχείο STL.

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



Δεν μπορέσαμε να βρούμε τίποτα χρήσιμο για αυτό το θέμα εκτός από την προσπάθεια βαθμονόμησης των ρυθμίσεων της κάμερας web (δεν βαθμονομούνται όταν εκτελείται ο οδηγός βαθμονόμησης) (ένας τύπος που ονομάζεται Jesus από την υποστήριξη BQ δεν έχει απαντήσει σε ερωτήσεις για μεγάλο χρονικό διάστημα). Για να γίνει αυτό, πρέπει να τραβήξετε πολλές φωτογραφίες με διαφορετικές θέσεις του πίνακα βαθμονόμησης. το έκανα. Η κατάσταση έχει βελτιωθεί, αλλά όχι εντελώς.
Έπρεπε να επεξεργαστώ χειροκίνητα το αρχείο βαθμονόμησης (calibration.json στον φάκελο Horus-a) και με δοκιμή και λάθος, σαρώνοντας ένα κυλινδρικό αντικείμενο, για να βεβαιωθώ ότι τα σύννεφα ταιριάζουν.
Και όλα δείχνουν να είναι εντάξει:



Αλλά όχι - σε πολύπλοκα αντικείμενα, τα θραύσματα σύννεφων μερικές φορές εξακολουθούν να μην ταιριάζουν και σχηματίζονται πολλές "τυφλές" ζώνες:





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

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

Όλα αυτά μου θυμίζουν ένα αστείο για τα πλοία σε μπουκάλια.

Πώς φτιάχνεις βάρκες σε μπουκάλια;
-Βάζω άμμο, πυριτική κόλλα, ξυλάκια στο μπουκάλι και το ανακινώ.
Αποδεικνύεται κάθε είδους σκατά, και μερικές φορές - βάρκες.


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

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

Ως αποτέλεσμα, το πράγμα είναι κατάλληλο μόνο για τη μελέτη των βασικών στοιχείων της σάρωσης με λέιζερ, για οτιδήποτε περισσότερο είναι απολύτως άχρηστο. Όχι, φυσικά, είναι δυνατό να αποκτήσετε κάτι παρόμοιο σε περίγραμμα με το αρχικό μοντέλο, αλλά αυτό είναι όλο (και αυτό λαμβάνει υπόψη όλα τα ντέφι με επεξεργασία cloud). Δεν είναι τυχαίο που οι Ισπανοί εγκατέλειψαν αυτό το θέμα.
Το μαγαζί το έπαιξε καλά - η περιγραφή αναφέρει ειλικρινά ότι το αποτέλεσμα εξαρτάται από τη θέση των πλανητών και τη διάθεση της θείας Sonya από τον τρίτο όροφο. Ανοιχτό κώδικα και όλα αυτά, ας χορέψουμε μαζί. Οχι ευχαριστώ.

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

Το προϊόν παρασχέθηκε για σύνταξη κριτικής από το κατάστημα. Η αναθεώρηση δημοσιεύτηκε σύμφωνα με την ρήτρα 18 των Κανόνων Ιστοσελίδας.

Σκοπεύω να αγοράσω +9 Προσθήκη στα αγαπημένα Μου άρεσε η κριτική +101 +156

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

Βήμα 1: Τι θα χρειαστείτε




Για τον επίσημο σαρωτή FabScan χρειάζεστε:

  • Arduino UNO
  • Βηματικός κινητήρας A4988
  • Μονάδα σαρωτή λέιζερ 3D FabScan-Shield για Arduino
  • Κόκκινη μονάδα λέιζερ 5 mW
  • Τροφοδοτικό 12V - 1A
  • Κάμερα web Logitech C270

Για να δημιουργήσετε ένα κουτί θα χρειαστείτε 4 φύλλα MDF διαστάσεων 600*300*5 mm.

Στο έργο μου χρησιμοποίησα:

  • Arduino UNO
  • Bipolar Stepper Motor - NEMA 17 (200 βήματα)
  • Βηματικός κινητήρας A4988
  • Κόκκινη μονάδα λέιζερ 5 mW
  • Τροφοδοτικό 12V - 2A
  • Κάμερα web Logitech C270

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

Βήμα 2: Συναρμολόγηση του κουτιού συλλογής για τον σαρωτή 3D




Εμφάνιση 4 ακόμη εικόνων





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

Βήμα 3: Σύνδεση των Μονάδων


Η συναρμολόγηση του υλικού είναι αρκετά απλή:
Συνδέστε τη μονάδα FabScan στο Arduino και ρυθμίστε τον κινητήρα A4988 στη θέση του πρώτου βήματος. Συνδέστε τον κινητήρα στις ακίδες εξόδου και τη μονάδα λέιζερ στον αναλογικό ακροδέκτη A4. Τέλος, συνδέστε το τροφοδοτικό και το καλώδιο USB.

Εάν αποφασίσετε να συναρμολογήσετε το σαρωτή σύμφωνα με τη λίστα εξαρτημάτων μου:
Στη συνέχεια, πρέπει να συνδέσετε τον κινητήρα A4988 στις ακίδες 10, 11, 9, 8 του Arduino (αν θέλετε, οι ακίδες μπορούν να αλλάξουν) και να συνδέσετε τη μονάδα λέιζερ στον ακροδέκτη A4. Στο τέλος, συνδέστε επίσης το τροφοδοτικό και το καλώδιο USB.

Βήμα 4: Κώδικας για Arduino

Θα χρησιμοποιήσουμε τον επίσημο κωδικό από το FabScan. Ανεβάστε το στο Arduino και τελειώσατε.

Εάν έχετε εγκατεστημένο το πρόσθετο Codebender, μπορείτε να ανεβάσετε τον κώδικα στο Arduino ακολουθώντας αυτόν τον σύνδεσμο.

Εάν συναρμολογείτε το σαρωτή σύμφωνα με τη λίστα εξαρτημάτων μου, κάντε κλικ στο κουμπί Επεξεργασία και κάντε τα εξής:

  • Προσθήκη γραμμών #include const int stepsPerRevolution = 200;//αλλαγή στον αριθμό των βημάτων του κινητήρα σας Stepper myStepper(stepsPerRevolution, 10, 11,8,9);
  • Αντικαταστήστε τη συνάρτηση step() με το εξής: void step() ( myStepper.setSpeed(1); myStepper.step(1); )

Βήμα 5: Λογισμικό υπολογιστή






Θα χρησιμοποιήσουμε την εικόνα "FabScan Ubuntu Live DVD". Μπορείτε να το κατεβάσετε. Σε αυτήν την εικόνα, το λογισμικό FabScan είναι ήδη προεγκατεστημένο. Η εικόνα μπορεί να γραφτεί σε μια μονάδα flash, πώς να το κάνετε αυτό μπορείτε να βρείτε στο Διαδίκτυο.

Σημαντική σημείωση: Εάν επιλέξατε την επιλογή «Δοκιμάστε το Ubuntu», αποθηκεύστε τα αρχεία σας πριν απενεργοποιήσετε τον υπολογιστή σας!

Δείτε τις συνημμένες φωτογραφίες και ακολουθήστε τα βήματα:

  • Επιλέξτε τη θύρα στο SerialPort
  • Επιλέξτε την κάμερα στην Κάμερα
  • Αρχείο - Πίνακας Ελέγχου
  • Κάντε κλικ στο ανίχνευση λέιζερ (μην βάλετε τίποτα στο σαρωτή σε αυτό το στάδιο) και επιλέξτε "ενεργοποίηση"
  • Κάντε κλικ στο "Fetch Frame" και βεβαιωθείτε ότι η μπλε οριζόντια γραμμή αγγίζει το επάνω μέρος του πικάπ και η κίτρινη οριζόντια γραμμή αγγίζει το κάτω μέρος. Η κάθετη κίτρινη γραμμή πρέπει να περνάει από το κέντρο του πικάπ. Μια χαλαρή κάμερα μπορεί να προκαλέσει παραμορφωμένες σαρώσεις!

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

Αποθήκευση τρισδιάστατης εικόνας:
Όταν ολοκληρωθεί η διαδικασία σάρωσης, μπορείτε να αποθηκεύσετε το τρισδιάστατο αντικείμενο σε ένα αρχείο σε μορφές .pcd ή .ply. Μπορείτε επίσης να το αποθηκεύσετε σε μορφή stl, αλλά δεν υποστηρίζεται σε όλες τις πλατφόρμες. Μπορείτε επίσης να ανοίξετε ένα στοιχείο που σαρώθηκε προηγουμένως επιλέγοντας Αρχείο - OpenPointCloud.

Τι να κάνετε με τα αρχεία 3D;
Μπορείτε να τα ανοίξετε στο MeshLab και να τα εκτυπώσετε σε έναν τρισδιάστατο εκτυπωτή.
Για να εκτυπώσετε αντικείμενα στο MeshLab:

  • Αποθηκεύστε το αντικείμενο σε μορφή .ply
  • Ανοίξτε το αρχείο στο MeshLab
  • Στο MeshLab, υπολογίστε κανονικές τιμές (Φίλτρα/Σύνολο σημείων/Υπολογισμός κανονικών για σύνολα σημείων)
  • Ανακατασκευάστε την επιφάνεια χρησιμοποιώντας ανακατασκευή Poisson (Φίλτρα/Σετ σημείων/Ανακατασκευή Επιφανειών: Poisson)
  • Ετοιμος

Το FabScan είναι ένας σαρωτής λέιζερ ανοιχτού κώδικα, DIY 3D.

Το έργο ξεκίνησε κατά τη διάρκεια της ανάπτυξης του προπονητικού προγράμματος του Francis Engelmann. Βρίσκεται η επίσημη σελίδα του έργου.

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

Το πρόγραμμα Arduino προέρχεται από το αρχικό έργο. Ευχαριστούμε λοιπόν την ομάδα FabScan για έναν εξαιρετικό σαρωτή 3D ανοιχτού κώδικα!

Ας ξεκινήσουμε λοιπόν.

Απαιτούμενα εξαρτήματα

Μέρη και εξαρτήματα για το αρχικό έργο FabScan:

  • Πρόγραμμα οδήγησης βηματικού κινητήρα A4988.
  • Shield FabScan;
  • Διπολικός βηματικός κινητήρας NEMA 17 (200 βήματα).
  • Τροφοδοτικό 12 V - 1 A;
  • Κάμερα Logitech C270.

Για το σώμα χρειάζεστε 4 φύλλα MDF. Διαστάσεις - 600 mm κατά 300 mm. Πάχος - 5 mm. Λεπτομερέστερες πληροφορίες.

Εξαρτήματα και συγκροτήματα που χρησιμοποιούνται σε αυτό το εγχειρίδιο:

  • (200 βήματα)
  • Οδηγός κινητήρα βηματικού κινητήρα L298N;
  • Μονάδα λέιζερ 5 MW - Κατασκευαστής Κόκκινη γραμμή;
  • Τροφοδοτικό 12 V - 2 A;
  • Κάμερα web Logiteck C270.

Δηλαδή, απλά δεν θα χρησιμοποιήσουμε την ασπίδα FabScan και θα χρησιμοποιήσουμε διαφορετική μονάδα οδήγησης βηματικού κινητήρα

Ανάπτυξη κατοικίας για 3D σαρωτή

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

Συγκρότημα σαρωτή 3D







1. Με ασπίδα.

Εγκαταστήστε την ασπίδα FabScan στο Arduino. Το πρόγραμμα οδήγησης βηματικού κινητήρα A4988 είναι εγκατεστημένο στις παρεχόμενες ράγες. Ο βηματικός κινητήρας συνδέεται με τις αντίστοιχες επαφές στην πινακίδα τύπου. Η μονάδα λέιζερ είναι συνδεδεμένη στην αναλογική ακίδα A4. Μετά από αυτό, μπορείτε να συνδέσετε το καλώδιο τροφοδοσίας και USB. Περισσότερες λεπτομερείς οδηγίες είναι διαθέσιμες.

2. Χωρίς ασπίδα.

Εάν αποφασίσετε να δημιουργήσετε τον σαρωτή χωρίς να χρησιμοποιήσετε ασπίδα, συνδέστε το πρόγραμμα οδήγησης βηματικού κινητήρα L298 στις ακίδες 10, 11, 9, 8 του Arduino (κατ' αρχήν, αυτές οι ακίδες μπορούν να αλλάξουν με τις κατάλληλες αλλαγές στο σκίτσο). Η μονάδα λέιζερ είναι συνδεδεμένη με τον ακροδέκτη A4 στο Arduino. Ολα. Μπορείτε να συνδέσετε καλώδιο τροφοδοσίας και USB.


Σκίτσο για το Arduino

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

Ακολουθήστε τις οδηγίες, φωτογραφίες των οποίων δίνονται παρακάτω:

  • Επιλέξτε SerialPort.
  • Επιλέξτε Κάμερα.
  • Αρχείο - Πίνακας Ελέγχου;
  • Κάντε κλικ στην ανίχνευση λέιζερ (μην τοποθετείτε κανένα αντικείμενο μπροστά από το σαρωτή προς το παρόν) και επιλέξτε "ενεργοποίηση".
  • Κάντε κλικ στο "Fetch Frame" και βεβαιωθείτε ότι η μπλε οριζόντια γραμμή αγγίζει το πάνω μέρος του πικάπ και η κίτρινη οριζόντια γραμμή αγγίζει το κάτω μέρος του πικάπ. Επιπλέον, η κίτρινη κάθετη γραμμή πρέπει να συμπίπτει με το κέντρο του πικάπ. Εάν η κάμερα δεν έχει εγκατασταθεί σωστά, το αποτέλεσμα της σάρωσης δεν θα είναι καθαρό!

Μετά τη ρύθμιση, κλείστε το παράθυρο, τοποθετήστε το αντικείμενο στον σαρωτή 3D και κάντε κλικ στο κουμπί Έναρξη σάρωσης.

Σημείωση: σε αυτόν τον οδηγό παρουσιάζονται πρόσθετα υλικά για τη ρύθμιση του αρχείου configuration.xml.

Αποθήκευση τρισδιάστατης εικόνας

Όταν ολοκληρωθεί η διαδικασία σάρωσης 3D, μπορείτε να αποθηκεύσετε το σαρωμένο αντικείμενο 3D με επέκταση .pcd ή .ply. Μπορείτε επίσης να το αποθηκεύσετε ως αρχείο 3D stl, αλλά αυτή η δυνατότητα δεν είναι διαθέσιμη σε όλες τις πλατφόρμες. Μπορείτε να ανοίξετε ένα αντικείμενο που είχε σαρωθεί και αποθηκευτεί προηγουμένως επιλέγοντας Αρχείο - OpenPointCloud.

Τι έπεται?

Μπορείτε να χρησιμοποιήσετε το MeshLab για να επεξεργαστείτε ένα τρισδιάστατο σαρωμένο αντικείμενο και να το εκτυπώσετε σε έναν τρισδιάστατο εκτυπωτή!

Κατά την επεξεργασία ενός αρχείου στο MeshLab:

1. Βεβαιωθείτε ότι έχετε αποθηκεύσει το αντικείμενο ως αρχείο .ply.

2. Ανοίξτε το αρχείο χρησιμοποιώντας το MeshLab.

3. Στο MeshLab, υπολογίστε τις κανονικές (Φίλτρα/Σύνολο σημείων/Υπολογισμός κανονικών).

4. Μετά από αυτό, ξαναχτίστε την επιφάνεια χρησιμοποιώντας ανακατασκευή Poisson (Φίλτρα/Σετ σημείων/Ανακατασκευή επιφάνειας: Poisson)

Η τελική συναρμολογημένη δομή φαίνεται στην παρακάτω φωτογραφία.


Βίντεο του αρχικού σαρωτή FabScan 3-D σε λειτουργία:

Ευχαριστούμε πολύ την ομάδα FabScan για τον εκπληκτικό σαρωτή ανοιχτού κώδικα στο Arduino!!!

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

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

Το αρχικό πρόγραμμα είναι για το Arduino, ελήφθη από το αρχικό έργο.

Υλικά και εργαλεία για τη δημιουργία σαρωτή:

4 φύλλα MDV 600X300 mm, πάχους 5 mm (χρειάζονται για τη δημιουργία της θήκης).
- βηματικός κινητήρας (NEMA 17 για 200 βήματα).
- πρόγραμμα οδήγησης για βηματικό κινητήρα L298N.
- Μονάδα λέιζερ 5 mW (που χρησιμοποιείται από τον κατασκευαστή Red Line).
- για να τροφοδοτήσετε τη συσκευή χρειάζεστε μια πηγή 12 V - 2 A.
- μοντέλο κάμερας web Logiteck C270.






Το αρχικό σπιτικό προϊόν χρησιμοποιεί ένα πρόγραμμα οδήγησης βηματικού κινητήρα A4988, και όσον αφορά τον βηματικό κινητήρα, είναι επίσης NEMA 17. Διαφορετικά, τα στοιχεία του σπιτικού προϊόντος είναι ακριβώς τα ίδια όπως στην αρχική έκδοση.

Διαδικασία κατασκευής σαρωτή:

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













Βήμα δυο. Συνδέουμε τον ηλεκτρικό εξοπλισμό


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

Σύνδεση χωρίς ασπίδα
Εάν αποφασίσετε να συναρμολογήσετε τη συσκευή χωρίς τη χρήση θωράκισης, τότε τα καλώδια του βηματικού κινητήρα L298 συνδέονται με τις ακίδες Arduino με αριθμό 10, 11, 9, 8. Κατ 'αρχήν, μπορείτε να χρησιμοποιήσετε άλλες επαφές, αλλά θα πρέπει να κάνετε αλλαγές στο σκίτσο.
Όσον αφορά τη μονάδα λέιζερ, πρέπει να συνδεθεί στον ακροδέκτη A4 στον ελεγκτή Arduino. Μετά από αυτό, μπορείτε να συνδέσετε το καλώδιο USB και να τροφοδοτήσετε.

Σύνδεση με ασπίδα
Πρέπει να εγκαταστήσετε την ασπίδα FabScan στο Arduino. Όσον αφορά τον οδηγό βηματικού κινητήρα, πρέπει να εγκατασταθεί στις ράγες που παρέχονται για αυτό. Οι επαφές του βηματικού κινητήρα συνδέονται με τις αντίστοιχες επαφές στην πινακίδα τύπου.
Η μονάδα λέιζερ πρέπει να συνδεθεί στον ακροδέκτη A4 του Arduino. Αυτό είναι όλο, μετά από αυτό συνδέστε το καλώδιο τροφοδοσίας και USB.

Βήμα τρίτο. Εγκατάσταση του σκίτσου
Τώρα πρέπει να κατεβάσετε και να εγκαταστήσετε το επίσημο σκίτσο για το FabScan. Για να αναβοσβήσετε το Arduino, πρέπει να κατεβάσετε το πρόσθετο Codebender και στη συνέχεια να κάνετε κλικ στο κουμπί "Εκτέλεση στο Arduino". Σε αυτήν την περίπτωση, το σκίτσο μπορεί να εγκατασταθεί απευθείας μέσω του προγράμματος περιήγησης από τον επίσημο ιστότοπο.


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

const int stepsperrevolution = 200; // αλλάξτε αυτήν την παράμετρο για να προσαρμόσετε τον αριθμό των βημάτων ανά περιστροφή του άξονα βηματικού κινητήρα σας

Stepper myStepper(stepsPerRevolution, 10, 11,8,9);
Αντικαταστήστε τη συνάρτηση βήματος ():

myStepper.setSpeed(1);

myStepper.step(1);

Βήμα τέταρτο. Λογισμικό σαρωτή
Για να εγκαταστήσετε το πρόγραμμα πρέπει να κάνετε λήψη της εικόνας "FabScan Ubuntu Live DVD", μετά την εγκατάσταση θα εμφανιστεί λογισμικό FabScan.

Πρέπει να κάνετε ορισμένες ρυθμίσεις στο πρόγραμμα:

Πρώτα πρέπει να επιλέξετε SerialPort.
- στη συνέχεια επιλέξτε Κάμερα.
- Μετά από αυτό το αρχείο - πίνακας ελέγχου.
- μετά κάντε κλικ στην ανίχνευση λέιζερ και επιλέξτε «ενεργοποίηση» (δεν χρειάζεται να τοποθετήσετε αντικείμενα μπροστά από το λέιζερ).
- Λοιπόν, τώρα κάντε κλικ στο "Fetch Frame", ενώ η μπλε οριζόντια γραμμή πρέπει να αγγίζει το κάτω μέρος του περιστρεφόμενου πίνακα. Η κίτρινη γραμμή πρέπει να βρίσκεται στο κέντρο του τραπεζιού. Εάν η κάμερα δεν έχει εγκατασταθεί σωστά, η εικόνα θα είναι Κακη ποιοτητα.












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

Βήμα πέμπτο. Αποθηκεύστε την εικόνα
Αφού ολοκληρωθεί η σάρωση του αντικειμένου, η εικόνα μπορεί να αποθηκευτεί σε μορφή .pcd ή .ply. Μπορείτε επίσης να το αποθηκεύσετε σε μορφή stl, αλλά αυτό εξαρτάται από την πλατφόρμα που χρησιμοποιείτε.
Για να ανοίξετε ένα αντικείμενο που ήταν προηγουμένως αποθηκευμένο, πρέπει να επιλέξετε Αρχείο - OpenPointCloud.

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

Πρώτο πρωτότυπο

Πρώτα αποφασίσαμε να συλλέξουμε αποστασιόμετρο λέιζερ. Φτιάχτηκε με βάση ένα άρθρο σε ένα ραδιοερασιτεχνικό φόρουμ. Μόνο ένας δείκτης λέιζερ και μια κάμερα. Ένα πρόγραμμα γράφτηκε σε Java για την επεξεργασία εικόνων. Για μία μέτρηση, λήφθηκαν δύο φωτογραφίες: με και χωρίς λέιζερ. Αφού τα συγκρίνουμε, θα μπορούσαμε σίγουρα να βρούμε το σημείο λέιζερ. Μόλις αυτό λειτούργησε, το αποστασιόμετρο τοποθετήθηκε σε μια πλατφόρμα που μπορούσε να περιστρέφεται σε δύο επίπεδα. Πριν σας δείξω τι πήρα, πρέπει να σας προειδοποιήσω - δεν υπάρχουν πολλά υλικά στο θερινό σχολείο, γι 'αυτό συγκεντρώσαμε ένα πρωτότυπο από αυτό που είχαμε:

Η κάμερα είναι αμέσως ορατή και το λέιζερ είναι ο ορειχάλκινος κύλινδρος από πάνω της. Για να περιστρέψουμε την πλατφόρμα, χρησιμοποιήσαμε δύο βηματικούς κινητήρες, οι οποίοι με τη σειρά τους συνδέθηκαν σε μια πλακέτα ελέγχου σε έναν μικροελεγκτή Atmega32. Το λέιζερ συνδέθηκε με αυτό. Η ίδια η πλακέτα συνδέθηκε στον υπολογιστή μέσω ενός προσαρμογέα USB->UART. Το πρόγραμμα στον υπολογιστή τράβηξε φωτογραφίες, τις επεξεργάστηκε, εισήγαγε τις συντεταγμένες των σημείων που ελήφθησαν σε ένα αρχείο και έστειλε εντολές στον πίνακα ελέγχου.

Το αποτέλεσμα ήταν ενδιαφέρον. Ναι, βρήκαμε την απόσταση. Ναι, θα μπορούσαμε να «στοχεύσουμε» οποιοδήποτε σημείο στο ημισφαίριο πάνω από τον σαρωτή. Και η χαρά μας δεν είχε όρια. Αλλά όταν αξιολογήσαμε τον χρόνο σάρωσης για αυτό το ημισφαίριο, αποδείχθηκε ότι ήταν 48 ώρες. Και δεν είναι θέμα κάμερας. Και ούτε καν σε Java. Το πρόβλημα ήταν ότι η εγκατάσταση ήταν τόσο αδύναμη που ταλαντευόταν μετά από κάθε στροφή για πέντε δευτερόλεπτα. Έπρεπε να κάνω μια μέτρηση, να γυρίσω και να περιμένω πέντε δευτερόλεπτα μέχρι να σταματήσει να κουνιέται. Και επιπλέον, η βιβλιοθήκη για την κάμερα την άνοιγε και μετά την απενεργοποίησε πριν από κάθε λήψη. Αυτό κράτησε 1-2 δευτερόλεπτα. Αλλά το θερινό σχολείο τελείωνε και δεν υπήρχε χρόνος να το ξανακάνω: ήταν ήδη το βράδυ πριν από την ημερομηνία λήξης του έργου. Ή μάλλον πρωί. Την επόμενη μέρα παρουσιάσαμε το έργο μας σε έναν διαγωνισμό μπροστά σε μια επιστημονική κριτική επιτροπή και απροσδόκητα κερδίσαμε. Μάλλον εξαιτίας αυτής της νίκης αποφασίσαμε να συνεχίσουμε τη δουλειά μας σε αυτό το έργο.

Έκδοση δύο

Μάλιστα το καλοκαίρι τελείωσε και η σχολική χρονιά ξεκίνησε. Η επιθυμία να εργαστεί εξαφανίστηκε. Η εγκατάσταση είχε προγραμματιστεί να ολοκληρωθεί μέχρι τον επόμενο διαγωνισμό, που απείχε έναν ολόκληρο μήνα. Μήνας. Και ξαφνικά τρεις ημέρες. Αλλά μέσα σε ένα μήνα αποφασίσαμε να αλλάξουμε τη ρύθμιση. Συναρμολογήστε το σφιχτά, εγκαταστήστε έναν φακό στον δείκτη λέιζερ, ο οποίος θα δημιουργήσει μια γραμμή λέιζερ. Αυτό θα επέτρεπε τη σάρωση 720 σημείων ταυτόχρονα (ο σαρωτής είχε κάμερα HD). Μόνο τρεις ημέρες έκαναν τις δικές τους προσαρμογές:

Ο δεύτερος σαρωτής συναρμολογείται από πλαστικούς χάρακες, κόλλα, ταινία κάλυψης και συγκρατείται στη θέση του μόνο με μπλε ηλεκτρική ταινία. Αντί για φακό υπάρχει ένας δοκιμαστικός σωλήνας. Ένα πράσινο λέιζερ λάμπει σε αυτόν τον δοκιμαστικό σωλήνα. Η ανακλώμενη δέσμη δημιουργεί μια περισσότερο ή λιγότερο ομοιόμορφη λωρίδα λέιζερ στην οθόνη. Ο αποστασιόμετρο είναι συνδεδεμένος μόνο σε έναν κινητήρα, ο οποίος τον περιστρέφει σε οριζόντιο επίπεδο. Η πλακέτα ελέγχου αντικαταστάθηκε με STM32VLDiscovery. Απλώς ξέρω καλύτερα το STM32, και εκτός αυτού, το Atmega κάηκε και ο προγραμματιστής χάθηκε εδώ και πολύ καιρό. Δεν φαίνεται πολύ καλό, αλλά λειτουργεί! Οι κραδασμοί μειώθηκαν και η ταχύτητα αυξήθηκε ανάλογα. Αλλά όχι πολύ. Μια πολύ ενδιαφέρουσα σύλληψη ανακαλύφθηκε εδώ - ο κινεζικός δείκτης λέιζερ δεν ενεργοποιήθηκε αμέσως, αλλά σταδιακά αύξησε την ισχύ του μέσα σε ένα δευτερόλεπτο. Έτσι, ένα δευτερόλεπτο για να ταλαντωθεί, ένα δευτερόλεπτο για να ζεσταθεί το λέιζερ, ένα δευτερόλεπτο για να τραβήξετε μια φωτογραφία, και υπάρχουν δύο από αυτά. Έτσι έχουμε 4 δευτερόλεπτα. Όμως σε μία μέτρηση βρίσκουμε αποστάσεις έως και 720 πόντους! Η διαδικασία σάρωσης έμοιαζε κάπως έτσι:

Και το αποτέλεσμα έχει ως εξής:

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

Ποιος είναι ο πραγματικός ανταγωνισμός; Αλλά τίποτα! Τελειώσαμε τη σάρωση των πάντων στις 4 το πρωί και στις 9 το πρωί στο περίπτερο ανακαλύψαμε ότι το λέιζερ είχε καεί. Όπως αποδείχθηκε, ενώ το μεταφέραμε από το ξενοδοχείο στο περίπτερο, μπήκε βροχή και όταν το άνοιξε, κάηκε. Και όταν δεν λειτουργεί, φαίνεται τόσο άσχημο που είναι δύσκολο να πιστέψεις τις λέξεις «δούλεψε πριν από 5 ώρες». Στενοχωρηθήκαμε. Η επιθυμία να συνεχίσω εξαφανίστηκε με τον καπνό από το λέιζερ. Αλλά και πάλι μαζεύτηκε...

Τρίτη έκδοση

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

Το πρώτο πράγμα που σας τραβάει την προσοχή είναι ότι τώρα δεν σαρώνουμε την περιοχή γύρω από το σαρωτή, αλλά ένα αντικείμενο που περιστρέφεται στην πλατφόρμα. Πήραμε επίσης τον απαιτούμενο φακό, συναρμολογήσαμε τα πάντα σωστά, ξαναγράψαμε το πρόγραμμα και αντικαταστήσαμε επίσης τον πίνακα εντοπισμού σφαλμάτων με έναν σπιτικό. Και τώρα βγάζουμε μόνο μία φωτογραφία ανά μέτρηση. Το λέιζερ είναι αρκετά ισχυρό και ο φακός είναι αρκετά καλός για να εντοπίσει μοναδικά το λέιζερ σε μια φωτογραφία. Χάρη σε αυτό, δεν περιμένουμε να ζεσταθεί το λέιζερ - είναι πάντα αναμμένο. Και τώρα ενεργοποιούμε την κάμερα μόνο μία φορά. Δηλαδή, ο χρόνος ξοδεύεται κυρίως για την περιστροφή της πλατφόρμας και την επεξεργασία της εικόνας. Στο πρόγραμμα έχει προστεθεί μενού για την επιλογή της ακρίβειας. Ο χρόνος σάρωσης είναι από δύο έως δέκα λεπτά. Ανάλογα με την επιλεγμένη ακρίβεια. Με μέγιστη ακρίβεια, αποδεικνύεται ότι η πλατφόρμα περιστρέφεται 0,5 μοίρες ανά βήμα και η απόσταση καθορίζεται με ακρίβεια 0,33 mm. Η πλατφόρμα κινείται από έναν βηματικό κινητήρα μέσω ενός κιβωτίου ταχυτήτων. Η ίδια η πλατφόρμα είναι ένας μεγάλος δίσκος και ο ελαστικός κύλινδρος στον άξονα του κινητήρα είναι μικρός. Ο κινητήρας και το λέιζερ ελέγχονταν από έναν μικροελεγκτή STM32F050F4 μέσω τρανζίστορ εφέ πεδίου. Στην αρχή του άρθρου υπάρχει μια σάρωση του παιχνιδιού που αποκτήθηκε με αυτόν τον σαρωτή. Δεδομένου ότι ο σαρωτής παράγει ένα νέφος σημείου σε μορφή .obj, μετά από τριγωνισμό μπορούμε να εκτυπώσουμε το σαρωμένο αντικείμενο σε έναν 3D εκτυπωτή, όπως φαίνεται στην ίδια φωτογραφία. Στην οθόνη μπορούμε να δούμε το μοντέλο μετά από τριγωνισμό. Δεν έγινε χειρωνακτική εργασία στο μοντέλο.

Κερδίσαμε τον διαγωνισμό. Και έδωσε συμμετοχή στον διεθνή διαγωνισμό Intel ISEF. Έτσι ξεκινήσαμε να δουλεύουμε για τον επόμενο σαρωτή.

Τέταρτη έκδοση

Επί αυτή τη στιγμήΑυτό τελευταία έκδοσησαρωτή που συναρμολογήσαμε. Για σύγκριση, υπάρχει μια δεύτερη έκδοση στην πλατφόρμα. Προσπαθήσαμε να προσεγγίσουμε την ανάπτυξη του τέταρτου σαρωτή όσο πιο διεξοδικά μπορούσαμε. Η εγκατάσταση σχεδιάστηκε σε CAD, τα μέρη κόπηκαν με λέιζερ, όλα βάφτηκαν, τίποτα περιττό δεν κόλλησε από έξω. Αλλαγές: Η πλατφόρμα είναι πλέον στην πραγματικότητα ένα εργαλείο. Είναι κομμένο από πλεξιγκλάς και έχει 652 δόντια κατά μήκος των άκρων. Αυτό λύνει ένα πρόβλημα που κατέστρεψε σοβαρά τις σαρώσεις στον προηγούμενο σαρωτή: ο ελαστικός κύλινδρος γλιστρούσε λίγο, γι' αυτό η πλατφόρμα συχνά δεν περιστρεφόταν 360 μοίρες. Οι σαρώσεις είτε «κόπηκαν» είτε επικαλύπτονταν. Εδώ ξέραμε πάντα ακριβώς πόσο περιστρεφόμενη ήταν η πλατφόρμα. Η ισχύς λέιζερ έγινε ρυθμιζόμενη από λογισμικό. Χάρη σε αυτό, ήταν δυνατή η αλλαγή της ισχύος λέιζερ εν κινήσει, αποφεύγοντας τον φωτισμό περιττών εξαρτημάτων σε συνθήκες χαμηλού φωτισμού. Για να ελέγξουμε όλα τα ηλεκτρονικά, αποφασίσαμε να μην χωρίσουμε νέο διοικητικό συμβούλιο, αλλά απλώς χρησιμοποιήστε τον εντοπισμό σφαλμάτων F401RE-Nucleo. Έχει εγκατεστημένο το ST-LinkV2.1, το οποίο λειτουργεί ως αντάπτορας εντοπισμού σφαλμάτων και USB->UART.

Η ακρίβεια ήταν εκπληκτική: Γωνιακή ανάλυση 0,14 μοίρες. Σε απόσταση 0,125 χλστ. Η περιοχή σάρωσης είναι ένας κύλινδρος με ύψος 20 εκ. και διάμετρο 30 εκ. Η τιμή όλων των εξαρτημάτων και η κοπή με λέιζερ τη στιγμή της δημιουργίας του (Μάιος 2014) ήταν μικρότερη από 4.000 ρούβλια.

Κατά τη χρήση, το ρυθμίζουμε στη μέγιστη ακρίβεια μόνο μία φορά. Η σάρωση διήρκεσε 15-20 λεπτά. Λάβαμε σχεδόν 2 εκατομμύρια βαθμούς. Ο φορητός υπολογιστής αρνήθηκε να υπολογίσει το μοντέλο από το νέφος σημείων. Το πείραμα δεν επαναλήφθηκε.

συμπέρασμα

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

Ευχαριστώ όλους όσους διάβασαν μέχρι το τέλος!

UPD:
Ένας συνάδελφος βρήκε ένα βίντεο σχετικά με τη λειτουργία του σαρωτή που γυρίσαμε στο ISEF:

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

Και εδώ είναι παραδείγματα σαρωμένων αντικειμένων. Όλα όμως ανήκουν στην τρίτη έκδοση του σαρωτή.
Dropbox
Στο αρχείο model.obj μπορείτε να δείτε ξεκάθαρα τι συμβαίνει όταν αυτός ο ελαστικός κύλινδρος γλιστρήσει στον κινητήρα - ο σκύλος έχει τρία μάτια. Η σάρωση σταμάτησε, προκαλώντας διακοπή. Όλα τα αρχεία είναι σύννεφα σημείων. Μπορείτε να το ανοίξετε χρησιμοποιώντας το MeshLab. Τα μοντέλα δεν υποβλήθηκαν σε επεξεργασία στο χέρι. Εντελώς ακατέργαστα δεδομένα. Από πάνω μπορείτε να δείτε "λευκές κηλίδες" - περιοχές χωρίς κουκκίδες. Η κάμερα δεν τους βλέπει. Λευκές κηλίδες φαίνονται και σε άλλα σημεία. Εμφανίζονται είτε σε περιοχές που είναι πολύ σκοτεινές είτε όταν οι επιφάνειες επικαλύπτονται. Για παράδειγμα, στο αρχείο stn_10.obj, τα κέρατα της κατσίκας επικαλύπτονται μεταξύ τους, γι' αυτό και δεν έγινε σάρωση της εσωτερικής επιφάνειας των κεράτων.




Μπλουζα