Tartalomjegyzék:

Hogyan építsünk világító Ukulele-t!: 21 lépés
Hogyan építsünk világító Ukulele-t!: 21 lépés

Videó: Hogyan építsünk világító Ukulele-t!: 21 lépés

Videó: Hogyan építsünk világító Ukulele-t!: 21 lépés
Videó: CS50 2015 - Week 9, continued 2024, November
Anonim
Image
Image
Készíts egy tervet
Készíts egy tervet

Én az Ukulelét játszom. Kicsit középszerű (ha ez egy szó), ezért azt gondoltam: "ha tényleg le akarod nyűgözni a hölgyeket, akkor szükséged van egy eszközre, amely elvonja őket a színpadon játszódó katasztrófától." Így született meg a "Light-up Ukulele".

Ez a projekt egy Concert Ukulele készletet igényel, és egy Arduino vezérelt LED -et ad hozzá minden húr és fret pozícióhoz. Ezenkívül egy divatos OLED kijelzőt és forgó kódolóalapú felhasználói felületet is hozzáad a LED -karakterlánc módjának és intenzitásának kiválasztásához.

A kész uke hardver jellemzői:

  1. Arduino MICRO a LED karakterlánc, a kijelző és a beviteli eszköz interfészéhez.
  2. 48 egyedileg programozható színes LED
  3. OLED kijelző
  4. Forgó kódoló a felhasználói bevitelhez
  5. USB interfész külső áramellátáshoz és Arduino programozáshoz

Az uke szoftver rendelkezik:

  1. Alapvető fényszabályozási módok, amelyek a LED -eket ütemben futják
  2. Kiváló színházi sátor mód (nagyon praktikus az előadásokhoz!)
  3. LED intenzitás szabályozás
  4. A teljes akkordkönyvtár az első pozícióban lévő Ukulele akkordokról (akkordérték és karakter)
  5. Képesség megjeleníteni a futó szöveget (függőlegesen) egy egyedi 4 x 6 képpontos karakterkészlettel

Ez az útmutató leírja az elkészült prototípust. A teljes fejlesztési saga ITT érhető el, beleértve néhány oktatási (fájdalmas) hibát és egy értékes leckét arról, hogy miért KELL VÉGRE befejeznie az első tervezést (bármennyire is csúnyák a dolgok). Soha nem tud mindent, amit igazán nem tud, amíg a végére nem ér (és akkor még mindig nem!), De sokkal jobban jár és sokkal okosabb a következő tervezéshez.

A prototípust egy Grizzly Concert Ukulele készlet köré építettem. A készlettel való kezdés enyhíti az uke testével kapcsolatos aggodalmat (nos, többnyire), és kiküszöböli a valódi luthier típusú munkát. Ezek a készletek meglehetősen teljesek, és nem olyan drágák a dolgok nagy rendszerében (és kevésbé fájdalmasak, mivel hibázni fog).

1. lépés: Készítsen tervet

Készíts egy tervet
Készíts egy tervet

A foglalathoz (vagy fogólaphoz), amelyet egyes készletek tartalmaznak, már hozzá vannak csatolva a súrlódások. Ez jó/rossz. Időmegtakarításként szép, de abból a szempontból, hogy fúrómintát fektetünk le, és marás közben a helyén tartjuk, ez egy kis fájdalom. Miután megsemmisítettem a készletben lévőt, úgy döntöttem (nos, nem volt más választásom, mint egy másik készlet megvásárlása), hogy új fretboardot veszek.

A fogólap tervezésekor ki kell számolnunk a NYÁK és a LED -ek beágyazásához szükséges vastagság növekedését (és ne feledkezzünk meg a passzív alkatrészekről), de nem annyira, hogy a LED -ek túl messze legyenek a fogólap felületétől.

A LED nyomtatott áramköri lapot (PCB) egyszerű kétrétegű lemezként tervezték. Ez sokat segít a LED húr kézi összeszerelésében, és bizonyos mechanikai szilárdságot biztosít (ez üvegszál és epoxi) az Ukulele nyakának. Az elrendezést az Eagle -ben kezdtem, de végül az Altium Designer -t használtam a tábla méretének korlátozása miatt. Az Altium sematikus és NYÁK fájljai itt találhatók.

A készlet fogólapja mindössze 0,125 hüvelyk vastag volt. Tehát, ha egy 0,062 hüvelyk vastag NYÁK -ot feltételezünk, és további 0,062 hüvelyket engedélyezünk a LED -ek számára, azt jelenti, hogy sokat kell vágnunk (mint mindenben) a fogólapból. Ennek kompenzálására vagy részben vághatunk zsebeket a LED -ekhez a foglalatban, a nyakon lévő megfelelő zsebbel a NYÁK -hoz, vagy lecserélhetjük a teljes fogólapot (az opciót választottam) a Luther Mercantile International (LMII) vastagabb verziójával, amelyek kezdete 0,25 hüvelyk.

DE, ne feledje, hogy a nyakát még meg kell dolgoznia, hogy kompenzálja a fretboard vastagságának növekedését. A másik előny a kozmetika, mivel a NYÁK teljesen be van ágyazva a fogólapba, ami sokkal könnyebbé teszi a szélek befejezését (és sokkal szebbnek tűnik!), És leegyszerűsíti a nyak marását.

Mérnöki dolgok (figyelmen kívül hagyja, ha akarja):

Ez egyébként nem igazán veszélyezteti a nyak merevségét. A NYÁK -anyag sokkal merevebb, mint az eredeti fretboard fa (mahagóni modulus: 10,6 GPa, szemben az FR4 modulussal: 24 GPa), ráadásul mivel Ukulele -t építünk, nincs nagy mennyiségű húros feszültség, amely egyébként torzíthat vagy vetemedik) a nyak.

Egy nagyon érdekes szempont (amit valószínűleg még mindig számolnom kell) az, ami a hőmérséklet felett történik. Általában a fa esetében a szemcsével párhuzamosan a termikus tágulási együttható nagyjából 3 x 10^-6/K, az FR4 esetében pedig 14 × 10^-6/K. Tehát elég jelentős különbség van. Az aggodalomra ad okot, hogy a hőmérséklet változásakor feszültség keletkezik a nyakban, ami viszont lehangolja a húrokat. Ez ellensúlyozható, ha hasonló réteget visznek fel a semleges tengely másik oldalán, vagy az FR4 -et a lehető legközelebb hozzák a semleges tengelyhez. De ez marad a 2.0 -nál … Valami modellezni és értékelni való.

Az elektronika az uke testében van elhelyezve. Az UKE oldalfalában (nem a hanglapon!) Lyukakat vágnak, hogy helyet biztosítsanak a kijelzőnek és a forgó kódolónak, valamint egy hozzáférési lemezt az Arduino Micro tartásához és az USB interfész eléréséhez. A hozzáférési lemez/rögzítés kialakítása és elhelyezkedése valószínűleg javítható lenne, hogy az USB -kapcsolat kényelmesebb helyre kerüljön, de jelenlegi állapotában ez nem olyan rossz, mivel ez nem akadályozza a játékot.

A lépések vázlata a következő:

  1. Gyűjtsön anyagokat
  2. Szerezze be a szükséges eszközöket
  3. Marja meg a nyakát, hogy elférjen a vastagabb fogólap
  4. Őrölje meg a fogólapot, hogy lyukakat készítsen a szükséges helyeken, és hozzon létre zsebeket a tábla és a LED -ek számára
  5. Szerezze be és készítse el a LED -eket tartalmazó NYÁK -ot
  6. Őrölje meg a hozzáférési lyukakat az Ukulele testben az OLED kijelző, a forgó kódoló és a hozzáférési panel számára
  7. Készítsen fedőlapokat
  8. Csatlakoztassa a vezetékeket a NYÁK -hoz; csatlakoztassa és tesztelje az elektronikát
  9. Rögzítse a nyakat az Ukulele testéhez
  10. Fúrjon hozzáférési tartót, hogy a PCB vezetékeket a testbe juttassa
  11. Igazítsa és ragasztja a NYÁK -ot és a foglalat a nyakához
  12. Igazítsa a fogólap széleit a nyakhoz (távolítsa el a felesleges anyagot)
  13. Szerelje be a feszítő vezetékeket
  14. Alkalmazza a maszkot, és vigye fel a felületet az Ukulele -re
  15. Igazítsa és rögzítse a hidat
  16. Telepítse az elektronikát és tesztelje.
  17. Telepítsen tunereket és húzza fel a hangszert
  18. Programozza be az Uke vezérlőt
  19. Lepje meg a világot az Ukulele fantasztikusságával!

2. lépés: Gyűjtse össze az anyagokat

Anyaglistánk így néz ki:

  1. Ukulele készlet - Grizzly Concert Ukulele készletet (Grizzly Uke Kit az Amazon -on) használtam, de úgy tűnik, hogy megszűnik. A Zimo hasonló modellt készít (Zimo Uke Kit @ Amazon), amely úgy néz ki, hogy elvégzi a munkát
  2. Ukulele fogólap, előre réselt (LMII Uke Fingerboards). A fogólapot a skálájához fogják illeszteni, ami megkönnyíti a bajt
  3. Epoxi - a fogólap nyakra ragasztásához. Az epoxit választottam, mivel kompatibilis a PCB anyaggal. Keressen valamit, legalább 60 perces munkával. NE használjon 5 perces típusokat, időre van szüksége a beállításokhoz
  4. Fret vezetékek - az LMII -től is kapható
  5. Egyéni NYÁK - Altium fájlok itt. A normál FR4 típusú anyag mellett döntöttem. A flexibilis (poliimid) táblák érdekes (ha drágább) alternatívák lennének, mivel sokkal vékonyabbak lehetnek
  6. 48x Neopixel (SK6812) LED -ek. Kapható az Adafruit és a Digikey cégeknél
  7. 48x 0,1uF 0402 sapka - nagyobb is elfogadható, de figyelni kell az elhelyezésre
  8. Összekötő vezeték - legalább 4-6 színben, hogy elkerülje a zavart, elsősorban 28 -as drótot használtam. Figyelje a DC áramellátás csökkenését a LED tápcsatlakozásokon (mind a VCC, mind a GROUND… az áramnak vissza kell térnie a forráshoz!)
  9. Forgó kódoló-PEC16-4220F-S0024
  10. Divatos fa gomb - a forgó kódolóhoz (az enyémet az LMII -ből szereztem)
  11. OLED kijelző - 4D rendszerekből OLED kijelzők
  12. Külső USB akkumulátor - mindig olcsóbb, ráadásul tartalékokat is szállíthat!
  13. Arduino MICRO
  14. Lemez sárgaréz - hogy a lemez tartsa az arduino -t és a keretet a kijelző számára
  15. Különféle fogyóeszközök, beleértve: csiszolópapír, uretán bevonat, popsicle botok, gumiszalagok, forrasztóanyag, fluxus, ecsetek, kétoldalas szalag (szeretem az UHC szalagot 3M -el) és kis sárgaréz facsavarok (a lemezhez)
  16. Opcionális Ukulele fejlesztések - jobb hangolók, jobb húrok, jobb anya és nyereg, betét, ha meg akarja mutatni luthier bátorságát)

3. lépés: Szerezze be a szükséges eszközöket

Előbb vagy utóbb meg kell szereznie vagy hozzáférnie ezekhez:

Eszközlistánk a következőket tartalmazza:

  1. Marógép - CNC előnyben, de lehet, hogy még egy routerrel is boldogul, és sok szerencsével. Kombinált CNC marót/útválasztót használtam
  2. Router bitek - karbid előnyben. A marófejeket a végmarók helyett választották, mivel fát, nem fémet dolgozunk
  3. Bilincsek - sok közülük. Leginkább az alkatrészek rögzítésére van szükség ragasztás közben
  4. Forrasztópáka - kicsi hegy felületre szerelhető forrasztáshoz
  5. Mikroszkóp vagy nagyító - megpróbálhat forrasztani csak a szemével, de nem ajánlom, legalább 10x
  6. Csipesz (az alkatrészek elhelyezéséhez)
  7. Fárasztó szerszámok (lásd az LMII megfelelő eszközeit itt, de otthon használtam és csináltam; kalapácsok, reszelők és vágók)
  8. Különféle kéziszerszámok, például fa vésők, csavarhúzók, lágy fúvóka vagy nyersbőr kalapács (zúzódáshoz) stb.
  9. Csiszolóanyagok - különféle csiszolópapír -szemcsék

Szoftvereszközeink a következők (néhány opcionális a költségvetéstől/találékonyságtól függően):

  1. Arduino szoftver
  2. Az Ukulele forráskódja (https://github.com/conrad26/Ukulele)
  3. NYÁK -elrendezési csomag - Altiumot használtam, mert az Eagle ingyenes verziója nem támogatta a kívánt táblaméretet. Az Altium egy teljes körű elrendezési csomag, és nem igazán hobbis árkategóriába tartozik. A prototípushoz hozzáadtam a webhelyemre a Gerber fájlokat, de ezeket mindenképpen frissíteni kell
  4. 3D modellező szoftver - SolidWorks -t használtam, de az egyik ingyenes alternatíva a FreeCAD (https://www.freecadweb.org/)
  5. CAM szoftver - mint az Autodesk FeatureCAM az NC mill fájl létrehozásához.

Az Altiumból származó 3D lépésfájl -export és a fogólap 3D -s modelljének kombinációja kiküszöböli a nehézségeket annak biztosításában, hogy minden összhangban legyen, de ez nem követelmény. A gondos elrendezés ugyanazt az eredményt fogja elérni.

Most, hogy tudjuk, mit akarunk tenni, és mit kell tennünk, építsünk egy Ukulele -t.

4. lépés: Marja meg a nyakát, hogy befogadja a vastagabb fogólapot

Marja a nyakát, hogy befogadja a vastagabb fogólapot
Marja a nyakát, hogy befogadja a vastagabb fogólapot

A marás előtt vegye figyelembe, hogy az Fretboard eredeti rögzítési felületének síkosságát KELL fenntartani, különben csavart fogólapot kap, ami mindenféle problémához vezet a fret szintezésével.

Csak ne menjen oda, szánjon rá időt, és óvatosan és mereven rögzítse a nyakát, és vágás előtt ellenőrizze az egyenirányítást a marószárral a teljes nyakon. Az itt eltöltött idő sok bánatot takarít meg később.

Az egyik ok, amiért a vastagabb fretboard mellett döntöttem a nyakon lévő betét felett, a megnövelt szerelési (ragasztási) felület volt. Egy másik ok az, hogy leegyszerűsíti a nyak marását. Egyszerűen zümmögve vágja le a teljes felületet a kívánt magasságra.

5. lépés: Szerezze be és készítse el a NYÁK -ot a LED -eket tartva

Szerezze be és készítse el a NYÁK -ot a LED -eket tartva
Szerezze be és készítse el a NYÁK -ot a LED -eket tartva
Szerezze be és készítse el a NYÁK -ot a LED -eket tartva
Szerezze be és készítse el a NYÁK -ot a LED -eket tartva

Az egész szerelvényt kézzel forrasztottam. A LED -csomagok különösen könnyen olvaszthatók, ezért ügyeljen arra, hogy ne sérüljenek meg. Azt javaslom, hogy viseljen statikus hevedert, mivel a karakterlánc minden LED működésétől függ.

A fogólap kialakítása a WS2812B LED -ek köré épül. Úgy döntöttem, hogy csak a fogólap első oktávját csinálom (48 LED !!). Minden LED egy bitnek tekinthető a műszakregiszterben. A váltásregiszter órajele 800 kHz. Az Adafruit könyvtárat használtam (lásd a programozási részt) a dolgok gyors beindításához.

A tervezést az Eagle -ben kezdtem el, de a tábla mérete 4 x 5 hüvelykre korlátozódik, ezért kénytelen voltam (vagy helyesebben úgy döntöttem) átállni az Altiumra. Altiumot használok a munkahelyemen, tehát a valóságban gyorsabbá tette a dolgokat. Az Altium projekt, sematikus és PCB fájlok (és könyvtári részek) megtalálhatók a webhelyemen. A tábla trapéz alakú és körülbelül 10 hüvelyk hosszú. Azt hiszem, meg kellett volna próbálnom egy kicsit jobban összenyomni a körvonalat (a következő centrifugálás!) Az összeszerelés nem volt rossz, de ha megengedheti magának, akkor tényleg nagyon ajánlok egy tisztességes forrasztópáka (JBC forrasztóvas) és egy jó mikroszkópot. Igen, el vagyok kényeztetve, és nem, nincs ilyen cuccom az otthoni laboromban. Olcsó vagyok.

A táblákat a Sunstone -ban készítettem. 129 dollár két tábláért. Garantált egy hét fordulat. Ne fukarkodjon azonban a szállítással. Nem vettem észre, hogy UPS földet használtam, és végül még egy hetet vártam a táblák megérkezésére. A teljes összeszerelési idő körülbelül 2 óra (98 alkatrész) volt.

6. lépés: Marja meg a fogólapot

Image
Image
Malom hozzáférési lyukak az Ukulele testben
Malom hozzáférési lyukak az Ukulele testben

Meg kell marnunk a fogólapot, hogy lyukakat készítsünk a szükséges helyeken, és zsebeket hozzunk létre a tábla és a LED -ek számára.

A Solidworks -ben elkészítettem az elkészült fogólap 3D -s modelljét, és a FeatureCAM segítségével létrehoztam a CNC marási rutint.

A fogólap alsó részét (a hanglyukhoz legközelebb) vékonyabbá kell tenni, hogy figyelembe vegyék a nyak és a test közötti magasságváltozást. Határozottan érdemes többször próbaszerelvényt használni, hogy megbizonyosodjon arról, hogy megfelelően illeszkedik.

Visszatekintve, le kellett volna vágnom a fogólap fel nem használt részeit, hogy jobban illeszkedjenek a malomhoz (az olcsó malomnak csak 12 -os X tengelye volt). A műveletek sorrendjét az első malomvastagság beállításáig kell beállítani maró zsebeket, ami kevesebb kitörést eredményezhet a zsebek között.

Szükség szerint végezze el a kézi beállításokat, hogy helyet biztosítson a huzalozáshoz. Fontos megjegyezni, hogy néhány zsebben betörtem a nyílásba, ahová a fret huzal kerül. Tekintettel arra, hogy ez egy karmester, győződjön meg arról, hogy végül nem zár le semmi fontosat. Ezenkívül csökkenti a fret helyén tartó anyag szilárdságát. A kialakítást úgy kell módosítani, hogy soha ne keresztezze a fret rést.

7. lépés: Malom hozzáférési lyukak az Ukulele testben

Malom hozzáférési lyukak az Ukulele testben
Malom hozzáférési lyukak az Ukulele testben

Manuálisan megmorzsoltam a test beléptető lyukait. A legnehezebb rész a nagyon lapos felület "leglaposabb" régiójának megtalálása. Jelölje meg a körvonalat ceruzával, és fokozatosan őrölje le az anyagot, amíg szorosan illeszkedik az OLED kijelzőhöz. Beszereztem egy megmunkált sárgaréz keretet, és 3M VHB ragasztószalaggal rögzítettem.

Mivel egyikük sem igényel nagy pontosságot, a forgó jeladó és a hozzáférési panel furatai sokkal könnyebben létrehozhatók.

8. lépés: Készítsen fedőlapokat

Készítsen fedőlapokat
Készítsen fedőlapokat
Készítsen fedőlapokat
Készítsen fedőlapokat
Készítsen fedőlapokat
Készítsen fedőlapokat

A kijelző előlapjának és az előlap paneljének fedőlemezeit is rögzítenie kell. A hozzáférési panelhez lyuk (négyszögletes) szükséges az USB (mikro) csatlakozó számára. Csak használja az Arduino meglévő csatlakozóját, mivel nincs sok panelra szerelési lehetőség a micro USB számára. (bár ha a nulláról terveznék, akkor ezek közül egyet megnéznék)

A tábla helyén tartásához formálja az L konzolokat sárgarézből, és forrasztja őket a hozzáférési lemez hátuljához. Ez lehetővé teszi némi mozgástér elhelyezését. A helyes pozícionáláshoz először hozzon létre egy perfboard szerelőlapot (rögzítési lyukakkal) az Arduino MICRO számára, és rögzítse hozzá az L konzolokat 2-56 gépcsavar segítségével. Ezután módosíthatja a helyet, hogy beállítsa az USB -portot, és pontosan megjelölje a konzolok helyét a lemezen. Távolítsa el a konzolokat a perforációs tábláról, és forrasztja a helyükre. Végül szerelje fel a perfboard szerelvényt.

Négy kis sárgaréz facsavart használtam a sárgaréz hozzáférési panel rögzítéséhez.

Ezen a ponton a végső összeszerelés megkezdése előtt próbaillesztést javaslok. Ez a lépés nem kötelező, de ajánlott. Ragasztás előtt sokkal könnyebb beállítani.

9. lépés: Csatlakoztassa a vezetékeket a NYÁK -hoz; Csatlakoztassa és tesztelje az elektronikát

Image
Image
Csatlakoztassa a nyakát az Ukulele testhez
Csatlakoztassa a nyakát az Ukulele testhez

Még ne csatlakoztassa tartósan az elektronikát. Csatlakoztassa a vezetékeket a NYÁK -ba, ügyelve arra, hogy elegendő lazaság maradjon a hozzáférési lyuk kivezetéséhez. Ezeket véglegesen rögzíteni kell az Arduino MICRO táblához (a képeken egy Arduino UNO látható, amelyet a kódfejlesztéshez használtam)

10. lépés: Rögzítse a nyakát az Ukulele testhez

Rögzítse a nyakat az Ukulele testhez, az Ukulele készlethez mellékelt utasításokat követve. Különösen figyelje a fogólap felületének az uke testéhez való igazítását.

11. lépés: Fúrjon be egy lyukat, hogy a PCB vezetékeket a testbe juttassa

Fúrjon be egy lyukat, hogy a PCB vezetékeket a testbe juttassa
Fúrjon be egy lyukat, hogy a PCB vezetékeket a testbe juttassa

Miután a ragasztó megszáradt, fúrjon ~ 1/4 (10 mm) lyukat szögben, hogy a NYÁK -ból érkező vezetékek bejussanak az Ukulele -testbe. Ügyeljen arra, hogy ne károsítsa a hanglapot.

Lehet, hogy létre kell hoznia egy kis zsebet is, hogy figyelembe vegye a vezetékek vastagságát a tábla alatt (vagy opcionálisan tegye a csatlakozásokat a tetejére, és tegye fel a megkönnyebbülést a fogólapra.)

Egy újabb próbafájás nem ártana ezen a ponton.

12. lépés: Igazítsa és ragassza a NYÁK -ot és a fogólapot a nyakhoz

Igazítsa és ragassza a NYÁK -ot és a fogólapot a nyakhoz
Igazítsa és ragassza a NYÁK -ot és a fogólapot a nyakhoz

Javaslom, hogy a ragasztás előtt gondolja végig a befogást (és próbálja ki!). Érdemes a nyak aljára formázott tömböt formázni, hogy lapos szorítófelületet kapjon. A fogólap ennél a pontnál nagyobb, mint a nyak, ezért ezt meg kell engedni.

Legyen nagyon óvatos, nehogy epoxid kerüljön olyan felületre, amelyet később szeretne befejezni. Még jobb, ha a ragasztás előtt maszkírozza az összes nem ragasztott felületet, hogy megbizonyosodjon arról, hogy csak ott megy, ahol tervezte.

Használjon legalább 60 perces élettartamú epoxigyanta -t … mindenre szüksége lesz.

Először ragassza be a NYÁK -ot, ügyelve arra, hogy a felesleges ragasztó ne nyúljon a fogólap ragasztási felületéhez. Ez módszert biztosít a fogólap nyakhoz igazítására. A NYÁK sima forrasztómaszk bevonattal rendelkezik, ezért egy kis csiszolópapírral durván feldörzsöltem, hogy az epoxi felülete kissé javuljon.

Igazítsa és ragassza a fogólapot a nyakához. Ügyeljen arra, hogy ne hagyjon olyan zsebeket, amelyek később visszhangzhatnak (zümmögés!). Ügyeljen arra is, hogy a LED felületekre ne kerüljön ragasztó.

Miután a ragasztó megszáradt, érdemes még egyszer huzalozni és tesztelni az elektronikát. Egy rossz LED utálja az életet. Volt egy rossz LED -em (az első!) A prototípuson, és kreatív fafeldolgozást kellett végeznem, hogy hozzáférjek a hibás LED -hez, és tisztán javítsam.

13. lépés: Szintezze a Fretboard széleit a nyakához, és adjon hozzá Fret huzalokat

Miután a ragasztó megszáradt, elkezdheti befejezni a széleket. Óvatosan levágtam a fogólap felesleges anyagát (malom segítségével), és az utolsó millimétert kézi csiszolással fejeztem be.

A fret huzalok hozzáadása egyszerűen elvégezhető kalapáccsal (műanyag felülettel, hogy elkerülje a sérülést). Csak ne kalapáljon túl erősen. Ha a fret huzalt illesztette a résekhez, akkor minden nehézség nélkül be kell menniük.

Figyelni kell a LED zseb vékony felületének törésére. A prototípuson hagytam, hogy néhány LED -es zseb (a 12. fret közelében, ahol szűkös a hely) benyúljon a fret nyílásba. Ez rossz ötlet, mivel ez egy gyenge pontot hoz létre, amely megrepedhet (és meg is romlott), ha a fret huzalt behelyezi.

14. lépés: Alkalmazza a maszkolást és a befejezést az Ukulele -re

Maszkolja a fogólapot (nem fejeződik be) és a híd ragasztási területét, és kezdje el a befejezést.

A híd területének maszkolásakor olvassa el a készlethez mellékelt utasításokat, majd ellenőrizze kétszer a skála hosszát. A prototípushoz használt készlet rossz skálahosszúságot használt, és ezért rossz méreteket adott a híd elhelyezéséhez (de volt egy megjegyzése, hogy ellenőrizze a weboldalt a legújabb utasításokért!). A gyomrom azt mondta, hogy rossz, de vakon elfogadtam a tekintélyt.

Mindig jobb megérteni, hogy MIÉRT tesz valamit, ahelyett, hogy vakon követné az utasításokat.

A befejezéshez sok oktatóanyag található Luthiers -től, akik tudják, mit csinálnak az interneten, ezért azt javaslom, hogy konzultáljon velük, mielőtt belekezdene a befejezési folyamatba.

Én persze nem ezt tettem, így végül rossz tömítőanyagot használtam, ami nagyon szemcsés felületet eredményezett. Ne tedd ezt.

Csináld meg a házi feladatodat.

15. lépés: Igazítsa és rögzítse a hidat

Igazítsa és rögzítse a hidat
Igazítsa és rögzítse a hidat

Ez a lépés meglehetősen egyszerű, de ismét tervezze meg a befogási módszert, és próbálja ki előre a ragasztás előtt. A híd rögzítéséhez szabványos faragasztót használtam.

16. lépés: Telepítse az elektronikát és tesztelje

Telepítse az elektronikát és tesztelje
Telepítse az elektronikát és tesztelje

Itt az ideje, hogy szép legyen a vezetéke. Ezenkívül nem szeretné, ha a test belsejében lebukna, és zümmögő hangokat hallatna, vagy ami még rosszabb, ha törne a színpadon.

Az Arduino kód az USB -porton keresztül frissíthető, így valóban nincs szükség szétszedésre, hacsak nem akar bóklászni.

17. lépés: Telepítse a tunereket és húzza fel a hangszert

Image
Image
Az Uke programozása
Az Uke programozása

Valószínűleg ki kell egyenlítenie a fret -eket, és játszania kell egy kicsit a beállításokkal, de miért kell most aggódnia, amikor már olyan közel van a végéhez?

Frissítettem a tunereket, és szép Aquila húrokat használtam, ami egyáltalán nem segített a hangon. Tehát ezt tartsa szem előtt, miközben pénzt ad ki egy ukulele projekthez…

18. lépés: Az Uke programozása

Az utolsó Arduino kód a Githubon található. A kódban vannak olyan sorok, amelyek támogatják a jövőbeni fejlesztéseket (például metronóm funkció és a kijelző "csúszkái" (csúszkának látszó felhasználói felület)

Ez a kód egy Rotary Encoder Library (Rotary Encoder Arduino Library) segítségével kezeli a Rotary Encoder felhasználói bevitelt.

Az Adafruit Neopixel könyvtárat és az itt található példakódot is használja. A színház és a szivárvány mód a könyvtárhoz mellékelt példákból származik. (lásd strandtest.ino).

A kijelző illesztőprogramját 4D rendszerek biztosítják, és megtalálható a Github webhelyen.

Az Ukulele projekthez két egyedi funkció valósult meg. Az első az akkordkönyvtárat valósítja meg, a második pedig görgető szöveges üzenetet jelenít meg egyéni karakterkészlettel.

A mellékelt diagram mutatja a fretboard LED helyeit és azok csatlakoztatását. A LED 0 a jobb felső sarokban található.

19. lépés: Az akkord megjelenítése

Hogyan jelenítsünk meg egy akkordot
Hogyan jelenítsünk meg egy akkordot

A displayChord funkció megjeleníti az ujjak helyzetét (egyelőre csak az első pozíció) minden akkord esetében. A felhasználó által kiválasztott akkordok (gyökér jegyzet és minőség) indexpárként kerülnek tárolásra. Ezeket használják az egyes akkordok ujjlenyomatának megkeresésére.

Akkordok tárolására "GCEA" jelölést használtam (pl. "A" "2100"). Az akkordokat minden gyökhanghoz előre kiszámítják, és az akkord minőségének megfelelő változóban tárolják. (tehát az A -dúr a "majorChords" tömb első helyén tárolódik, ami "2100" -nak felel meg).

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

Ne feledje, hogy mivel ez egy szöveges karakterlánc, minden számjegy hexadecimális értéket is jelenthet, hogy figyelembe vegye a 9 -nél nagyobb fret pozíciókat. Vagyis A és B a 10 -es és 11 -es LED -eket jelentené..

A LED -karakterláncot hosszirányban, 12 -es (oktáv) sorokba kötik minden egyes karakterlánc mentén (az A karakterlánccal kezdve), az ezt követő 12 -es futtatás a következő karakterlánc első fretjén kezdődik (lásd a diagramot a 18. lépésben). Ez fontos ahhoz, hogy az algoritmus meghatározza, melyik lámpát kell bekapcsolni egy adott akkordhoz. Ez azt jelenti, hogy a 0-11 -es pixelek az A karakterláncú LED -ek, a 12-23 -as E -sorozatú LED -ek stb. Amikor egy A = "2100" elemzést végez (karakterláncként tárolva, a kódban null terminátor is található), akkor ezt úgy értelmezzük: az A karakterláncon nem világítanak képpontok, sem az E karakterláncon, 0 pixel (Fret 1) a C karakterláncon világít, az 1 -es pixel (Fret 2) pedig a G karakterláncon. Vegye figyelembe, hogy a "0" nem világít, nem az első LED. A huzalozás alapján a 24 -es és 37 -es LED -eket szeretnénk felgyújtani. Az akkord megjelenítésére szolgáló kód az alábbiakban látható.

for (int i = 0; i <4; i ++) {if (int (akkord - '0')) {// algoritmus az akkord karakterlánc elemzésére int ledNumber = int (akkord - '0') + (3 - i) * 12 - 1; // lásd a fenti vitát, a (3-i) az indexszalag megfordítása.setPixelColor (ledNumber, 0, 125, 125); // setPixelColor (ledNumber, piros érték, zöld érték, kék érték)}}

Az if utasítás ellenőrzi, hogy a led ki van -e kapcsolva. Ha nem, akkor a karakter ascii értékét, az akkordot veszi, és kivonja a '0' ascii értékét, hogy a ledNumber világítson.

csík az Adafruit_NeoPixel osztály példánya. A setPixelColor függvény beállítja a számított pixel színét (ebben az esetben (0, 125, 125).

20. lépés: Görgető üzenet megjelenítése

Görgető üzenet megjelenítése
Görgető üzenet megjelenítése

Tehát van egy 12 x 4 LED -es sorunk … miért ne tehetné ki valami mást, mint a véletlenszerű fénymintákat!

Az első probléma az, hogy a kijelző magassága (4) meglehetősen korlátozott az Uke karakterláncok száma miatt. A vízszintes görgetés többnyire olvashatatlan lenne, de függőleges tájolásban 4 x 5 függőlegesen futó karaktert támogathatunk.

A karakterek öt "függőleges" sorként történő rendszerezése azt jelenti, hogy két karakter jeleníthető meg egyszerre, lehetővé téve egy sornyi távolságot a karakterek között.

A nehézség az volt, hogy nem volt szabványos 4 x 5 karakterkészlet. A sajátomat készítettem a mellékelt táblázat segítségével. Minden sort egyetlen hexa értékhez rendeltem (4 bit jelzi, hogy melyik pixel van be- vagy kikapcsolva). Az öt hexadecimális érték kombinációja egy karaktert alkot (pl. "0" 0x69996).

Az egyes karakterek értékeit ASCII sorrendben egy tömb tárolja. A karakterkészlet bizonyos kompromisszumokat köt bizonyos betűkkel, de a többség ésszerű. (a táblázat alján található firkálás olyan ötletek, amelyekkel játszottam, mivel lehetőségünk van színre, "mélységet" adhatunk a karakterhez, és esetleg további felbontást is kaphatunk.

A megjelenítendő karakterlánc az string üzenetváltozóban található.

Puffer jön létre a karakterek megjelenítésére. Azt hiszem, egyszerűen létrehozhattam volna egy nagy puffert a teljes lefordított üzenetsorozattal, különösen azért, mert a legtöbb üzenet 20 karakternél rövidebb lesz. Én azonban inkább egy fix, három karakterből álló (18 bájtos) puffert hoztam létre. A karakterek közül csak kettő jelenik meg aktívan, a harmadik pedig egy előretekintés, ahol a következő karakter betöltődik. A LED -karakterlánc (gondoljon rá, mint egy nagy eltolású regiszterre) betöltődik a karakterlánc 48 bitjével. Elpazaroltam egy kis memóriaterületet, hogy megkönnyítsem ezt a fogalmat. Minden csipetnyi megkapja a saját memóriahelyét, megduplázza a memóriaigényt, de a pufferméret miatt nem sok.

A puffer betöltődik a következő karakterrel, amikor a kimeneti index (mutató) eléri a karakterhatárt (outputPointer 5, 11 vagy 17).

A puffer betöltéséhez megragadjuk az "üzenet" első karakterét ASCII értékként, és kivonunk 48 -at, hogy megkapjuk az indexet az asciiFont tömbben. Az adott index értéke a codedChar mappában tárolódik.

Az üzenet első része a 47, 35, 23 és 11 LED -eknek felel meg (a kijelző alján). Tehát a nulla 0x0F999F szám esetén az F (bal oldali) eltolódik először, 9 másodpercben és így tovább.

A következő karakter úgy töltődik be, hogy minden rágcsálnivalót elfed, és jobbra tol. A fenti példában az algoritmus (0x0F999F & 0xF00000) >> 20, majd (0x0F999F & 0x0F0000) >> 16 stb.

int index; if (outputPointer == 17 || outputPointer == 5 || outputPointer == 11) {char displayChar = message.charAt (messagePointer); // megragadja az üzenet első karakterét long codedChar = asciiFont [displayChar - 48]; if (displayChar == 32) codedChar = 0x000000; messageBuffer [bytePointer+5] = bájt ((kódoltChar & 0xF00000) >> 20); // az utolsó csipet kivételével maszkoljon és 20 (és így tovább) üzenetet vigyen át messageBuffer [bytePointer+4] = byte ((codedChar & 0x0F0000) >> 16); // ennek egy csipetnyit kell tennie memóriahelyenkénti üzenetbenBuffer [bytePointer+3] = byte ((codedChar & 0x00F000) >> 12); // mind a hat karakteres üzenetet jelenít megBuffer [bytePointer+2] = byte ((codedChar & 0x000F00) >> 8); messageBuffer [bytePointer+1] = bájt ((kódoltChar & 0x0000F0) >> 4); messageBuffer [bytePointer] = bájt ((kódoltChar & 0x00000F)); if (bytePointer == 0) {// kezeli a hurkot a bytePointer bytePointer = 12; } else {bytePointer -= 6; // alulról felfelé töltünk; MEGJEGYZÉS: meg kell nézni ennek megfordítását, hogy lássa, megkönnyíti-e} ha (messagePointer == message.length ()-1) {// kezeli az üzenet körét az messagePointer = 0; } else {messagePointer += 1; // ugrás a következő karakterre}}

A puffer betöltése után nyomon kell követni, hogy hol van a kimeneti mutató, és betölti a LED -karakterláncot a megfelelő 48 bittel (az aktuális 4 és az előző 44). Amint korábban említettük, a szalag a NeoPixel osztály példánya, a setPixelColor pedig minden pixel színét (RGB) állítja be. A show () függvény eltolja a kijelzett értékeket a LED karakterláncra.

// hurok a puffer folyamatos eltolásához

// ki akarja írni a teljes csíkot a cikluson keresztül, csak a kezdőhely változik a következőnél (int sor = 12; sor> 0; sor-) {index = outputPointer + (12 sor); if (index> 17) index = outputPointer+(12 sor) -18; // ciklus, ha nagyobb, mint 17 esetén (int oszlop = 4; oszlop> 0; oszlop--) {strip.setPixelColor (uint16_t (12*(oszlop-1)+(1. sor)), uint8_t (RedLED*(bitRead (messageBuffer [index], 1 oszlop)))), uint8_t (GreenLED*(bitRead (messageBuffer [index], 1 oszlop))), uint8_t (BlueLED*(bitRead (messageBuffer [index], 1 oszlop)))); // minden helyen világítson a LED -en, ha a bit egy}}} // outputPointer a megjelenített karakterlánc aktuális legalacsonyabb bájtjára mutat, ha (outputPointer == 0) outputPointer = 17; else outputPointer -= 1; strip.show (); }

21. lépés: Lepje meg a világot az Ukulele fantasztikusságával

Image
Image

Az utolsó Ukulele prototípus körülbelül 6 hónapos indulást és leállást vett igénybe.

Sok új technológia, amit tanulni kell, és talán néhány faipari és zenei elmélet is elindul!

Mit kell tenni a következő verzióhoz?

  1. Szabaduljon meg a kijelzőtől és a forgó jeladótól. Cserélje ki őket az arduino -hoz csatlakoztatott Bluetooth modulra. Távoli vezérlés telefon vagy táblagép segítségével. Bluetooth -szal minden jobb.
  2. Az akkordminták távoli frissítése valós időben. Valami legjobb maradt az alkalmazás számára.
  3. LED burkolatok. A jelenlegi verzió nem akadályozza meg, hogy a gunk a LED -lyukakba kerüljön. Egy barátom készített egy csomó kis lencsét, de soha nem tudtam rájönni, hogyan lehet rávenni, hogy megfelelően a helyükön maradjanak.
  4. Alternatív fretboard anyagok, talán valami világos, amíg a freskók tartják.
  5. Több fény! Több "sor" hozzáadásával szüntesse meg a szövegre vonatkozó korlátozásokat. Ez valóban korlátozás, amelyet a fogólap és a LED -testek mérete okoz.

Ismét tekintse meg az Instructable kísérőt, amely leírja a karakterkészletet, amelyet létre kellett hoznom a szöveg görgetésének lehetővé tételéhez.

Köszönöm szépen, hogy idáig eljutott! Mahalo!

Ajánlott: