Obsah:

Jak vybudovat osvětlovací ukulele!: 21 kroků
Jak vybudovat osvětlovací ukulele!: 21 kroků

Video: Jak vybudovat osvětlovací ukulele!: 21 kroků

Video: Jak vybudovat osvětlovací ukulele!: 21 kroků
Video: Princezna to asi nebude 😅😅😅 2024, Červenec
Anonim
Image
Image
Naplánovat
Naplánovat

Hraji na Ukulele. Trochu průměrně (pokud je to slovo), tak jsem si řekl: „Pokud opravdu chcete na dámy zapůsobit, potřebujete prostředky, které je odvedou od katastrofy, která se odehrává na jevišti“. Proto se zrodilo „Light-up Ukulele“.

Tento projekt využívá soupravu Concert Ukulele a přidává LED ovládanou Arduino na každé pozici strun a pražců. Přidává také efektní uživatelské rozhraní OLED a rotační kodér pro výběr režimu a intenzity řetězce LED.

Dokončené hardwarové funkce uke:

  1. Arduino MICRO k propojení s řetězcem LED, displejem a vstupním zařízením.
  2. 48 individuálně programovatelných barevných LED diod
  3. OLED displej
  4. Rotační kodér pro vstup uživatele
  5. Rozhraní USB pro externí napájení a programování Arduino

Software uke má:

  1. Základní režimy ovládání světla, které procházejí LED diodami jejich kroky
  2. Šikovný režim divadelního stanu (velmi praktický pro představení!)
  3. Ovládání intenzity LED
  4. Úplná knihovna akordů všech akordů Ukulele první pozice (hodnota akordu a charakter)
  5. Možnost zobrazit běžící text (svisle) pomocí jedinečné znakové sady 4 x 6 pixelů

Tento návod popisuje dokončený prototyp. Celá sága o vývoji je k dispozici ZDE, včetně některých vzdělávacích (bolestivých) chyb a cenné lekce, proč MUSÍTE dokončit svůj první návrh až do konce (bez ohledu na to, jak ošklivé věci se stávají). Nikdy nevíte všechny věci, které opravdu nevíte, dokud se nedostanete na konec (a pak ještě nevíte!), Ale jste na tom mnohem lépe a jste mnohem chytřejší pro další design.

Prototyp jsem postavil kolem stavebnice Grizzly Concert Ukulele. Počínaje sadou se zbavíte starostí s tělem uke (většinou) a eliminujete většinu skutečné práce luthierského typu. Tyto sady jsou docela kompletní a nejsou tak drahé ve velkém schématu věcí (a méně bolestivé, protože budete dělat chyby).

Krok 1: Vytvořte plán

Naplánovat
Naplánovat

Hmatník (nebo hmatník), který je součástí některých sad, již má pražce připojené. To je dobré/špatné. Je to hezké jako úspora času, ale pokud jde o rozvržení vrtacího vzoru a jeho držení na místě při frézování, je to trochu bolestivé. Poté, co jsem zničil ten, který je součástí sady, rozhodl jsem se (no, neměl jsem jinou možnost než koupit další sadu) koupit nový hmatník.

Při navrhování hmatníku musíme vypočítat nárůst tloušťky potřebné k vložení desky plošných spojů a LED diod (a nezapomeňte na pasivní součásti), ale ne tolik, aby byly diody LED příliš daleko od povrchu hmatníku.

LED deska s plošnými spoji (PCB) je navržena jako jednoduchá 2vrstvá deska. To hodně pomáhá při ruční montáži LED řetězu a poskytuje určitou mechanickou pevnost (je to sklolaminát a epoxid) u krku Ukulele. Začal jsem rozložení v Eagle, ale kvůli omezení velikosti desky jsem skončil pomocí Altium Designer. Schéma Altium a soubory PCB jsou zde.

Hmatník stavebnice měl tloušťku pouhých 0,125 palce. Takže za předpokladu 0,062 palce tlusté desky plošných spojů a umožnění dalších 0,062 palce pro LED diody znamená, že bychom museli hodně vystřihnout (jako ve všech) hmatník. Pro kompenzaci můžeme buď částečně vyříznout kapsy pro LED diody na hmatníku s odpovídající kapsou v krku pro PCB, nebo můžeme nahradit celý hmatník (možnost, kterou jsem použil) za silnější verzi od Luther Mercantile International (LMII), což je 0,25 palce pro začátek.

ALE, pamatujte si, že stále budete muset zpracovat krk, abyste kompenzovali nárůst tloušťky v hmatníku. Další výhoda, kterou získáte, je kosmetická, protože deska plošných spojů je nyní zcela zapuštěna do hmatníku, což výrazně usnadňuje dokončení hran (a vypadá mnohem hezčí!) A zjednodušuje frézování krku.

Technické věci (pokud chcete, ignorujte):

Mimochodem, to opravdu tolik neohrožuje tuhost krku. Materiál PCB je mnohem tužší než původní dřevo hmatníku (modul mahagonu: 10,6 GPa versus modul FR4: 24 GPa) a navíc, protože stavíme Ukulele, neexistuje obrovské množství napětí strun, které by jinak mohlo narušit (zkroucení) nebo warp) krk.

Jedna velmi zajímavá úvaha (kterou bych pravděpodobně ještě měl vypočítat) je to, co se děje při teplotě. Obecně u dřeva, rovnoběžně se zrnem, je tepelný koeficient roztažnosti zhruba 3 x 10^-6/K a pro FR4 je to 14 × 10^−6/K. Je zde tedy docela zásadní rozdíl. Jde o to, že v závislosti na teplotě se v krku vytváří napětí, což zase de-tuning struny. To je něco, co by mohlo být kompenzováno nanesením podobné vrstvy na opačnou stranu neutrální osy nebo tím, že se FR4 co nejvíce přiblíží neutrální ose. Ale to zůstane na 2,0 … Něco, co se dá vymodelovat a vyhodnotit.

Elektronika je umístěna v těle uke. Otvory jsou vyřezány v boční stěně (nikoli v rezonanční desce!) UKE, aby se vytvořil prostor pro displej a rotační kodér, plus přístupová deska pro uložení Arduino Micro a zajištění přístupu k rozhraní USB. Pravděpodobně by bylo možné vylepšit design a umístění přístupové desky/držáku, aby připojení USB vyšlo na pohodlnějším místě, ale jak to stojí, není to tak špatné, protože vám to při hraní nepřekáží.

Přehled kroků je následující:

  1. Shromážděte materiály
  2. Získejte potřebné nástroje
  3. Frézujte krk tak, aby vyhovoval silnějšímu hmatníku
  4. Frézujte hmatník, abyste vytvořili otvory na požadovaných místech a vytvořili kapsy pro desku a LED diody
  5. Získejte a sestrojte desku plošných spojů s LED diodami
  6. Vyfrézujte přístupové otvory v těle Ukulele pro OLED displej, rotační kodér a přístupový panel
  7. Vytvořte krycí desky
  8. Připojte vodiče k DPS; připojte a vyzkoušejte elektroniku
  9. Připojte krk k tělu Ukulele
  10. Vyvrtáním držáku přístupu protáhněte vodiče DPS do těla
  11. Zarovnejte a přilepte desku plošných spojů a hmatník ke krku
  12. Vyrovnejte okraje hmatníku ke krku (odstraňte přebytečný materiál)
  13. Nainstalujte pražcové dráty
  14. Naneste maskování a naneste povrchovou úpravu na Ukulele
  15. Vyrovnejte a připevněte můstek
  16. Nainstalujte elektroniku a vyzkoušejte.
  17. Nainstalujte tunery a navlékněte nástroj
  18. Naprogramujte ovladač Uke
  19. Ohromte svět svou úžasností Ukulele!

Krok 2: Shromážděte materiály

Náš seznam materiálů vypadá takto:

  1. Ukulele kit - Použil jsem Grizzly Concert Ukulele kit (Grizzly Uke Kit na Amazonu), ale zdá se, že bude ukončen. Zimo vyrábí podobný model (Zimo Uke Kit @ Amazon), který vypadá, že svou práci zvládne
  2. Hmatník Ukulele, s drážkou (LMII Uke Fingerboards). Zasunou hmatník do vaší stupnice, což ušetří nepořádek
  3. Epoxid - pro lepení hmatníku na krk. Vybral jsem epoxid, protože je kompatibilní s materiálem PCB. Hledejte něco s minimálně 60 minutami životnosti. NEPOUŽÍVEJTE 5minutové typy, na úpravy potřebujete čas
  4. Fret dráty - k dispozici také od LMII
  5. Vlastní PCB - soubory Altium jsou zde. Rozhodl jsem se pro normální materiál typu FR4. Flex (polyimidové) desky by byly zajímavou (i když dražší) alternativou, protože mohou být mnohem tenčí
  6. 48x LED diody Neopixel (SK6812). K dispozici od společností Adafruit a Digikey
  7. 48x 0,1uF 0402 čepice - větší je přijatelné, ale musíte sledovat umístění
  8. Propojovací drát - alespoň 4 až 6 barev, aby nedošlo k záměně, použil jsem primárně drát o rozměru 28. Sledujte pokles DC na napájecích přípojkách LED (VCC i GROUND … ten proud se musí vrátit ke zdroji!)
  9. Rotační kodér-PEC16-4220F-S0024
  10. Efektní dřevěný knoflík - pro rotační kodér (můj jsem získal z LMII)
  11. OLED displej - od 4D systémů OLED displeje
  12. Externí baterie USB - stále levnější a navíc můžete nosit náhradní díly!
  13. Arduino MICRO
  14. Listová mosaz - aby deska držela arduino a lunetu pro displej
  15. Různé spotřební materiály včetně: smirkového papíru, uretanové úpravy, nanukových tyčinek, gumiček, pájky, tavidla, štětců, oboustranné lepicí pásky (líbí se mi páska UHC od 3M) a malých mosazných vrutů (na desku)
  16. Volitelná vylepšení Ukulele - lepší tunery, lepší struny, lepší matice a sedlo, vložka, pokud chcete předvést svou luthierovější zdatnost)

Krok 3: Získejte potřebné nástroje

Dříve nebo později budete muset získat nebo získat přístup k těmto:

Náš seznam nástrojů obsahuje:

  1. Frézka - upřednostňováno CNC, ale můžete si vystačit i s routerem a spoustou štěstí. Použil jsem kombinovaný CNC mlýn/router
  2. Směrovací bity - upřednostňovány karbidy. Frézy jsou vybrány před koncovými frézami, protože opracováváme dřevo, ne kov
  3. Svorky - spousta z nich. Většinou je potřeba k lepení dílů
  4. Páječka - malý hrot pro povrchové pájení
  5. Mikroskop nebo lupa - můžete zkusit pájet pouze očima, ale nedoporučoval bych to, minimálně 10x
  6. Pinzeta (pro umístění dílů na místo)
  7. Fretting tools (viz správné nástroje na LMII zde, ale použil jsem to, co jsem měl doma a co jsem udělal; kladiva, pilníky a řezačky)
  8. Různé ruční nástroje, jako jsou dláta na dřevo, šroubováky, kladivo s měkkým foukáním nebo surovou kůží (pro fretování) atd.
  9. Abraziva - různé zrnitosti brusného papíru

Mezi naše softwarové nástroje patří (některé jsou volitelné v závislosti na vašem rozpočtu/vynalézavosti):

  1. Software Arduino
  2. Zdrojový kód Ukulele (https://github.com/conrad26/Ukulele)
  3. Balíček rozvržení DPS - použil jsem Altium, protože bezplatná verze Eagle nepodporovala velikost desky, kterou jsem chtěl. Altium je plně vybavený balíček pro rozvržení a není opravdu v cenové kategorii pro fandy. Pro svůj prototyp jsem na své stránky zahrnul soubory Gerber, ale ty rozhodně vyžadují aktualizaci
  4. Software pro 3D modelování - použil jsem SolidWorks, ale jednou bezplatnou alternativou je FreeCAD (https://www.freecadweb.org/)
  5. Software CAM - jako FeatureCAM od Autodesk pro vytváření souboru NC mlýna.

Kombinace exportu 3D krokového souboru z Altia spolu s 3D modelem hmatníku eliminuje mnoho obtíží při zajišťování shody, ale není to podmínkou. Pečlivého rozložení dosáhne stejného výsledku.

Nyní, když víme, co chceme dělat a co k tomu potřebujeme, vytvořme Ukulele.

Krok 4: Vyfrézujte krk a usaďte tlustší hmatník

Vyfrézujte krk a usaďte tlustší hmatník
Vyfrézujte krk a usaďte tlustší hmatník

Před frézováním si všimněte, že MUSÍ být zachována původní rovinnost povrchu montáže hmatníku, nebo budete mít zkroucený hmatník, což vede k nejrůznějším problémům s vyrovnáváním pražců.

Jen tam nechoďte, udělejte si čas a opatrně a pevně upněte krk a před řezáním zkontrolujte zarovnání s frézovacím bitem přes celý krk. Čas zde strávený vám později ušetří mnoho smutku.

Jedním z důvodů, proč jsem se rozhodl pro silnější hmatník přes vložku v krku, byla zvýšená plocha montáže (lepení). Dalším důvodem je, že zjednodušuje frézování krku. Jednoduše bzučíte celý povrch do požadované výšky.

Krok 5: Získejte a sestrojte desku plošných spojů s LED diodami

Získejte a sestrojte desku s LED diodami
Získejte a sestrojte desku s LED diodami
Získejte a sestrojte desku s LED diodami
Získejte a sestrojte desku s LED diodami

Ručně jsem pájel celou sestavu. Obálky LED se obzvláště snadno taví, proto dávejte pozor, abyste je nepoškodili. Doporučuji nosit statický popruh, protože řetězec závisí na každé funkci LED.

Design hmatníku je založen na LED diodách WS2812B. Rozhodl jsem se udělat pouze první oktávu hmatníku (48 LED !!). Každou LED lze v posuvném registru považovat za jeden bit. Posuvný registr je taktován na 800 kHz. K rychlému zprovoznění jsem použil knihovnu Adafruit (viz část programování).

Začal jsem s návrhem v Eagle, ale velikost desky je omezena na 4 x 5 palců, takže jsem musel (nebo přesněji jsem se rozhodl) přepnout na Altium. V práci používám Altium, takže ve skutečnosti mi to všechno zrychlilo. Projekt Altium, schematické soubory a soubory PCB (a části knihovny) jsou na mých stránkách. Deska má lichoběžníkový tvar a je asi 10 palců dlouhá. Myslím, že jsem se měl pokusit obrys ještě trochu zkomprimovat (další roztočení!) Sestavení nebylo špatné, ale pokud si to můžete dovolit, opravdu opravdu doporučuji slušnou páječku (JBC Soldering Irons) a dobrý mikroskop. Ano, jsem rozmazlený a ne, takové věci ve své domácí laboratoři nemám. Jsem levný.

Desky jsem nechal vyrobit v Sunstone. 129 dolarů za dvě desky. Zaručený týdenní obrat. Na zásilce se ale nešetřete. Nevšiml jsem si, že jsem použil UPS UPS a nakonec jsem čekal další týden, než dorazí moje desky. Celková doba montáže byla asi 2 hodiny (98 dílů).

Krok 6: Vyfrézujte hmatník

Image
Image
Otvory pro frézování v těle Ukulele
Otvory pro frézování v těle Ukulele

Musíme frézovat hmatník, abychom vytvořili otvory na požadovaných místech a vytvořili kapsy pro desku a LED diody.

Vytvořil jsem 3D model dokončeného hmatníku v Solidworks a vytvořil rutinu CNC frézování pomocí FeatureCAM.

Spodní část hmatníku (nejblíže zvukovému otvoru) bude nutné ztenčit, aby se zohlednila skoková změna výšky mezi krkem a tělem. Rozhodně stojí za to několikrát vyzkoušet montáž, abyste se ujistili, že je to přiměřeně pohodlné.

Zpětně jsem měl odříznout nepoužité části hmatníku, aby lépe seděl na mlýn (můj levný mlýn měl pouze zdvih osy X 12 “). Pořadí operací by mělo být nastaveno tak, aby první úpravy tloušťky mlýna před frézování kapes, což by mělo vést k menšímu prolomení mezi kapsami.

Proveďte ruční úpravy podle potřeby, abyste přidali místo pro zapojení. Jedna důležitá věc, kterou je třeba poznamenat, je, že v některých kapsách jsem prorazil do štěrbiny, kam půjde pražcový drát. Vzhledem k tomu, že je to dirigent, ujistěte se, že to nakonec nezkratuje nic důležitého. Snižuje také pevnost materiálu, který drží pražce na místě. Design by měl být upraven tak, aby se nikdy neprotínal se slotem pro pražce.

Krok 7: Frézovací přístupové otvory v těle Ukulele

Otvory pro frézování v těle Ukulele
Otvory pro frézování v těle Ukulele

Ručně jsem vyfrézoval přístupové otvory v těle. Nejtěžší je najít „nejplošší“oblast velmi zakřiveného povrchu. Označte obrys tužkou a postupně frézujte materiál, dokud vám OLED displej nebude dobře sedět. Získal jsem opracovanou mosaznou lunetu a připevnil ji pomocí lepicí pásky 3M VHB.

Protože ani jeden nevyžaduje velkou přesnost, je mnohem jednodušší vytvořit otvory rotačního kodéru a přístupového panelu.

Krok 8: Vytvořte krycí desky

Vytvořte krycí desky
Vytvořte krycí desky
Vytvořte krycí desky
Vytvořte krycí desky
Vytvořte krycí desky
Vytvořte krycí desky

Musíte také vyrobit krycí desky pro čelní kryt displeje a přístupový panel. Přístupový panel potřebuje otvor (obdélníkový) pro konektor USB (mikro). Stačí použít stávající konektor na Arduinu, protože pro micro USB není mnoho možností montáže na panel. (ačkoli kdybych navrhoval od nuly, pak bych se na jeden z nich podíval)

Chcete -li desku držet na místě, vyrobte mosazné držáky L a připájejte je k zadní straně přístupové desky. To vám umožní určitou volnost při určování polohy. Abyste dosáhli správného umístění, nejprve vytvořte montážní desku perfboardu (s montážními otvory) pro Arduino MICRO a připevněte k ní držáky L pomocí 2–56 šroubů do stroje. Poté můžete vyladit umístění tak, aby bylo zarovnáno port USB, a přesně označit umístění závorek na desce. Vyjměte držáky z perfboardu a připájejte je na místo. Nakonec namontujte sestavu perfboard.

K upevnění mosazného přístupového panelu na místo jsem použil čtyři malé mosazné šrouby do dřeva.

V tuto chvíli doporučuji před zahájením finální montáže zkušební uložení. Tento krok je volitelný, ale doporučený. Je mnohem jednodušší provést úpravy před lepením.

Krok 9: Připojte vodiče k desce plošných spojů; Připojte a otestujte elektroniku

Image
Image
Připojte krk k tělu Ukulele
Připojte krk k tělu Ukulele

Ještě trvale nepřipojujte elektroniku. Připojte vodiče k desce plošných spojů a ujistěte se, že necháte dostatečnou vůli pro vyvedení přístupového otvoru. Ty nakonec musí být trvale připojeny k desce Arduino MICRO (na fotografiích je Arduino UNO, které jsem použil pro vývoj kódu)

Krok 10: Připevněte krk k tělu ukulele

Připevněte krk k tělu Ukulele podle pokynů dodaných se sadou Ukulele. Zvláště sledujte zarovnání povrchu hmatníku k tělu uke.

Krok 11: Vyvrtejte přístupový otvor a protáhněte dráty DPS do těla

Vyvrtejte přístupový otvor a protáhněte dráty DPS do těla
Vyvrtejte přístupový otvor a protáhněte dráty DPS do těla

Jakmile lepidlo zaschne, vyvrtejte úhel ~ 1/4 (10 mm) pod úhlem, aby dráty z desky plošných spojů mohly vést do těla Ukulele. Ujistěte se, že nepoškodíte rezonanční desku.

Možná budete muset také vytvořit malou kapsu, abyste povolili tloušťku drátů pod deskou (nebo volitelně umístěte připojení nahoře a zahrňte reliéf do hmatníku.)

Další testovací způsob by v tuto chvíli neuškodil.

Krok 12: Zarovnejte a přilepte desku plošných spojů a hmatník na krk

Zarovnejte a přilepte desku plošných spojů a hmatník ke krku
Zarovnejte a přilepte desku plošných spojů a hmatník ke krku

Před lepením navrhuji promyslet upnutí (a vyzkoušet ho!). Možná budete chtít vytvořit blok tvarovaný na spodní stranu krku, aby vám poskytl plochý upínací povrch. Hmatník je v tomto místě větší než krk, takže s tím musíte počítat.

Dávejte velký pozor, aby se vám epoxid nedostal na žádný povrch, který chcete později dokončit. Ještě lépe naneste maskování na všechny nelepené povrchy před lepením, abyste se ujistili, že jde pouze tam, kam jste zamýšleli.

Použijte epoxid s minimální životností 60 minut … budete to všechno potřebovat.

Nejprve nalepte desku plošných spojů na místo a zajistěte, aby se přebytečné lepidlo nevytlačilo na lepicí plochu hmatníku. To poskytuje způsob zarovnání hmatníku ke krku. Deska plošných spojů má hladkou povrchovou úpravu pájky, takže jsem ji zdrsnil trochou brusného papíru, aby měl epoxid mírně vylepšenou povrchovou úpravu.

Zarovnejte a nalepte hmatník na krk. Dávejte pozor, abyste nenechali žádné kapsy, které by později mohly být rezonanční (bzučení!). Dávejte také pozor, aby se vám na povrchy LED nedostalo lepidlo.

Jakmile lepidlo zaschne, možná budete chtít drát a otestovat elektroniku ještě jednou. Jedna špatná LED vám způsobí, že nenávidíte život. Na prototypu jsem měl jednu špatnou LED (první!) A musel jsem udělat nějaké kreativní zpracování dřeva, abych se dostal k vadné LED a čistě ji opravil.

Krok 13: Vyrovnejte hrany hmatníku na krk a přidejte pražcové dráty

Jakmile lepidlo zaschne, můžete začít s dokončováním okrajů. Přebytečný materiál hmatníku jsem opatrně odřízl (pomocí mlýna) a poslední milimetr jsem dokončil ručním broušením.

Přidání pražcových drátů lze jednoduše provést pomocí kladiva (s plastovým čelem, aby se zabránilo poškrábání). Jen příliš netlučte. Pokud jste spárovali drát pražců se sloty, měli by jít dovnitř bez větších obtíží.

Věc, na kterou si musíte dát pozor, je rozbití tenkého povrchu kapsy LED. Na prototypu jsem dovolil, aby se některé kapsy LED (poblíž 12. pražce, kde je málo místa) rozšířily do slotu pražce. To je špatný nápad, protože to vytváří slabé místo, které může (a také prasklo) po vložení pražcového drátu.

Krok 14: Aplikujte maskování a na Ukulele použijte Dokončit

Zamaskujte hmatník (nedokončí se) a oblast lepení mostu a začněte nanášet povrch.

Při maskování oblasti můstku si přečtěte pokyny k soupravě a poté si pro jistotu znovu zkontrolujte délku stupnice. Souprava, kterou jsem použil pro prototyp, používala špatnou délku měřítka, a proto poskytovala nesprávné rozměry pro lokalizaci mostu (ale měla poznámku pro kontrolu nejnovějších pokynů na webových stránkách!). Moje střeva mi řekla, že je to špatně, ale slepě jsem přijal autoritu.

Vždy je lepší pochopit PROČ něco děláte, než slepě dodržovat pokyny.

Na závěr existuje spousta tutoriálů od Luthiers, kteří vědí, co dělají na webu, takže je doporučuji konzultovat před skokem do procesu dokončování.

To jsem samozřejmě neudělal, takže jsem nakonec použil špatný tmel, což mělo za následek velmi zrnitý povrch. Nedělej to.

Udělej si domácí úkol.

Krok 15: Zarovnejte a připevněte můstek

Vyrovnejte a připevněte můstek
Vyrovnejte a připevněte můstek

Tento krok je docela přímočarý, ale znovu si naplánujte svůj způsob upnutí a vyzkoušejte si ho před lepením předem. K připevnění můstku jsem použil standardní lepidlo na dřevo.

Krok 16: Nainstalujte elektroniku a vyzkoušejte

Nainstalujte elektroniku a vyzkoušejte
Nainstalujte elektroniku a vyzkoušejte

Nyní je načase, aby byla vaše kabeláž hezká. Navíc nechcete, aby se to pohybovalo uvnitř těla a vydávalo bzučivé zvuky nebo ještě hůře, ale lámalo se na jevišti.

Kód Arduino lze aktualizovat prostřednictvím portu USB, takže jej opravdu není třeba rozebírat, pokud nechcete vrtat.

Krok 17: Nainstalujte tunery a navlékněte nástroj

Image
Image
Programování Uke
Programování Uke

Pravděpodobně budete také muset trochu vyrovnat pražce a pohrát si s nastavením, ale proč si dělat starosti teď, když jste tak blízko konce?

Vylepšil jsem tunery a použil pěkné struny Aquila, které zvuku vůbec nepomohly. Mějte to tedy na paměti, když střílíte peníze do projektového ukulele…

Krok 18: Programování Uke

Konečný kód Arduino je na Githubu. V kódu je několik řádků na podporu budoucích vylepšení (jako funkce metronomu a „posuvníky“displeje (prvek uživatelského rozhraní, který vypadá jako posuvník)

Tento kód používá knihovnu Rotary Encoder Library (Rotary Encoder Arduino Library) ke zpracování vstupu uživatele z Rotary Encoder.

Používá také knihovnu Adafruit Neopixel a ukázkový kód zde umístěný. Režimy divadlo a duha jsou odvozeny z příkladů dodávaných s knihovnou. (viz strandtest.ino).

Ovladač displeje je dodáván systémy 4D a najdete jej na Githubu zde.

Pro projekt Ukulele jsou implementovány dvě jedinečné funkce. První implementuje knihovnu akordů a druhý zobrazuje rolovací textovou zprávu pomocí vlastní znakové sady.

Přiložený diagram ukazuje umístění LED hmatníku a způsob jejich připojení. LED 0 je umístěna v pravém horním rohu.

Krok 19: Jak zobrazit akord

Jak zobrazit akord
Jak zobrazit akord

Funkce displayChord zobrazuje pozice prstů (prozatím pouze první pozice) pro každý akord. Akordy vybrané uživatelem (kořenová nota a kvalita) jsou uloženy jako dvojice indexů. Ty zase slouží k vyhledání prstokladů pro každý akord.

K uložení akordů jsem použil notaci „GCEA“(např. „A“je „2100“). Akordy jsou předem vypočítány pro každou kořenovou notu a uloženy v proměnné odpovídající kvalitě akordu. (takže A dur je uložen v prvním umístění pole „majorChords“, což odpovídá „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 "};

Všimněte si, že jelikož se jedná o textový řetězec, každá číslice může také představovat hexadecimální hodnotu, která odpovídá pozicím pražců větším než 9. To znamená, že A a B by představovaly LED 10 a 11. U akordů první polohy to nebyl problém).

Řetězec LED je zapojen podélně v řadách 12 (oktáva) podél každého řetězce (počínaje řetězcem A), následný běh 12 začíná prvním pražcem dalšího řetězce (viz diagram v kroku 18). To je důležité, aby algoritmus určil, která světla se mají pro daný akord zapnout. To znamená, že pixely 0 až 11 jsou LED diody řetězce A, 12 až 23 jsou diody LED řetězce E atd. Když analyzujeme A = "2100" (uloženo jako řetězec, v kódu je také nulový terminátor "\ n"), interpretujeme to takto: žádné pixely na řetězci A nesvítí, ani na řetězci E, pixel 0 (pražce 1) na řetězci C svítí a pixel 1 (pražci 2) na řetězci G. Všimněte si, že „0“nesvítí, nikoli první LED. Na základě zapojení chceme rozsvítit LED 24 a 37. Kód pro zobrazení akordu je uveden níže.

for (int i = 0; i <4; i ++) {if (int (chord - '0')) {// algoritmus pro analýzu řetězce akordů int ledNumber = int (akord - '0') + (3 - i) * 12 - 1; // viz výše uvedená diskuse, (3-i) má obrátit indexový pás. setPixelColor (ledNumber, 0, 125, 125); // setPixelColor (ledNumber, červená hodnota, zelená hodnota, modrá hodnota)}}

Příkaz if kontroluje, zda LED nesvítí. Pokud tomu tak není, vezme hodnotu ascii znaku, akord a odečte hodnotu ascii pro '0', aby se rozsvítilo číslo ledNumber.

strip je instancí třídy Adafruit_NeoPixel. Funkce setPixelColor nastavuje barvu pro vypočítaný pixel (v tomto případě fixní na (0, 125, 125).

Krok 20: Jak zobrazit rolovací zprávu

Jak zobrazit rolovací zprávu
Jak zobrazit rolovací zprávu

Takže máme řadu 12 x 4 LED diod … proč nezajistit, aby zobrazovaly něco jiného než docela náhodné světelné vzory!

Prvním problémem je, že výška zobrazení (4) je poměrně omezená kvůli počtu řetězců na Uke. Horizontální posouvání by bylo většinou nečitelné, ale ve svislých orientacích můžeme podporovat 4 x 5 znaků běžících svisle.

Uspořádání znaků do pěti „svislých“řádků znamená, že lze současně zobrazit dva znaky a mezi jednotlivými znaky je mezera v jednom řádku.

Problém byl v tom, že neexistovala standardní znaková sada 4 x 5. Vytvořil jsem si vlastní pomocí přiložené tabulky. Každému řádku jsem přiřadil jednu hexadecimální hodnotu (4 bity představující, který pixel je zapnutý nebo vypnutý). Kombinace pěti hexadecimálních hodnot tvoří znak (např. „0“je 0x69996).

Hodnoty pro každý znak jsou uloženy v poli v pořadí ASCII. Znaková sada dělá s určitými písmeny určité kompromisy, ale většina je poměrně jasná. (Čmárání v dolní části tabulky jsou nápady, se kterými jsem si hrál, protože máme možnost barvy, můžeme postavě dodat „hloubku“a případně získat nějaké dodatečné rozlišení.

Řetězec, který se má zobrazit, je obsažen v řetězcové proměnné, zprávě.

Je vytvořena vyrovnávací paměť reprezentující zobrazení znaků. Myslím, že jsem mohl jednoduše vytvořit velkou vyrovnávací paměť s celou sekvencí přeložených zpráv, zejména proto, že většina zpráv bude mít méně než 20 znaků. Místo toho jsem se rozhodl vytvořit pevný tříznakový (18 bajtů) vyrovnávací paměť. Aktivně se zobrazují pouze dva znaky a třetí je pohled dopředu, kde je načten další znak. Řetězec LED (představte si to jako velký posuvný registr) je načten se 48 bity pro řetězec. Ztratil jsem trochu místa v paměti, aby to bylo jednodušší pojmout. Každá okuska dostane své vlastní paměťové místo, což zdvojnásobí paměťové nároky, ale vzhledem k velikosti vyrovnávací paměti to moc není.

Vyrovnávací paměť se načte dalším znakem, když se výstupní index (ukazatel) dostane na hranici znaků (outputPointer na 5, 11 nebo 17).

Chcete -li načíst vyrovnávací paměť, uchopíme první znak ve „zprávě“jako hodnotu ASCII a odečteme 48, abychom získali index v poli asciiFont. Hodnota v tomto indexu je uložena v codedChar.

První posunutá část zprávy odpovídá LED diodám 47, 35, 23 a 11 (spodní část displeje). Takže pro číslo nula 0x0F999F je F (vlevo) posunuto na první, 9 sekund a tak dále.

Další znak se načte tak, že každou kousku zamaskujete a posunete doprava. U výše uvedeného příkladu dává algoritmus (0x0F999F & 0xF00000) >> 20, poté (0x0F999F & 0x0F0000) >> 16 atd.

int index; if (outputPointer == 17 || outputPointer == 5 || outputPointer == 11) {char displayChar = message.charAt (messagePointer); // uchopte první znak zprávy long codedChar = asciiFont [displayChar - 48]; if (displayChar == 32) codedChar = 0x000000; messageBuffer [bytePointer+5] = byte ((codedChar & 0xF00000) >> 20); // zamaskujte vše kromě posledního okusování a přesuňte jej o 20 (a tak dále) messageBuffer [bytePointer+4] = byte ((codedChar & 0x0F0000) >> 16); // toto by mělo dát jednu nibble na umístění paměti messageBuffer [bytePointer+3] = byte ((codedChar & 0x00F000) >> 12); // všech šest představuje na znaku messageBuffer [bytePointer+2] = byte ((codedChar & 0x000F00) >> 8); messageBuffer [bytePointer+1] = byte ((codedChar & 0x0000F0) >> 4); messageBuffer [bytePointer] = byte ((codedChar & 0x00000F)); if (bytePointer == 0) {// zpracovat smyčku kolem na bytePointer bytePointer = 12; } else {bytePointer -= 6; // plníme zdola nahoru; POZNÁMKA: je třeba se podívat na to, jak to zvrátit, aby se zjistilo, zda to usnadňuje} if (messagePointer == message.length ()-1) {// zvládnout smyčku kolem zprávy messagePointer = 0; } else {messagePointer += 1; // přechod na další znak}}

Jakmile je vyrovnávací paměť načtena, je otázkou sledování, kde je výstupní ukazatel, a načítání řetězce LED se správnými 48 bity (aktuální 4 a předchozí 44). Jak již bylo zmíněno dříve, strip je instancí třídy NeoPixel a setPixelColor nastavuje barvu (RGB) každého pixelu. Funkce show () posune zobrazené hodnoty na řetězec LED.

// smyčka pro nepřetržité přesouvání vyrovnávací paměti

// chcete vypsat celý pás při každém průchodu smyčkou, změní se pouze počáteční umístění pro (int řádek = 12; řádek> 0; řádek-) {index = outputPointer + (12 řádek); if (index> 17) index = outputPointer+(12-řádek) -18; // smyčka, pokud je větší než 17 pro (int sloupec = 4; sloupec> 0; sloupec--) {strip.setPixelColor (uint16_t (12*(sloupec-1)+(řádek-1)), uint8_t (RedLED*(bitRead (messageBuffer [index], sloupec-1))), uint8_t (GreenLED*(bitRead (messageBuffer [index], sloupec-1))), uint8_t (BlueLED*(bitRead (messageBuffer [index], sloupec-1))))); // v každém místě rozsvítí LED, pokud je bit jedna}} // outputPointer ukazuje na aktuální nejnižší bajt v zobrazovacím řetězci if (outputPointer == 0) outputPointer = 17; else outputPointer -= 1; strip.show (); }

Krok 21: Amazing the World with your Ukulele Awsomeness

Image
Image

Konečný prototyp Ukulele trval asi 6 měsíců startů a zastávek, než se stáhl.

Spousta nových technologií, které se můžete naučit, a možná i nějaké zpracování dřeva a hudební teorie!

Co dělat pro další verzi?

  1. Zbavte se displeje a rotačního kodéru. Nahraďte je modulem Bluetooth připojeným k arduinu. Ovládejte jej na dálku pomocí telefonu nebo tabletu. S Bluetooth je všechno lepší.
  2. Dálkově aktualizujte vzory akordů v reálném čase. Něco nejlepší zbylo pro aplikaci.
  3. Kryty LED. Aktuální verze nedělá nic, co by bránilo tomu, aby se gunk dostal do LED děr. Přítel vyrobil spoustu malých čoček, ale nikdy jsem nemohl přijít na to, jak je přimět, aby správně zůstaly na svém místě.
  4. Alternativní materiály z hmatníku, možná něco jasného, dokud budou pražce držet.
  5. Více světel! Eliminujte omezení textu přidáním dalších „řádků“. To je opravdu omezení způsobené velikostí hmatníku a těl LED.

Opět viz doprovodný Instructable, který popisuje znakovou sadu, kterou jsem musel vytvořit, aby umožňoval posouvání textu.

Díky moc, že jste se dostali tak daleko! Mahalo!

Doporučuje: