Spisu treści:

Jak zbudować świecące ukulele!: 21 kroków
Jak zbudować świecące ukulele!: 21 kroków

Wideo: Jak zbudować świecące ukulele!: 21 kroków

Wideo: Jak zbudować świecące ukulele!: 21 kroków
Wideo: A Wy na jakim etapie związku jesteście? 😂 #shorts 2024, Lipiec
Anonim
Image
Image
Zrobić plan
Zrobić plan

Gram na ukulele. Trochę przeciętnie (jeśli to słowo), więc pomyślałem: „jeśli naprawdę chcesz zaimponować paniom, potrzebujesz sposobu, aby odwrócić ich uwagę od katastrofy, która gra na scenie”. Stąd narodziło się „Light-up Ukulele”.

Ten projekt wykorzystuje zestaw Concert Ukulelele i dodaje sterowaną Arduino diodę LED na każdej pozycji struny i progu. Dodaje również fantazyjny wyświetlacz OLED i interfejs użytkownika oparty na enkoderze obrotowym, aby wybrać tryb i intensywność ciągu LED.

Kompletny sprzęt UKE oferuje:

  1. Arduino MICRO do interfejsu z ciągiem LED, wyświetlaczem i urządzeniem wejściowym.
  2. 48 indywidualnie programowalnych pełnokolorowych diod LED
  3. Wyświetlacz OLED
  4. Enkoder obrotowy do wprowadzania danych przez użytkownika
  5. Interfejs USB do zewnętrznego zasilania i programowania Arduino

Oprogramowanie UKE posiada:

  1. Podstawowe tryby sterowania oświetleniem, które sprawdzają diody LED
  2. Fajny tryb namiotu teatralnego (bardzo przydatny podczas występów!)
  3. Kontrola intensywności LED
  4. Pełna biblioteka akordów wszystkich akordów Ukulele na pierwszej pozycji (wartość i znak akordu)
  5. Możliwość wyświetlania bieżącego tekstu (w pionie) przy użyciu unikalnego zestawu znaków 4 x 6 pikseli

Ta instrukcja opisuje ukończony prototyp. Pełna saga rozwojowa jest dostępna TUTAJ, w tym kilka błędów edukacyjnych (bolesnych) i cenna lekcja, dlaczego MUSISZ ukończyć swój pierwszy projekt do końca (niezależnie od tego, jak brzydkie są rzeczy). Nigdy nie znasz wszystkich rzeczy, których tak naprawdę nie wiesz, dopóki nie dojdziesz do końca (a potem nadal nie wiesz!), ale jesteś o wiele lepszy i dużo mądrzejszy do następnego projektu.

Zbudowałem prototyp wokół zestawu Grizzly Concert Ukulelele. Rozpoczęcie od zestawu uwalnia od troski o ciało uke (no, głównie) i eliminuje większość prawdziwej pracy lutniczej. Te zestawy są dość kompletne i nie są tak drogie w wielkim schemacie rzeczy (i mniej bolesne, ponieważ będziesz popełniać błędy).

Krok 1: Zrób plan

Zrobić plan
Zrobić plan

Podstrunnica (lub podstrunnica) zawarta w niektórych zestawach ma już dołączone progi. To jest dobre/złe. To fajna oszczędność czasu, ale jeśli chodzi o układanie wzoru wiertła i utrzymywanie go na miejscu podczas frezowania, jest to trochę uciążliwe. Po zniszczeniu tego, który znajduje się w zestawie, zdecydowałem się (no cóż, nie miałem innego wyjścia niż zakup kolejnego zestawu) na zakup nowej podstrunnicy.

Projektując podstrunnicę, musimy obliczyć przyrost grubości wymagany do osadzenia płytki i diod LED (nie zapominając o elementach pasywnych), ale nie na tyle, aby diody LED znajdowały się zbyt daleko od powierzchni podstrunnicy.

Płytka drukowana LED (PCB) została zaprojektowana jako prosta dwuwarstwowa płytka. To bardzo pomaga w ręcznym montażu sznurka LED i zapewnia pewną wytrzymałość mechaniczną (jest to włókno szklane i żywica epoksydowa) szyjce Ukulele. Rozpocząłem układ w Eagle, ale skończyłem używając Altium Designer ze względu na ograniczenia rozmiaru płytki. Schematy Altium i pliki PCB są tutaj.

Podstrunnica zestawu miała zaledwie 0,125 cala grubości. Tak więc, zakładając płytkę o grubości 0,062 cala i dopuszczając dodatkowe 0,062 cala dla diod LED, oznaczałoby to, że musielibyśmy dużo wyciąć (jak we wszystkich) podstrunnicy. Aby to zrekompensować, możemy albo częściowo wyciąć kieszenie na diody LED w podstrunnicy z odpowiednią kieszenią w gryfie na płytkę drukowaną, albo wymienić całą podstrunnicę (opcja, z której skorzystałem) na grubszą wersję firmy Luther Mercantile International (LMII), które mają na początek 0,25 cala.

ALE pamiętaj, że nadal będziesz musiał obrabiać szyjkę, aby zrekompensować wzrost grubości podstrunnicy. Inna korzyść, jaką otrzymujesz, jest kosmetyczna, ponieważ płytka PCB jest teraz całkowicie osadzona wewnątrz podstrunnicy, co znacznie ułatwia wykończenie krawędzi (i wygląda znacznie ładniej!) i upraszcza frezowanie gryfu.

Inżynieria (zignoruj, jeśli chcesz):

Nawiasem mówiąc, nie wpływa to tak bardzo na sztywność karku. Materiał PCB jest znacznie sztywniejszy niż oryginalne drewno podstrunnicy (moduł mahoniowy: 10,6 GPa w porównaniu z modułem FR4: 24 GPa), a ponieważ budujemy ukulele, nie ma dużej ilości naprężenia strun, które w przeciwnym razie mogłoby się zniekształcić (skręcenie lub osnowy) szyję.

Jedną z bardzo interesujących kwestii (którą prawdopodobnie nadal powinienem obliczyć) jest to, co dzieje się z temperaturą. Generalnie dla drewna, równolegle do słojów, współczynnik rozszerzalności cieplnej wynosi w przybliżeniu 3 x 10^-6/K, a dla FR4 14×10^-6/K. Jest więc dość znacząca różnica. Problem polega na tym, że wraz ze zmianą temperatury w gryfie powstaje napięcie, co z kolei rozstraja struny. Jest to coś, co można skompensować, nakładając podobną warstwę po przeciwnej stronie osi neutralnej lub umieszczając FR4 jak najbliżej osi neutralnej. Ale to zostanie na 2.0… Coś do modelowania i oceny.

Elektronika mieści się w korpusie uke. Otwory są wycięte w ścianie bocznej (nie w płycie rezonansowej!) UKE, aby zrobić miejsce na wyświetlacz i enkoder obrotowy, a także płytkę dostępową do przechowywania Arduino Micro i zapewnienia dostępu do interfejsu USB. Konstrukcja i lokalizacja płyty dostępowej/mocowania prawdopodobnie mogłyby zostać ulepszone, aby połączenie USB wychodziło w wygodniejszym miejscu, ale w obecnej formie nie jest tak źle, ponieważ nie przeszkadza to podczas gry.

Zarys kroków jest następujący:

  1. Zbierz materiały
  2. Zdobądź potrzebne narzędzia
  3. Zmiel szyję, aby pomieścić grubszą podstrunnicę
  4. Wyfrezuj podstrunnicę, aby wykonać otwory w wymaganych miejscach i utworzyć kieszenie na deskę i diody LED
  5. Zdobądź i zbuduj płytkę PCB zawierającą diody LED
  6. Wyfrezuj otwory dostępowe w korpusie Ukulele dla wyświetlacza OLED, enkodera obrotowego i panelu dostępu
  7. Wykonaj nakładki
  8. Podłącz przewody do PCB; podłącz i przetestuj elektronikę
  9. Przymocuj szyję do korpusu Ukulele
  10. Wywierć uchwyt dostępowy, aby wprowadzić przewody PCB do korpusu
  11. Wyrównaj i przyklej płytkę PCB i podstrunnicę do szyi
  12. Wyrównaj krawędzie podstrunnicy do szyi (usuń nadmiar materiału)
  13. Zainstaluj przewody progowe
  14. Zastosuj maskowanie i nałóż wykończenie na Ukulele
  15. Wyrównaj i przymocuj mostek
  16. Zainstaluj elektronikę i przetestuj.
  17. Zainstaluj tunery i strunę instrumentu
  18. Zaprogramuj sterownik UKE
  19. Zaskocz świat swoją niesamowitością Ukulele!

Krok 2: Zbierz materiały

Nasza lista materiałów wygląda tak:

  1. Zestaw Ukulele - Użyłem zestawu Grizzly Concert Ukulele (zestaw Grizzly Uke w Amazon), ale wygląda na to, że został wycofany. Zimo robi podobny model (Zimo Uke Kit @ Amazon), który wygląda na to, że spełni swoje zadanie
  2. Podstrunnica ukulele, wstępnie nacinana (podstrunnice LMII Uke). Dopasują podstrunnicę do twojej wagi, co oszczędzi bałaganu
  3. Epoxy - do przyklejenia podstrunnicy do gryfu. Wybrałem żywicę epoksydową, ponieważ jest kompatybilna z materiałem PCB. Poszukaj czegoś z co najmniej 60 minutami życia zawodowego. NIE używaj 5-minutowych typów, potrzebujesz czasu na wprowadzenie zmian
  4. Druty progowe - dostępne również w LMII
  5. Niestandardowe PCB - pliki Altium są tutaj. Zdecydowałem się na normalny materiał typu FR4. Płyty flex (poliimid) byłyby ciekawą (jeśli droższą) alternatywą, ponieważ mogą być znacznie cieńsze
  6. 48x Neopikselowe (SK6812) diody LED. Dostępne w Adafruit i Digikey
  7. 48x 0.1uF 0402 caps - większe są dopuszczalne, ale trzeba uważać na rozmieszczenie
  8. Przewód przyłączeniowy - co najmniej 4 do 6 kolorów, aby uniknąć nieporozumień, używałem głównie drutu o grubości 28. Obserwuj spadek prądu stałego na połączeniach zasilania LED (zarówno VCC, jak i GROUND…ten prąd musi wrócić do źródła!)
  9. Enkoder obrotowy - PEC16-4220F-S0024
  10. Fantazyjne drewniane pokrętło - do enkodera obrotowego (mam swoją z LMII)
  11. Wyświetlacz OLED - z systemów 4D Wyświetlacze OLED
  12. Zewnętrzna bateria USB - cały czas tańsza, a do tego zapasowe!
  13. Arduino MIKRO
  14. Blacha mosiężna - do wykonania płytki do trzymania arduino i ramki do wyświetlacza
  15. Różne materiały eksploatacyjne w tym: papier ścierny, wykończenie uretanowe, patyczki do lodów, gumki, lut, topnik, pędzle, taśma dwustronna (lubię taśmę UHC firmy 3M) i małe mosiężne wkręty do drewna (do płyty)
  16. Opcjonalne ulepszenia Ukulele - lepsze stroiki, lepsze struny, lepsze siodełko i siodełko, intarsja, jeśli chcesz pokazać swoją waleczność lutnika)

Krok 3: Zdobądź potrzebne narzędzia

Wcześniej czy później będziesz musiał uzyskać lub uzyskać dostęp do tych:

Nasza lista narzędzi obejmuje:

  1. Frezarka - preferowana CNC, ale może nawet z routerem i dużo szczęścia. Użyłem kombinowanej frezarki/routera CNC
  2. Frezy do frezowania - preferowane węgliki. Frezy wybierane przez frezy palcowe, ponieważ obrabiamy drewno, a nie metal
  3. Zaciski - dużo ich. Głównie potrzebne do trzymania części podczas klejenia
  4. Lutownica - mała końcówka do lutowania powierzchniowego
  5. Mikroskop lub lupa - możesz próbować lutować samymi oczami, ale nie polecam, minimum 10x
  6. Pęsety (do umieszczania części na miejscu)
  7. Narzędzia frettingowe (patrz odpowiednie narzędzia na LMII tutaj, ale używałem tego, co miałem w domu i robiłem; młotki, pilniki i frezy)
  8. Różne narzędzia ręczne, takie jak dłuta do drewna, śrubokręty, miękki młotek lub młotek z surowej skóry (do frettingu) itp.
  9. Materiały ścierne - różne grysy papieru ściernego

Nasze narzędzia programowe obejmują (niektóre są opcjonalne w zależności od budżetu/pomysłowości):

  1. Oprogramowanie Arduino
  2. Kod źródłowy Ukulele (https://github.com/conrad26/Ukulele)
  3. Pakiet układu PCB - użyłem Altium, ponieważ darmowa wersja Eagle nie obsługuje żądanego rozmiaru płytki. Altium to w pełni funkcjonalny pakiet układów i nie jest tak naprawdę w przedziale cenowym dla hobbystów. Dołączyłem pliki Gerber na mojej stronie do prototypu, ale zdecydowanie wymagają aktualizacji
  4. Oprogramowanie do modelowania 3D - używałem SolidWorks, ale jedną darmową alternatywą jest FreeCAD (https://www.freecadweb.org/)
  5. Oprogramowanie CAM - takie jak FeatureCAM firmy Autodesk do tworzenia plików frezarskich NC.

Połączenie eksportu plików krokowych 3D z Altium wraz z modelem 3D podstrunnicy eliminuje wiele trudności w upewnieniu się, że wszystko się zgadza, ale nie jest to wymagane. Staranny układ pozwoli osiągnąć ten sam wynik.

Teraz, gdy wiemy, co chcemy zrobić i co musimy zrobić, zbudujmy ukulele.

Krok 4: Frezuj szyję, aby pomieścić grubszą podstrunnicę

Frezuj szyję, aby pomieścić grubszą podstrunnicę
Frezuj szyję, aby pomieścić grubszą podstrunnicę

Przed frezowaniem należy pamiętać, że MUSI zostać zachowana oryginalna płaskość powierzchni montażowej podstrunnicy, w przeciwnym razie będzie skręcana podstrunnica, co prowadzi do różnego rodzaju problemów z poziomowaniem progu.

Po prostu nie idź tam, nie spiesz się i ostrożnie i sztywno zaciśnij szyjkę i sprawdź wyrównanie do frezu na całej szyi przed cięciem. Czas spędzony tutaj zaoszczędzi ci później wiele smutku.

Jednym z powodów, dla których zdecydowałem się na grubszą podstrunnicę nad wkładką w gryfie, była zwiększona powierzchnia mocowania (sklejania). Innym powodem jest to, że ułatwia frezowanie szyjki. Po prostu wycinasz brzęcząc całą powierzchnię na wymaganą wysokość.

Krok 5: Uzyskaj i zbuduj płytkę PCB Trzymając diody LED

Uzyskaj i zbuduj płytkę PCB Trzymając diody LED
Uzyskaj i zbuduj płytkę PCB Trzymając diody LED
Uzyskaj i zbuduj płytkę PCB Trzymając diody LED
Uzyskaj i zbuduj płytkę PCB Trzymając diody LED

Całość wlutowałem ręcznie. Opakowania LED są szczególnie łatwe do stopienia, dlatego należy uważać, aby ich nie uszkodzić. Proponuję nosić pasek statyczny, ponieważ ciąg jest zależny od działania każdej diody LED.

Konstrukcja podstrunnicy oparta jest na diodach LED WS2812B. Postanowiłem wykonać tylko pierwszą oktawę podstrunnicy (48 diod LED!!). Każda dioda LED może być traktowana jako jeden bit w rejestrze przesuwnym. Rejestr przesuwny jest taktowany z częstotliwością 800 kHz. Użyłem biblioteki Adafruit (patrz rozdział o programowaniu), aby szybko uruchomić i uruchomić.

Zacząłem projektować w Eagle, ale rozmiar płyty jest ograniczony do 4 x 5 cali, więc musiałem (lub bardziej poprawnie, zdecydowałem się) przełączyć na Altium. Używam Altium w pracy, więc w rzeczywistości wszystko to przyspieszyło. Projekt Altium, schematy i pliki pcb (oraz części biblioteczne) są na mojej stronie. Deska ma kształt trapezu i około 10 cali długości. Myślę, że powinienem był trochę bardziej skompresować kontur (kolejny spin!) Montaż nie był zły, ale jeśli możesz sobie na to pozwolić, naprawdę polecam porządną lutownicę (JBC Soldering Irons) i dobry mikroskop. Tak, jestem rozpieszczony i nie, nie mam takich rzeczy w moim domowym laboratorium. Jestem tani.

Zleciłem wykonanie desek w Sunstone. $129 za dwie deski. Gwarantowana tygodniowy obrót. Nie oszczędzaj jednak na wysyłce. Nie zauważyłem, że korzystałem z ziemi UPS i skończyło się na tym, że czekałem dodatkowy tydzień na przybycie moich desek. Całkowity czas montażu to około 2 godziny (98 części).

Krok 6: Frezuj podstrunnicę

Image
Image
Otwory dostępu do młyna w korpusie ukulele
Otwory dostępu do młyna w korpusie ukulele

Musimy wyfrezować podstrunnicę, aby zrobić otwory w wymaganych miejscach i stworzyć kieszenie na deskę i diody LED.

Stworzyłem model 3D ukończonej podstrunnicy w Solidworks i stworzyłem procedurę frezowania CNC za pomocą FeatureCAM.

Dolna część podstrunnicy (najbliższa otworu rezonansowego) będzie musiała być cieńsza, aby uwzględnić skokową zmianę wysokości między szyją a ciałem. Zdecydowanie warto przetestować dopasowanie kilka razy, aby upewnić się, że jest odpowiednio dopasowany.

Z perspektywy czasu powinienem był odciąć nieużywane części podstrunnicy, aby lepiej pasowały do frezarki (mój tani frez miał tylko 12 przesuw w osi X). Kolejność operacji powinna być ustawiona do pierwszej regulacji grubości frezowania przed frezowanie kieszeni, co powinno prowadzić do mniejszej liczby wyrw między kieszeniami.

W razie potrzeby dokonaj ręcznych regulacji, aby dodać miejsce na okablowanie. Ważną rzeczą, na którą należy zwrócić uwagę, jest to, że w niektórych kieszeniach przebiłem się do szczeliny, w której pójdzie drut progu. Biorąc pod uwagę, że jest to dyrygent, upewnij się, że nie spowoduje to zwarcia niczego ważnego. Zmniejsza również wytrzymałość materiału utrzymującego próg na miejscu. Projekt powinien zostać zmodyfikowany, aby nigdy nie przecinał się z otworem progowym.

Krok 7: Wyfrezuj otwory dostępowe w korpusie ukulele

Otwory dostępu do młyna w korpusie ukulele
Otwory dostępu do młyna w korpusie ukulele

Ręcznie wyfrezowałem otwory dostępowe w korpusie. Najtrudniejsze jest znalezienie najbardziej płaskiego obszaru bardzo zakrzywionej powierzchni. Zaznacz kontur ołówkiem i stopniowo frezuj materiał, aż uzyskasz dokładne dopasowanie do wyświetlacza OLED. Uzyskałem obrobioną mosiężną ramkę i przymocowałem ją taśmą klejącą 3M VHB.

Ponieważ żadne z nich nie wymaga dużej precyzji, enkoder obrotowy i otwory w panelu dostępowym są znacznie łatwiejsze do wykonania.

Krok 8: Wykonaj nakładki

Wykonaj nakładki
Wykonaj nakładki
Wykonaj nakładki
Wykonaj nakładki
Wykonaj nakładki
Wykonaj nakładki

Musisz również wykonać nakładki na osłonę wyświetlacza i panel dostępu. Panel dostępu wymaga otworu (prostokątnego) na złącze USB (mikro). Po prostu użyj istniejącego złącza w Arduino, ponieważ nie ma wielu opcji montażu panelowego dla micro USB. (chociaż gdybym projektował od podstaw, to dałbym jeden z nich wygląd)

Aby utrzymać płytę na miejscu, wymodeluj wsporniki L z mosiądzu i przylutuj je z tyłu płyty dostępowej. Pozwala to na pewną swobodę w pozycjonowaniu. Aby uzyskać prawidłowe pozycjonowanie, najpierw utwórz płytę montażową perfboard (z otworami montażowymi) dla Arduino MICRO i przymocuj do niej wsporniki L za pomocą śrub maszynowych 2-56. Następnie możesz dostosować lokalizację, aby wyrównać port USB i dokładnie oznaczyć lokalizacje wsporników na płycie. Usuń wsporniki z płyty perforowanej i przylutuj je na miejscu. Na koniec zamontuj zespół płyty perforowanej.

Użyłem czterech małych mosiężnych wkrętów do drewna, aby utrzymać mosiężny panel dostępu na miejscu.

W tym miejscu zalecam dopasowanie testowe przed rozpoczęciem ostatecznego montażu. Ten krok jest opcjonalny, ale zalecany. O wiele łatwiej jest dokonać korekty przed klejeniem.

Krok 9: Podłącz przewody do PCB; Podłącz i przetestuj elektronikę

Image
Image
Przymocuj szyję do ciała ukulele
Przymocuj szyję do ciała ukulele

Nie podłączaj jeszcze elektroniki na stałe. Podłącz przewody do płytki drukowanej, upewniając się, że pozostawiłeś wystarczająco dużo luzu, aby wyprowadzić otwór dostępowy. Ewentualnie trzeba je na stałe przymocować do płytki Arduino MICRO (na zdjęciach widać Arduino UNO, którego użyłem do tworzenia kodu)

Krok 10: Przymocuj szyję do ciała ukulele

Przymocuj szyję do korpusu Ukulele zgodnie z instrukcjami dołączonymi do zestawu Ukulele. Szczególnie zwracaj uwagę na wyrównanie powierzchni podstrunnicy do korpusu uke.

Krok 11: Wywierć otwór dostępowy, aby wprowadzić przewody PCB do korpusu

Wywierć otwór dostępowy, aby wprowadzić przewody PCB do korpusu
Wywierć otwór dostępowy, aby wprowadzić przewody PCB do korpusu

Gdy klej wyschnie, wywierć otwór ~1/4 (10 mm) pod kątem, aby umożliwić przewodom z PCB poprowadzenie do korpusu Ukulele. Uważaj, aby nie uszkodzić płyty rezonansowej.

Może być konieczne utworzenie małej kieszeni, aby uwzględnić grubość drutów pod deską (lub opcjonalnie umieścić połączenia na górze i umieścić wypukłość w podstrunnicy).

W tym momencie kolejny test nie zaszkodzi.

Krok 12: Wyrównaj i przyklej płytkę PCB i podstrunnicę do szyi

Wyrównaj i przyklej płytkę drukowaną i podstrunnicę do szyi
Wyrównaj i przyklej płytkę drukowaną i podstrunnicę do szyi

Sugeruję przemyślenie mocowania (i wypróbowanie!) przed klejeniem. Możesz ukształtować blok ukształtowany do spodu szyi, aby uzyskać płaską powierzchnię dociskową. Podstrunnica jest w tym momencie większa niż szyja, więc musisz na to pozwolić.

Uważaj, aby żywica epoksydowa nie dostała się na żadną powierzchnię, którą chcesz później wykończyć. Jeszcze lepiej nałóż maskowanie na wszystkie niesklejone powierzchnie przed przyklejeniem, aby upewnić się, że trafi tylko tam, gdzie zamierzałeś.

Użyj żywicy epoksydowej o minimalnej żywotności 60 minut… będziesz potrzebować tego wszystkiego.

Najpierw przyklej PCB na miejscu, upewniając się, że nadmiar kleju nie wyciska się na powierzchnię klejenia podstrunnicy. Zapewnia to metodę wyrównania podstrunnicy z szyją. Płytka ma gładkie wykończenie maski lutowniczej, więc zmatowiłem ją odrobiną papieru ściernego, aby nadać epoksydowi nieco lepsze wykończenie powierzchni.

Wyrównaj i przyklej podstrunnicę do szyi. Uważaj, aby nie pozostawić żadnych kieszeni, które później mogą stać się rezonansowe (buzz!). Uważaj również, aby klej nie dostał się na powierzchnie LED.

Gdy klej wyschnie, możesz jeszcze raz podłączyć przewody i przetestować elektronikę. Jedna zła dioda LED sprawi, że znienawidzisz życie. Miałem jedną uszkodzoną diodę LED (pierwszą!) na prototypie i musiałem wykonać trochę kreatywnej obróbki drewna, aby uzyskać dostęp do uszkodzonej diody LED i ją czysto załatać.

Krok 13: Wyrównaj krawędzie podstrunnicy do szyi i dodaj druty progu

Gdy klej wyschnie, możesz zacząć wykańczać krawędzie. Nadmiar materiału podstrunnicy ostrożnie odciąłem (frezem) i ostatni milimetr wykończyłem ręcznie szlifując.

Dodanie drutów progu można po prostu wykonać młotkiem (z plastikową powierzchnią, aby uniknąć uszkodzenia). Tylko nie uderzaj zbyt mocno. Jeśli dopasowałeś drut progowy do gniazd, powinny wejść bez większych trudności.

Trzeba uważać na pęknięcie cienkiej powierzchni kieszeni LED. W prototypie pozwoliłem niektórym kieszeniom LED (w pobliżu 12 progu, gdzie jest mało miejsca) rozciągać się do szczeliny progu. To zły pomysł, ponieważ tworzy słaby punkt, który może (i pękł) po włożeniu drutu progowego.

Krok 14: Zastosuj maskowanie i nałóż wykończenie na ukulele

Zamaskuj podstrunnicę (nie jest wykończona) oraz obszar klejenia mostu i zacznij nakładać wykończenie.

Podczas maskowania obszaru mostka przeczytaj instrukcję wraz z zestawem, a następnie dwukrotnie sprawdź długość skali, aby się upewnić. Zestaw, którego użyłem do prototypu, miał niewłaściwą długość skali i dlatego podał nieprawidłowe wymiary do lokalizacji mostu (ale zawierał notatkę, aby sprawdzić na stronie internetowej najnowsze instrukcje!). Przeczucie podpowiadało mi, że to źle, ale ślepo akceptowałem autorytet.

Zawsze lepiej jest zrozumieć, DLACZEGO coś robisz, niż ślepo postępować zgodnie z instrukcjami.

Na koniec jest wiele samouczków od Luthiers, którzy wiedzą, co robią w sieci, więc polecam skonsultowanie się z nimi przed przejściem do procesu wykańczania.

Oczywiście tego nie zrobiłem, więc użyłem złego uszczelniacza, co skutkowało bardzo ziarnistą powierzchnią. Nie rób tego.

Odrób swoją pracę domową.

Krok 15: Wyrównaj i przymocuj mostek

Wyrównaj i przymocuj mostek
Wyrównaj i przymocuj mostek

Ten krok jest dość prosty, ale ponownie zaplanuj metodę mocowania i wypróbuj ją wcześniej przed klejeniem. Do mocowania mostka użyłem standardowego kleju do drewna.

Krok 16: Zainstaluj elektronikę i przetestuj

Zainstaluj elektronikę i przetestuj
Zainstaluj elektronikę i przetestuj

Teraz nadszedł czas, aby Twoje okablowanie było ładne. Poza tym nie chcesz, żeby wirował wewnątrz ciała i wydawał brzęczące dźwięki lub, co gorsza, jeszcze pękał na scenie.

Kod Arduino można zaktualizować przez port USB, więc naprawdę nie trzeba go rozbierać, chyba że chcesz majstrować.

Krok 17: Zainstaluj tunery i strun instrument

Image
Image
Programowanie Uke
Programowanie Uke

Prawdopodobnie będziesz musiał również wyrównać progi i trochę pobawić się konfiguracją, ale po co się martwić teraz, gdy jesteś tak blisko końca?

Zmodernizowałem tunery i użyłem ładnych strun Aquila, które w niczym nie pomogły dźwiękowi. Więc miej to na uwadze, wydając pieniądze na projekt ukulele…

Krok 18: Programowanie Uke

Ostateczny kod Arduino znajduje się na Github. W kodzie znajduje się kilka wierszy, które wspierają przyszłe ulepszenia (takie jak funkcja metronomu i „suwaki” dla wyświetlacza (element interfejsu użytkownika, który wygląda jak suwak)

Ten kod używa Rotary Encoder Library (Rotary Encoder Arduino Library) do obsługi danych wejściowych użytkownika z Rotary Encoder.

Wykorzystuje również bibliotekę Adafruit Neopixel i przykładowy kod znajdujący się tutaj. Tryby teatralny i tęczy pochodzą z przykładów dostarczonych z biblioteką. (patrz strandtest.ino).

Sterownik ekranu jest dostarczany przez systemy 4D i można go znaleźć na Github tutaj.

W projekcie Ukulele zaimplementowano dwie unikalne funkcje. Pierwsza implementuje bibliotekę akordów, a druga wyświetla przewijaną wiadomość tekstową przy użyciu niestandardowego zestawu znaków.

Załączony schemat pokazuje lokalizacje diod LED podstrunnicy i sposób ich połączenia. Dioda LED 0 znajduje się w prawym górnym rogu.

Krok 19: Jak wyświetlić akord

Jak wyświetlić akord
Jak wyświetlić akord

Funkcja displayChord wyświetla pozycje palców (na razie tylko pierwszą pozycję) dla każdego akordu. Wybrane przez użytkownika akordy (pryma i jakość) są przechowywane jako para indeksów. Te z kolei są używane do sprawdzania palcowania dla każdego akordu.

Użyłem notacji „GCEA” do przechowywania akordów (np. „A” to „2100”). Akordy są wstępnie obliczane dla każdej nuty prymy i przechowywane w zmiennej odpowiadającej jakości akordu. (tak, A major jest przechowywany w pierwszej lokalizacji tablicy „majorChords”, odpowiadającej „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"};

Zauważ, że ponieważ jest to ciąg tekstowy, każda cyfra może również reprezentować wartość szesnastkową, aby uwzględnić pozycje progu większe niż 9. Oznacza to, że A i B będą reprezentować diody LED 10 i 11. W przypadku akordów pierwszej pozycji nie było to problemem).

Ciąg diod LED jest podłączony wzdłużnie w rzędach po 12 (oktawa) wzdłuż każdego ciągu (zaczynając od ciągu A), kolejny ciąg 12 rozpoczyna się od pierwszego progu następnego ciągu (patrz schemat w kroku 18). Jest to ważne, aby algorytm określał, które światła włączyć dla danego akordu. Oznacza to, że piksele od 0 do 11 to diody LED ciągu A, od 12 do 23 to diody LED ciągu E i tak dalej. Podczas parsowania A = „2100” (przechowywany jako ciąg, w kodzie jest również terminator zerowy „\n”), interpretujemy to jako: żadne piksele w ciągu A nie są podświetlone, ani w ciągu E, piksel 0 (prog 1) na strunie C świeci, a piksel 1 (prog 2) na strunie G. Zwróć uwagę, że „0” jest wyłączone, a nie pierwsza dioda LED. Na podstawie okablowania chcemy zapalić diody LED 24 i 37. Poniżej pokazano kod do wyświetlenia akordu.

for (int i = 0; i < 4; i++) { if (int(chord - '0')) { //algorytm parsowania ciągu akordów int ledNumber = int(chord - '0') + (3 - i) * 12 - 1; //patrz powyższa dyskusja, (3-i) to odwrócenie indeksu strip.setPixelColor(ledNumber, 0, 125, 125); //setPixelColor(ledNumber, czerwona wartość, zielona wartość, niebieska wartość) } }

Instrukcja if sprawdza, czy dioda jest wyłączona. Jeśli tak nie jest, to pobiera wartość ascii znaku, akord, i odejmuje wartość ascii dla '0', aby zapalić ledNumber.

strip jest instancją klasy Adafruit_NeoPixel. Funkcja setPixelColor ustawia kolor obliczonego piksela (w tym przypadku ustalony na (0, 125, 125).

Krok 20: Jak wyświetlić przewijaną wiadomość

Jak wyświetlić przewijaną wiadomość
Jak wyświetlić przewijaną wiadomość

Mamy więc tablicę diod LED 12 x 4… dlaczego nie sprawić, by wyświetlała coś innego niż całkiem przypadkowe wzory świetlne!

Pierwszym problemem jest to, że wysokość wyświetlacza (4) jest raczej ograniczona ze względu na ilość napisów na Uke. Przewijanie w poziomie byłoby w większości nieczytelne, ale w orientacji pionowej możemy obsługiwać 4 x 5 znaków biegnących w pionie.

Zorganizowanie znaków w pięć „pionowych” rzędów oznacza, że dwa znaki mogą być wyświetlane jednocześnie, pozostawiając jeden odstęp między każdym znakiem.

Trudność polegała na tym, że nie było standardowego zestawu znaków 4 x 5. Stworzyłem własny, korzystając z załączonego arkusza kalkulacyjnego. Każdy wiersz przypisałem do pojedynczej wartości szesnastkowej (4 bity reprezentujące, który piksel jest włączony lub wyłączony). Kombinacja pięciu wartości szesnastkowych tworzy znak (np. „0” to 0x69996).

Wartości każdego znaku są przechowywane w tablicy w kolejności ASCII. Zestaw znaków zawiera pewne kompromisy z niektórymi literami, ale większość jest dość jasna. (bazgranie na dole arkusza kalkulacyjnego to pomysły, z którymi się bawiłem, ponieważ mamy kolor jako opcję, możemy dodać "głębokość" postaci i ewentualnie uzyskać dodatkową rozdzielczość.

Wyświetlany ciąg jest zawarty w zmiennej ciągu, message.

Tworzony jest bufor reprezentujący wyświetlanie znaków. Myślę, że mogłem po prostu stworzyć duży bufor z całą sekwencją przetłumaczonych wiadomości, zwłaszcza że większość wiadomości ma mniej niż 20 znaków. Zdecydowałem się jednak zamiast tego utworzyć stały trzyznakowy (18-bajtowy) bufor. Tylko dwie postacie są aktywnie wyświetlane, a trzecia to spojrzenie w przyszłość, gdzie ładowana jest następna postać. Ciąg diod LED (pomyśl o tym jako o dużym rejestrze przesuwnym) jest ładowany 48 bitami ciągu. Zmarnowałem trochę miejsca w pamięci, aby łatwiej było to konceptualizować. Każdy nibble ma swoją własną lokalizację w pamięci, podwajając wymagania dotyczące pamięci, ale nie ma zbyt wiele, biorąc pod uwagę rozmiar bufora.

Bufor jest ładowany następnym znakiem, gdy indeks wyjściowy (wskaźnik) dociera do granicy znaku (outputPointer na 5, 11 lub 17).

Aby załadować bufor, pobieramy pierwszy znak z „message” jako wartość ASCII i odejmujemy 48, aby uzyskać indeks w tablicy asciiFont. Wartość w tym indeksie jest przechowywana w codedChar.

Pierwsza część przesuniętego komunikatu odpowiada diodom LED 47, 35, 23 i 11 (dolna część wyświetlacza). Tak więc dla liczby zero 0x0F999F, F (lewy) jest przesuwany o pierwsze, 9 sekund i tak dalej.

Kolejna postać jest ładowana przez maskowanie każdego kęsa i przesuwanie go w prawo. Dla powyższego przykładu algorytm daje (0x0F999F & 0xF00000) >> 20, następnie (0x0F999F & 0x0F0000) >> 16 itd.

indeks int; if (outputPointer == 17 || outputPointer == 5 || outputPointer == 11) { char displayChar = message.charAt(messagePointer); //pobierz pierwszy znak wiadomości long codedChar = asciiFont[displayChar - 48]; if (displayChar == 32) codedChar = 0x000000; messageBuffer[bytePointer+5]=byte((codedChar & 0xF00000) >> 20); //zamaskuj wszystko oprócz ostatniego kęsa i przesuń go o 20 (i tak dalej) messageBuffer[bytePointer+4]=byte((codedChar & 0x0F0000) >> 16); //powinno to umieścić jeden nibble na miejsce w pamięci messageBuffer[bytePointer+3]=byte((codedChar & 0x00F000) >> 12); //wszystkie sześć reprezentują na znaku messageBuffer[bytePointer+2]=byte((codedChar & 0x000F00) >> 8); messageBuffer[bytePointer+1]=byte((codedChar & 0x0000F0) >> 4); messageBuffer[bytePointer] =byte((codedChar & 0x00000F)); if(bytePointer ==0) { //obsługa pętli na bytePointer bytePointer = 12; } else { bytePointer -= 6; //wypełniamy od dołu do góry; UWAGA: trzeba spojrzeć na odwrócenie tego, aby zobaczyć, czy to ułatwi } if (messagePointer == message.length()-1) { //obsługa pętli w komunikacie messagePointer = 0; } else { wskaźnik wiadomości +=1; //przejdź do następnego znaku } }

Po załadowaniu bufora staje się kwestią śledzenia, gdzie znajduje się wskaźnik wyjściowy i ładowania ciągu diod LED poprawnymi 48 bitami (bieżące 4 i poprzednie 44). Jak wspomniano wcześniej, strip jest instancją klasy NeoPixel, a setPixelColor ustawia kolor (RGB) każdego piksela. Funkcja show() przesuwa wyświetlane wartości do ciągu diod LED.

// pętla do ciągłego przesuwania bufora

// chcesz zapisać cały pasek przy każdym przejściu przez pętlę, zmienia się tylko lokalizacja początkowa for (int row=12;row > 0;row--) { index = outputPointer + (12-row); if (indeks > 17) index = outputPointer+(12-wiersz)-18; //pętla, jeśli jest większa niż 17 for (int kolumna=4; kolumna > 0; kolumna--) { strip.setPixelColor(uint16_t(12*(kolumna-1)+(row-1)), uint8_t(RedLED*(bitRead (messageBuffer[indeks], kolumna-1)), uint8_t(GreenLED*(bitRead(messageBuffer[indeks], kolumna-1)), uint8_t(BlueLED*(bitRead(messageBuffer[indeks], kolumna-1)))); //w każdej lokalizacji zapala się dioda LED, jeśli bit jest jeden } } //outputPointer wskazuje na bieżący najniższy bajt w wyświetlanym łańcuchu if (outputPointer == 0) outputPointer=17; w przeciwnym razie outputPointer -= 1; strip.pokaż(); }

Krok 21: Zaskocz świat swoją wspaniałością ukulele

Image
Image

Wykonanie ostatecznego prototypu Ukulele zajęło około 6 miesięcy rozruchów i przestojów.

Mnóstwo nowych technologii do nauczenia się, a może trochę pracy w drewnie i teorii muzyki do rozruchu!

Co zrobić z następną wersją?

  1. Pozbądź się wyświetlacza i enkodera obrotowego. Zastąp je modułem Bluetooth dołączonym do arduino. Kontroluj go zdalnie za pomocą telefonu lub tabletu. Dzięki Bluetooth wszystko jest lepsze.
  2. Zdalnie aktualizuj wzory akordów w czasie rzeczywistym. Coś najlepiej zostawić dla aplikacji.
  3. Osłony LED. Obecna wersja nie zapobiega dostawaniu się mazi do otworów LED. Przyjaciel zrobił kilka małych soczewek, ale nigdy nie mogłem wymyślić, jak sprawić, by pozostały na swoim miejscu.
  4. Alternatywne materiały podstrunnicy, może coś jasnego, o ile utrzymają się progi.
  5. Więcej świateł! Wyeliminuj ograniczenie tekstu, dodając więcej „wierszy”. Jest to tak naprawdę ograniczenie spowodowane rozmiarem podstrunnicy i korpusów LED.

Ponownie zobacz towarzysz Instructable, który opisuje zestaw znaków, który musiałem stworzyć, aby umożliwić przewijanie tekstu.

Dziękuję bardzo za dotarcie tak daleko! Mahalo!

Zalecana: