Inhaltsverzeichnis:

So bauen Sie eine leuchtende Ukulele! - Gunook
So bauen Sie eine leuchtende Ukulele! - Gunook

Video: So bauen Sie eine leuchtende Ukulele! - Gunook

Video: So bauen Sie eine leuchtende Ukulele! - Gunook
Video: Ich baue und bemale eine Ukulele im Zelda Style | DIY 2024, Juli
Anonim
Image
Image
Mach einen Plan
Mach einen Plan

Ich spiele Ukulele. Ein bisschen mittelmäßig (wenn das ein Wort ist), also dachte ich: "Wenn du die Damen wirklich beeindrucken willst, brauchst du ein Mittel, um sie von der Katastrophe abzulenken, die auf der Bühne spielt." Daraus entstand die "Light-up Ukulele".

Dieses Projekt nimmt ein Konzert-Ukulele-Kit und fügt an jeder Saiten- und Bundposition eine Arduino-gesteuerte LED hinzu. Es fügt auch ein schickes OLED-Display und eine auf Drehgeber basierende Benutzeroberfläche hinzu, um den Modus und die Intensität der LED-Reihe auszuwählen.

Die abgeschlossenen Uke-Hardware-Features:

  1. Arduino MICRO als Schnittstelle zum LED-String, Anzeige- und Eingabegerät.
  2. 48 individuell programmierbare Vollfarb-LEDs
  3. Ein OLED-Display
  4. Ein Drehgeber für Benutzereingaben
  5. USB-Schnittstelle für externe Stromversorgung und Arduino-Programmierung

Die uke-Software hat:

  1. Grundlegende Lichtsteuerungsmodi, die die LEDs auf Herz und Nieren prüfen
  2. Ein raffinierter Theater-Festzeltmodus (sehr praktisch für Aufführungen!)
  3. LED-Intensitätssteuerung
  4. Eine vollständige Akkordbibliothek aller Ukulele-Akkorde der ersten Position (Akkordwert und -charakter)
  5. Möglichkeit, Fließtext (vertikal) mit einem einzigartigen 4 x 6-Pixel-Zeichensatz anzuzeigen

Dieses anweisbare beschreibt den abgeschlossenen Prototyp. Die vollständige Entwicklungssaga ist HIER verfügbar, einschließlich einiger pädagogischer (schmerzlicher) Fehler und einer wertvollen Lektion, warum Sie Ihr erstes Design vollständig fertigstellen MÜSSEN (egal wie hässlich die Dinge werden). Man weiß nie all die Dinge, die man wirklich nicht weiß, bis man am Ende angekommen ist (und dann immer noch nicht!), aber man ist viel besser dran und viel schlauer für das nächste Design.

Ich habe den Prototyp um einen Grizzly Concert Ukulele-Bausatz herum gebaut. Mit einem Bausatz anzufangen, lindert die Sorgen um den Körper des Uke (naja, meistens) und eliminiert die meisten echten Geigenbauer-Arbeiten. Diese Kits sind ziemlich vollständig und im Großen und Ganzen nicht so teuer (und weniger schmerzhaft, da Sie Fehler machen werden).

Schritt 1: Machen Sie einen Plan

Mach einen Plan
Mach einen Plan

Das Griffbrett (oder Griffbrett), das in einigen Kits enthalten ist, hat bereits die Bünde angebracht. Das ist gut/schlecht. Es ist zeitsparend, aber in Bezug auf das Anlegen eines Bohrmusters und das Festhalten beim Fräsen ist es ein bisschen mühsam. Nachdem ich das im Kit enthaltene zerstört hatte, entschied ich mich (nun, ich hatte keine andere Wahl, als ein anderes Kit zu kaufen), um ein neues Griffbrett zu kaufen.

Beim Design des Griffbretts müssen wir die Zunahme der Dicke berechnen, die zum Einbetten der Platine und der LEDs erforderlich ist (und die passiven Komponenten nicht vergessen), aber nicht so sehr, dass die LEDs zu weit von der Griffbrettoberfläche entfernt sind.

Die LED-Leiterplatte (PCB) ist als einfache 2-Lagen-Platine konzipiert. Dies hilft sehr bei der Handmontage der LED-Kette und verleiht dem Ukulele-Hals eine gewisse mechanische Festigkeit (es ist Glasfaser und Epoxid). Ich habe das Layout in Eagle begonnen, aber aufgrund von Einschränkungen der Platinengröße schließlich Altium Designer verwendet. Die Altium-Schaltplan- und PCB-Dateien finden Sie hier.

Das Griffbrett des Kits war nur 0,125 Zoll dick. Wenn wir also eine 0,062 Zoll dicke Platine annehmen und zusätzliche 0,062 Zoll für die LEDs zulassen, müssten wir (wie bei allen) viel aus dem Griffbrett herausschneiden. Zum Ausgleich können wir entweder Taschen für die LEDs im Griffbrett mit einer entsprechenden Tasche im Hals für die Platine teilweise schneiden, oder wir könnten das gesamte Griffbrett (die Option, die ich gewählt habe) durch eine dickere Version von Luther Mercantile International (LMII) ersetzen., die zu Beginn 0,25 Zoll sind.

ABER, denken Sie daran, dass Sie den Hals immer noch bearbeiten müssen, um die Zunahme der Dicke des Griffbretts auszugleichen. Der andere Vorteil, den Sie erhalten, ist kosmetisch, da die Platine jetzt vollständig im Griffbrett eingebettet ist, wodurch die Kanten viel einfacher zu bearbeiten sind (und viel schöner aussehen!) und das Fräsen des Halses vereinfacht wird.

Engineering-Zeug (ignorieren Sie, wenn Sie wollen):

Das beeinträchtigt übrigens die Steifheit des Nackens nicht wirklich. Das PCB-Material ist viel steifer als das ursprüngliche Griffbrettholz (Mahagoni-Modul: 10,6 GPa gegenüber FR4-Modul: 24 GPa). oder Warp) den Hals.

Eine sehr interessante Überlegung (die ich wahrscheinlich noch berechnen sollte) ist, was über die Temperatur passiert. Allgemein beträgt der thermische Ausdehnungskoeffizient für Holz parallel zur Faserrichtung etwa 3 x 10^-6/K und für FR4 14×10^-6/K. Es gibt also einen ganz erheblichen Unterschied. Das Problem besteht darin, dass bei Temperaturschwankungen im Hals Spannungen entstehen, die wiederum die Saiten verstimmen. Dies könnte ausgeglichen werden, indem man eine ähnliche Schicht auf der gegenüberliegenden Seite der neutralen Achse aufträgt oder den FR4 so nah wie möglich an die neutrale Achse heranbringt. Aber das bleibt für 2.0 übrig… Etwas zum Modellieren und Auswerten.

Die Elektronik ist im Gehäuse des Uke untergebracht. In die Seitenwand (nicht den Resonanzboden!) des UKE sind Löcher geschnitten, um Platz für das Display und den Drehgeber zu schaffen, sowie eine Zugangsplatte, um das Arduino Micro zu halten und den Zugang zur USB-Schnittstelle zu ermöglichen. Das Design und die Position der Zugangsplatte/Halterung könnten wahrscheinlich verbessert werden, um die USB-Verbindung an einer bequemeren Stelle herauszubringen, aber so wie es aussieht, ist es nicht so schlimm, da es beim Spielen nicht im Weg ist.

Die Gliederung der Schritte ist wie folgt:

  1. Materialien sammeln
  2. Holen Sie sich die Werkzeuge, die Sie brauchen
  3. Fräsen Sie den Hals, um das dickere Griffbrett aufzunehmen
  4. Fräsen Sie das Griffbrett, um Löcher an den erforderlichen Stellen zu machen und Taschen für das Brett und die LEDs zu schaffen
  5. Besorgen und konstruieren Sie die Platine, die die LEDs hält
  6. Fräsen Sie Zugangslöcher in den Ukulele-Körper für das OLED-Display, den Drehgeber und die Zugangsplatte
  7. Abdeckplatten herstellen
  8. Befestigen Sie die Drähte an der Platine; Elektronik anschließen und testen
  9. Befestigen Sie den Hals am Ukulele-Körper
  10. Bohren Sie eine Zugangshalterung, um die Leiterplattendrähte in das Gehäuse zu führen
  11. Richten Sie die Platine und das Griffbrett aus und kleben Sie sie auf den Hals
  12. Die Griffbrettkanten zum Hals ausrichten (überschüssiges Material entfernen)
  13. Installieren Sie die Bunddrähte
  14. Tragen Sie die Maskierung auf und tragen Sie das Finish auf die Ukulele auf
  15. Ausrichten und Anbringen der Brücke
  16. Elektronik einbauen und testen.
  17. Installieren Sie Tuner und besaiten Sie das Instrument
  18. Programmieren Sie den Uke-Controller
  19. Überraschen Sie die Welt mit Ihrer Ukulele-Großartigkeit!

Schritt 2: Materialien sammeln

Unsere Materialliste sieht so aus:

  1. Ukulele-Kit - Ich habe ein Grizzly Concert Ukulele-Kit (Grizzly Uke Kit bei Amazon) verwendet, aber das scheint eingestellt zu werden. Zimo stellt ein ähnliches Modell her (Zimo Uke Kit @ Amazon), das so aussieht, als würde es den Job machen
  2. Ukulele-Griffbrett, vorgeschlitzt (LMII Uke-Griffbretter). Sie passen das Griffbrett an Ihre Mensur an, was ein Durcheinander von Ärger erspart
  3. Epoxy - zum Verkleben des Griffbretts mit dem Hals. Ich habe mich für Epoxid entschieden, da es mit dem PCB-Material kompatibel ist. Suchen Sie nach etwas mit mindestens 60 Minuten Arbeitsleben. Verwenden Sie KEINE 5-Minuten-Typen, Sie benötigen Zeit, um Anpassungen vorzunehmen
  4. Bunddrähte - auch bei LMII erhältlich
  5. Benutzerdefinierte PCB - Altium-Dateien sind hier. Ich habe mich für normales FR4-Material entschieden. Flex (Polyimid) Boards wären eine interessante (wenn auch teurere) Alternative, da sie viel dünner sein können
  6. 48x Neopixel (SK6812) LEDs. Erhältlich bei Adafruit und Digikey
  7. 48x 0.1uF 0402 Kappen - größer ist akzeptabel, aber Sie müssen auf die Platzierung achten
  8. Anschlussdraht - mindestens 4 bis 6 Farben, um Verwechslungen zu vermeiden, ich habe hauptsächlich 28-Gauge-Draht verwendet. Beobachten Sie den Gleichstromabfall an den LED-Stromanschlüssen (sowohl VCC als auch GROUND … dieser Strom muss zur Quelle zurückkehren!)
  9. Drehgeber - PEC16-4220F-S0024
  10. Ausgefallener Holzknopf - für den Drehgeber (ich habe meinen von LMII bekommen)
  11. OLED-Display - von 4D-Systemen OLED-Displays
  12. Externer USB-Akku - immer günstiger, und Sie können Ersatzteile mitnehmen!
  13. Arduino MICRO
  14. Messingblech - um die Platte zu machen, um das Arduino und die Lünette für das Display zu halten
  15. Verschiedene Verbrauchsmaterialien, einschließlich: Schleifpapier, Urethan-Finish, Eis am Stiel, Gummibänder, Lot, Flussmittel, Bürsten, doppelseitiges Klebeband (ich mag das UHC-Band von 3M) und kleine Messingholzschrauben (für die Platte)
  16. Optionale Ukulelen-Verbesserungen - bessere Tuner, bessere Saiten, besserer Sattel und Sattel, Einlage, wenn Sie Ihre Gitarrenkünste zeigen möchten)

Schritt 3: Holen Sie sich die Werkzeuge, die Sie brauchen

Früher oder später müssen Sie sich diese besorgen oder darauf zugreifen:

Unsere Werkzeugliste umfasst:

  1. Fräsmaschine - CNC bevorzugt, aber vielleicht kommen Sie sogar mit einer Oberfräse und viel Glück aus. Ich habe eine kombinierte CNC-Fräse / -Router verwendet
  2. Fräser - Hartmetall bevorzugt. Fräser werden gegenüber Schaftfräsern gewählt, da wir Holz und nicht Metall bearbeiten
  3. Klemmen - viele davon. Wird hauptsächlich zum Halten von Teilen beim Kleben benötigt
  4. Lötkolben - kleine Spitze für SMD-Lötungen
  5. Mikroskop oder Lupe - Sie können versuchen, nur mit Ihren Augen zu löten, aber ich würde es nicht empfehlen, mindestens 10x
  6. Pinzette (zum Einsetzen der Teile)
  7. Fretting-Werkzeuge (siehe richtige Werkzeuge auf LMII hier, aber ich habe das verwendet, was ich zu Hause hatte und gemacht; Hämmer, Feilen und Fräser)
  8. Verschiedene Handwerkzeuge wie Holzmeißel, Schraubendreher, Weichschlag- oder Rohlederhammer (zum Reiben) etc.
  9. Schleifmittel - verschiedene Körnungen von Schleifpapier

Unsere Softwaretools umfassen (einige sind je nach Budget/Einfallsreichtum optional):

  1. Arduino-Software
  2. Der Ukulele-Quellcode (https://github.com/conrad26/Ukulele)
  3. PCB-Layout-Paket - Ich habe Altium verwendet, weil die kostenlose Version von Eagle die gewünschte Platinengröße nicht unterstützte. Altium ist ein voll ausgestattetes Layout-Paket und nicht wirklich in einer Preisklasse für Bastler. Ich habe die Gerber-Dateien auf meiner Seite für den Prototypen eingefügt, aber diese brauchen definitiv ein Update
  4. 3D-Modellierungssoftware - Ich habe SolidWorks verwendet, aber eine kostenlose Alternative ist FreeCAD (https://www.freecadweb.org/)
  5. CAM-Software - wie FeatureCAM von Autodesk zum Erstellen der NC-Fräsdatei.

Die Kombination aus dem Export von 3D-Step-Dateien von Altium zusammen mit einem 3D-Modell des Griffbretts beseitigt viele der Schwierigkeiten, sicherzustellen, dass alles ausgerichtet ist, aber dies ist keine Voraussetzung. Eine sorgfältige Anordnung wird das gleiche Ergebnis erzielen.

Jetzt, da wir wissen, was wir tun wollen und was wir tun müssen, bauen wir eine Ukulele.

Schritt 4: Fräsen Sie den Hals, um das dickere Griffbrett aufzunehmen

Fräsen Sie den Hals, um das dickere Griffbrett aufzunehmen
Fräsen Sie den Hals, um das dickere Griffbrett aufzunehmen

Beachten Sie vor dem Fräsen, dass die ursprüngliche Ebenheit der Griffbrett-Montagefläche beibehalten werden MUSS, oder Sie werden ein verdrehtes Griffbrett haben, was zu allen möglichen Problemen mit der Bundnivellierung führt.

Gehen Sie einfach nicht dorthin, nehmen Sie sich Zeit und klemmen Sie den Hals vorsichtig und fest ein und überprüfen Sie die Ausrichtung zum Fräser über den gesamten Hals vor dem Schneiden. Die Zeit, die Sie hier verbringen, wird Ihnen später viel Kummer ersparen.

Ein Grund, warum ich mich für ein dickeres Griffbrett über einer Einlage im Hals entschieden habe, war die größere Montagefläche (Klebefläche). Ein weiterer Grund ist, dass es das Fräsen des Halses vereinfacht. Sie schneiden einfach die gesamte Oberfläche auf die gewünschte Höhe.

Schritt 5: Besorgen und konstruieren Sie die Platine, die die LEDs hält

Besorgen und konstruieren Sie die Platine, die die LEDs hält
Besorgen und konstruieren Sie die Platine, die die LEDs hält
Besorgen und konstruieren Sie die Platine, die die LEDs hält
Besorgen und konstruieren Sie die Platine, die die LEDs hält

Ich habe die gesamte Baugruppe von Hand gelötet. Die LED-Packages sind besonders leicht zu schmelzen, achten Sie also darauf, sie nicht zu beschädigen. Ich schlage vor, ein statisches Band zu tragen, da die Schnur von jeder LED-Funktion abhängig ist.

Das Griffbrettdesign basiert auf den WS2812B LEDs. Ich beschloss, nur die erste Oktave des Griffbretts zu machen (48 LEDs!!). Jede LED kann man sich als ein Bit in einem Schieberegister vorstellen. Das Schieberegister wird mit 800 kHz getaktet. Ich habe die Adafruit-Bibliothek (siehe Abschnitt Programmierung) verwendet, um die Dinge schnell zum Laufen zu bringen.

Ich habe das Design in Eagle begonnen, aber die Boardgröße ist auf 4 x 5 Zoll begrenzt, also musste ich (oder richtiger gesagt, ich entschied mich dafür) zu Altium umzusteigen. Ich benutze Altium bei der Arbeit, also hat es die Dinge in Wirklichkeit für mich schneller gemacht. Das Altium-Projekt, Schaltplan- und PCB-Dateien (und Bibliotheksteile) befinden sich auf meiner Website. Das Brett ist trapezförmig und etwa 10 Zoll lang. Ich denke, ich hätte versuchen sollen, den Umriss etwas mehr zu komprimieren (nächster Spin!) Die Montage war nicht schlecht, aber wenn Sie es sich leisten können, empfehle ich wirklich einen anständigen Lötkolben (JBC Soldering Irons) und ein gutes Mikroskop. Ja, ich bin verwöhnt und nein, so etwas habe ich nicht in meinem Heimlabor. Ich bin billig.

Ich habe die Bretter bei Sunstone herstellen lassen. 129 US-Dollar für zwei Boards. Garantiert eine Woche lang. Sparen Sie aber nicht beim Versand. Ich habe nicht bemerkt, dass ich UPS Ground benutzt habe und habe am Ende eine zusätzliche Woche auf die Ankunft meiner Boards gewartet. Die Gesamtmontagezeit betrug ca. 2 Stunden (98 Teile).

Schritt 6: Fräsen Sie das Griffbrett

Image
Image
Zugangslöcher im Ukulele-Körper fräsen
Zugangslöcher im Ukulele-Körper fräsen

Wir müssen das Griffbrett fräsen, um Löcher an den erforderlichen Stellen zu machen und Taschen für das Brett und die LEDs zu schaffen.

Ich habe ein 3D-Modell des fertigen Griffbretts in Solidworks erstellt und die CNC-Fräsroutine mit FeatureCAM erstellt.

Der untere Teil des Griffbretts (am nächsten zum Schallloch) muss dünner gemacht werden, um den Höhenunterschied zwischen Hals und Korpus zu berücksichtigen. Es lohnt sich auf jeden Fall, die Anpassung mehrmals zu testen, um sicherzustellen, dass es eine vernünftige Passform hat.

Im Nachhinein hätte ich die unbenutzten Teile des Griffbretts abschneiden sollen, damit es besser in die Mühle passt (meine billige Mühle hatte nur einen 12 X-Achsen-Verfahrweg). Taschenfräsen, was zu weniger Ausbrüchen zwischen den Taschen führen soll.

Nehmen Sie nach Bedarf manuelle Anpassungen vor, um Platz für die Verkabelung zu schaffen. Eine wichtige Sache zu beachten ist, dass ich in einigen der Taschen in den Schlitz durchbrach, in den der Bunddraht gehen wird. Da es sich um einen Dirigenten handelt, stellen Sie sicher, dass er nichts Wichtiges kurzschließt. Es verringert auch die Festigkeit des Materials, das den Bund an Ort und Stelle hält. Das Design sollte so modifiziert werden, dass es sich niemals mit einem Bundschlitz überschneidet.

Schritt 7: Zugangslöcher im Ukulele-Körper fräsen

Zugangslöcher im Ukulele-Körper fräsen
Zugangslöcher im Ukulele-Körper fräsen

Die Zugangslöcher habe ich manuell in die Karosserie gefräst. Der schwierigste Teil besteht darin, den "flachsten" Bereich einer sehr gekrümmten Oberfläche zu finden. Markieren Sie den Umriss mit Bleistift und fräsen Sie das Material nach und nach ab, bis Sie eine passgenaue Passform für das OLED-Display haben. Ich erhielt eine bearbeitete Messingblende und befestigte sie mit 3M VHB-Klebeband.

Da beide keine große Präzision erfordern, sind die Löcher für den Drehgeber und die Zugangsplatte viel einfacher zu erstellen.

Schritt 8: Abdeckplatten herstellen

Abdeckplatten herstellen
Abdeckplatten herstellen
Abdeckplatten herstellen
Abdeckplatten herstellen
Abdeckplatten herstellen
Abdeckplatten herstellen

Sie müssen auch die Abdeckplatten für den Bildschirmrahmen und das Zugangsfeld herstellen. Die Zugangsabdeckung benötigt ein Loch (rechteckig) für den USB-Anschluss (Mikro). Verwenden Sie einfach den vorhandenen Anschluss des Arduino, da es nicht viele Optionen für die Panelmontage für Micro-USB gibt. (obwohl ich von Grund auf neu entwerfen würde, würde ich mir eines davon ansehen)

Um die Platine an Ort und Stelle zu halten, formen Sie L-Klammern aus Messing und löten Sie sie an der Rückseite der Zugangsplatte an. Dies lässt Ihnen einen gewissen Spielraum bei der Positionierung. Um die Positionierung richtig zu machen, erstellen Sie zuerst eine Perfboard-Montageplatte (mit Befestigungslöchern) für das Arduino MICRO und befestigen Sie die L-Klammern mit 2-56 Maschinenschrauben daran. Sie können dann die Position anpassen, um den USB-Anschluss auszurichten und die Positionen für die Halterungen auf der Platte genau zu markieren. Entfernen Sie die Halterungen vom Perfboard und löten Sie sie an. Schließlich montieren Sie die Perfboard-Baugruppe.

Ich benutzte vier kleine Messingholzschrauben, um die Messingzugangsplatte an Ort und Stelle zu halten.

An dieser Stelle empfehle ich eine Probepassung bevor die Endmontage beginnt. Dieser Schritt ist optional, wird aber empfohlen. Es ist viel einfacher, Anpassungen vor dem Kleben vorzunehmen.

Schritt 9: Befestigen Sie die Drähte an der Platine; Anschließen und Testen der Elektronik

Image
Image
Befestige den Hals am Ukulele-Körper
Befestige den Hals am Ukulele-Körper

Bringen Sie die Elektronik noch nicht dauerhaft an. Befestigen Sie die Drähte an der Platine und stellen Sie sicher, dass Sie genügend Spielraum lassen, um das Zugangsloch herauszuführen. Diese müssen schließlich dauerhaft mit dem Arduino MICRO Board verbunden werden (die Fotos zeigen ein Arduino UNO, das ich für die Codeentwicklung verwendet habe)

Schritt 10: Befestigen Sie den Hals am Ukulele-Körper

Befestigen Sie den Hals am Ukulele-Körper, indem Sie den Anweisungen des Ukulele-Kits folgen. Achten Sie besonders auf die Ausrichtung der Griffbrettoberfläche zum Korpus der Uke.

Schritt 11: Bohren Sie ein Zugangsloch, um die PCB-Drähte in den Körper zu führen

Bohren Sie ein Zugangsloch, um die PCB-Drähte in das Gehäuse zu führen
Bohren Sie ein Zugangsloch, um die PCB-Drähte in das Gehäuse zu führen

Sobald der Kleber getrocknet ist, bohren Sie ein ~1/4 (10mm) Loch in einem Winkel, damit die Drähte von der Platine in den Ukulele-Körper geführt werden können. Achten Sie darauf, den Resonanzboden nicht zu beschädigen.

Möglicherweise müssen Sie auch eine kleine Tasche erstellen, um die Dicke der Drähte unter dem Brett zu berücksichtigen (oder optional die Anschlüsse auf die Oberseite legen und das Griffbrett entlasten).

Ein weiterer Testfit würde an dieser Stelle nicht schaden.

Schritt 12: Ausrichten und Kleben der Platine und des Griffbretts auf den Hals

Ausrichten und Kleben der Platine und des Griffbretts auf den Hals
Ausrichten und Kleben der Platine und des Griffbretts auf den Hals

Ich schlage vor, die Klemmung vor dem Kleben durchzudenken (und auszuprobieren!). Vielleicht möchten Sie einen Block an der Unterseite des Halses formen, um eine flache Klemmfläche zu erhalten. Das Griffbrett ist an dieser Stelle größer als der Hals, also müssen Sie dies berücksichtigen.

Seien Sie sehr vorsichtig, um kein Epoxid auf eine Oberfläche zu bekommen, die Sie später fertigstellen möchten. Tragen Sie am besten noch eine Maskierung auf alle nicht verklebten Oberflächen auf, bevor Sie kleben, um sicherzustellen, dass sie nur dorthin geht, wo Sie es beabsichtigt haben.

Verwenden Sie Epoxidharz mit einer Lebensdauer von mindestens 60 Minuten … Sie werden alles brauchen.

Kleben Sie die Platine zuerst an Ort und Stelle und achten Sie darauf, dass kein überschüssiger Kleber in die Klebefläche des Griffbretts extrudiert. Dies bietet eine Methode zum Ausrichten des Griffbretts zum Hals. Die Platine hat eine glatte Lötstopplack-Oberfläche, daher habe ich sie mit etwas Sandpapier aufgeraut, um dem Epoxid eine leicht verbesserte Oberflächenbeschaffenheit zu verleihen.

Richten Sie das Griffbrett aus und kleben Sie es auf den Hals. Achten Sie darauf, keine Taschen zu lassen, die später mitschwingen könnten (Summen!). Achten Sie auch darauf, dass kein Kleber auf die LED-Oberflächen gelangt.

Sobald der Kleber trocken ist, möchten Sie vielleicht die Elektronik noch einmal verdrahten und testen. Eine schlechte LED lässt Sie das Leben hassen. Ich hatte eine schlechte LED (die erste!) Auf dem Prototypen und musste einige kreative Holzarbeiten durchführen, um auf die defekte LED zuzugreifen und sie sauber zu patchen.

Schritt 13: Nivellieren Sie die Griffbrettkanten zum Hals und fügen Sie Bunddrähte hinzu

Sobald der Kleber getrocknet ist, können Sie mit der Fertigstellung der Kanten beginnen. Ich schneide das überschüssige Griffbrettmaterial vorsichtig ab (mit einer Fräse) und fertige den letzten Millimeter per Handschliff an.

Das Hinzufügen der Bunddrähte kann einfach mit einem Hammer erfolgen (mit einer Kunststofffläche, um Beschädigungen zu vermeiden). Nur nicht zu hart hämmern. Wenn Sie den Bunddraht an die Schlitze angepasst haben, sollten sie ohne große Schwierigkeiten hineingehen.

Worauf Sie achten müssen, ist das Brechen der dünnen Oberfläche der LED-Tasche. Beim Prototypen ließ ich die LED-Taschen (in der Nähe des 12. Bunds, wo der Platz knapp wird) in den Bundschlitz hineinragen. Das ist eine schlechte Idee, da dies eine Schwachstelle erzeugt, die nach dem Einsetzen des Bunddrahts knacken kann (und tat).

Schritt 14: Maskierung auftragen und Finish auf die Ukulele auftragen

Maskieren Sie das Griffbrett (es wird nicht fertig) und den Stegklebebereich und beginnen Sie mit dem Auftragen des Finishs.

Lesen Sie beim Maskieren des Brückenbereichs die Anweisungen zu Ihrem Kit und überprüfen Sie dann die Skalenlänge, um sicherzugehen. Der Bausatz, den ich für den Prototyp verwendet habe, verwendete die falsche Maßstabslänge und lieferte daher die falschen Abmessungen zum Auffinden der Brücke (aber es gab einen Hinweis, die Website nach den neuesten Anweisungen zu überprüfen!). Mein Bauch sagte mir, dass es falsch war, aber ich akzeptierte blind die Autorität.

Es ist immer besser zu verstehen, WARUM Sie etwas tun, als blind den Anweisungen zu folgen.

Für das Finish gibt es viele Tutorials von Luthiers, die wissen, was sie im Internet tun, daher empfehle ich, sie zu konsultieren, bevor Sie mit dem Finishing-Prozess beginnen.

Das habe ich natürlich nicht gemacht, also habe ich den falschen Sealer verwendet, was zu einer sehr körnigen Oberfläche führte. Tu das nicht.

Mach deine Hausaufgaben.

Schritt 15: Ausrichten und Anbringen der Brücke

Ausrichten und Anbringen der Brücke
Ausrichten und Anbringen der Brücke

Dieser Schritt ist ziemlich einfach, aber planen Sie auch hier Ihre Klemmmethode und probieren Sie sie vor dem Kleben aus. Ich benutzte einen Standard-Holzleim, um die Brücke zu befestigen.

Schritt 16: Elektronik installieren und testen

Elektronik installieren und testen
Elektronik installieren und testen

Jetzt ist es an der Zeit, Ihre Verkabelung hübsch zu machen. Außerdem möchte man nicht, dass es im Körper herumflattert und Brummgeräusche macht oder schlimmer noch, auf der Bühne bricht.

Der Arduino-Code kann über den USB-Anschluss aktualisiert werden, sodass Sie ihn wirklich nicht auseinander nehmen müssen, es sei denn, Sie möchten basteln.

Schritt 17: Installieren Sie Tuner und besaiten Sie das Instrument

Image
Image
Uke programmieren
Uke programmieren

Sie müssen wahrscheinlich auch die Bünde nivellieren und ein wenig mit dem Setup spielen, aber warum sich jetzt Sorgen machen, wenn Sie so nah am Ende sind?

Ich habe die Tuner aufgerüstet und schöne Aquila-Saiten verwendet, was dem Klang überhaupt nicht geholfen hat. Denken Sie also daran, während Sie Geld in eine Projekt-Ukulele investieren…

Schritt 18: Programmierung des Uke

Der endgültige Arduino-Code befindet sich auf Github. Es gibt einige Zeilen im Code, um zukünftige Verbesserungen zu unterstützen (wie eine Metronomfunktion und "Schieberegler" für die Anzeige (ein UI-Element, das wie ein Schieberegler aussieht)

Dieser Code verwendet eine Rotary Encoder Library (Rotary Encoder Arduino Library), um Benutzereingaben vom Rotary Encoder zu verarbeiten.

Es verwendet auch die Adafruit Neopixel-Bibliothek und den Beispielcode, der sich hier befindet. Die Modi Theater und Regenbogen werden von Beispielen abgeleitet, die mit der Bibliothek bereitgestellt werden. (siehe strandtest.ino).

Der Bildschirmtreiber wird von 4D-Systemen bereitgestellt und ist hier auf Github zu finden.

Für das Ukulele-Projekt wurden zwei einzigartige Funktionen implementiert. Der erste implementiert die Akkordbibliothek und der zweite zeigt eine Lauftextnachricht mit einem benutzerdefinierten Zeichensatz an.

Das beigefügte Diagramm zeigt die Positionen der Griffbrett-LEDs und wie sie angeschlossen sind. LED 0 befindet sich in der oberen rechten Ecke.

Schritt 19: So zeigen Sie einen Akkord an

So zeigen Sie einen Akkord an
So zeigen Sie einen Akkord an

Die Funktion displayChord zeigt die Fingerpositionen (vorerst nur die erste Position) für jeden Akkord an. Vom Benutzer ausgewählte Akkorde (Grundton und Qualität) werden als Indexpaar gespeichert. Diese wiederum werden verwendet, um die Fingersätze für jeden Akkord nachzuschlagen.

Ich habe die Notation "GCEA" verwendet, um Akkorde zu speichern (z. B. "A" ist "2100"). Die Akkorde werden für jeden Grundton vorberechnet und in einer der Qualität des Akkords entsprechenden Variablen gespeichert. (Also wird A-Dur an der ersten Stelle des Arrays "majorChords" gespeichert, was "2100" entspricht).

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"};

Beachten Sie, dass, da dies eine Textzeichenfolge ist, jede Ziffer auch einen Hex-Wert darstellen kann, um Bundpositionen größer als 9 zu berücksichtigen. Das heißt, A und B würden die LEDs 10 und 11 darstellen. Für Akkorde der ersten Position war dies kein Problem.).

Der LED-String wird der Länge nach in 12er-Reihen (eine Oktave) entlang jeder Saite (beginnend mit der A-Saite) verdrahtet, der nachfolgende 12er-Lauf beginnt am ersten Bund der nächsten Saite (siehe Diagramm in Schritt 18). Dies ist wichtig für den Algorithmus, um zu bestimmen, welche Lichter für einen bestimmten Akkord eingeschaltet werden sollen. Das bedeutet, dass die Pixel 0 bis 11 die A-String-LEDs sind, 12 bis 23 die E-String-LEDs und so weiter. Beim Parsen von A = "2100" (als String gespeichert, gibt es im Code auch ein Null-Terminator "\n"), interpretieren wir es als: keine Pixel auf der A-Zeichenfolge leuchten noch auf der E-Zeichenfolge, Pixel 0 (Bund 1) auf der C-Saite leuchtet und Pixel 1 (Bund 2) auf der G-Saite. Beachten Sie, dass eine "0" aus ist, nicht die erste LED. Aufgrund der Verdrahtung möchten wir die LEDs 24 und 37 aufleuchten lassen. Der Code zur Anzeige eines Akkords ist unten dargestellt.

for (int i = 0; i < 4; i++) { if (int(chord - '0')) {//Algorithmus zum Parsen der Akkordfolge int ledNumber = int(chord - '0') + (3 - i) * 12 - 1; // siehe obige Diskussion, das (3-i) dient dazu, den Indexstreifen umzukehren.setPixelColor (ledNumber, 0, 125, 125); // setPixelColor (ledNumber, roter Wert, grüner Wert, blauer Wert)}}

Die if-Anweisung prüft, ob die LED ausgeschaltet ist. Wenn dies nicht der Fall ist, nimmt es den ASCII-Wert des Zeichens chord und subtrahiert den ASCII-Wert für '0', damit die LEDNumber aufleuchtet.

strip ist eine Instanz der Adafruit_NeoPixel-Klasse. Die Funktion setPixelColor setzt in diesem Fall die Farbe für das berechnete Pixel (fixiert auf (0, 125, 125).

Schritt 20: So zeigen Sie eine scrollende Nachricht an

So zeigen Sie eine scrollende Nachricht an
So zeigen Sie eine scrollende Nachricht an

Wir haben also ein 12 x 4 Array von LEDs … warum nicht etwas anderes als hübsche zufällige Lichtmuster anzeigen!

Das erste Problem ist, dass die Displayhöhe (4) aufgrund der Anzahl der Saiten auf einem Uke ziemlich begrenzt ist. Horizontales Scrollen wäre meistens unleserlich, aber in einer vertikalen Ausrichtung können wir 4 x 5 Zeichen unterstützen, die vertikal laufen.

Das Organisieren von Zeichen als fünf "vertikale" Reihen bedeutet, dass zwei Zeichen gleichzeitig angezeigt werden können, wobei zwischen jedem Zeichen ein Zeilenabstand eingeräumt wird.

Die Schwierigkeit bestand darin, dass es keinen Standard 4 x 5 Zeichensatz gab. Ich habe es mit der beigefügten Tabelle erstellt. Ich habe jeder Zeile einen einzelnen Hex-Wert zugewiesen (4 Bits, die darstellen, welches Pixel ein- oder ausgeschaltet ist). Die Kombination der fünf Hex-Werte bildet ein Zeichen (z. B. "0" ist 0x69996).

Die Werte für jedes Zeichen werden in ASCII-Reihenfolge in einem Array gespeichert. Der Zeichensatz macht bei bestimmten Buchstaben einige Kompromisse, aber die meisten sind einigermaßen klar. (Die Kritzeleien am unteren Rand der Tabelle sind Ideen, mit denen ich gespielt habe, da wir Farbe als Option haben, wir dem Charakter "Tiefe" hinzufügen und möglicherweise eine zusätzliche Auflösung erzielen können.

Der anzuzeigende String ist in der String-Variablen message enthalten.

Ein Puffer wird erstellt, um die Zeichenanzeige darzustellen. Ich schätze, ich hätte einfach einen großen Puffer mit der gesamten übersetzten Nachrichtensequenz erstellen können, zumal die meisten Nachrichten weniger als 20 Zeichen oder so umfassen. Ich habe mich jedoch stattdessen dafür entschieden, einen festen Puffer mit drei Zeichen (18 Byte) zu erstellen. Nur zwei der Charaktere werden aktiv angezeigt und das dritte ist ein Blick nach vorne, wo das nächste Zeichen geladen wird. Der LED-String (denken Sie an ein großes Schieberegister) wird mit den 48 Bit für den String geladen. Ich habe etwas Speicherplatz verschwendet, um dies einfacher zu konzeptualisieren. Jedes Nibble erhält seinen eigenen Speicherplatz, was den Speicherbedarf verdoppelt, aber angesichts der Puffergröße nicht viel.

Der Puffer wird mit dem nächsten Zeichen geladen, wenn der Ausgabeindex (Zeiger) eine Zeichengrenze erreicht (AusgabeZeiger bei 5, 11 oder 17).

Um den Puffer zu laden, nehmen wir das erste Zeichen in "message" als ASCII-Wert und subtrahieren 48, um den Index im asciiFont-Array zu erhalten. Der Wert an diesem Index wird in codedChar gespeichert.

Der erste herausgeschobene Teil der Nachricht entspricht den LEDs 47, 35, 23 und 11 (der untere Teil des Displays). Für die Zahl Null 0x0F999F wird also das F (linke Eins) in erste, 9 Sekunden usw. verschoben.

Das nächste Zeichen wird geladen, indem jedes Nibble maskiert und nach rechts verschoben wird. Für das obige Beispiel gibt der Algorithmus (0x0F999F & 0xF00000) >> 20, dann (0x0F999F & 0x0F0000) >> 16 usw.

int-Index; if (outputPointer == 17 || outputPointer == 5 || outputPointer == 11) { char displayChar = message.charAt(messagePointer); //das erste Zeichen der Nachricht greifen long codedChar = asciiFont[displayChar - 48]; if (displayChar == 32) codedChar = 0x000000; messageBuffer[bytePointer+5]=byte((codedChar & 0xF00000) >> 20); // alles außer dem letzten Nibble maskieren und um 20 verschieben (und so weiter) messageBuffer[bytePointer+4]=byte(((codedChar & 0x0F0000) >> 16); // dies sollte ein Nibble pro Speicherort setzen messageBuffer[bytePointer+3]=byte(((codedChar & 0x00F000) >> 12); //alle sechs repräsentieren ein Zeichen messageBuffer[bytePointer+2]=byte(((codedChar & 0x000F00) >> 8); messageBuffer[bytePointer+1]=byte((codedChar & 0x0000F0) >> 4); messageBuffer[bytePointer] =byte((codedChar & 0x00000F)); if(bytePointer ==0) {//handhabe die Schleife auf dem bytePointer bytePointer = 12; } Else { bytePointer -= 6; //wir füllen von unten nach oben; HINWEIS: Um zu sehen, ob es einfacher ist, dies umzukehren aufrechtzuerhalten. Sonst { MessagePointer +=1; // zum nächsten Zeichen gehen } }

Sobald der Puffer geladen ist, geht es darum, zu verfolgen, wo sich der Ausgabezeiger befindet, und den LED-String mit den richtigen 48 Bits zu laden (die aktuellen 4 und die vorherigen 44). Wie bereits erwähnt, ist strip eine Instanz der NeoPixel-Klasse und setPixelColor legt die Farbe (RGB) jedes Pixels fest. Die Funktion show() verschiebt die Anzeigewerte in LED-Strings.

// Schleife zum ständigen Verschieben des Puffers

// möchte den gesamten Streifen bei jedem Durchlauf durch die Schleife ausschreiben, nur die Startposition ändert sich für (int row=12;row > 0;row--) { index = outputPointer + (12-row); if (index > 17) index = outputPointer+(12-row)-18; // Schleife, wenn größer als 17 für (int Spalte = 4; Spalte > 0; Spalte--) { strip.setPixelColor (uint16_t (12 * (Spalte-1) + (Zeile-1)), uint8_t (RedLED * (bitRead.) (messageBuffer[index], Spalte-1))), uint8_t(GreenLED*(bitRead(messageBuffer[index], Spalte-1))), uint8_t(BlueLED*(bitRead(messageBuffer[index], Spalte-1)))); // an jeder Stelle leuchtet die LED, wenn das Bit eine Eins ist } } //outputPointer zeigt auf das aktuell niedrigste Byte im Anzeigestring if (outputPointer == 0) outputPointer=17; else outputPointer -= 1; Strip-Show(); }

Schritt 21: Überraschen Sie die Welt mit Ihrer Ukulele-Awsomeness

Image
Image

Der endgültige Ukulele-Prototyp brauchte etwa 6 Monate Start und Stopp, um durchzuziehen.

Es gibt viel neue Technik zu lernen und vielleicht etwas Holzbearbeitung und Musiktheorie zu booten!

Was tun für die nächste Version?

  1. Entfernen Sie das Display und den Drehgeber. Ersetzen Sie sie durch ein Bluetooth-Modul, das an das Arduino angeschlossen ist. Steuern Sie es aus der Ferne mit einem Telefon oder Tablet. Mit Bluetooth ist alles besser.
  2. Aktualisieren Sie Akkordmuster aus der Ferne in Echtzeit. Etwas Bestes bleibt für die App übrig.
  3. LED-Abdeckungen. Die aktuelle Version verhindert nicht, dass Gunk in die LED-Löcher gelangt. Ein Freund hat ein paar kleine Linsen hergestellt, aber ich konnte nie herausfinden, wie ich sie richtig an ihren Platz bringen kann.
  4. Alternative Griffbrettmaterialien, vielleicht etwas Klares, solange die Bünde halten.
  5. Mehr Lichter! Beseitigen Sie die Textbeschränkung, indem Sie weitere "Zeilen" hinzufügen. Dies ist wirklich eine Einschränkung, die durch die Größe des Griffbretts und der LED-Körper verursacht wird.

Siehe auch das begleitende Instructable, das den Zeichensatz beschreibt, den ich erstellen musste, um Lauftext zu ermöglichen.

Vielen Dank, dass Sie es bis hierher geschafft haben! Mahalo!

Empfohlen: