INHOUDSOPGAWE:

Hoe om 'n verligte Ukulele te bou !: 21 stappe
Hoe om 'n verligte Ukulele te bou !: 21 stappe

Video: Hoe om 'n verligte Ukulele te bou !: 21 stappe

Video: Hoe om 'n verligte Ukulele te bou !: 21 stappe
Video: НЕ УБОЮСЬ Я ЗЛА / I Will Fear no Evil 2024, Julie
Anonim
Image
Image
Maak 'n plan
Maak 'n plan

Ek speel die Ukulele. Nogal middelmatig (as dit 'n woord is), so ek het gedink: "As u die dames regtig wil beïndruk, benodig u 'n manier om hulle af te lei van die ramp wat op die verhoog plaasvind." Daarom is die "Light-up Ukulele" gebore.

Hierdie projek neem 'n Concert Ukulele -kit en voeg 'n Arduino -beheerde LED by elke string en fret -posisie by. Dit voeg ook 'n spoggerige OLED -skerm en 'n roterende encoder -gebruikerskoppelvlak by om die modus en intensiteit van die LED -string te kies.

Die voltooide uke -hardeware -funksies:

  1. Arduino MICRO kan koppel aan die LED -string, skerm en invoertoestel.
  2. 48 individueel programmeerbare volkleur -LED's
  3. 'N OLED -skerm
  4. 'N Draaikodeerder vir gebruikersinvoer
  5. USB -koppelvlak vir eksterne krag en Arduino -programmering

Die uke sagteware het:

  1. Basiese ligbeheer -modusse wat die LED's deur hul pas laat loop
  2. 'N Prettige teatertent -modus (baie handig vir optredes!)
  3. LED intensiteit beheer
  4. 'N Volledige akkoordbiblioteek met alle eerste posisie Ukulele -akkoorde (akkoordwaarde en karakter)
  5. Die vermoë om lopende teks (vertikaal) te vertoon met 'n unieke 4 x 6 pixel karakterset

Hierdie instruksies beskryf die voltooide prototipe. Die volledige ontwikkelingssage is HIER beskikbaar, insluitend 'n paar opvoedkundige (pynlike) foute en 'n waardevolle les waarom u u eerste ontwerp MOET voltooi (ongeag hoe lelik dit is). U weet nooit alles wat u regtig nie weet nie, totdat u aan die einde kom (en dan nog steeds nie!), Maar u is baie beter daaraan toe en baie slimmer vir die volgende ontwerp.

Ek het die prototipe gebou rondom 'n Grizzly Concert Ukulele -kit. Om met 'n kit te begin, verlig die kommer oor die liggaam van die uke (wel, meestal), en elimineer die meeste werklike luthier-tipe werk. Hierdie kits is redelik volledig en nie so duur in die groot skema nie (en minder pynlik, aangesien u foute sal maak).

Stap 1: Maak 'n plan

Maak 'n plan
Maak 'n plan

Die fretboard (of vingerbord) wat in sommige kits ingesluit is, bevat reeds die frets. Dit is goed/sleg. Dit is lekker om tyd te bespaar, maar dit is 'n bietjie pyn om 'n boorpatroon op te lê en vas te hou terwyl hy maal. Nadat ek die een in die kit vernietig het, het ek gekies (wel, ek het geen ander keuse gehad as om 'n ander kit te koop nie) om 'n nuwe toetsbord te koop.

By die ontwerp van die toetsbord moet ons die toename in die dikte wat nodig is om die PCB en die LED's te bereken, bereken (maar moenie die passiewe komponente vergeet nie), maar nie soveel dat die LED's te ver van die oppervlak van die toetsbord is nie.

Die LED -printplaat (PCB) is ontwerp as 'n eenvoudige 2 -laags bord. Dit help baie met die montering van die LED -snaar en bied 'n mate van meganiese sterkte (dit is veselglas en epoxy) aan die Ukulele -nek. Ek het die uitleg in Eagle begin, maar het uiteindelik Altium Designer gebruik weens die beperking van die bordgrootte. Die Altium -skematiese en PCB -lêers is hier.

Die kitbord was slegs 0,125 cm dik. As ons dus 'n PCB van 0,062 duim dik aanvaar en 'n ekstra 0,062 duim vir die LED's toelaat, beteken dit dat ons baie (soos in alle gevalle) van die toetsbord moet sny. Om dit te vergoed, kan ons die sakke vir die LED's in die toetsbord gedeeltelik sny met 'n ooreenstemmende sak in die nek vir die PCB, of ons kan die hele toetsbord (die opsie waarmee ek gegaan het) vervang deur 'n dikker weergawe van Luther Mercantile International (LMII), wat 0,25 duim is om te begin.

MAAR, onthou dat u nog steeds die nek moet bewerk om te kompenseer vir die toename in dikte in die toets. Die ander voordeel wat u kry, is kosmeties, aangesien die PCB nou heeltemal in die toetsbord ingebed is, wat die rande baie makliker maak om af te werk (en baie mooier lyk!) En dit makliker maak om die nek te maal.

Ingenieurswese (ignoreer as u wil):

Terloops, dit benadeel nie regtig die styfheid van die nek so erg nie. Die PCB -materiaal is baie stywer as die oorspronklike toetsbordhout (Mahonie modulus: 10,6 GPa versus FR4 modulus: 24 GPa), en aangesien ons 'n Ukulele bou, is daar nie 'n groot hoeveelheid snaarspanning wat andersins kan verdraai (draai of verdraai) die nek.

Een baie interessante oorweging (wat ek waarskynlik nog moet bereken) is wat met temperatuur gebeur. Oor die algemeen is die termiese uitbreidingskoëffisiënt vir hout, parallel met die graan, ongeveer 3 x 10^-6/K, en vir FR4 is dit 14 × 10^−6/K. Daar is dus 'n aansienlike verskil. Die kommer is dat spanning in die nek ontstaan namate die temperatuur wissel, wat die snare weer afstel. Dit is iets wat vergoed kan word deur 'n soortgelyke laag aan die teenoorgestelde kant van die neutrale as aan te bring of deur die FR4 so na as moontlik aan die neutrale as te kry. Maar dit sal oorbly vir 2.0 … Iets om voor te stel en te evalueer.

Die elektronika is in die liggaam van die uke gehuisves. Gate word in die sywand (nie die klankbord nie) van die UKE gesny om plek te maak vir die skerm en die draaikodeerder, plus 'n toegangsplaat om die Arduino Micro te hou en toegang tot die USB -koppelvlak te bied. Die ontwerp en ligging van die toegangsplaat/houer kan waarskynlik verbeter word om die USB -verbinding op 'n meer gerieflike plek te laat uitkom, maar soos dit is, is dit nie so erg nie, aangesien dit nie in die pad is as u speel nie.

Die uiteensetting van stappe is soos volg:

  1. Versamel materiaal
  2. Kry die gereedskap wat u benodig
  3. Frees die nek om die dikker toets aan te pas
  4. Frees die toetsbord om gate op die vereiste plekke te maak en om sakke vir die bord en LED's te skep
  5. Verkry en bou die PCB met die LED's
  6. Meul toegangsgate in die Ukulele -liggaam vir die OLED -skerm, Rotary encoder en toegangspaneel
  7. Maak dekplate
  8. Heg drade aan die PCB; koppel en toets die elektronika
  9. Heg die nek aan die Ukulele -lyf vas
  10. Boor 'n toegangshouer om die PCB -drade in die liggaam te steek
  11. Rig en plak die PCB en toets aan die nek vas
  12. Maak die rand van die toetsbord gelyk aan die nek (verwyder die oortollige materiaal)
  13. Installeer die fret drade
  14. Dien maskering toe en pas afwerking toe op die Ukulele
  15. Rig die brug vas en maak dit vas
  16. Installeer elektronika en toets.
  17. Installeer tuners en snoer die instrument
  18. Programmeer die Uke -beheerder
  19. Verbaas die wêreld met u Ukulele -ontsag!

Stap 2: Versamel materiaal

Ons materiaallys lyk so:

  1. Ukulele -kit - ek het 'n Grizzly Concert Ukulele -kit (Grizzly Uke Kit by Amazon) gebruik, maar dit lyk asof dit gestaak word. Zimo maak 'n soortgelyke model (Zimo Uke Kit @ Amazon) wat lyk of dit die werk sal doen
  2. Ukulele toetsbord, vooraf gesplete (LMII Uke-vingerborde). Hulle pas die toetsbord op u skaal, wat 'n warboel van moeite bespaar
  3. Epoxy - om die toets aan die nek vas te plak. Ek het epoxy gekies, aangesien dit versoenbaar is met die PCB -materiaal. Soek iets met ten minste 60 minute werkslewe. MOENIE 5 minute tipes gebruik nie; u het tyd nodig om aanpassings te maak
  4. Fretdrade - ook beskikbaar by LMII
  5. Pasgemaakte PCB - Altium -lêers is hier. Ek het gekies vir normale FR4 -materiaal. Flex (poliimied) borde sal 'n interessante (indien duurder) alternatief wees, aangesien dit baie dunner kan wees
  6. 48x Neopixel (SK6812) LED's. Beskikbaar by Adafruit en Digikey
  7. 48x 0.1uF 0402 kappies - groter is aanvaarbaar, maar u moet na die plasing kyk
  8. Aansluitdraad - ten minste 4 tot 6 kleure om verwarring te voorkom, het ek hoofsaaklik 28 meter draad gebruik. Kyk hoe die DC op die LED -kragverbindings val (beide VCC en GROUND … die stroom moet na die bron terugkeer!)
  9. Roterende encoder-PEC16-4220F-S0024
  10. Fancy houtknop - vir die draaiknop (ek het myne by LMII gekry)
  11. OLED -skerm - van 4D -stelsels OLED -skerms
  12. Eksterne USB -battery - altyd goedkoper, plus dat u onderdele kan saamneem!
  13. Arduino MIKRO
  14. Bladkoper - om die bord te maak om die arduino en omhulsel vir die skerm te hou
  15. Diverse verbruiksgoedere, insluitend: skuurpapier, uretaanafwerking, popsicle -stokke, rekkies, soldeer, vloeibare, borsels, dubbelzijdige band (ek hou van die UHC -band by 3M) en klein skroewe van koper (vir die bord)
  16. Opsionele Ukulele -verbeterings - beter tuners, beter snare, beter moer en saal, inlegsel as u met u betowering wil pronk)

Stap 3: Kry die nodige gereedskap

Vroeër of later moet u hierdie inligting verkry of kry:

Ons gereedskaplys bevat:

  1. Freesmasjien - CNC verkieslik, maar u kan selfs klaarkom met 'n router en baie geluk. Ek het 'n kombinasie CNC -meul/router gebruik
  2. Router bits - hardmetaal verkieslik. Router stukkies gekies bo eindmeulens omdat ons hout bewerk, nie metaal nie
  3. Klampe - baie van hulle. Meestal nodig om onderdele vas te hou terwyl dit geplak word
  4. Soldeerbout - klein punt vir soldeer op die oppervlak
  5. Mikroskoop of vergrootglas - u kan slegs met u oë probeer soldeer, maar ek sal dit nie ten minste 10 keer aanbeveel nie
  6. Pincet (om dele in plek te sit)
  7. Frettingsgereedskap (sien die korrekte gereedskap op LMII hier, maar ek het dit wat ek tuis gehad het, gebruik; hamers, lêers en snyers)
  8. Verskeie handgereedskap soos houtbeitel, skroewedraaiers, 'n sagte hamer of 'n rouhamer (vir fretting), ens.
  9. Skuurmiddels - verskillende korrels skuurpapier

Ons sagteware -instrumente sluit in (sommige is opsioneel, afhangende van u begroting/vindingrykheid):

  1. Arduino sagteware
  2. Die Ukulele -bronkode (https://github.com/conrad26/Ukulele)
  3. PCB -uitlegpakket - ek het Altium gebruik omdat die gratis weergawe van Eagle nie die grootte van die bord ondersteun wat ek wou hê nie. Altium is 'n volledige uitlegpakket en nie regtig in 'n stokperdjie -prysklas nie. Ek het die Gerber -lêers op my webwerf opgeneem vir die prototipe, maar hierdie het beslis 'n opdatering nodig
  4. 3D -modelleringsagteware - ek het SolidWorks gebruik, maar een gratis alternatief is FreeCAD (https://www.freecadweb.org/)
  5. CAM sagteware - soos FeatureCAM van Autodesk vir die skep van die NC meul lêer.

Die kombinasie van 3D -stap -lêeruitvoer vanaf Altium en 'n 3D -model van die toetsbord elimineer die moeilikheid om seker te maak dat alles in lyn is, maar dit is nie 'n vereiste nie. Versigtige uitleg sal dieselfde resultaat behaal.

Noudat ons weet wat ons wil doen, en wat ons nodig het om dit te doen, laat ons 'n Ukulele bou.

Stap 4: Frees die nek om die dikker toets aan te pas

Frees die nek om die dikker toets aan te pas
Frees die nek om die dikker toets aan te pas

Voordat u maal, moet u daarop let dat die oorspronklike vlakheid van die fretboard -monteeroppervlak gehandhaaf moet word, of dat u 'n gedraaide toetsbord moet hê, wat allerhande probleme met die nivellering van die fret kan veroorsaak.

Moet net nie daarheen gaan nie, neem u tyd en klem die nek versigtig en stewig vas en kyk of die snit oor die hele nek pas. Tyd wat u hier spandeer, sal u later baie hartseer bespaar.

Een van die redes waarom ek gekies het vir 'n dikker toets bo 'n inlegsel in die nek, was die groter oppervlak (plak). 'N Ander rede is dat dit die maal van die nek vergemaklik. U sny eenvoudig die hele oppervlak tot op die vereiste hoogte.

Stap 5: Verkry en bou die PCB met die LED's

Verkry en bou die PCB met die LED's
Verkry en bou die PCB met die LED's
Verkry en bou die PCB met die LED's
Verkry en bou die PCB met die LED's

Ek het die hele vergadering met die hand gesoldeer. Die LED -pakkette is veral maklik om te smelt, dus moenie dit beskadig nie. Ek stel voor dat u 'n statiese band dra, aangesien die tou afhanklik is van elke LED wat werk.

Die toetsbordontwerp is gebaseer op die WS2812B LED's. Ek het besluit om slegs die eerste oktaaf van die toetsbord te doen (48 LED's !!). Elke LED kan as 'n bietjie in 'n skofregister beskou word. Die skofregister word op 800 kHz geklok. Ek het die Adafruit -biblioteek gebruik (sien die programmeringsafdeling) om dinge vinnig aan die gang te kry.

Ek het die ontwerp in Eagle begin, maar die grootte van die bord is beperk tot ongeveer 4 x 5 duim, so ek moes (of meer korrek, ek het besluit) oorskakel na Altium. Ek gebruik Altium by die werk, so dit het my in werklikheid vinniger gemaak. Die Altium -projek, skematiese en pcb -lêers (en biblioteekonderdele) is op my webwerf. Die bord is trapeziumvormig en ongeveer 10 sentimeter lank. Ek dink ek moes die buitelyn 'n bietjie meer saamgepers het (volgende draai!) Die samestelling was nie sleg nie, maar as u dit kan bekostig, beveel ek regtig 'n ordentlike soldeerbout (JBC Soldering Iron) en 'n goeie mikroskoop aan. Ja, ek is bederf en nee, ek het nie sulke goed in my tuislaboratorium nie. Ek is goedkoop.

Ek het die planke by Sunstone laat maak. $ 129 vir twee borde. Gewaarborgde beurt vir 'n week. Moet egter nie bespaar op die aflewering nie. Ek het nie opgemerk dat ek UPS -grond gebruik het nie, en ek het uiteindelik 'n ekstra week gewag vir my planke. Die totale monteringstyd was ongeveer 2 uur (98 dele).

Stap 6: Frees die toetsbord

Image
Image
Meul -toegangsgate in die Ukulele -liggaam
Meul -toegangsgate in die Ukulele -liggaam

Ons moet die toetsbord maal om gate op die vereiste plekke te maak en om sakke vir die bord en LED's te skep.

Ek het 'n 3D -model van die voltooide toetsbord in Solidworks geskep en die CNC -freesroetine geskep met FeatureCAM.

Die onderste deel van die toetsbord (naaste aan die klankgat) moet dunner gemaak word om die hoogteverandering tussen die nek en die liggaam te bepaal. Dit is beslis die moeite werd om 'n paar keer te pas om seker te maak dat dit redelik pas.

Terugskouend moes ek die ongebruikte dele van die toetsbord afgesny het sodat dit beter by die meul pas (my goedkoop meul het slegs 'n X-as-as van 12 duim gehad). freesakke, wat tot minder uitbreek tussen sakke behoort te lei.

Maak handmatige aanpassings indien nodig om ruimte vir bedrading by te voeg. 'N Belangrike ding om op te let, is dat ek in sommige van die sakke in die gleuf gebreek het waar die fretdraad gaan. Aangesien dit 'n geleier is, moet u seker maak dat dit niks belangriks kortkom nie. Dit verminder ook die sterkte van die materiaal wat die fret op sy plek hou. Die ontwerp moet aangepas word om nooit met 'n fretgleuf te kruis nie.

Stap 7: Meul -toegangsgate in die Ukulele -liggaam

Meul -toegangsgate in die Ukulele -liggaam
Meul -toegangsgate in die Ukulele -liggaam

Ek het die toegangsgate in die liggaam met die hand gemaal. Die moeilikste is om die 'platste' gebied van 'n baie geboë oppervlak te vind. Merk die buitelyn met potlood en maal geleidelik materiaal weg totdat u die OLED -skerm goed pas. Ek het 'n bewerkte koperring gekry en dit vasgemaak met 'n 3M VHB -band.

Aangesien geen van hulle baie presisie benodig nie, is die roterende enkodeerder en gate op die toegangspaneel baie makliker om te maak.

Stap 8: Maak dekplate

Maak dekplate
Maak dekplate
Maak dekplate
Maak dekplate
Maak dekplate
Maak dekplate

U moet ook die voorblaaie van die skerm en die toegangspaneel vervaardig. Die toegangspaneel benodig 'n gat (reghoekig) vir die USB (mikro) aansluiting. Gebruik net die bestaande aansluiting op die Arduino, aangesien daar nie baie paneelmonteringsopsies vir mikro -USB is nie. (alhoewel ek van nuuts af ontwerp het, sou ek een hiervan kyk)

Om die bord vas te hou, maak L -hakies uit koper en soldeer dit aan die agterkant van die toegangsplaat. Dit laat u 'n mate van posisionering toe. Om die posisie korrek te kry, moet u eers 'n perfboard-monteerbord (met montagegate) vir die Arduino MICRO maak en die L-hakies daaraan vasmaak met 2-56 masjienskroewe. U kan dan die ligging aanpas om die usb -poort in lyn te bring en die plekke vir die hakies op die bord akkuraat te merk. Verwyder die hakies van die perfboard en soldeer dit op hul plek. Monteer uiteindelik die perfboard -eenheid.

Ek het vier klein koperhoutskroewe gebruik om die koper se toegangspaneel vas te hou.

Op hierdie stadium beveel ek 'n toetspassing aan voordat die finale montering begin. Hierdie stap is opsioneel, maar word aanbeveel. Dit is baie makliker om aanpassings aan te bring voordat u dit plak.

Stap 9: Heg drade aan die PCB; Koppel en toets die elektronika

Image
Image
Heg die nek aan die Ukulele -liggaam vas
Heg die nek aan die Ukulele -liggaam vas

Moet nog nie die elektronika permanent aanheg nie. Koppel die drade aan die printplaat en sorg dat u genoeg spasie agterlaat om die toegangsgat uit te voer. Dit moet uiteindelik permanent aan die Arduino MICRO -bord geheg word (die foto's toon 'n Arduino UNO, wat ek vir kodeontwikkeling gebruik het)

Stap 10: Bevestig die nek aan die Ukulele -liggaam

Bevestig die nek aan die Ukulele -liggaam volgens die instruksies wat by die Ukulele -kit ingesluit is. Let veral op die inlynstelling van die toetsbordoppervlak met die liggaam van die uke.

Stap 11: Boor 'n toegangsgat om die PCB -drade in die liggaam te steek

Boor 'n toegangsgat om die PCB -drade in die liggaam te steek
Boor 'n toegangsgat om die PCB -drade in die liggaam te steek

As die gom droog is, boor 'n gat van ongeveer 1/4 mm (10 mm) skuins sodat die drade van die printplaat na die Ukulele -liggaam kan lei. Moenie die klankbord beskadig nie.

Miskien moet u ook 'n klein sakkie skep om die dikte van die drade onder die bord moontlik te maak (of opsioneel die verbindings bo -op sit en verligting in die toetsbord insluit.)

'N Ander toetspas sou op hierdie stadium nie skade doen nie.

Stap 12: Rig en plak die PCB en toets aan die nek vas

Rig en plak die PCB en toets aan die nek vas
Rig en plak die PCB en toets aan die nek vas

Ek stel voor dat u deur die klem dink (en dit probeer!) Voordat u dit plak. U kan 'n blok vorm wat aan die onderkant van die nek gevorm is, sodat u 'n plat klemoppervlak kan kry. Die toetsbord is op hierdie punt groter as die nek, dus u moet daarvoor voorsiening maak.

Wees baie versigtig om nie epoksy te kry op enige oppervlak wat u later wil voltooi nie. Beter nog, pas maskering toe op alle oppervlaktes wat nie vasgeplak is voordat u dit plak nie, om seker te maak dat dit net waar u van plan was.

Gebruik epoxy met 'n minimum lewensduur van 60 minute … u benodig dit alles.

Plak eers die PCB vas, en maak seker dat oortollige gom nie in die gomplankoppervlak uitsteek nie. Dit bied 'n metode om die toets aan die nek te pas. Die PCB het 'n gladde soldeermasker -afwerking, so ek het dit met 'n bietjie skuurpapier opgeruim om die epoxy 'n effens verbeterde oppervlakafwerking te gee.

Rig en plak die toets aan die nek vas. Wees versigtig om geen sakke te laat wat later kan resoneer nie (buzz!). Wees ook versigtig om geen gom op die LED -oppervlaktes te kry nie.

Sodra die gom droog is, kan u die elektronika nog 'n keer bedraad en toets. Een slegte LED laat jou die lewe haat. Ek het 'n slegte LED (die eerste!) Op die prototipe gehad, en ek moes kreatiewe houtwerk doen om toegang tot die gebrekkige LED te kry en dit skoon te maak.

Stap 13: Maak die toetsbordrande gelyk aan die nek en voeg fretdrade by

Sodra die gom droog is, kan u die rande begin afwerk. Ek sny die oortollige toetsbordmateriaal versigtig weg (met 'n meul) en maak die laaste millimeter klaar met die hand skuur.

Om die draaddrade by te voeg, kan eenvoudig met 'n hamer gedoen word (met 'n plastiese gesig om te voorkom dat dit skeur). Moet net nie te hard hamer nie. As u die fretdraad by die gleuwe pas, moet hulle sonder moeite ingaan.

Die ding waarna u moet kyk, is om die dun oppervlak van die LED -sak te breek. Op die prototipe het ek 'n paar LED -sakke (naby die 12de fret, waar die ruimte krap word) toegelaat om in die fretgleuf uit te strek. Dit is 'n slegte idee, aangesien dit 'n swak plek skep wat kan (en wel) kan kraak sodra die fretdraad ingesit is.

Stap 14: Pas maskering toe en pas Finish toe op die Ukulele

Masker die toetsbord (dit word nie afgewerk nie) en die plakplek van die brug en begin die afwerking aanbring.

Lees die instruksies met u kit tydens die maskering van die bruggebied en kontroleer die skaallengte om seker te wees. Die kit wat ek vir die prototipe gebruik het, het die verkeerde skaallengte gebruik en het dus die verkeerde afmetings verskaf om die brug op te spoor (maar daar was 'n nota om die nuutste instruksies op die webwerf na te gaan!). My ingewande het vir my gesê dit was verkeerd, maar ek het blindelings gesag aanvaar.

Dit is altyd beter om te verstaan hoekom jy iets doen, eerder as om die instruksies blindelings te volg.

Vir die afwerking is daar baie tutoriale van Luthiers wat weet wat hulle op die internet doen, dus ek raai u aan om dit te raadpleeg voordat u met die afrondingsproses begin.

Ek het dit natuurlik nie gedoen nie, so ek het uiteindelik die verkeerde seëlaar gebruik, wat 'n baie korrelige oppervlak tot gevolg gehad het. Moenie dit doen nie.

Doen jou huiswerk.

Stap 15: Rig uit en bevestig die brug

Rig en maak die brug vas
Rig en maak die brug vas

Hierdie stap is redelik eenvoudig, maar beplan weer u klemmetode en probeer dit vooraf voordat u dit plak. Ek het 'n standaard houtlym gebruik om die brug vas te maak.

Stap 16: Installeer elektronika en toets

Installeer elektronika en toets
Installeer elektronika en toets

Dit is nou die tyd om u bedrading mooi te maak. Boonop wil u nie hê dat dit binne -in die liggaam rondvlieg en gonsende geluide maak of erger is nie, maar dat dit op die verhoog breek.

Die Arduino -kode kan opgedateer word via die USB -poort, dus u hoef dit nie uitmekaar te haal nie, tensy u wil knibbel.

Stap 17: Installeer tuners en snoer die instrument

Image
Image
Die programmering van die Uke
Die programmering van die Uke

U sal waarskynlik ook die frets moet gelykmaak en 'n bietjie met die opstelling moet speel, maar waarom moet u nou bekommerd wees as u so naby aan die einde is?

Ek het die tuners opgegradeer en goeie Aquila -snare gebruik, wat die geluid niks gehelp het nie. Hou dit dus in gedagte terwyl u geld in 'n projek -ukelele uitbetaal …

Stap 18: Programmering van die Uke

Die finale Arduino -kode is op Github. Daar is 'n paar reëls in die kode om toekomstige verbeterings te ondersteun (soos 'n metronoomfunksie en 'sliders' vir die skerm) ('n UI -element wat soos 'n skuifbalk lyk)

Hierdie kode gebruik 'n Rotary Encoder Library (Rotary Encoder Arduino Library) om gebruikersinvoer van die Rotary Encoder te hanteer.

Dit gebruik ook die Adafruit Neopixel -biblioteek en die voorbeeldkode wat hier geleë is. Die teater- en reënboogmodusse is afgelei van voorbeelde van die biblioteek. (sien strandtest.ino).

Die skermbestuurder word verskaf deur 4D -stelsels en word hier op Github gevind.

Daar is twee unieke funksies geïmplementeer vir die Ukulele -projek. Die eerste implementeer die akkoordbiblioteek, en die tweede vertoon 'n blaai -teksboodskap met 'n pasgemaakte karakterset.

Die aangehegte diagram toon die LED -liggings van die toetsbord en hoe dit verbind is. LED 0 is in die regter boonste hoek.

Stap 19: Hoe om 'n akkoord te vertoon

Hoe om 'n akkoord te vertoon
Hoe om 'n akkoord te vertoon

Die displayChord -funksie vertoon die vingerposisies (slegs die eerste posisie vir eers) vir elke akkoord. Akkoorde wat deur die gebruiker gekies is (grondnoot en kwaliteit) word as 'n paar indekse gestoor. Dit word weer gebruik om die vingers vir elke akkoord op te soek.

Ek het 'GCEA' -notasie gebruik om akkoorde op te slaan (bv.' A 'is' 2100 '). Die akkoorde word vooraf bereken vir elke grondnoot en gestoor in 'n veranderlike wat ooreenstem met die kwaliteit van die akkoord. (dus, 'n majeur, word gestoor op die eerste plek van die skikking "majorChords", wat ooreenstem met "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 "};

Let daarop dat, aangesien dit 'n teksstring is, elke syfer ook 'n hekswaarde kan verteenwoordig om rekening te hou met fretposisies groter as 9. Dit is, A en B sal LED's 10 en 11. verteenwoordig vir akkoorde in die eerste posisie, dit was nie 'n probleem nie).

Die LED -string word in die lengte in rye van 12 ('n oktaaf) langs elke string (met die A -string) begin, die daaropvolgende reeks van 12 begin by die eerste fret van die volgende string (sien die diagram in stap 18). Dit is belangrik vir die algoritme om te bepaal watter ligte vir 'n gegewe akkoord moet aanskakel. Dit beteken dat pixels 0 tot 11 die A -string LED's is, 12 tot 23 die E -string LED's, ensovoorts. By die ontleding van 'n A = "2100" (gestoor as 'n string, daar is ook 'n nul terminator "\ n" in die kode), interpreteer ons dit as: geen pixels op die A -string word aangesteek nie, en ook nie op die E -string nie, pixel 0 (fret 1) op die C -string word aangesteek en pixel 1 (fret 2) op die G -string. Let daarop dat 'n "0" af is, nie die eerste LED nie. Op grond van die bedrading wil ons LED's 24 en 37 verlig. Die kode om 'n akkoord te vertoon word hieronder getoon.

for (int i = 0; i <4; i ++) {if (int (akkoord - '0')) {// algoritme om die koordstring int ledNumber = int (akkoord - '0' te ontleed)) + (3 - i) * 12 - 1; // sien die bespreking hierbo, die (3-i) is om die indeks strip.setPixelColor (ledNumber, 0, 125, 125) om te keer; // setPixelColor (ledNumber, rooi waarde, groen waarde, blou waarde)}}

Die if -verklaring kyk of die LED af is. As dit nie die geval is nie, neem dit die ascii -waarde van die karakter, akkoord , en trek die ascii -waarde af vir '0' om die ledNumber te laat brand.

strip is 'n voorbeeld van die Adafruit_NeoPixel -klas. Die setPixelColor -funksie stel die kleur vir die berekende pixel (vas in (0, 125, 125) in hierdie geval.

Stap 20: Hoe om 'n rolboodskap te vertoon

Hoe om 'n rolboodskap te vertoon
Hoe om 'n rolboodskap te vertoon

Ons het dus 'n 12 x 4 reeks LED's … hoekom laat u dit nie anders as mooi ewekansige ligpatrone vertoon nie!

Die eerste probleem is dat die skermhoogte (4) taamlik beperk is as gevolg van die aantal snare op 'n Uke. Horisontale blaai is meestal onleesbaar, maar in 'n vertikale rigting kan ons 4 x 5 karakters ondersteun wat vertikaal loop.

Om karakters as vyf "vertikale" rye te organiseer, beteken dat twee karakters gelyktydig vertoon kan word, sodat daar 'n spasie tussen elke karakter kan wees.

Die probleem was dat daar geen standaard 4 x 5 karakterset was nie. Ek het my eie gemaak met behulp van die aangehegte sigblad. Ek het elke ry aan 'n enkele hekswaarde toegeken (4 bisse wat die pixel aan of uit). Die kombinasie van die vyf hekswaardes vorm 'n karakter (bv. "0" is 0x69996).

Die waardes vir elke karakter word in 'n skikking in ASCII -volgorde gestoor. Die karakterset maak 'n paar kompromieë met sekere letters, maar die meerderheid is redelik duidelik. (die gekrabbel onderaan die sigblad is idees waarmee ek gespeel het, aangesien ons kleur as opsie het, ons kan 'diepte' by die karakter voeg en moontlik 'n addisionele resolusie kry.

Die string wat vertoon word, is vervat in die string veranderlike, message.

'N buffer word geskep om die karaktervertoning voor te stel. Ek dink ek kon eenvoudig 'n groot buffer met die hele vertaalde boodskapreeks geskep het, veral omdat die meeste boodskappe minder as 20 karakters sal wees. Ek het egter gekies om 'n vaste buffer van drie karakters (18 grepe) te skep. Slegs twee van die karakters word aktief vertoon, en die derde is 'n blik vorentoe, waar die volgende karakter gelaai word. Die LED -string (dink daaraan as 'n groot skofregister) is gelaai met die 48 bisse vir die string. Ek het 'n bietjie geheue spandeer om dit makliker te konseptualiseer. Elke nibble kry sy eie geheue -ligging, wat die geheuevereiste verdubbel, maar dit is nie veel gegewe die buffergrootte nie.

Die buffer word met die volgende karakter gelaai wanneer die uitvoerindeks (wyser) by 'n karaktergrens kom (outputPointer by 5, 11 of 17).

Om die buffer te laai, gryp ons die eerste karakter in 'boodskap' as 'n ASCII -waarde en trek 48 af om die indeks in die asciiFont -skikking te kry. Die waarde by die indeks word in codedChar gestoor.

Die eerste deel van die boodskap wat verskuif is, stem ooreen met LED's 47, 35, 23 en 11 (onderaan die skerm). Dus, vir die getal nul 0x0F999F, word die F (linker een) eerste ingeskuif, 9 tweede en so aan.

Die volgende karakter word gelaai deur elke knibbel te masker en na regs te skuif. Vir die voorbeeld hierbo gee die algoritme (0x0F999F & 0xF00000) >> 20, dan (0x0F999F & 0x0F0000) >> 16, ens.

int indeks; if (outputPointer == 17 || outputPointer == 5 || outputPointer == 11) {char displayChar = message.charAt (messagePointer); // gryp die eerste karakter van die boodskap lank codedChar = asciiFont [displayChar - 48]; as (displayChar == 32) codedChar = 0x000000; messageBuffer [bytePointer+5] = byte ((codedChar & 0xF00000) >> 20); // masker alles behalwe die laaste knibbel en skuif dit oor met 20 (ensovoorts) messageBuffer [bytePointer+4] = byte ((codedChar & 0x0F0000) >> 16); // hiervoor moet 'n nibble per geheue -plek messageBuffer [bytePointer+3] = byte ((codedChar & 0x00F000) >> 12) geplaas word; // al ses verteenwoordig die karakter messageBuffer [bytePointer+2] = byte ((codedChar & 0x000F00) >> 8); messageBuffer [bytePointer+1] = byte ((codedChar & 0x0000F0) >> 4); messageBuffer [bytePointer] = byte ((codedChar & 0x00000F)); if (bytePointer == 0) {// hanteer die lus rondom die bytePointer bytePointer = 12; } anders {bytePointer -= 6; // ons vul van onder na bo; LET WEL: dit is nodig om te kyk of dit dit makliker maak} as (messagePointer == message.length ()-1) {// die lus op die boodskap messagePointer = 0 hanteer; } anders {messagePointer += 1; // gaan na die volgende karakter}}

Sodra die buffer gelaai is, word dit 'n kwessie van opspoor waar die uitsetwyser is en die LED -string met die korrekte 48 bisse (die huidige 4 en die vorige 44) laai. Soos voorheen genoem, is strip 'n voorbeeld van die NeoPixel -klas en setPixelColor stel die kleur (RGB) van elke pixel in. Die funksie show () verskuif die vertoningswaardes na LED string.

// lus om die buffer voortdurend uit te skuif

// wil die hele strook op elke deurloop deur die lus skryf, slegs die beginplek verander vir (int ry = 12; ry> 0; ry--) {index = outputPointer + (12-ry); as (indeks> 17) indeks = outputPointer+(12-ry) -18; // lus as groter as 17 vir (int kolom = 4; kolom> 0; kolom--) {strip.setPixelColor (uint16_t (12*(kolom-1)+(ry-1)), uint8_t (RedLED*(bitRead) (messageBuffer [index], column-1))), uint8_t (GreenLED*(bitRead (messageBuffer [index], column-1)))), uint8_t (BlueLED*(bitRead (messageBuffer [index], column-1))))); // brand op elke plek die LED as die bietjie een is}} // outputPointer wys na die huidige laagste byte in die vertoningstring as (outputPointer == 0) outputPointer = 17; anders outputPointer -= 1; strip.show (); }

Stap 21: Verbaas die wêreld met u Ukulele Awsomeness

Image
Image

Die laaste Ukulele -prototipe het ongeveer 6 maande begin en stop geneem om af te trek.

Baie nuwe tegnologie om te leer en miskien houtwerk en musikale teorie om te begin!

Wat om te doen vir die volgende weergawe?

  1. Raak ontslae van die skerm en die draaikodeerder. Vervang dit met 'n Bluetooth -module wat aan die arduino gekoppel is. Beheer dit op afstand met 'n telefoon of tablet. Alles is beter met Bluetooth.
  2. Werk akkoordpatrone op afstand in real -time op. Iets wat die beste oor is vir die app.
  3. LED deksels. Die huidige weergawe verhoed dat gunk in die LED -gate kom. 'N Vriend het 'n klomp klein lense gemaak, maar ek kon nooit uitvind hoe ek dit regkry nie.
  4. Afwisselende toetsbordmateriaal, miskien iets duidelik solank die frets hou.
  5. Meer ligte! Elimineer die beperking op teks deur meer "rye" by te voeg. Dit is regtig 'n beperking wat veroorsaak word deur die grootte van die toets en die LED -liggame.

Sien weer die metgesel Instructable wat die karakterset beskryf wat ek moes skep om deur teks te blaai.

Baie dankie dat u so ver gekom het! Mahalo!

Aanbeveel: