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

Πώς να χτίσετε ένα ελαφρύ Ukulele !: 21 βήματα
Πώς να χτίσετε ένα ελαφρύ Ukulele !: 21 βήματα

Βίντεο: Πώς να χτίσετε ένα ελαφρύ Ukulele !: 21 βήματα

Βίντεο: Πώς να χτίσετε ένα ελαφρύ Ukulele !: 21 βήματα
Βίντεο: 10 Παιδιά Τηλεοπτικών Σειρών Που Μεγάλωσαν (Τότε vs. Τώρα) (Υπότιτλοι) 2024, Ιούλιος
Anonim
Image
Image
Κάντε ένα Σχέδιο
Κάντε ένα Σχέδιο

Παίζω το Ukulele. Κάπως μέτρια (αν είναι μια λέξη) έτσι σκέφτηκα, "αν θέλετε πραγματικά να εντυπωσιάσετε τις κυρίες, χρειάζεστε ένα μέσο για να τους αποσπάσετε την προσοχή από την καταστροφή που παίζεται στη σκηνή". Έτσι γεννήθηκε το "Light-up Ukulele".

Αυτό το έργο παίρνει ένα κιτ Concert Ukulele και προσθέτει ένα LED με ελεγχόμενο Arduino σε κάθε θέση χορδών και φρεζαρίσματος. Προσθέτει επίσης μια φανταχτερή οθόνη OLED και περιστροφική διεπαφή χρήστη με βάση τον κωδικοποιητή για να επιλέξετε τη λειτουργία και την ένταση της συμβολοσειράς LED.

Οι ολοκληρωμένες λειτουργίες υλικού uke:

  1. Arduino MICRO για διασύνδεση με τη συμβολοσειρά LED, την οθόνη και τη συσκευή εισόδου.
  2. 48 ατομικά προγραμματιζόμενα LED έγχρωμα
  3. Οθόνη OLED
  4. Ένας περιστροφικός κωδικοποιητής για την είσοδο του χρήστη
  5. Διασύνδεση USB για εξωτερική τροφοδοσία και προγραμματισμό Arduino

Το λογισμικό uke έχει:

  1. Βασικές λειτουργίες ελέγχου φωτός που περνούν τις λυχνίες LED στους ρυθμούς τους
  2. Μια έξυπνη λειτουργία θεατρικής σκηνής (πολύ βολική για παραστάσεις!)
  3. Έλεγχος έντασης LED
  4. Μια πλήρης βιβλιοθήκη χορδών όλων των χορδών Ukulele πρώτης θέσης (τιμή και χαρακτήρας χορδών)
  5. Δυνατότητα εμφάνισης τρέχοντος κειμένου (κάθετα) χρησιμοποιώντας ένα μοναδικό σύνολο χαρακτήρων 4 x 6 pixel

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

Έφτιαξα το πρωτότυπο γύρω από ένα κιτ Ukulele Grizzly Concert. Ξεκινώντας με ένα κιτ απαλλάσσει την ανησυχία για το σώμα του uke (καλά, κυρίως) και εξαλείφει το μεγαλύτερο μέρος της πραγματικής δουλειάς τύπου luthier. Αυτά τα κιτ είναι αρκετά πλήρη και όχι τόσο ακριβά στο μεγάλο σχέδιο των πραγμάτων (και λιγότερο επώδυνα αφού θα κάνετε λάθη).

Βήμα 1: Κάντε ένα σχέδιο

Κάντε ένα Σχέδιο
Κάντε ένα Σχέδιο

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

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

Η πλακέτα τυπωμένου κυκλώματος LED (PCB) έχει σχεδιαστεί ως απλή πλακέτα 2 στρωμάτων. Αυτό βοηθά πολύ με τη διάταξη χειρός της χορδής LED και παρέχει κάποια μηχανική αντοχή (είναι υαλοβάμβακα και εποξική) στο λαιμό Ukulele. Ξεκίνησα τη διάταξη στο Eagle, αλλά κατέληξα να χρησιμοποιήσω το Altium Designer λόγω περιορισμών στο μέγεθος του πίνακα. Τα σχηματικά αρχεία Altium και τα PCB είναι εδώ.

Το κιτ fretboard είχε πάχος μόλις 0,125 ίντσες. Επομένως, αν υποθέσουμε ένα PCB πάχους 0,062 ιντσών και επιτρέποντας επιπλέον 0,062 ίντσες για τις λυχνίες LED, σημαίνει ότι θα πρέπει να κόψουμε πολλά (όπως σε όλα) από το fretboard. Για αντιστάθμιση, μπορούμε είτε να κόψουμε μερικώς τσέπες για τα LED στο fretboard με μια αντίστοιχη τσέπη στο λαιμό για το PCB, είτε θα μπορούσαμε να αντικαταστήσουμε ολόκληρο το fretboard (την επιλογή με την οποία πήγα) με μια παχύτερη έκδοση από το Luther Mercantile International (LMII), τα οποία είναι 0,25 ίντσες για να ξεκινήσουν.

ΑΛΛΑ, να θυμάστε ότι θα πρέπει ακόμα να χειριστείτε το λαιμό για να αντισταθμίσετε την αύξηση του πάχους στο πάτωμα. Το άλλο πλεονέκτημα που έχετε είναι το καλλυντικό, καθώς το PCB είναι τώρα εντελώς ενσωματωμένο μέσα στον πάγκο, το οποίο κάνει τις άκρες πολύ πιο εύκολο να τελειώσουν (και φαίνονται πολύ πιο ωραίες!) Και απλοποιεί το άλεσμα του λαιμού.

Μηχανικά πράγματα (αγνοήστε αν θέλετε):

Παρεμπιπτόντως, αυτό δεν θέτει σε κίνδυνο την ακαμψία του λαιμού τόσο πολύ. Το υλικό του PCB είναι πολύ πιο άκαμπτο από το αρχικό ξύλο παλάμης (συντελεστής μαόνι: 10.6 GPa έναντι μέτρου FR4: 24 GPa), καθώς και επειδή κατασκευάζουμε ένα Ukulele, δεν υπάρχει τεράστια ένταση χορδών που διαφορετικά θα μπορούσε να παραμορφώσει (συστροφή ή στημόνι) το λαιμό.

Μια πολύ ενδιαφέρουσα σκέψη (που μάλλον θα έπρεπε ακόμα να υπολογίσω) είναι τι συμβαίνει πάνω από τη θερμοκρασία. Γενικά για ξύλο, παράλληλα με τον κόκκο, ο θερμικός συντελεστής διαστολής είναι περίπου 3 x 10^-6/K, και για το FR4 είναι 14 × 10^−6/K. Έτσι, υπάρχει μια αρκετά σημαντική διαφορά. Η ανησυχία είναι ότι δημιουργείται ένταση στο λαιμό καθώς η θερμοκρασία μεταβάλλεται, η οποία με τη σειρά της αποσυντονίζει τις χορδές. Αυτό είναι κάτι που θα μπορούσε να αντισταθμιστεί εφαρμόζοντας ένα παρόμοιο στρώμα στην αντίθετη πλευρά του ουδέτερου άξονα ή φτάνοντας το FR4 όσο το δυνατόν πιο κοντά στον ουδέτερο άξονα. Αλλά αυτό θα μείνει για το 2.0 … Κάτι για μοντελοποίηση και αξιολόγηση.

Τα ηλεκτρονικά βρίσκονται στο σώμα του uke. Οι τρύπες κόβονται στο πλευρικό τοίχωμα (όχι στο soundboard!) Του UKE για να δημιουργηθεί χώρος για την οθόνη και τον περιστροφικό κωδικοποιητή, καθώς και μια πλάκα πρόσβασης για να συγκρατεί το Arduino Micro και να παρέχει πρόσβαση στη διεπαφή USB. Ο σχεδιασμός και η τοποθεσία της πινακίδας πρόσβασης/βάσης θα μπορούσαν πιθανώς να βελτιωθούν για να κάνουν τη σύνδεση USB να βγει σε μια πιο βολική τοποθεσία, αλλά ως έχει, δεν είναι και τόσο άσχημα, αφού δεν σας δυσκολεύει όταν παίζετε.

Το περίγραμμα των βημάτων έχει ως εξής:

  1. Συγκεντρώστε υλικά
  2. Πάρτε τα εργαλεία που χρειάζεστε
  3. Αλέστε το λαιμό για να χωρέσει το παχύτερο πανοπλάκι
  4. Αλέστε τον πάγκο για να κάνετε τρύπες στις απαιτούμενες θέσεις και να δημιουργήσετε τσέπες για τον πίνακα και LED
  5. Αποκτήστε και κατασκευάστε το PCB που κρατά τα LED
  6. Μύλος οπών πρόσβασης στο σώμα Ukulele για την οθόνη OLED, τον περιστροφικό κωδικοποιητή και τον πίνακα πρόσβασης
  7. Φτιάξτε πλάκες κάλυψης
  8. Συνδέστε καλώδια στο PCB. συνδέστε και δοκιμάστε τα ηλεκτρονικά
  9. Συνδέστε το λαιμό στο σώμα Ukulele
  10. Τρυπήστε μια λαβή πρόσβασης για να περάσετε τα καλώδια PCB στο σώμα
  11. Ευθυγραμμίστε και κολλήστε το PCB και το fretboard στο λαιμό
  12. Ισοπεδώστε τις άκρες του fretboard στο λαιμό (αφαιρέστε το περιττό υλικό)
  13. Τοποθετήστε τα καλώδια φρεζαρίσματος
  14. Εφαρμόστε μάσκα και εφαρμόστε τελείωμα στο Ukulele
  15. Ευθυγραμμίστε και συνδέστε τη γέφυρα
  16. Εγκαταστήστε ηλεκτρονικά και δοκιμάστε.
  17. Εγκαταστήστε δέκτες και χορδήστε το όργανο
  18. Προγραμματίστε το χειριστήριο Uke
  19. Καταπλήξτε τον κόσμο με την εκπληκτικότητά σας στο Ukulele!

Βήμα 2: Συγκέντρωση υλικών

Η λίστα των υλικών μας μοιάζει με αυτήν:

  1. Κιτ Ukulele - Χρησιμοποίησα ένα κιτ Ukulele Grizzly Concert (Grizzly Uke Kit στο Amazon), αλλά αυτό φαίνεται να διακόπτεται. Το Zimo κατασκευάζει ένα παρόμοιο μοντέλο (Zimo Uke Kit @ Amazon) το οποίο φαίνεται ότι θα κάνει τη δουλειά του
  2. Fretboard Ukulele, με προ-σχισμές (LMII Uke Fingerboards). Θα τοποθετήσουν το fretboard στην κλίμακα σας, το οποίο εξοικονομεί χάος
  3. Εποξειδικό - για κόλληση της πλάκας στο λαιμό. Επέλεξα το εποξικό αφού είναι συμβατό με το υλικό PCB. Αναζητήστε κάτι με τουλάχιστον 60 λεπτά επαγγελματικής ζωής. ΜΗΝ χρησιμοποιείτε τύπους 5 λεπτών, χρειάζεστε χρόνο για να κάνετε προσαρμογές
  4. Σύρματα Fret - διατίθενται επίσης από το LMII
  5. Προσαρμοσμένο PCB - Τα αρχεία Altium είναι εδώ. Επέλεξα το κανονικό υλικό τύπου FR4. Οι πλάκες Flex (πολυϊμιδίου) θα ήταν μια ενδιαφέρουσα (αν πιο ακριβή) εναλλακτική λύση, καθώς μπορεί να είναι πολύ λεπτότερες
  6. LED 48x Neopixel (SK6812). Διατίθεται από το Adafruit και το Digikey
  7. 48x 0.1uF 0402 καπάκια - μεγαλύτερα είναι αποδεκτά, αλλά πρέπει να προσέξετε την τοποθέτηση
  8. Σύρμα σύνδεσης - τουλάχιστον 4 έως 6 χρώματα για να αποφύγω τη σύγχυση, χρησιμοποίησα κυρίως σύρμα 28 μετρητών. Παρακολουθήστε την πτώση του DC στις συνδέσεις τροφοδοσίας LED (τόσο VCC όσο και GROUND … αυτό το ρεύμα πρέπει να επιστρέψει στην πηγή!)
  9. Περιστροφικός κωδικοποιητής-PEC16-4220F-S0024
  10. Φανταστικό ξύλινο πόμολο - για τον περιστροφικό κωδικοποιητή (πήρα το δικό μου από το LMII)
  11. Οθόνη OLED - από συστήματα 4D Οθόνες OLED
  12. Εξωτερική μπαταρία USB - φθηνότερη όλη την ώρα, συν ότι μπορείτε να μεταφέρετε ανταλλακτικά!
  13. Arduino MICRO
  14. Φύλλο ορείχαλκου - για να φτιάξετε την πλάκα για να συγκρατεί το arduino και το πλαίσιο για την οθόνη
  15. Διάφορα αναλώσιμα, όπως: γυαλόχαρτο, φινίρισμα ουρεθάνης, ξυλάκια, λαστιχάκια, κόλληση, ροή, βούρτσες, ταινία διπλής όψης (μου αρέσει η ταινία UHC κατά 3Μ) και μικρές ορειχάλκινες ξυλόβιδες (για την πλάκα)
  16. Προαιρετικές βελτιώσεις Ukulele - καλύτεροι συντονιστές, καλύτερες χορδές, καλύτερο παξιμάδι και σέλα, ένθετο αν θέλετε να αναδείξετε την πιο λαμπρή σας ικανότητα)

Βήμα 3: Αποκτήστε τα εργαλεία που χρειάζεστε

Αργά ή γρήγορα θα χρειαστεί να αποκτήσετε ή να αποκτήσετε πρόσβαση σε αυτά:

Η λίστα εργαλείων μας περιλαμβάνει:

  1. Μηχανή άλεσης - προτιμάται το CNC, αλλά μπορεί ακόμη και να τα βγάλεις πέρα με ένα δρομολογητή και πολλή τύχη. Χρησιμοποίησα ένα συνδυαστικό μύλο CNC/router
  2. Bits δρομολογητή - προτιμάται το καρβίδιο. Τα κομμάτια του δρομολογητή επιλέγονται έναντι των τελικών μύλων, καθώς επεξεργαζόμαστε ξύλο και όχι μέταλλο
  3. Σφιγκτήρες - πολλά. Κυρίως απαιτείται για τη συγκράτηση εξαρτημάτων κατά την κόλληση
  4. Συγκολλητικό σίδερο - μικρή άκρη για συγκόλληση στην επιφάνεια
  5. Μικροσκόπιο ή μεγεθυντικό φακό - μπορείτε να δοκιμάσετε να κολλήσετε μόνο με τα μάτια σας, αλλά δεν θα το συνιστούσα, τουλάχιστον 10 φορές
  6. Λαβίδες (για τοποθέτηση εξαρτημάτων στη θέση τους)
  7. Εργαλεία αναδίπλωσης (δείτε τα κατάλληλα εργαλεία για το LMII εδώ, αλλά χρησιμοποίησα αυτό που είχα στο σπίτι και το έκανα, σφυριά, αρχεία και κοπτικά)
  8. Ποικιλία εργαλείων χειρός, όπως σμίλες ξύλου, κατσαβίδια, μαλακό χτύπημα ή σφυρί ακατέργαστου δέρματος (για φτέρνισμα) κ.λπ.
  9. Λειαντικά - διάφορα χαλίκια γυαλόχαρτου

Τα εργαλεία λογισμικού μας περιλαμβάνουν (μερικά είναι προαιρετικά ανάλογα με τον προϋπολογισμό/την εφευρετικότητά σας):

  1. Λογισμικό Arduino
  2. Ο πηγαίος κώδικας Ukulele (https://github.com/conrad26/Ukulele)
  3. Πακέτο διάταξης PCB - χρησιμοποίησα το Altium επειδή η δωρεάν έκδοση του Eagle δεν υποστήριζε το μέγεθος του πίνακα που ήθελα. Το Altium είναι ένα πλήρες πακέτο διάταξης και δεν είναι πραγματικά σε εύρος τιμών για χομπίστες. Έχω συμπεριλάβει τα αρχεία Gerber στον ιστότοπό μου για το πρωτότυπο, αλλά αυτά σίγουρα χρειάζονται ενημέρωση
  4. Λογισμικό τρισδιάστατης μοντελοποίησης - χρησιμοποίησα το SolidWorks, αλλά μια δωρεάν εναλλακτική λύση είναι το FreeCAD (https://www.freecadweb.org/)
  5. Λογισμικό CAM - όπως το FeatureCAM από το Autodesk για δημιουργία αρχείου NC mill.

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

Τώρα που γνωρίζουμε τι θέλουμε να κάνουμε και τι πρέπει να το κάνουμε, ας φτιάξουμε ένα Ukulele.

Βήμα 4: Μύλο στο λαιμό για να φιλοξενήσει το παχύτερο Fretboard

Mill the Neck to Accomodate the Thicker Fretboard
Mill the Neck to Accomodate the Thicker Fretboard

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

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

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

Βήμα 5: Αποκτήστε και κατασκευάστε το PCB που συγκρατεί τα LED

Αποκτήστε και κατασκευάστε το PCB Κρατώντας τα LED
Αποκτήστε και κατασκευάστε το PCB Κρατώντας τα LED
Αποκτήστε και κατασκευάστε το PCB Κρατώντας τα LED
Αποκτήστε και κατασκευάστε το PCB Κρατώντας τα LED

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

Ο σχεδιασμός Fretboard βασίζεται γύρω από τις λυχνίες LED WS2812B. Αποφάσισα να κάνω μόνο την πρώτη οκτάβα του fretboard (48 LED !!). Κάθε LED μπορεί να θεωρηθεί ως ένα bit σε έναν καταχωρητή αλλαγής ταχυτήτων. Ο καταχωρητής αλλαγής ταχυτήτων είναι χρονισμένος στα 800 kHz. Χρησιμοποίησα τη βιβλιοθήκη Adafruit (δείτε την ενότητα προγραμματισμού) για να ξεκινήσω γρήγορα τα πράγματα.

Ξεκίνησα τον σχεδιασμό στο Eagle, αλλά το μέγεθος της πλακέτας περιορίζεται σε 4 x 5 ίντσες, οπότε έπρεπε (ή πιο σωστά, επέλεξα) να μεταβώ στο Altium. Χρησιμοποιώ το Altium στη δουλειά, οπότε στην πραγματικότητα, έκανε τα πράγματα πιο γρήγορα για μένα. Το έργο Altium, σχηματικά και αρχεία pcb (και μέρη βιβλιοθήκης) βρίσκονται στον ιστότοπό μου. Ο πίνακας έχει τραπεζοειδές σχήμα και μήκος περίπου 10 ίντσες. Νομίζω ότι έπρεπε να προσπαθήσω να συμπιέσω το περίγραμμα λίγο περισσότερο (επόμενη περιστροφή!) Η συναρμολόγηση δεν ήταν κακή, αλλά αν μπορείτε να το αντέξετε οικονομικά, πραγματικά σας προτείνω ένα αξιοπρεπές συγκολλητικό σίδερο (JBC Soldering Irons) και ένα καλό μικροσκόπιο. Ναι, είμαι χαλασμένος και όχι, δεν έχω τέτοια είδη στο εργαστήριο του σπιτιού μου. Είμαι φθηνός.

Είχα τις σανίδες φτιαγμένες στο Sunstone. $ 129 για δύο σανίδες. Εγγύηση στροφής μιας εβδομάδας. Μην κοροϊδεύετε τα μεταφορικά όμως. Δεν παρατήρησα ότι χρησιμοποίησα το έδαφος UPS και κατέληξα να περιμένω μια επιπλέον εβδομάδα για να φτάσουν οι σανίδες μου. Ο συνολικός χρόνος συναρμολόγησης ήταν περίπου 2 ώρες (98 μέρη).

Βήμα 6: Αλέστε το Fretboard

Image
Image
Τρύπες πρόσβασης μύλου στο σώμα Ukulele
Τρύπες πρόσβασης μύλου στο σώμα Ukulele

Πρέπει να αλέσουμε τον πάγκο για να κάνουμε τρύπες στις απαιτούμενες θέσεις και να δημιουργήσουμε τσέπες για τον πίνακα και LED.

Δημιούργησα ένα τρισδιάστατο μοντέλο του ολοκληρωμένου fretboard στο Solidworks και δημιούργησα τη ρουτίνα φρεζαρίσματος CNC χρησιμοποιώντας το FeatureCAM.

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

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

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

Βήμα 7: Τρύπες πρόσβασης μύλου στο σώμα Ukulele

Τρύπες πρόσβασης μύλου στο σώμα Ukulele
Τρύπες πρόσβασης μύλου στο σώμα Ukulele

Άλεσα χειροκίνητα τις οπές πρόσβασης στο σώμα. Το πιο δύσκολο μέρος είναι να βρούμε την "πιο επίπεδη" περιοχή σε μια πολύ καμπύλη επιφάνεια. Σημειώστε το περίγραμμα με μολύβι και σταδιακά αφαιρέστε υλικό μέχρι να έχετε μια άνετη εφαρμογή για την οθόνη OLED. Πήρα μια κατεργασμένη στεφάνη από ορείχαλκο και τη στερέωσα χρησιμοποιώντας κολλητική ταινία 3Μ VHB.

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

Βήμα 8: Φτιάξτε εξώφυλλα

Φτιάξτε εξώφυλλα
Φτιάξτε εξώφυλλα
Φτιάξτε εξώφυλλα
Φτιάξτε εξώφυλλα
Φτιάξτε εξώφυλλα
Φτιάξτε εξώφυλλα

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

Για να κρατήσετε τη σανίδα στη θέση της, τοποθετήστε αγκύλες από ορείχαλκο και κολλήστε τις στο πίσω μέρος της πλάκας πρόσβασης. Αυτό σας επιτρέπει κάποιο γεωγραφικό πλάτος στη θέση. Για σωστή τοποθέτηση, δημιουργήστε πρώτα μια σανίδα τοποθέτησης από σανίδα (με οπές στήριξης) για το Arduino MICRO και συνδέστε τα στηρίγματα L σε αυτήν χρησιμοποιώντας 2-56 βίδες μηχανής. Στη συνέχεια, μπορείτε να αλλάξετε τη θέση για να ευθυγραμμίσετε τη θύρα usb και να σημειώσετε με ακρίβεια τις θέσεις για τις αγκύλες στην πλάκα. Αφαιρέστε τα στηρίγματα από τον πίνακα και κολλήστε τα στη θέση τους. Τέλος, τοποθετήστε το συγκρότημα της σανίδας.

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

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

Βήμα 9: Συνδέστε καλώδια στο PCB. Συνδέστε και δοκιμάστε τα Ηλεκτρονικά

Image
Image
Συνδέστε το λαιμό στο σώμα Ukulele
Συνδέστε το λαιμό στο σώμα Ukulele

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

Βήμα 10: Συνδέστε το λαιμό στο σώμα Ukulele

Συνδέστε το λαιμό στο σώμα Ukulele ακολουθώντας τις οδηγίες που περιλαμβάνονται στο κιτ Ukulele. Παρακολουθήστε ιδιαίτερα την ευθυγράμμιση της επιφάνειας του fretboard στο σώμα του uke.

Βήμα 11: Τρυπήστε μια τρύπα πρόσβασης για να περάσετε τα καλώδια PCB στο σώμα

Τρυπήστε μια τρύπα πρόσβασης για να περάσετε τα καλώδια PCB στο σώμα
Τρυπήστε μια τρύπα πρόσβασης για να περάσετε τα καλώδια PCB στο σώμα

Μόλις στεγνώσει η κόλλα, ανοίξτε μια τρύπα 10 1/4 (10mm) υπό γωνία για να επιτρέψετε στα καλώδια από το PCB να περάσουν στο σώμα του Ukulele. Βεβαιωθείτε ότι δεν θα προκαλέσετε ζημιά στο ηχοπίνακα.

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

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

Βήμα 12: Ευθυγραμμίστε και κολλήστε το PCB και το Fretboard στο λαιμό

Ευθυγραμμίστε και κολλήστε το PCB και το Fretboard στο λαιμό
Ευθυγραμμίστε και κολλήστε το PCB και το Fretboard στο λαιμό

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

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

Χρησιμοποιήστε εποξική με διάρκεια ζωής τουλάχιστον 60 λεπτά… θα τα χρειαστείτε όλα.

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

Ευθυγραμμίστε και κολλήστε το fretboard στο λαιμό. Προσέξτε να μην αφήσετε τσέπες που μπορεί αργότερα να έχουν απήχηση (βουητό!). Επίσης προσέξτε να μην κολλήσετε κόλλα στις επιφάνειες LED.

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

Βήμα 13: Ισοπεδώστε τις άκρες του Fretboard στο λαιμό και προσθέστε καλώδια Fret

Μόλις στεγνώσει η κόλλα, μπορείτε να αρχίσετε να τελειώνετε τις άκρες. Έκοψα προσεκτικά την περίσσεια του υλικού του fretboard (χρησιμοποιώντας μύλο) και τελείωσα το τελευταίο χιλιοστό με λείανση στο χέρι.

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

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

Βήμα 14: Εφαρμόστε μάσκα και εφαρμόστε Finish στο Ukulele

Καλύψτε το fretboard (δεν τελειώνει) και την περιοχή κόλλησης της γέφυρας και ξεκινήστε να εφαρμόζετε φινίρισμα.

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

Είναι πάντα καλύτερο να καταλαβαίνετε ΓΙΑΤΙ κάνετε κάτι, αντί να ακολουθείτε τυφλά τις οδηγίες.

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

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

Κανε τα μαθηματα σου.

Βήμα 15: Ευθυγραμμίστε και προσαρτήστε τη γέφυρα

Ευθυγραμμίστε και στερεώστε τη Γέφυρα
Ευθυγραμμίστε και στερεώστε τη Γέφυρα

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

Βήμα 16: Εγκαταστήστε ηλεκτρονικά και δοκιμάστε

Εγκαταστήστε ηλεκτρονικά και δοκιμάστε
Εγκαταστήστε ηλεκτρονικά και δοκιμάστε

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

Ο κώδικας Arduino μπορεί να ενημερωθεί μέσω της θύρας USB, οπότε δεν χρειάζεται πραγματικά να τον χωρίσετε εκτός αν θέλετε να μπερδέψετε.

Βήμα 17: Εγκαταστήστε Tuners και String the Instrument

Image
Image
Προγραμματισμός του Uke
Προγραμματισμός του Uke

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

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

Βήμα 18: Προγραμματισμός του Uke

Ο τελικός κώδικας Arduino βρίσκεται στο Github. Υπάρχουν μερικές γραμμές στον κώδικα που υποστηρίζουν μελλοντικές βελτιώσεις (όπως μια λειτουργία μετρονόμου και "ρυθμιστικά" για την οθόνη (ένα στοιχείο διεπαφής χρήστη που μοιάζει με ρυθμιστικό)

Αυτός ο κώδικας χρησιμοποιεί μια βιβλιοθήκη Rotary Encoder (Rotary Encoder Arduino Library) για τον χειρισμό των εισόδων χρήστη από τον Rotary Encoder.

Χρησιμοποιεί επίσης τη βιβλιοθήκη Adafruit Neopixel και τον κώδικα παραδείγματος που βρίσκεται εδώ. Οι λειτουργίες θεάτρου και ουράνιου τόξου προέρχονται από παραδείγματα που παρέχονται με τη βιβλιοθήκη. (βλ. strandtest.ino).

Το πρόγραμμα οδήγησης οθόνης παρέχεται από συστήματα 4D και βρίσκεται στο Github εδώ.

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

Το συνημμένο διάγραμμα δείχνει τις θέσεις LED του fretboard και πώς συνδέονται. Το LED 0 βρίσκεται στην επάνω δεξιά γωνία.

Βήμα 19: Πώς να εμφανίσετε μια χορδή

Πώς να εμφανίσετε μια χορδή
Πώς να εμφανίσετε μια χορδή

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

Χρησιμοποίησα τη σημείωση "GCEA" για να αποθηκεύσω συγχορδίες (π.χ. "A" είναι "2100"). Οι χορδές υπολογίζονται εκ των προτέρων για κάθε νότα ρίζας και αποθηκεύονται σε μια μεταβλητή που αντιστοιχεί στην ποιότητα της χορδής. (έτσι, το A major, αποθηκεύεται στην πρώτη θέση του πίνακα "majorChords", που αντιστοιχεί στο "2100").

char* majorChords = {"2100 / n", "3211 / n", "4322 / n", "0003 / n", "1114 / n", "2220 / n", "3331 / n", " 4442 / n "," 2010 / n "," 3121 / n "," 0232 / n "," 5343 / n "};

Λάβετε υπόψη ότι δεδομένου ότι πρόκειται για συμβολοσειρά κειμένου, κάθε ψηφίο θα μπορούσε επίσης να αντιπροσωπεύει μια εξάγωνη τιμή για να υπολογίσει θέσεις fret μεγαλύτερες από 9. Δηλαδή, τα A και B θα αντιπροσώπευαν LED 10 και 11. Για τις χορδές πρώτης θέσης, αυτό δεν ήταν πρόβλημα) Το

Η συμβολοσειρά LED συνδέεται κατά μήκος σε σειρές των 12 (μια οκτάβα) κατά μήκος κάθε χορδής (ξεκινώντας από τη συμβολοσειρά Α), η επόμενη εκτέλεση των 12 ξεκινά από την πρώτη φρεάτια της επόμενης χορδής (δείτε το διάγραμμα στο βήμα 18). Αυτό είναι σημαντικό για τον αλγόριθμο να καθορίσει ποια φώτα θα ανάψουν για μια δεδομένη χορδή. Αυτό σημαίνει ότι τα εικονοστοιχεία 0 έως 11 είναι τα LED χορδών A, 12 έως 23 είναι τα LED συμβολοσειράς Ε, και ούτω καθεξής. Κατά την ανάλυση ενός A = "2100" (αποθηκευμένο ως συμβολοσειρά, υπάρχει επίσης ένας μηδενικός τερματιστής "\ n" στον κώδικα), το ερμηνεύουμε ως: δεν ανάβουν εικονοστοιχεία στη συμβολοσειρά Α, ούτε στην συμβολοσειρά Ε, εικονοστοιχείο 0 (fret 1) στη συμβολοσειρά C ανάβει και το pixel 1 (fret 2) στη συμβολοσειρά G. Σημειώστε ότι ένα "0" είναι απενεργοποιημένο, όχι το πρώτο LED. Με βάση την καλωδίωση, θέλουμε να ανάψουμε τις λυχνίες LED 24 και 37. Ο κωδικός για την εμφάνιση μιας χορδής φαίνεται παρακάτω.

για (int i = 0; i <4; i ++) {if (int (chord - '0')) {// algorithm to parse the chord string int ledNumber = int (chord - '0') + (3 - i) * 12 - 1; // δείτε την παραπάνω συζήτηση, το (3-i) είναι να αντιστρέψει τη λωρίδα ευρετηρίου.setPixelColor (ledNumber, 0, 125, 125). // setPixelColor (ledNumber, κόκκινη τιμή, πράσινη τιμή, μπλε τιμή)}}

Η δήλωση if ελέγχει εάν το led είναι απενεργοποιημένο. Εάν δεν είναι, τότε παίρνει την τιμή ascii του χαρακτήρα, χορδή και αφαιρεί την τιμή ascii για το '0' για να ανάψει το ledNumber.

Η ταινία είναι ένα παράδειγμα της κλάσης Adafruit_NeoPixel. Η συνάρτηση setPixelColor ορίζει το χρώμα για το υπολογισμένο εικονοστοιχείο (καθορίζεται σε (0, 125, 125) σε αυτήν την περίπτωση.

Βήμα 20: Πώς να εμφανίσετε ένα μήνυμα κύλισης

Πώς να εμφανίσετε ένα μήνυμα κύλισης
Πώς να εμφανίσετε ένα μήνυμα κύλισης

Έχουμε λοιπόν μια σειρά LED 12 x 4 … γιατί να μην το κάνουμε να εμφανίζει κάτι άλλο από αρκετά τυχαία μοτίβα φωτός!

Το πρώτο ζήτημα είναι ότι το ύψος της οθόνης (4) είναι μάλλον περιορισμένο λόγω του αριθμού των συμβολοσειρών σε ένα Uke. Η οριζόντια κύλιση θα ήταν κυρίως δυσανάγνωστη, αλλά σε κάθετους προσανατολισμούς, μπορούμε να υποστηρίξουμε 4 x 5 χαρακτήρες που τρέχουν κάθετα.

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

Η δυσκολία ήταν ότι δεν υπήρχε τυπικό σύνολο χαρακτήρων 4 x 5. Έφτιαξα μόνος μου χρησιμοποιώντας το συνημμένο υπολογιστικό φύλλο. Ανέθεσα κάθε σειρά σε μία εξαγωνική τιμή (4 bits που αντιπροσωπεύουν ποιο pixel είναι ενεργοποιημένο ή απενεργοποιημένο). Ο συνδυασμός των πέντε εξαγωνικών τιμών αποτελεί χαρακτήρα (π.χ. "0" είναι 0x69996).

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

Η συμβολοσειρά που εμφανίζεται περιέχεται στη μεταβλητή συμβολοσειράς, μήνυμα.

Δημιουργείται ένα buffer για να αντιπροσωπεύει την εμφάνιση χαρακτήρων. Υποθέτω ότι θα μπορούσα απλώς να δημιουργήσω ένα μεγάλο buffer με ολόκληρη τη μεταφρασμένη ακολουθία μηνυμάτων, ειδικά επειδή τα περισσότερα μηνύματα θα είναι λιγότερο από 20 χαρακτήρες. Ωστόσο, επέλεξα να δημιουργήσω ένα σταθερό buffer τριών χαρακτήρων (18 bytes). Μόνο δύο από τους χαρακτήρες εμφανίζονται ενεργά και ο τρίτος είναι μια ματιά μπροστά, όπου φορτώνεται ο επόμενος χαρακτήρας. Η συμβολοσειρά LED (σκεφτείτε την ως ένας μεγάλος καταχωρητής αλλαγής) φορτώνεται με τα 48 bit για τη συμβολοσειρά. Σπατάλησα λίγο χώρο στη μνήμη για να το κάνω πιο εύκολο να εννοηθεί. Κάθε τσίμπημα παίρνει τη δική της θέση μνήμης, διπλασιάζοντας την απαίτηση μνήμης, αλλά δεν είναι πολύ δεδομένου του μεγέθους του buffer.

Το buffer φορτώνεται με τον επόμενο χαρακτήρα όταν ο δείκτης εξόδου (δείκτης) φτάσει στο όριο χαρακτήρων (outputPointer στα 5, 11 ή 17).

Για να φορτώσουμε το buffer, πιάνουμε τον πρώτο χαρακτήρα στο "μήνυμα" ως τιμή ASCII και αφαιρούμε το 48 για να πάρουμε το ευρετήριο στον πίνακα asciiFont. Η τιμή σε αυτό το ευρετήριο αποθηκεύεται σε κωδικοποιημένοChar.

Το πρώτο μέρος του μηνύματος που μετατοπίστηκε αντιστοιχεί σε LED 47, 35, 23 και 11 (στο κάτω μέρος της οθόνης). Έτσι, για τον αριθμό μηδέν 0x0F999F, το F (αριστερό) μετατοπίζεται στην πρώτη, 9 δευτερόλεπτα και ούτω καθεξής.

Ο επόμενος χαρακτήρας φορτώνεται καλύπτοντας κάθε τσίμπημα και μετακινώντας τον προς τα δεξιά. Για το παραπάνω παράδειγμα, ο αλγόριθμος δίνει (0x0F999F & 0xF00000) >> 20, στη συνέχεια (0x0F999F & 0x0F0000) >> 16, κ.λπ.

int index; if (outputPointer == 17 || outputPointer == 5 || outputPointer == 11) {char displayChar = message.charAt (messagePointer); // πιάστε τον πρώτο χαρακτήρα του μηνύματος long codedChar = asciiFont [displayChar - 48]; εάν (displayChar == 32) κωδικοποιημένοChar = 0x000000? messageBuffer [bytePointer+5] = byte ((κωδικοποιημένοChar & 0xF00000) >> 20); // καλύψτε όλο το τελευταίο τσίμπημα και μετακινήστε το κατά 20 (κ.ο.κ.) // αυτό θα πρέπει να θέσει ένα τσίμπημα ανά θέση μνήμης messageBuffer [bytePointer+3] = byte ((κωδικοποιημένοChar & 0x00F000] >> 12); // και οι έξι αντιπροσωπεύουν στο χαρακτήρα messageBuffer [bytePointer+2] = byte ((κωδικοποιημένοChar & 0x000F00] >> 8); messageBuffer [bytePointer+1] = byte ((κωδικοποιημένοChar & 0x0000F0) >> 4); messageBuffer [bytePointer] = byte ((κωδικοποιημένοChar & 0x00000F)); εάν (bytePointer == 0) {// χειριστεί το βρόχο γύρω από το bytePointer bytePointer = 12; } else {bytePointer -= 6; // γεμίζουμε από κάτω προς τα πάνω. ΣΗΜΕΙΩΣΗ: πρέπει να κοιτάξετε την αντιστροφή για να δείτε αν το διευκολύνει} εάν (messagePointer == message.length ()-1) {// χειριστείτε τον βρόχο γύρω από το μήνυμα messagePointer = 0; } else {messagePointer += 1; // μετακίνηση στον επόμενο χαρακτήρα}}

Μόλις φορτωθεί το buffer, γίνεται θέμα παρακολούθησης της θέσης του δείκτη εξόδου και φόρτωσης της συμβολοσειράς LED με τα σωστά 48 bit (το τρέχον 4 και το προηγούμενο 44). Όπως αναφέρθηκε προηγουμένως, η ταινία είναι ένα παράδειγμα της κατηγορίας NeoPixel και το setPixelColor ορίζει το χρώμα (RGB) κάθε εικονοστοιχείου. Η συνάρτηση show () μετατοπίζει τις τιμές της οθόνης σε συμβολοσειρά LED.

// βρόχος για συνεχή μετατόπιση του buffer

// θέλω να γράψω ολόκληρη τη λωρίδα σε κάθε πέρασμα από τον βρόχο, αλλάζει μόνο η αρχική θέση για (int row = 12; row> 0; row--) {index = outputPointer + (12-row); if (index> 17) index = outputPointer+(12-row) -18; // βρόχος αν είναι μεγαλύτερος από 17 για (int στήλη = 4; στήλη> 0; στήλη--) {strip.setPixelColor (uint16_t (12*(στήλη-1)+(σειρά-1)), uint8_t (RedLED*(bitRead (messageBuffer [index], column-1))), uint8_t (GreenLED*(bitRead (messageBuffer [index], column-1)))), uint8_t (BlueLED*(bitRead (messageBuffer [index], column-1))))); // σε κάθε τοποθεσία ανάβει το LED εάν το bit είναι ένα}} // outputPointer δείχνει το τρέχον χαμηλότερο byte στη συμβολοσειρά οθόνης εάν (outputPointer == 0) outputPointer = 17; else outputPointer -= 1; strip.show (); }

Βήμα 21: Καταπλήξτε τον κόσμο με την ελκυστικότητα του Ukulele

Image
Image

Το τελικό πρωτότυπο Ukulele χρειάστηκε περίπου 6 μήνες εκκίνησης και στάσεων για να ξεκινήσει.

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

Τι να κάνετε για την επόμενη έκδοση;

  1. Απαλλαγείτε από την οθόνη και τον περιστροφικό κωδικοποιητή. Αντικαταστήστε τα με μια μονάδα Bluetooth προσαρτημένη στο arduino. Ελέγξτε το από απόσταση χρησιμοποιώντας τηλέφωνο ή tablet. Όλα είναι καλύτερα με το Bluetooth.
  2. Απομακρυσμένη ενημέρωση μοτίβων χορδών σε πραγματικό χρόνο. Κάτι καλύτερο για την εφαρμογή.
  3. Καλύμματα LED. Η τρέχουσα έκδοση δεν κάνει τίποτα για να εμποδίσει το gunk να μπει στις οπές LED. Ένας φίλος έφτιαξε μια δέσμη μικρών φακών, αλλά ποτέ δεν μπόρεσα να καταλάβω πώς να τους κάνω να παραμείνουν στη θέση τους σωστά.
  4. Εναλλακτικά υλικά fretboard, ίσως κάτι διαυγές όσο κρατούν οι φρεναρίδες.
  5. Περισσότερα φώτα! Εξαλείψτε τον περιορισμό στο κείμενο προσθέτοντας περισσότερες "σειρές". Αυτός είναι πραγματικά ένας περιορισμός που προκαλείται από το μέγεθος του πάγκου και των σωμάτων LED.

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

Ευχαριστώ πολύ που τα καταφέρατε μέχρι εδώ! Μάχαλο!

Συνιστάται: