Turinys:

Kaip sukurti apšviestą ukulelę!: 21 žingsnis
Kaip sukurti apšviestą ukulelę!: 21 žingsnis

Video: Kaip sukurti apšviestą ukulelę!: 21 žingsnis

Video: Kaip sukurti apšviestą ukulelę!: 21 žingsnis
Video: Uždirbkite 10,00 USD + kiekvieną minutę dabar! (NEMOKAMAI)-visame pasaulyje (uždirbkite pinigų ... 2024, Liepa
Anonim
Image
Image
Suplanuoti
Suplanuoti

Aš vaidinu „Ukulelę“. Šiek tiek vidutiniškai (jei tai žodis), todėl pagalvojau: „jei tikrai nori padaryti įspūdį damoms, tau reikia priemonių, kurios atitrauktų jas nuo scenoje vykstančios nelaimės“. Taip gimė „Apšviesta ukulele“.

Šis projektas paima „Concert Ukulele“rinkinį ir prideda „Arduino“valdomą šviesos diodą kiekvienoje stygos ir nervų padėtyje. Jis taip pat prideda išgalvotą OLED ekraną ir sukamojo kodavimo įrenginio vartotojo sąsają, kad pasirinktų LED eilutės režimą ir intensyvumą.

Užbaigtos uke aparatinės įrangos savybės:

  1. „Arduino MICRO“sąsaja su LED eilute, ekranu ir įvesties įrenginiu.
  2. 48 individualiai programuojami spalvoti šviesos diodai
  3. OLED ekranas
  4. Sukamasis kodavimo įrenginys vartotojo įvedimui
  5. USB sąsaja išoriniam maitinimui ir „Arduino“programavimui

„Uke“programinė įranga turi:

  1. Pagrindiniai šviesos valdymo režimai, kuriais šviesos diodai veikia savo greičiu
  2. Puikus teatro palapinės režimas (labai patogu pasirodymams!)
  3. LED intensyvumo valdymas
  4. Pilna visų pirmosios pozicijos Ukulele akordų akordų biblioteka (akordo vertė ir charakteris)
  5. Galimybė rodyti veikiantį tekstą (vertikaliai) naudojant unikalų 4 x 6 pikselių simbolių rinkinį

Šioje instrukcijoje aprašomas baigtas prototipas. Visą kūrimo sagą rasite ČIA, įskaitant keletą edukacinių (skaudžių) klaidų ir vertingą pamoką, kodėl PRIVALOTE baigti savo pirmąjį dizainą (kad ir kokie negražūs dalykai būtų). Niekada nežinai visų dalykų, kurių tikrai nežinai, kol nepasieksi pabaigos (o tada vis dar nežinai!), Bet tau sekasi daug geriau ir esi daug protingesnis dėl kito dizaino.

Aš sukūriau prototipą aplink „Grizzly Concert Ukulele“rinkinį. Pradedant rinkinį, sumažėja nerimas dėl uke kūno (na, dažniausiai) ir pašalinama dauguma tikro liuterio tipo darbo. Šie rinkiniai yra gana išsamūs ir nėra tokie brangūs pagal didelę schemą (ir mažiau skausmingi, nes padarysite klaidų).

1 žingsnis: sudarykite planą

Suplanuoti
Suplanuoti

Į kai kuriuos rinkinius įtraukta grotelių lenta (arba pirštų lenta) jau yra pritvirtinta. Tai gerai/blogai. Tai malonu sutaupyti laiko, tačiau kalbant apie gręžimo modelio išdėstymą ir laikymą vietoje frezuojant, tai yra šiek tiek skausmo. Sunaikinęs rinkinyje pateiktą, pasirinkau (na, neturėjau kito pasirinkimo, kaip tik nusipirkti kitą rinkinį) pirkti naują grifą.

Projektuodami grotelių lentą turime apskaičiuoti storio padidėjimą, kurio reikia norint įterpti PCB ir šviesos diodus (ir nepamirškite pasyvių komponentų), bet ne tiek, kad šviesos diodai būtų per toli nuo grotelių paviršiaus.

Šviesos diodų spausdintinė plokštė (PCB) sukurta kaip paprasta dviejų sluoksnių plokštė. Tai labai padeda rankomis surinkti šviesos diodų eilutę ir suteikia Ukulele kaklui mechaninio stiprumo (tai stiklo pluoštas ir epoksidas). Pradėjau maketuoti „Eagle“, bet dėl plokštės dydžio apribojimų galiausiai naudojau „Altium Designer“. „Altium“schemos ir PCB failai yra čia.

Komplekto grifas buvo vos 0,125 colio storio. Taigi, darant prielaidą, kad 0,062 colio storio PCB ir leidžiama papildomai 0,062 colio šviesos diodams, reiškia, kad turėsime daug (kaip ir visos) grotelių plokštės iškirpti. Norėdami tai kompensuoti, galime arba iš dalies iškirpti kišenes šviesos diodams grifte su atitinkama kišenėle kakle, skirtą PCB, arba visą grifą (pasirinkimą, kurį naudojau) galime pakeisti storesne „Luther Mercantile International“(LMII) versija, kurių pradžia yra 0,25 colio.

BET, atminkite, kad vis tiek turėsite apdirbti kaklą, kad kompensuotumėte padidėjusį storį. Kitas privalumas yra kosmetinis, nes PCB dabar yra visiškai įterptas į grifo lentą, todėl kraštus lengviau užbaigti (ir atrodyti kur kas gražiau!) Ir supaprastinti kaklo frezavimą.

Inžineriniai dalykai (ignoruokite, jei norite):

Beje, tai tikrai nepakenkia kaklo standumui. PCB medžiaga yra daug standesnė nei originali grotelių mediena (raudonmedžio modulis: 10,6 GPa, palyginti su FR4 moduliu: 24 GPa), be to, kadangi mes statome „Ukulele“, nėra daug stygų įtempimo, kuris kitaip galėtų iškreipti ar metmenų) kaklą.

Vienas labai įdomus svarstymas (kurį turbūt vis tiek turėčiau apskaičiuoti) yra tai, kas vyksta esant temperatūrai. Paprastai medienos, lygiagrečios grūdams, šiluminis plėtimosi koeficientas yra maždaug 3 x 10^-6/K, o FR4-14 × 10^-6/K. Taigi, yra gana reikšmingas skirtumas. Nerimą kelia tai, kad kintant temperatūrai kakle atsiranda įtampa, o tai savo ruožtu išjungia stygas. Tai galima kompensuoti taikant panašų sluoksnį priešingoje neutralios ašies pusėje arba priartinant FR4 kuo arčiau neutralios ašies. Bet tai bus palikta 2.0 … Kažką sumodeliuoti ir įvertinti.

Elektronika yra „uke“korpuse. UKE šoninėje sienelėje (ne garso plokštėje!) Išpjautos skylės, kad būtų vietos ekranui ir sukamajam koduotuvui, taip pat prieigos plokštė, skirta laikyti „Arduino Micro“ir suteikti prieigą prie USB sąsajos. Prieigos plokštės/laikiklio konstrukciją ir vietą greičiausiai būtų galima patobulinti, kad USB jungtis būtų patogesnė, tačiau šiuo metu viskas nėra taip blogai, nes tai netrukdo žaidžiant.

Veiksmų schema yra tokia:

  1. Surinkite medžiagas
  2. Gaukite reikiamus įrankius
  3. Frezuoti kaklą, kad tilptų storesnė grotelių lenta
  4. Gręžkite grifą, kad padarytumėte skyles reikiamose vietose ir sukurtumėte kišenes lentai ir šviesos diodams
  5. Gaukite ir sukonstruokite PCB, laikančią šviesos diodus
  6. Malkite prieigos skylutes „Ukulele“korpuse OLED ekranui, rotaciniam kodavimo įrenginiui ir prieigos skydui
  7. Padarykite dangtelius
  8. Prijunkite laidus prie PCB; prijunkite ir išbandykite elektroniką
  9. Pritvirtinkite kaklą prie Ukulele kūno
  10. Gręžkite prieigos laikiklį, kad PCB laidai patektų į korpusą
  11. Sulygiuokite ir priklijuokite PCB ir grifą prie kaklo
  12. Grindlentės kraštus išlyginkite prie kaklo (pašalinkite medžiagos perteklių)
  13. Įdiekite įtempimo laidus
  14. Užtepkite Ukulele maskavimą ir užtepkite apdailą
  15. Sulygiuokite ir pritvirtinkite tiltą
  16. Įdiekite elektroniką ir išbandykite.
  17. Įdiekite imtuvus ir pririškite instrumentą
  18. Užprogramuokite „Uke“valdiklį
  19. Nustebinkite pasaulį savo „Ukulele“nuostabumu!

2 žingsnis: Surinkite medžiagas

Mūsų medžiagų sąrašas atrodo taip:

  1. „Ukulele“rinkinys - naudojau „Grizzly Concert Ukulele“rinkinį („Grizzly Uke Kit“„Amazon“), tačiau panašu, kad jis bus nutrauktas. „Zimo“gamina panašų modelį („Zimo Uke Kit @ Amazon“), kuris, atrodo, atliks šį darbą
  2. „Ukulele“grifas, iš anksto išpjautas („LMII Uke Fingerboards“). Jie prilips grotelių lentelę pagal jūsų skalę, o tai sutaupys problemų
  3. Epoksidas - skirtas grifo plokštės klijavimui prie kaklo. Aš pasirinkau epoksidą, nes jis suderinamas su PCB medžiaga. Ieškokite kažko, kurio darbinis gyvenimas būtų bent 60 minučių. NENAUDOKITE 5 minučių tipų, jums reikia laiko koreguoti
  4. Fret laidai - taip pat galima įsigyti iš LMII
  5. Tinkintos PCB - čia yra „Altium“failai. Aš pasirinkau įprastą FR4 tipo medžiagą. Lanksčios (poliimido) plokštės būtų įdomi (jei brangesnė) alternatyva, nes jos gali būti daug plonesnės
  6. 48x „Neopixel“(SK6812) šviesos diodai. Galima įsigyti „Adafruit“ir „Digikey“
  7. 48x 0,1uF 0402 dangteliai - didesni yra priimtini, bet jūs turite stebėti vietą
  8. Prijungimo viela - mažiausiai 4–6 spalvos, kad būtų išvengta painiavos, pirmiausia naudoju 28 gabarito laidą. Stebėkite nuolatinės srovės kritimą LED maitinimo jungtyse (tiek VCC, tiek GROUND … ta srovė turi grįžti į šaltinį!)
  9. Sukamasis kodavimo įrenginys-PEC16-4220F-S0024
  10. Išgalvota medinė rankenėlė - sukamajam kodavimo įrenginiui (aš jį gavau iš LMII)
  11. OLED ekranas - iš 4D sistemų OLED ekranai
  12. Išorinė USB baterija - visada pigiau, be to, galite nešiotis atsargines dalis!
  13. Arduino MICRO
  14. Lakštinis žalvaris - kad plokštė laikytų ekrano arduino ir rėmelį
  15. Įvairios eksploatacinės medžiagos, įskaitant: švitrinis popierius, uretano apdaila, popsicle lazdelės, guminės juostelės, lydmetalis, srautas, šepečiai, dvipusė juosta (man patinka UHC 3M juosta) ir maži žalvariniai medsraigčiai (plokštelėms)
  16. Pasirinktiniai „Ukulele“patobulinimai - geresni derintojai, geresnės stygos, geresnė veržlė ir balnas, įdėklas, jei norite parodyti savo liūdesį.)

3 žingsnis: įsigykite reikalingus įrankius

Anksčiau ar vėliau turėsite gauti arba gauti prieigą prie šių dalykų:

Mūsų įrankių sąraše yra:

  1. Frezavimo staklės - pageidautina CNC, bet jūs netgi galite išsiversti naudodami maršrutizatorių ir daug sėkmės. Aš naudoju kombinuotą CNC malūną/maršrutizatorių
  2. Maršrutizatoriaus antgaliai - pageidautina karbido. Maršrutizatoriaus antgaliai pasirinkti iš galinių frezų, nes mes apdirbame medieną, o ne metalą
  3. Spaustukai - daug jų. Dažniausiai reikia laikyti dalis klijuojant
  4. Lituoklis - mažas antgalis, skirtas lituoti ant paviršiaus
  5. Mikroskopas ar didintuvas - galite pabandyti lituoti tik akimis, bet aš to nerekomenduočiau, bent 10 kartų
  6. Pincetai (dalims įdėti į vietą)
  7. Įniršio įrankiai (tinkamus LMII įrankius rasite čia, bet aš naudoju tai, ką turėjau namuose ir padariau; plaktukai, dildės ir pjaustytuvai)
  8. Įvairūs rankiniai įrankiai, tokie kaip medžio kaltai, atsuktuvai, minkštas smūgis arba žalios odos plaktukas (nerimui) ir kt.
  9. Šlifavimo priemonės - įvairios švitrinio popieriaus kruopos

Mūsų programinės įrangos įrankiai apima (kai kurie yra neprivalomi, atsižvelgiant į jūsų biudžetą/išradingumą):

  1. „Arduino“programinė įranga
  2. „Ukulele“šaltinio kodas (https://github.com/conrad26/Ukulele)
  3. PCB išdėstymo paketas - naudojau „Altium“, nes nemokama „Eagle“versija nepalaikė norimo dydžio plokštės. „Altium“yra visapusiškas išdėstymo paketas ir tikrai nėra mėgėjų kainų diapazonas. Į savo svetainę įtraukiau „Gerber“failus, skirtus prototipui, tačiau juos tikrai reikia atnaujinti
  4. 3D modeliavimo programinė įranga - naudojau „SolidWorks“, tačiau viena nemokama alternatyva yra „FreeCAD“(https://www.freecadweb.org/)
  5. CAM programinė įranga, tokia kaip „FeatureCAM“iš „Autodesk“, skirta sukurti NC malimo failą.

3D žingsnių failų eksportavimo iš „Altium“derinys su 3D grotelių modeliu pašalina daug sunkumų užtikrinant, kad viskas sutaptų, tačiau tai nėra reikalavimas. Kruopštus išdėstymas pasieks tą patį rezultatą.

Dabar, kai žinome, ką norime daryti ir ką turime padaryti, sukurkime „Ukulelę“.

4 žingsnis: frezuokite kaklą, kad prisitaikytumėte prie storesnės grifo lentos

Malkite kaklą, kad prisitaikytumėte prie storesnės grifo lentos
Malkite kaklą, kad prisitaikytumėte prie storesnės grifo lentos

Prieš frezavimą atkreipkite dėmesį, kad TURI būti išlaikytas originalus grotelių plokštės tvirtinimo paviršiaus lygumas, nes priešingu atveju turėsite susuktą grotelių lentą, dėl kurios kyla įvairiausių problemų, susijusių su įtrūkimų išlyginimu.

Tik neikite ten, neskubėkite ir prieš pjaustydami atsargiai ir standžiai suspauskite kaklą ir patikrinkite, ar jis suderintas su frezavimo antgaliu per visą kaklą. Čia praleistas laikas vėliau sutaupys daug sielvarto.

Viena iš priežasčių, dėl kurių pasirinkau storesnę grotelių lentą virš įdėklo kakle, buvo padidėjęs montavimo (klijavimo) paviršiaus plotas. Kita priežastis - supaprastina kaklo frezavimą. Jūs tiesiog nupjaunate visą paviršių iki reikiamo aukščio.

5 žingsnis: gaukite ir sukurkite PCB, laikydami šviesos diodus

Gaukite ir sukurkite PCB, laikydami šviesos diodus
Gaukite ir sukurkite PCB, laikydami šviesos diodus
Gaukite ir sukurkite PCB, laikydami šviesos diodus
Gaukite ir sukurkite PCB, laikydami šviesos diodus

Aš rankomis litavau visą agregatą. Šviesos diodų paketus ypač lengva lydyti, todėl būkite atsargūs, kad jų nepažeistumėte. Siūlau dėvėti statinį dirželį, nes eilutė priklauso nuo kiekvieno veikiančio šviesos diodo.

Fretboard dizainas pagrįstas WS2812B šviesos diodais. Aš nusprendžiau padaryti tik pirmąją grifo oktavą (48 šviesos diodai !!). Kiekvienas šviesos diodas gali būti laikomas vienu bitu pamainų registre. Pamainų registras veikia 800 kHz dažniu. Naudodavausi „Adafruit“biblioteka (žr. Programavimo skyrių), kad viskas vyktų greitai.

Aš pradėjau dizainą „Eagle“, tačiau plokštės dydis yra apribotas iki 4 x 5 colių, todėl turėjau (arba, tiksliau, pasirinkau) pereiti prie „Altium“. Aš naudoju „Altium“darbe, todėl iš tikrųjų man viskas paspartėjo. „Altium“projektas, schemos ir PCB failai (ir bibliotekos dalys) yra mano svetainėje. Lenta yra trapecijos formos ir apie 10 colių ilgio. Manau, kad turėjau pabandyti šiek tiek labiau suspausti kontūrą (kitas sukimas!) Surinkimas nebuvo blogas, bet jei galite sau tai leisti, tikrai rekomenduoju padorų lituoklį (JBC lituoklius) ir gerą mikroskopą. Taip, aš esu išlepintas ir ne, aš neturiu tokių dalykų savo namų laboratorijoje. Aš pigus.

Lentas padariau „Sunstone“. 129 USD už dvi lentas. Garantuojamas vienos savaitės posūkis. Tačiau negailėkite siuntimo. Aš nepastebėjau, kad naudojau UPS žemę, ir galiausiai laukiau papildomos savaitės, kol atvyks mano lentos. Bendras surinkimo laikas buvo apie 2 valandas (98 dalys).

6 veiksmas: frezuoti lentelę

Image
Image
Malūno prieigos skylės „Ukulele“korpuse
Malūno prieigos skylės „Ukulele“korpuse

Turime frezuoti lentelę, kad reikiamose vietose padarytume skyles ir sukurtume kišenes plokštei ir šviesos diodams.

„Solidworks“sukūriau baigtos grifo lentos 3D modelį ir sukūriau CNC frezavimo procedūrą naudodamas „FeatureCAM“.

Apatinė grotelių dalis (arčiausiai garso angos) turės būti plonesnė, kad būtų atsižvelgta į žingsnio aukščio pasikeitimą tarp kaklo ir kūno. Tikrai verta kelis kartus išbandyti montavimą, kad įsitikintumėte, jog jis pakankamai tvirtai tinka.

Žvelgiant retrospektyviai, turėčiau nupjauti nepanaudotas grifo dalis, kad ji geriau tiktų malūnui (mano pigus malūnas turėjo tik 12 colių X ašies eigą). Operacijų tvarka turėtų būti nustatyta iki pirmojo malūno storio koregavimo frezavimo kišenės, todėl tarp kišenių turėtų būti mažiau plyšių.

Jei reikia, atlikite rankinius nustatymus, kad pridėtumėte vietos laidams. Svarbu atkreipti dėmesį į tai, kad kai kuriose kišenėse įsiveržiau į angą, kur eis įtempimo viela. Atsižvelgiant į tai, kad tai dirigentas, įsitikinkite, kad jis netrumpins nieko svarbaus. Tai taip pat sumažina medžiagos, laikančios pyktį, stiprumą. Dizainas turi būti pakeistas taip, kad niekada nesikeistų su pykčio lizdu.

7 žingsnis: malūno prieigos skylės „Ukulele“korpuse

Malimo prieigos skylės Ukulele korpuse
Malimo prieigos skylės Ukulele korpuse

Rankiniu būdu frezavau prieigos skyles korpuse. Sunkiausia yra rasti „plokštesnį“regioną, kuris yra labai išlenktas paviršius. Pažymėkite kontūrą pieštuku ir palaipsniui malkite medžiagą, kol gerai priglunda prie OLED ekrano. Aš gavau apdirbtą žalvarinį rėmą ir pritvirtinau jį 3M VHB klijavimo juosta.

Kadangi nė vienas iš jų nereikalauja didelio tikslumo, sukamąjį kodavimo įrenginį ir prieigos skydo skyles yra daug lengviau sukurti.

8 žingsnis: padarykite dangtelius

Padarykite dangtelius
Padarykite dangtelius
Padarykite dangtelius
Padarykite dangtelius
Padarykite dangtelius
Padarykite dangtelius

Taip pat reikia pritvirtinti ekrano dangčio ir prieigos skydo dangčio plokštes. Prieigos skydelyje turi būti skylė (stačiakampė) USB (mikro) jungčiai. Tiesiog naudokite esamą „Arduino“jungtį, nes nėra daug „micro USB“skydo tvirtinimo parinkčių. (nors jei kurčiau nuo nulio, vieną iš jų pažiūrėčiau)

Norėdami laikyti plokštę vietoje, iš žalvario iškirpkite L skliaustus ir prilituokite prie prieigos plokštės galo. Tai leidžia jums nustatyti tam tikrą platumą. Norėdami teisingai nustatyti padėtį, pirmiausia sukurkite „Arduino MICRO“tvirtinimo plokštę (su tvirtinimo angomis) ir pritvirtinkite prie jos laikiklius, naudodami 2–56 mašininius varžtus. Tada galite pakeisti vietą, kad sulygiuotumėte USB prievadą, ir tiksliai pažymėti skliaustų vietas plokštelėje. Nuimkite laikiklius nuo perforatoriaus ir prilituokite juos vietoje. Galiausiai sumontuokite perforatoriaus mazgą.

Aš naudoju keturis mažus žalvarinius medinius varžtus, kad galėčiau pritvirtinti žalvario prieigos skydelį.

Šiuo metu prieš pradedant galutinį surinkimą rekomenduoju išbandyti. Šis žingsnis yra neprivalomas, tačiau rekomenduojamas. Prieš klijuojant daug lengviau atlikti koregavimus.

9 veiksmas: pritvirtinkite laidus prie PCB; Prijunkite ir išbandykite elektroniką

Image
Image
Pritvirtinkite kaklą prie „Ukulele“kūno
Pritvirtinkite kaklą prie „Ukulele“kūno

Kol kas visam laikui neprijunkite elektronikos. Prijunkite laidus prie PCB, įsitikinkite, kad paliekate pakankamai laisvo, kad išeitumėte prieigos angą. Galų gale jie turi būti visam laikui pritvirtinti prie „Arduino MICRO“plokštės (nuotraukose rodomas „Arduino UNO“, kurį naudojau kuriant kodą)

10 žingsnis: pritvirtinkite kaklą prie „Ukulele“kūno

Pritvirtinkite kaklą prie „Ukulele“korpuso vadovaudamiesi instrukcijomis, pridėtomis prie „Ukulele“komplekto. Ypač stebėkite, kaip grotelių plokštės paviršius sutampa su uke korpusu.

11 veiksmas: gręžkite prieigos skylę, kad PCB laidai patektų į kūną

Gręžkite prieigos skylę, kad PCB laidai patektų į kūną
Gręžkite prieigos skylę, kad PCB laidai patektų į kūną

Kai klijai išdžius, gręžkite ~ 1/4 (10 mm) angą kampu, kad laidai iš PCB galėtų patekti į Ukulele korpusą. Būtinai nepažeiskite garso plokštės.

Jums taip pat gali prireikti sukurti nedidelę kišenę, kad būtų galima nustatyti laidų storį po lenta (arba pasirinktinai uždėti jungtis viršuje ir įtraukti reljefą į grifą).

Kitas bandymas šiuo atveju nepakenks.

12 veiksmas: sulygiuokite ir priklijuokite PCB ir Fretboard prie kaklo

Sulygiuokite ir priklijuokite PCB ir Fretboard prie kaklo
Sulygiuokite ir priklijuokite PCB ir Fretboard prie kaklo

Prieš klijuojant siūlau gerai pagalvoti (ir išbandyti!). Galbūt norėsite suformuoti bloką, suformuotą kaklo apačioje, kad gautumėte plokščią tvirtinimo paviršių. Grotelių plokštė šiuo metu yra didesnė už kaklą, todėl jums reikia tai leisti.

Būkite labai atsargūs, kad ant bet kokio paviršiaus, kurį norite baigti vėliau, nepatektų epoksidinės dervos. Dar geriau prieš klijuodami užmaskuokite visus neklijuotus paviršius, kad įsitikintumėte, jog jis eina tik ten, kur numatėte.

Naudokite epoksidą, kurio tarnavimo laikas yra mažiausiai 60 minučių … jums viso to prireiks.

Pirmiausia priklijuokite PCB, įsitikinkite, kad klijų perteklius nepatenka į grotelių klijavimo paviršių. Tai suteikia metodą, kaip suderinti grifą prie kaklo. PCB turi lygią lydmetalio kaukės apdailą, todėl ją sutrupinau šiek tiek švitriniu popieriumi, kad epoksidinė medžiaga šiek tiek pagerėtų.

Sureguliuokite ir priklijuokite grifą prie kaklo. Būkite atsargūs, nepalikite kišenių, kurios vėliau gali tapti rezonansinėmis (buzz!). Taip pat būkite atsargūs, kad ant LED paviršių nepatektų klijų.

Kai klijai išdžius, galbūt norėsite dar kartą prijungti laidą ir išbandyti elektroniką. Vienas blogas šviesos diodas privers nekęsti gyvenimo. Ant prototipo turėjau vieną blogą šviesos diodą (pirmąjį!) Ir turėjau atlikti kūrybingą medžio darbą, kad galėčiau pasiekti sugedusį šviesos diodą ir jį švariai pataisyti.

13 veiksmas: išlyginkite grifo kraštus prie kaklo ir pridėkite nervų laidus

Kai klijai išdžiūsta, galite pradėti apdailos kraštus. Atsargiai nupjoviau grifo medžiagos medžiagą (naudodamas malūną) ir paskutinį milimetrą baigiau šlifuodamas rankomis.

Įtraukti laidus galima tiesiog plaktuku (su plastikiniu paviršiumi, kad nesugadintumėte). Tik nekalkite per stipriai. Jei įtempimo laidą priderinote prie lizdų, jie turėtų patekti be didelių sunkumų.

Turite stebėti, kad sulaužytumėte ploną LED kišenės paviršių. Ant prototipo aš leidau kai kurioms šviesos diodų kišenėms (netoli 12 -osios įtampos, kur vietos pritrūksta) patekti į nervų lizdą. Tai bloga idėja, nes tai sukuria silpną vietą, kuri gali (ir sutrūko) įkišus įtempimo laidą.

14 žingsnis: Ukulelę užmaskuokite ir užbaikite

Užmaskuokite grotelių lentą (ji neužbaigia) ir tilto klijavimo vietą ir pradėkite dengti apdailą.

Užmaskuodami tilto zoną, perskaitykite instrukcijas su savo rinkiniu, tada dar kartą patikrinkite skalės ilgį, kad būtumėte tikri. Komplekte, kurį naudojau prototipui, buvo naudojamas netinkamas skalės ilgis ir todėl buvo pateikti netinkami tilto matmenys (tačiau jame buvo pastaba, kad patikrintumėte naujausias instrukcijas svetainėje!). Žarnynas man sakė, kad tai neteisinga, bet aš aklai priėmiau valdžią.

Visada geriau suprasti, KODĖL kažką darai, o ne aklai vykdyti nurodymus.

Baigimui yra daug pamokymų iš „Luthiers“, žinančių, ką jie daro internete, todėl rekomenduoju pasikonsultuoti su jais prieš pereinant prie apdailos proceso.

Aš, žinoma, to nepadariau, todėl galiausiai naudojau netinkamą sandariklį, todėl susidarė labai grūdėtas paviršius. Nedaryk to.

Atlikite namų darbus.

15 žingsnis: sulygiuokite ir pritvirtinkite tiltą

Sulygiuokite ir pritvirtinkite tiltą
Sulygiuokite ir pritvirtinkite tiltą

Šis žingsnis yra gana paprastas, tačiau dar kartą suplanuokite tvirtinimo metodą ir prieš klijuodami išbandykite. Tiltui pritvirtinti naudojau standartinius medžio klijus.

16 žingsnis: Įdiekite elektroniką ir išbandykite

Įdiekite elektroniką ir išbandykite
Įdiekite elektroniką ir išbandykite

Dabar atėjo laikas padaryti savo laidus gražius. Be to, jūs nenorite, kad jis svyruotų kūno viduje ir skleistų triukšmingus garsus ar dar blogiau lūžtų scenoje.

„Arduino“kodą galima atnaujinti per USB prievadą, todėl tikrai nereikia jo išardyti, nebent norite.

17 veiksmas: įdiekite imtuvus ir styguokite instrumentą

Image
Image
Uke programavimas
Uke programavimas

Jūs taip pat greičiausiai turėsite sulyginti triukus ir šiek tiek pažaisti su sąranka, bet kodėl nerimauti dabar, kai esate taip arti pabaigos?

Aš atnaujinau derintojus ir naudojau gražias „Aquila“stygas, kurios niekaip nepadėjo skambesiui. Taigi turėkite tai omenyje, kol skiriate pinigus į projekto „ukulele“…

18 žingsnis: Uke programavimas

Galutinis „Arduino“kodas yra „Github“. Yra keletas kodo eilučių, skirtų būsimiems patobulinimams palaikyti (pvz., Metronomo funkcija ir ekrano „slankikliai“(vartotojo sąsajos elementas, kuris atrodo kaip slankiklis)

Šis kodas naudoja Rotary Encoder Library (Rotary Encoder Arduino Library), kad tvarkytų vartotojo įvestį iš Rotary Encoder.

Ji taip pat naudoja „Adafruit Neopixel“biblioteką ir pavyzdinį kodą, esantį čia. Teatro ir vaivorykštės režimai gauti iš bibliotekoje pateiktų pavyzdžių. (žr. strandtest.ino).

Ekrano tvarkyklę teikia 4D sistemos ir ją rasite „Github“čia.

Projektui „Ukulele“įdiegtos dvi unikalios funkcijos. Pirmasis įgyvendina akordų biblioteką, o antrasis rodo slenkantį tekstinį pranešimą naudojant pasirinktinį simbolių rinkinį.

Pridedamoje schemoje parodytos grotelių LED vietos ir kaip jie prijungti. Šviesos diodas 0 yra viršutiniame dešiniajame kampe.

19 veiksmas: kaip parodyti akordą

Kaip parodyti akordą
Kaip parodyti akordą

„DisplayChord“funkcija rodo kiekvieno akordo pirštų padėtį (tik pirmoji padėtis). Vartotojo pasirinkti akordai (pagrindinė nata ir kokybė) saugomi kaip indeksų pora. Jie savo ruožtu naudojami ieškant kiekvieno akordo pirštų.

Akordams saugoti naudojau „GCEA“žymėjimą (pvz., „A“yra „2100“). Akordai iš anksto apskaičiuojami kiekvienai pagrindinei natai ir saugomi kintamajame, atitinkančiame akordo kokybę. (taigi, A -dur, saugoma pirmoje masyvo „majorChords“vietoje, atitinkančioje „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 "};

Atminkite, kad kadangi tai yra teksto eilutė, kiekvienas skaitmuo taip pat gali reikšti šešioliktainę reikšmę, kad būtų atsižvelgta į didesnes nei 9 baimės pozicijas. Tai reiškia, kad A ir B reikštų 10 ir 11. Šviesos diodai - tai ne problema..

Šviesos diodų eilutė yra išilgai sujungta iš eilės po 12 (oktava) išilgai kiekvienos eilutės (pradedant nuo A eilutės), o vėlesnis 12 paleidimas prasideda nuo pirmosios kitos eilutės įtampos (žr. 18 veiksmo schemą). Tai svarbu, kad algoritmas nustatytų, kokias šviesas įjungti tam tikram akordui. Tai reiškia, kad taškai nuo 0 iki 11 yra A eilutės šviesos diodai, nuo 12 iki 23 yra E eilutės šviesos diodai ir pan. Analizuojant A = "2100" (saugomas kaip eilutė, kode taip pat yra nulinis terminatorius "\ n"), mes jį interpretuojame taip: jokie taškai ant A eilutės nėra apšviesti, nei E eilutėje, pikselis 0 (pyktis 1) C eilutėje užsidega, o pikselis 1 (fret 2) - ant G eilutės. Atminkite, kad išjungtas „0“, o ne pirmasis šviesos diodas. Remdamiesi elektros instaliacija, norime uždegti 24 ir 37 šviesos diodus. Žemiau pateiktas akordo rodymo kodas.

for (int i = 0; i <4; i ++) {if (int (chord - '0')) {// algoritmas, skirtas išanalizuoti akordo eilutę int ledNumber = int (chord - '0') + (3 - i) * 12 - 1; // žr. aukščiau pateiktą diskusiją, (3-i) turi pakeisti rodyklės juostą. setPixelColor (ledNumber, 0, 125, 125); // setPixelColor (ledNumber, raudona reikšmė, žalia vertė, mėlyna reikšmė)}}

Jei teiginys patikrina, ar šviesos diodas išjungtas. Jei ne, tada reikia simbolio ascii reikšmės, akordo ir atimama „0“ascii vertė, kad LEDNumber įsižiebtų.

juostelė yra „Adafruit_NeoPixel“klasės pavyzdys. Funkcija setPixelColor nustato apskaičiuoto pikselio spalvą (šiuo atveju fiksuota (0, 125, 125).

20 veiksmas: kaip rodyti slenkantį pranešimą

Kaip rodyti slenkantį pranešimą
Kaip rodyti slenkantį pranešimą

Taigi mes turime 12 x 4 šviesos diodų masyvą … kodėl gi ne rodyti ką nors kita, o ne gana atsitiktinius šviesos modelius!

Pirma problema yra ta, kad ekrano aukštis (4) yra gana ribotas dėl „Uke“eilučių skaičiaus. Horizontalus slinkimas dažniausiai būtų neįskaitomas, tačiau vertikalioje padėtyje galime palaikyti 4 x 5 simbolius, einančius vertikaliai.

Simbolių suskirstymas į penkias „vertikalias“eilutes reiškia, kad vienu metu gali būti rodomi du simboliai, paliekant vieną eilutę tarp kiekvieno simbolio.

Sunkumas buvo tas, kad nebuvo standartinio 4 x 5 simbolių rinkinio. Aš padariau savo, naudodamas pridedamą skaičiuoklę. Kiekvienai eilutei priskyriau vieną šešiakampę vertę (4 bitai, atspindintys, kuris pikselis yra įjungtas arba išjungtas). Penkių šešioliktainių reikšmių derinys sudaro simbolį (pvz., „0“yra 0x69996).

Kiekvieno simbolio reikšmės yra saugomos masyve ASCII tvarka. Simbolių rinkinys daro tam tikrus kompromisus su tam tikromis raidėmis, tačiau dauguma yra pakankamai aiškus. (rašymas skaičiuoklės apačioje yra idėjos, su kuriomis žaidžiau, nes turime spalvą kaip parinktį, mes galime pridėti simboliui „gylio“ir galbūt gauti papildomos skiriamosios gebos.

Rodoma eilutė yra eilutės kintamajame, pranešime.

Sukuriamas buferis, rodantis simbolių rodymą. Manau, aš galėjau tiesiog sukurti didelį buferį su visa išverstų pranešimų seka, ypač todėl, kad dauguma pranešimų bus trumpesni nei 20 simbolių. Tačiau aš nusprendžiau sukurti fiksuotą trijų simbolių (18 baitų) buferį. Tik du simboliai yra aktyviai rodomi, o trečiasis yra žvilgsnis į priekį, kur įkeliamas kitas simbolis. Šviesos diodų eilutė (pagalvokite apie tai kaip apie didelį poslinkio registrą) yra pakrauta su 48 bitų eilute. Aš iššvaisčiau šiek tiek vietos atmintyje, kad būtų lengviau tai suvokti. Kiekvienas gurkšnis gauna savo atminties vietą, padvigubina atminties poreikį, tačiau tai nėra daug, atsižvelgiant į buferio dydį.

Buferis įkeliamas kitu simboliu, kai išvesties indeksas (rodyklė) pasiekia simbolių ribą (outputPointer 5, 11 arba 17).

Norėdami įkelti buferį, mes paimame pirmąjį „pranešimo“simbolį kaip ASCII vertę ir atimame 48, kad gautume indeksą asciiFont masyve. Šio indekso reikšmė saugoma „codedChar“.

Pirmoji pranešimo dalis atitiko 47, 35, 23 ir 11 šviesos diodus (ekrano apačioje). Taigi skaičiui nulis 0x0F999F F (kairysis) perkeliamas pirmą kartą, 9 sekundes ir pan.

Kitas simbolis įkeliamas užmaskuojant kiekvieną kąsnį ir perkeliant jį į dešinę. Pirmiau pateiktame pavyzdyje algoritmas pateikia (0x0F999F & 0xF00000) >> 20, tada (0x0F999F & 0x0F0000) >> 16 ir kt.

int indeksas; if (outputPointer == 17 || outputPointer == 5 || outputPointer == 11) {char displayChar = message.charAt (messagePointer); // patraukti pirmąjį pranešimo simbolį ilgai koduotasChar = asciiFont [displayChar - 48]; if (displayChar == 32) codedChar = 0x000000; messageBuffer [baitasPointer+5] = baitas ((codedChar & 0xF00000) >> 20); // užmaskuoti visus, išskyrus paskutinį kąsnį, ir perkelti jį 20 (ir taip toliau) messageBuffer [baitasPointer+4] = baitas ((codedChar & 0x0F0000) >> 16); // tai turėtų įdėti vieną kąsnį į atminties vietos pranešimąBuffer [bytePointer+3] = baitas ((codedChar & 0x00F000) >> 12); // visi šeši vaizduoja simbolių pranešimąBuffer [bytePointer+2] = baitas ((codedChar & 0x000F00) >> 8); messageBuffer [baitasPointer+1] = baitas ((codedChar & 0x0000F0) >> 4); messageBuffer [bytePointer] = baitas ((koduojamasChar & 0x00000F)); if (bytePointer == 0) {// tvarkyti kilpą aplink bytePointer bytePointer = 12; } else {bytePointer -= 6; // pildome iš apačios į viršų; PASTABA: reikia pažvelgti į tai, kaip tai pakeisti, kad sužinotumėte, ar tai palengvina} jei (messagePointer == message.length ()-1) {// tvarkykite pranešimo pranešime ciklo aplinkąPointer = 0; } else {messagePointer += 1; // pereiti prie kito simbolio}}

Įkėlus buferį, reikia sekti, kur yra išvesties žymeklis, ir įkelti LED eilutę teisingais 48 bitais (dabartiniai 4 ir ankstesni 44). Kaip minėta anksčiau, juostelė yra „NeoPixel“klasės pavyzdys, o „setPixelColor“nustato kiekvieno pikselio spalvą (RGB). Funkcija show () perkelia ekrano reikšmes į LED eilutę.

// kilpa, kad nuolatos išstumtų buferį

// norite išrašyti visą juostelę kiekviename perėjime per kilpą, keičiasi tik pradinė vieta (int eilutė = 12; eilutė> 0; eilutė-) {index = outputPointer + (12 eilučių); jei (indeksas> 17) indeksas = outputPointer+(12 eilučių) -18; // ciklas, jei didesnis nei 17 (int stulpelis = 4; stulpelis> 0; stulpelis-) {strip.setPixelColor (uint16_t (12*(1 stulpelis)+(1 eilutė)), uint8_t (RedLED*(bitRead (messageBuffer [indeksas], 1 stulpelis))), uint8_t (GreenLED*(bitRead (messageBuffer [indeksas], 1 stulpelis))), uint8_t (BlueLED*(bitRead (messageBuffer [indeksas], 1 stulpelis)))); // kiekvienoje vietoje užsidega šviesos diodas, jei bitas yra vienas}} // outputPointer rodo dabartinį mažiausią baitą ekrano eilutėje, jei (outputPointer == 0) outputPointer = 17; else outputPointer -= 1; strip.show (); }

21 žingsnis: nustebinkite pasaulį savo „Ukulele“nuostabumu

Image
Image

Paskutinis „Ukulele“prototipas truko maždaug 6 mėnesius nuo pradžios ir sustojimo.

Daug naujų technologijų, kurias reikia išmokti, o galbūt ir medžio apdirbimo bei muzikos teorijos!

Ką daryti kitai versijai?

  1. Atsikratykite ekrano ir sukamojo kodavimo įrenginio. Pakeiskite juos „Bluetooth“moduliu, prijungtu prie „arduino“. Valdykite nuotoliniu būdu naudodami telefoną ar planšetinį kompiuterį. Su „Bluetooth“viskas geriau.
  2. Nuotoliniu būdu atnaujinkite akordų modelius realiu laiku. Kažką geriausia palikti programai.
  3. LED dangteliai. Dabartinė versija nieko nedaro, kad gunkas nepatektų į LED skylutes. Draugas padarė daugybę mažų lęšių, bet aš niekada negalėjau suprasti, kaip priversti juos tinkamai likti vietoje.
  4. Alternatyvios grotelių lentos medžiagos, galbūt kažkas aiškaus, kol laikysis.
  5. Daugiau šviesų! Pašalinkite teksto apribojimus pridėdami daugiau „eilučių“. Tai iš tikrųjų yra apribojimas, kurį sukelia grifo lenta ir LED korpusai.

Vėlgi, žiūrėkite papildomą „Instructable“, kuriame aprašomas simbolių rinkinys, kurį turėjau sukurti, kad būtų galima slinkti tekstą.

Labai ačiū, kad pasiekėte taip toli! Mahalo!

Rekomenduojamas: