Мазмұны:

Жарықтандырылған үкулеланы қалай құруға болады !: 21 қадам
Жарықтандырылған үкулеланы қалай құруға болады !: 21 қадам

Бейне: Жарықтандырылған үкулеланы қалай құруға болады !: 21 қадам

Бейне: Жарықтандырылған үкулеланы қалай құруға болады !: 21 қадам
Бейне: Тараз көшелері тас түнекке айналған: 1330 көшенің тек 209-ы ғана жарықтандырылған 2024, Шілде
Anonim
Image
Image
Жоспар жасаңыз
Жоспар жасаңыз

Мен укулеле ойнаймын. Орташа (егер бұл сөз болса), сондықтан мен: «Егер сіз шынымен де әйелдерді таң қалдырғыңыз келсе, оларды сахнада болып жатқан апаттан алшақтататын құрал қажет»,-деп ойладым. Осыдан «Жарқыраған Үкулеле» дүниеге келді.

Бұл жоба Концерт Ukulele жиынтығын алады және әр жол мен аралық күйге Arduino басқаратын жарықдиодты қосады. Ол сонымен қатар жарықдиодты жолдың режимі мен қарқындылығын таңдау үшін сәнді OLED дисплейі мен айналатын кодер негізіндегі пайдаланушы интерфейсін қосады.

Аяқталған uke аппараттық құралының мүмкіндіктері:

  1. Arduino MICRO жарықдиодты жолға, дисплейге және енгізу құрылғысына қосылу үшін.
  2. 48 жеке бағдарламаланатын толық түсті жарықдиодты шамдар
  3. OLED дисплейі
  4. Қолданушы енгізу үшін айналмалы кодер
  5. Сыртқы қуат пен Arduino бағдарламалауға арналған USB интерфейсі

Uke бағдарламалық жасақтамасы бар:

  1. Жарық диодты шамаларды басқаратын негізгі жарық режимдері
  2. Театрдың таңғажайып режимі (қойылымдар үшін өте ыңғайлы!)
  3. Жарық диодының қарқындылығын бақылау
  4. Укулеле аккордтарының барлық бірінші позициясының толық аккорды кітапханасы (аккорд мәні мен сипаты)
  5. 4х6 пиксельді бірегей таңбалар жиынтығын қолдана отырып, жұмыс істейтін мәтінді (тігінен) көрсету мүмкіндігі

Бұл нұсқаулық аяқталған прототипті сипаттайды. Толық даму туралы дастан МЫНА жерде қол жетімді, оның ішінде кейбір тәрбиелік (ауыртпалықты) қателіктер және неге сіз бірінші дизайнды аяқтауыңыз керек екендігі туралы құнды сабақ (қаншалықты жағымсыз нәрселер болса да). Сіз шынымен білмейтін барлық нәрсені соңына дейін білмейсіз (және сіз әлі білмейсіз!), Бірақ сіз келесі дизайн үшін әлдеқайда жақсы және ақылдысыз.

Мен прототипті Grizzly Concule Ukulele жинағына айналдырдым. Жинақтан бастау уканың денесі туралы алаңдаушылықты жеңілдетеді (жақсы, көбінесе) және нағыз лютиерлік жұмыстың көп бөлігін жояды. Бұл жиынтықтар өте жақсы және заттардың үлкен схемасында қымбат емес (және қате жіберетіндіктен аз ауырады).

1 -қадам: Жоспар құрыңыз

Жоспар жасаңыз
Жоспар жасаңыз

Кейбір жинақтарға кіретін тақта (немесе саусақ тақтасы) әлдеқашан бекітілген. Бұл жақсы/жаман. Бұл уақытты үнемдеуші ретінде жақсы, бірақ бұрғылау үлгісін салу және фрезерлеу кезінде орнында ұстау тұрғысынан алғанда, бұл аздап ауырады. Жинақта берілгенді жойғаннан кейін мен жаңа тақта сатып алуды шештім (менде басқа жинақ сатып алудан басқа амалым жоқ).

Борттық тақтаны жобалау кезінде біз ПХД мен светодиоды ендіру үшін қажетті қалыңдықтың ұлғаюын есептеуіміз керек (сонымен қатар пассивті компоненттерді ұмытпау керек), бірақ жарық диодты тақтайшаның бетінен тым алыс орналасқан.

Жарықдиодты баспа схемасы (ПХД) қарапайым 2 қабатты тақта түрінде жасалған. Бұл светодиодты жіпті қолмен жинауға көп көмектеседі және Ukulele мойынына механикалық беріктік береді (бұл шыны талшық және эпоксидті). Мен Eagle -де макетті бастадым, бірақ тақтаның шектеулі болуына байланысты Altium Designer -ді қолдандым. Altium схемалық және ПХД файлдары осында.

Жиынтық тақтаның қалыңдығы 0,125 дюйм болды. Егер қалыңдығы 0,062 дюйм болатын ПХД болса және светодиоды үшін қосымша 0,062 дюйм рұқсат етілсе, біз тақтаның көп бөлігін (бәріндей) кесуіміз керек еді. Орнын толтыру үшін біз борт тақтасындағы светодиодтардың қалтасын ПХД үшін сәйкес қалтасы бар жартылай кесуге болады, немесе біз бүкіл тақтаны (мен таңдаған нұсқаны) Luther Mercantile International (LMII) қалың нұсқасына ауыстыра аламыз., бастау үшін 0,25 дюйм.

БІРАҚ, тақтаның қалыңдығының өсуін өтеу үшін мойынды өңдеуге тура келетінін ұмытпаңыз. Сіз алатын тағы бір артықшылық - бұл косметикалық, өйткені ПХД енді тақтайшаға толығымен ендірілген, бұл жиектерді бітіруді жеңілдетеді (және одан да жақсы көрінеді!) Және мойынды тегістеуді жеңілдетеді.

Инженерлік материалдар (қаласаңыз, елемеңіз):

Айтпақшы, бұл мойынның қаттылығын айтарлықтай төмендетпейді. ПХД материалдары ағаштан жасалған ағаштан (ағаштан жасалған модуль: 10.6 GPa қарсы FR4 модулі: 24 GPa) әлдеқайда қатал, сонымен қатар біз Ukulele құрып жатқандықтан, керісінше бұрмалайтын үлкен кернеу жоқ. немесе иілу) мойын.

Бір өте қызықты мәселе (мен әлі де есептеуім керек) - бұл температурада болатын нәрсе. Дәнге параллель ағаш үшін әдетте кеңеюдің жылу коэффициенті шамамен 3 x 10^-6/K, ал FR4 үшін 14 × 10^-6/K құрайды. Сонымен, айтарлықтай айырмашылық бар. Мазалайтын нәрсе-температураның өзгеруіне байланысты мойынның кернеуі, бұл өз кезегінде жіптерді ажыратады. Бұл бейтарап осьтің қарама -қарсы жағында ұқсас қабатты қолдану арқылы немесе FR4 -ті бейтарап оське мүмкіндігінше жақындату арқылы өтелетін нәрсе. Бірақ бұл 2.0 үшін қалады … Модельдеуге және бағалауға болатын нәрсе.

Электроника уканың корпусында орналасқан. Дисплей мен айналмалы кодер үшін орын алу үшін UKE бүйір қабырғасында тесіктер (дыбыс тақтасы емес!), Сонымен қатар Arduino Micro ұстайтын және USB интерфейсіне кіруге мүмкіндік беретін кіру тақтасы кесіледі. Кіру тақтасы/қондырғы дизайны мен орналасуы USB қосылымын ыңғайлы жерде шығару үшін жақсартылуы мүмкін, бірақ бәрі ойдағыдай емес, өйткені ойнаған кезде бәрі жақсы.

Қадамдардың схемасы келесідей:

  1. Материалдарды жинау
  2. Қажетті құралдарды алыңыз
  3. Қалың тақтаны орналастыру үшін мойынды тегістеңіз
  4. Қажетті жерлерде тесіктер жасау үшін және тақта мен жарықдиодты қалталарды жасау үшін борт тақтасын диірменге салыңыз
  5. Жарық диодты ұстайтын ПХД алыңыз және құрыңыз
  6. Uulele корпусындағы OLED дисплейі, айналмалы кодер және кіру тақтасы үшін диірменге кіру тесіктері
  7. Қаптау тақтайшаларын жасаңыз
  8. ПХД сымдарын бекітіңіз; электрониканы қосыңыз және тексеріңіз
  9. Мойынды укулеле денесіне бекітіңіз
  10. ПХД сымдарын корпусқа беру үшін кіру тірегін бұраңыз
  11. ПХД мен тақтаны мойынға туралаңыз және жабыстырыңыз
  12. Тақта тақтасының шеттерін мойынға тегістеңіз (артық материалды алып тастаңыз)
  13. Шатыр сымдарын орнатыңыз
  14. Маскулирование қолданыңыз және укулелеге әрлеу жағыңыз
  15. Көпірді туралаңыз және бекітіңіз
  16. Электрониканы орнатыңыз және тексеріңіз.
  17. Тюнерлерді орнатыңыз және аспапты бекітіңіз
  18. Uke контроллерін бағдарламалаңыз
  19. Укулеле кереметлігіңізбен әлемді таң қалдырыңыз!

2 -қадам: материалдарды жинау

Біздің материалдар тізімі келесідей:

  1. Ukulele жиынтығы - Мен Grizzly концертінің Ukulele жиынтығын қолдандым (Amazonдағы Grizzly Uke Kit), бірақ бұл тоқтатылған сияқты. Зимо ұқсас модельді жасайды (Zimo Uke Kit @ Amazon), бұл жұмысты орындайтын сияқты
  2. Алдын ала ойылған Ukulele тақтасы (LMII Uke Fingerboards). Олар тақтаны сіздің шкалаңызға орналастырады, бұл қиындықты болдырмайды
  3. Эпоксидті - тақтаны мойынға жабыстыруға арналған. Мен эпоксидті таңдадым, себебі ол ПХД материалымен үйлесімді. Ең аз дегенде 60 минуттық жұмыс уақыты бар нәрсені іздеңіз. 5 минуттық түрді ҚОЛДАНБАҢЫЗ, реттеу үшін сізге уақыт қажет
  4. Сымды сымдар - LMII -де де бар
  5. Арнайы PCB - Altium файлдары осында. Мен FR4 типті қалыпты материалды таңдадым. Flex (полиимидті) тақталар қызықты (егер қымбат болса) балама болар еді, өйткені олар әлдеқайда жұқа болуы мүмкін
  6. 48x Neopixel (SK6812) жарық диодтары. Adafruit және Digikey -де қол жетімді
  7. 48x 0.1uF 0402 қақпақтары - үлкенірек, бірақ сіз орналастыруды бақылауыңыз керек
  8. Қосылу сымы - шатастырмау үшін кемінде 4 -тен 6 түске дейін мен 28 калибрлі сымды қолдандым. Жарықдиодты қуат қосылымдарындағы тұрақты токтың төмендеуін қараңыз (VCC де, GROUND да … ток көзге оралуы керек!)
  9. Айналмалы кодер-PEC16-4220F-S0024
  10. Сәнді ағаш тұтқа - айналмалы кодер үшін (менікін LMII -ден алдым)
  11. OLED дисплейі - 4D жүйелерінен OLED дисплейлері
  12. Сыртқы USB батареясы - әрқашан арзан, сонымен қатар қосалқы бөлшектерді алып жүруге болады!
  13. Arduino MICRO
  14. Табақша жез - дисплейге ардуино мен жапқышты ұстайтын пластинаны жасау үшін
  15. Әр түрлі шығын материалдары, соның ішінде: зімпара, уретан қаптамасы, пластикалық таяқшалар, резеңке таспалар, дәнекерлеу, флюс, щеткалар, екі жақты таспа (маған UHC таспасы 3М ұнайды) және ағаштан жасалған кішкене бұрандалар (пластина үшін)
  16. Қосымша Ukulele жақсартулары - жақсы тюнерлер, жақсы жіптер, жаңғақтар мен седла, егер сіз лютиерлік шеберлігіңізді көрсеткіңіз келсе, кірістіру)

3 -қадам: Қажетті құралдарды алыңыз

Ерте ме, кеш пе сізге мыналар қажет:

Біздің құралдар тізіміне мыналар кіреді:

  1. Фрезерлік станок - CNC қалайды, бірақ сіз тіпті маршрутизатор мен сәттілікке қол жеткізе аласыз. Мен CNC диірмені/маршрутизаторын қолдандым
  2. Маршрутизатор биттері - карбидке артықшылық беріледі. Маршрутизаторлар фрезерліктер үшін таңдалады, өйткені біз металды емес, ағашты өңдейміз
  3. Қысқыштар - олардың көпшілігі. Негізінен желімдеу кезінде бөлшектерді ұстау қажет
  4. Пісіру үтігі - жер үсті дәнекерлеуге арналған кішкене ұшы
  5. Микроскоп немесе үлкейткіш - сіз тек көзіңізбен дәнекерлеуге тырысуға болады, бірақ мен оны ұсынбаймын, 10 есе аз
  6. Пинцет (бөлшектерді орнына қоюға арналған)
  7. Қысқыш құралдар (мұнда LMII бойынша тиісті құралдарды қараңыз, бірақ мен үйде бар нәрсені қолдандым және жасадым; балғалар, файлдар мен кескіштер)
  8. Әр түрлі қолмен жұмыс жасайтын құралдар, мысалы, ағаш кескіштер, бұрағыштар, жұмсақ соққылар немесе өңделмеген балғалар (тарылту үшін) және т.б.
  9. Абразивті заттар - әр түрлі құмтас ұнтақтары

Біздің бағдарламалық қамтамасыз ету құралдары мыналарды қамтиды (кейбіреулер сіздің бюджетіңізге/тапқырлығыңызға байланысты міндетті емес):

  1. Arduino бағдарламасы
  2. Ukulele бастапқы коды (https://github.com/conrad26/Ukulele)
  3. ПХД орналасу пакеті - Мен Altium -ды қолдандым, себебі Eagle -дің ақысыз нұсқасы мен қалаған тақтаның өлшемін қолдамады. Altium - бұл толықтай ұсынылған макет пакеті және шын мәнінде әуесқой бағалар диапазонында емес. Мен өз сайтымда Gerber файлдарын прототипке қостым, бірақ олар міндетті түрде жаңартуды қажет етеді
  4. 3D модельдеуге арналған бағдарламалық қамтамасыз ету - мен SolidWorks қолдандым, бірақ бір тегін балама - FreeCAD (https://www.freecadweb.org/)
  5. NC диірмен файлын жасау үшін Autodesk ұсынған FeatureCAM сияқты CAM бағдарламасы.

Altium -дан 3D қадамдық файлды экспресс -панельдің 3D -үлгісімен біріктіру барлық нәрсенің сәйкес келетініне көз жеткізудегі көптеген қиындықтарды жояды, бірақ бұл міндетті емес. Мұқият орналасу дәл осындай нәтижеге қол жеткізеді.

Енді біз не істегіміз келетінін және не істеу керектігін білген соң, Укулеле құрайық.

4 -қадам: Қалың тақтаны орналастыру үшін мойынды тегістеңіз

Қалың тақтаны орналастыру үшін мойын диірмені
Қалың тақтаны орналастыру үшін мойын диірмені

Ұнтақтамас бұрын, борт тақтасының бастапқы бетінің тегістігі сақталуы керек екенін ескеріңіз, әйтпесе сіз бұралмалы тақтаға ие боласыз, бұл тегістеу кезінде барлық мәселелерге әкеледі.

Тек ол жаққа бармаңыз, асықпаңыз және мойынды мұқият және қатаң қысыңыз және кесу алдында мойынның бүкіл бойындағы маршрутизатордың биіктігін тексеріңіз. Мұнда өткізілген уақыт кейін сізді көп қайғыдан құтқарады.

Мойынға салынған тақтайшаның қалың тақтасын таңдағанымның бір себебі - монтаждау (желімдеу) бетінің ұлғаюы. Тағы бір себеп - бұл мойын фрезерлеуді жеңілдетеді. Сіз барлық бетті қажетті биіктікке дейін кесіп тастайсыз.

5 -қадам: Жарықдиодты ұстап тұратын ПХД алу және құру

Жарықдиодты ұстайтын ПХД алу және құру
Жарықдиодты ұстайтын ПХД алу және құру
Жарықдиодты ұстайтын ПХД алу және құру
Жарықдиодты ұстайтын ПХД алу және құру

Мен бүкіл құрастыруды қолмен дәнекерледім. Жарықдиодты пакеттер балқытуға оңай, сондықтан оларды зақымдамау үшін абай болыңыз. Мен статикалық белдікті киюді ұсынамын, себебі жол әр жарықдиодты жұмысына байланысты.

Fretboard дизайны WS2812B жарық диодтарына негізделген. Мен борт тақтасының бірінші октавасын ғана жасауға шешім қабылдадым (48 жарықдиодты !!). Әрбір жарық диодты ауысым регистрінде бір бит ретінде қарастыруға болады. Ауысым регистрі 800 кГц жиілікте. Мен Adafruit кітапханасын қолдандым (бағдарламалау бөлімін қараңыз).

Мен дизайнды Eagle -де бастадым, бірақ тақтаның өлшемі 4х5 дюйммен шектелген, сондықтан мен (немесе дәлірек айтқанда, мен таңдадым) Altium -ге ауысуға тура келді. Мен Altium -ды жұмыста қолданамын, сондықтан іс жүзінде бұл мен үшін жағдайды тездетті. Altium жобасы, схемалық және компьютерлік файлдар (және кітапхана бөліктері) менің сайтымда. Тақта трапеция тәрізді және ұзындығы шамамен 10 дюйм. Менің ойымша, мен контурды сәл көбірек қысуға тырысуым керек еді (келесі айналдыру!) Ассамблея жаман болған жоқ, бірақ егер сіз оған мүмкіндік берсеңіз, мен шынымен лайықты дәнекерлеу үтігін (JBC дәнекерлеу үтіктері) және жақсы микроскопты ұсынамын. Ия, мен бүлінгенмін, жоқ, менің үй зертханамда мұндай заттар жоқ. Мен арзанмын.

Менде Sunstone -да тақталар болды. Екі тақта үшін $ 129. Бір аптаға кепілдік беріледі. Жеткізуді қыспаңыз. Мен UPS жерін пайдаланғанымды байқамадым, мен тақталар келгенше қосымша апта күттім. Жинаудың жалпы уақыты шамамен 2 сағатты құрады (98 бөлік).

6 -қадам: тақтаны тегістеу

Image
Image
Укулеле корпусындағы диірменге кіру тесіктері
Укулеле корпусындағы диірменге кіру тесіктері

Қажетті жерлерде тесіктер жасау үшін, тақта мен жарықдиодты қалталарды жасау үшін борттық тақтаны фрезерлеуіміз керек.

Мен Solidworks -те дайын тақтаның 3D моделін жасадым және FeatureCAM көмегімен CNC фрезерлеу тәртібін құрдым.

Мойын мен дене арасындағы биіктіктің қадамының өзгеруін есепке алу үшін борт тақтасының төменгі бөлігін (дыбыс саңылауына жақын) жіңішке етіп жасау керек. Бірнеше рет тексеруге тұрарлық екендігі сенімді болу үшін қажет.

Ретроспективада мен фрезаның жақсырақ орналасуы үшін пайдаланылмайтын бөлшектерді кесіп тастауым керек еді (менің арзан диірменде тек 12 дюймдік осьпен жүретін). Жұмыс тәртібі бірінші диірменнің қалыңдығына дейін реттелуі керек. қалталар арасында фрагменттердің аз бөлінуіне әкелуі керек.

Электр сымдарына орын қосу үшін қажет болған жағдайда қолмен түзетулер жасаңыз. Айта кету керек, кейбір қалталарда мен сым өтетін ұяға кірдім. Дирижер екенін ескере отырып, ол маңызды нәрсені қысқартпайтынына көз жеткізіңіз. Сондай -ақ, материалдың беріктігін төмендетеді, оны орнында ұстайды. Дизайнды саңылаумен ешқашан қиылыспайтын етіп өзгерту керек.

7 -қадам: Укулеле корпусындағы диірменге кіру тесіктері

Укулеле корпусындағы диірменге кіру тесіктері
Укулеле корпусындағы диірменге кіру тесіктері

Мен корпустағы кіру тесіктерін қолмен жондым. Ең қиыны - өте қисық беттің «ең тегіс» аймағын табу. Қарындашты қарындашпен белгілеп, OLED дисплейіне сәйкес келмейінше материалды біртіндеп тегістеңіз. Мен жезден жасалған жақтауды алдым және оны 3M VHB байланыстырушы таспамен бекіттім.

Ешқайсысы үлкен дәлдікті қажет етпейтіндіктен, айналмалы кодер мен кіру тақтасының тесіктерін жасау оңайырақ.

8 -қадам: қақпақ тақталарын жасаңыз

Қақпақ тақталарын жасаңыз
Қақпақ тақталарын жасаңыз
Қақпақ тақталарын жасаңыз
Қақпақ тақталарын жасаңыз
Қақпақ тақталарын жасаңыз
Қақпақ тақталарын жасаңыз

Сондай -ақ, дисплей панелі мен кіру панелінің қақпақ тақталарын бекіту керек. Кіру панелінде USB (микро) коннекторы үшін тесік (тікбұрышты) қажет. Ардуинодағы бар коннекторды пайдаланыңыз, себебі микро USB үшін панельді бекіту опциялары көп емес. (егер мен нөлден бастап дизайн жасайтын болсам, мен олардың біреуін қарастырар едім)

Тақтаны орнында ұстау үшін жезден L жақша жасап, оларды кіру тақтасының артына дәнекерлеңіз. Бұл сізге орналасуда біраз ендік береді. Орналастыруды дұрыс алу үшін алдымен Arduino MICRO үшін перформаторлық тақтаны (бекіту тесіктері бар) жасаңыз және оған 2-56 станокты бұрандалар көмегімен L жақшаларын бекітіңіз. Содан кейін сіз USB портын орналастыру үшін орынды өзгерте аласыз және тақтадағы жақшалардың орнын дәл белгілей аласыз. Перфоратор тақтасынан кронштейндерді алып тастап, орнына дәнекерлеңіз. Соңында перформаторлық қондырғыны орнатыңыз.

Мен жезден жасалған кіру тақтасын орнында ұстау үшін төрт кішкене жезден жасалған ағаш бұрандаларды қолдандым.

Осы сәтте мен соңғы жиналыс басталмай тұрып тестілеуді ұсынамын. Бұл қадам міндетті емес, бірақ ұсынылады. Желімдеу алдында түзетулер енгізу әлдеқайда оңай.

9 -қадам: сымдарды ПХД -ге бекітіңіз; Электрониканы қосыңыз және тексеріңіз

Image
Image
Мойынды укулеле денесіне бекітіңіз
Мойынды укулеле денесіне бекітіңіз

Электрониканы әлі де тұрақты түрде қоспаңыз. Сымдарды ПХД -ге бекітіңіз, кіру саңылауынан шығуға жеткілікті бос орын қалдырыңыз. Ақырында оларды Arduino MICRO тақтасына тұрақты түрде бекіту керек (фотосуреттерде мен кодты әзірлеу үшін қолданған Arduino UNO бейнеленген)

10 -қадам: мойынды укулеле денесіне бекітіңіз

Мойынды Ukulele жинағына енгізілген нұсқауларды орындап, Ukulele денесіне бекітіңіз. Әсіресе борт тақтасының бетінің уке денесіне сәйкес келуін қадағалаңыз.

11 -қадам: ПХД сымдарын корпусқа өткізу үшін кіру саңылауын бұрғылаңыз

PCB сымдарын корпусқа өткізу үшін кіру саңылауын бұрғылаңыз
PCB сымдарын корпусқа өткізу үшін кіру саңылауын бұрғылаңыз

Желімді құрғатқаннан кейін, ПХД сымдарының Ukulele корпусына өтуіне мүмкіндік беретін бұрышта ~ 1/4 дюйм (10мм) тесік бұрғылаңыз. Дыбыс тақтасына зақым келтірмеңіз.

Тақтаның астындағы сымдардың қалыңдығына мүмкіндік беру үшін сізге кішкене қалта жасау қажет болуы мүмкін (немесе қосылымдарды үстіңгі жағына қойып, тақтаға рельефті қосыңыз).

Тағы бір тестілеу бұл кезде ауыртпайды.

12 -қадам: ПХД мен тақтаны мойынға туралаңыз және жабыстырыңыз

ПХД мен тақтаны мойынға туралаңыз және жабыстырыңыз
ПХД мен тақтаны мойынға туралаңыз және жабыстырыңыз

Мен желімдеу алдында қысу арқылы ойлауды ұсынамын (және оны сынап көріңіз!). Сізге тегіс қысқыш бетті беру үшін мойынның астына пішінделген блок жасауды қалауыңыз мүмкін. Тақта тақтайшасы мойыннан үлкен, сондықтан сіз оған рұқсат беруіңіз керек.

Кейінірек аяқтағыңыз келетін бетке эпоксидті түсірмеу үшін өте абай болыңыз. Желімделмес бұрын, сіз қалаған жерге кететініне көз жеткізу үшін жабыспайтын барлық беттерге масканы қолданған дұрыс.

Эпоксидті кем дегенде 60 минут жұмыс жасаңыз, бұл сізге қажет.

ПХД -ны алдымен желіммен жабыстырыңыз, сонда артық желім тақтаның желімдеу бетіне енбейді. Бұл тақтаны мойынға туралау әдісін ұсынады. ПХД дәнекерлеу маскасының тегіс жабындысына ие, сондықтан мен эпоксидті сәл жақсартылған беткі қабат беру үшін оны сәл тегістеу қағазымен қайрадым.

Тақта тақтасын мойынға туралаңыз және жабыстырыңыз. Кейін резонанс тудыруы мүмкін қалталарды қалдырмаңыз (ызыл!). Сонымен қатар, жарықдиодты беттерге желім түспеуін қадағалаңыз.

Желім құрғағаннан кейін сіз электрониканы тағы бір рет сыммен тексеріп көргіңіз келуі мүмкін. Бір жаман жарық диоды өмірді жек көруге мәжбүр етеді. Менде прототипте бір нашар жарық диоды (бірінші!) Болды, мен ақаулы жарықдиодқа қол жеткізу үшін таза ағашпен жұмыс жасауым керек еді және оны таза түрде түзетуге тура келді.

13 -қадам: тақтаның жиектерін мойынға теңестіріңіз және сымдарды қосыңыз

Желім құрғағаннан кейін сіз шеттерін өңдеуге кірісе аласыз. Мен борттағы артық материалды мұқият кесіп алдым (диірменді пайдаланып) және соңғы миллиметрді қолмен тегістеу арқылы аяқтадым.

Сымдарды қосуды балғамен жасауға болады (күйіп қалмас үшін пластикалық беті бар). Тек қатты соқпаңыз. Егер сіз сымдарды слоттарға сәйкестендірген болсаңыз, олар еш қиындықсыз кіруі керек.

Сізге назар аудару керек нәрсе - жарықдиодты қалтаның жұқа бетін бұзу. Прототипте мен кейбір жарықдиодты қалталарды (12 -ші жақтаудың жанында, кеңістік қысылып қалады) ұяшыққа созуға рұқсат бердім. Бұл жаман идея, өйткені бұл сым салынғаннан кейін жарылуы мүмкін (және жарылған) әлсіз жерді жасайды.

14 -қадам: Маскуляцияны қолданыңыз және Укулелеге әрлеуді қолданыңыз

Борт тақтасын (ол аяқталмайды) және көпірдің желімдеу аймағын маскировкалап, әрлеуді бастаңыз.

Көпір аймағын маскирлеу кезінде жинағыңызбен бірге нұсқауларды оқыңыз, содан кейін сенімді болу үшін таразының ұзындығын екі рет тексеріңіз. Мен прототип үшін қолданған жинақ дұрыс емес масштаб ұзындығын пайдаланды, сондықтан көпірдің орналасуында қате өлшемдерді берді (бірақ оның соңғы нұсқауларды алу үшін веб -сайтты тексеру туралы жазбасы бар!). Ішім маған бұл дұрыс емес екенін айтты, бірақ мен билікті соқыр түрде қабылдадым.

Нұсқауларды соқыр орындаудан гөрі, НЕГЕ бірдеңе істеп жатқаныңызды түсіну әрқашан жақсы.

Аяқтау үшін Лутьерлердің Интернетте не істеп жатқанын білетін көптеген оқулықтары бар, сондықтан мен әрлеу процесіне өтпес бұрын олармен кеңесуді ұсынамын.

Мен, әрине, олай жасамадым, сондықтан мен қате тығыздағышты қолдандым, нәтижесінде өте дәнді бет пайда болды. Олай жасамаңыз.

Үй тапсырмасын орындаңыз.

15 -қадам: Көпірді туралаңыз және бекітіңіз

Көпірді туралаңыз және бекітіңіз
Көпірді туралаңыз және бекітіңіз

Бұл қадам өте қарапайым, бірақ қайтадан қысу әдісін жоспарлап, желімдеу алдында алдын ала сынап көріңіз. Мен көпірді бекіту үшін стандартты ағаш желімін қолдандым.

16 -қадам: Электрониканы орнатыңыз және тексеріңіз

Электрониканы орнатыңыз және тексеріңіз
Электрониканы орнатыңыз және тексеріңіз

Электр сымдарын әдемі етуге уақыт келді. Сонымен қатар, сіз оның дененің айналасында қозғалуын және шулы дыбыс шығаруды немесе одан да нашар сахнада сынуды қаламайсыз.

Arduino кодын USB порты арқылы жаңартуға болады, сондықтан егер сіз ойнағыңыз келмесе, оны бөліп алудың қажеті жоқ.

17 -қадам: Тюнерлерді орнатыңыз және аспапты бұрыңыз

Image
Image
Uke бағдарламалау
Uke бағдарламалау

Сондай -ақ, сізге алаңдаушылықты реттеп, орнатумен біраз ойнау қажет болуы мүмкін, бірақ соңына жақындағанда, қазір неге алаңдау керек?

Мен тюнерлерді жаңарттым және жақсы Aquila жіптерін қолдандым, бұл дыбысқа көмектеспеді. Сондықтан сіз жобаны қаржыландыру кезінде оны есте сақтаңыз …

18 -қадам: Uke бағдарламалау

Arduino -ның соңғы коды Github -та. Келешекте жақсартуларды қолдау үшін кодта бірнеше жолдар бар (мысалы, метром функциясы мен дисплейге арналған «сырғытпалар» (сырғытпаға ұқсас интерфейс элементі)

Бұл код Rotary Encoder кітапханасын пайдаланады (Rotary Encoder Arduino Library).

Ол сонымен қатар мұнда орналасқан Adafruit Neopixel кітапханасын және мысал кодын пайдаланады. Театр мен кемпірқосақ режимі кітапханамен берілген мысалдардан алынған. (strandtest.ino қараңыз).

Дисплей драйвері 4D жүйесімен қамтамасыз етілген және Github -да осы жерден табылған.

Ukulele жобасы үшін екі ерекше функция бар. Біріншісі аккордтар кітапханасын жүзеге асырады, ал екіншісі таңдамалы таңбалар жиынтығының көмегімен жылжымалы мәтіндік хабарды көрсетеді.

Қосылған диаграммада жарықдиодты тақтаның орналасуы және олардың қалай қосылғандығы көрсетілген. 0 жарықдиодты жоғарғы оң жақ бұрышта орналасқан.

19 -қадам: аккордты қалай көрсету керек

Аккордты қалай көрсету керек
Аккордты қалай көрсету керек

DisplayChord функциясы әр аккорд үшін саусақ позицияларын көрсетеді (тек бірінші позиция). Пайдаланушы таңдаған аккордтар (түбірлік жазба мен сапа) жұп көрсеткіштер ретінде сақталады. Олар өз кезегінде әр аккордқа саусақ іздеу үшін қолданылады.

Мен аккордтарды сақтау үшін «GCEA» белгісін қолдандым (мысалы, «А» - «2100»). Аккордтар әрбір түбір нотасы үшін алдын ала есептеледі және аккорд сапасына сәйкес келетін айнымалыда сақталады. (осылайша, майор «2100» -ге сәйкес келетін «majorChords» массивінің бірінші орнында сақталады).

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

Назар аударыңыз, бұл мәтіндік жол болғандықтан, әрбір цифр 9 -дан үлкен реттік позицияларды есепке алу үшін он алтылық мәнді көрсете алады. Яғни, А мен В 10 және 11 светодиодтарын көрсетеді, бірінші позиция аккордтары үшін бұл мәселе емес еді).

Жарық диодты жол әр жолдың бойымен 12 қатарынан (октавадан) созылады (А жолынан басталады), келесі 12 жол келесі жолдың бірінші шегінен басталады (18 -қадамдағы диаграмманы қараңыз). Бұл алгоритм үшін берілген аккорд үшін қандай шамдарды қосу керектігін анықтау үшін маңызды. Бұл 0 -ден 11 -ге дейінгі пиксельдер - A жолақты жарық диодтары, 12 -ден 23 -ке дейін - E жолды жарық диодтары және т.б. A = «2100» талдау кезінде (жол түрінде сақталады, кодта «\ n» нөлдік терминаторы да бар), біз оны былай түсіндіреміз: A жолында пиксельдер жанбайды, Е жолында пиксель 0 болмайды. (fret 1) C жолында жанған және G жолында 1 пиксель (fret 2). Назар аударыңыз, бірінші жарық диоды емес, «0» өшірулі. Сымға сүйене отырып, біз 24 және 37 жарықдиодты жарықтандырғымыз келеді. Аккордты көрсететін код төменде көрсетілген.

for (int i = 0; i <4; i ++) {if (int (аккорд - '0')) {// алгоритмі int ledNumber = int (аккорд - '0') + (3 - i) * 12 - 1; // жоғарыдағы талқылауды қараңыз, (3-i) индекс жолағын кері қайтарады.setPixelColor (ledNumber, 0, 125, 125); // setPixelColor (ledNumber, қызыл мән, жасыл мән, көк мән)}}

If операторы светодиод өшірілгенін тексереді. Егер олай болмаса, онда символының ascii мәні қабылданады және ledNumber шамының жануы үшін '0' үшін ascii мәнін алып тастайды.

strip - Adafruit_NeoPixel класының данасы. SetPixelColor функциясы есептелген пиксельдің түсін анықтайды (бұл жағдайда (0, 125, 125) бекітілген.

20 -қадам: Жылжымалы хабарды қалай көрсету керек

Айналмалы хабарды қалай көрсету керек
Айналмалы хабарды қалай көрсету керек

Бізде 12х4 диодты диодтар бар … неге оны кездейсоқ жарық үлгілерінен басқа нәрсені көрсетпеске!

Бірінші мәселе, дисктің биіктігі (4) Uke жолдарының санына байланысты шектеулі. Көлденең жылжу негізінен оқылмайды, бірақ вертикаль бағытта біз тігінен жұмыс істейтін 4 х 5 таңбаны қолдай аламыз.

Таңбаларды бес «тік» жол ретінде ұйымдастыру екі таңбаны бір уақытта көрсетуге болатынын білдіреді, бұл әр таңба арасында бір жолдық бос орын қалдырады.

Қиындық стандартты 4х5 символдар жиынтығының жоқтығында болды. Қосылған кестені пайдаланып, мен өз бетімше жасадым. Мен әр жолды он алтылық мәнге тағайындадым (4 пиксель қандай пиксель қосылғанын немесе өшірілгенін көрсетеді). Бес алтылық мәндердің тіркесімі символды құрайды (мысалы, «0» - 0x69996).

Әр таңбаның мәндері массивте ASCII ретімен сақталады. Кейіпкерлер жиынтығы кейбір әріптермен ымыраға келеді, бірақ көпшілігі түсінікті. (электрондық кестенің төменгі жағындағы жазу - мен ойнаған идеялар, өйткені бізде түс бар, біз кейіпкерге «тереңдік» қосамыз және мүмкін қосымша ажыратымдылық аламыз.

Көрсетілетін жол жолдың айнымалысы, хабарында бар.

Символдар дисплейін көрсету үшін буфер құрылады. Менің ойымша, мен барлық аударылған хабарламалар тізбегімен үлкен буфер құра алар едім, әсіресе хабарлардың көпшілігі 20 таңбадан аз болады. Дегенмен, мен орнына үш таңбалы (18 байт) буфер құруды таңдадым. Таңбалардың тек екеуі ғана белсенді түрде көрсетілуде, үшіншісі - келесі таңба жүктелетін болашаққа қарау. Жарық диодты жол (оны үлкен ауысым регистрі деп ойлаңыз) жолдың 48 битімен жүктеледі. Мен тұжырымдаманы жеңілдету үшін біраз жадты босқа өткіздім. Әрбір жіңішке жадтың өзіндік орналасуын алады, бұл жадқа деген қажеттілікті екі есе арттырады, бірақ буферлік өлшемді ескермегенде.

Шығу индексі (көрсеткіш) таңбалар шекарасына жеткенде буфер келесі таңбамен жүктеледі (outputPointer 5, 11 немесе 17).

Буферді жүктеу үшін біз «хабарламадағы» бірінші символды ASCII мәні ретінде қабылдаймыз және asciiFont массивіндегі индексті алу үшін 48 -ді алып тастаймыз. Бұл индекстегі мән codedChar ішінде сақталады.

Хабардың бірінші бөлігі 47, 35, 23 және 11 жарықдиодтарға сәйкес келеді (дисплейдің төменгі жағы). Сондықтан нөлдік 0x0F999F саны үшін F (сол жақта) бірінші, 9 секундта және т.б.

Келесі таңба әрбір тістеуішті бүркеніп, оны оңға жылжыту арқылы жүктеледі. Жоғарыда келтірілген мысал үшін алгоритм (0x0F999F & 0xF00000) >> 20, содан кейін (0x0F999F & 0x0F0000) >> 16 және т.б.

int индексі; if (outputPointer == 17 || outputPointer == 5 || outputPointer == 11) {char displayChar = message.charAt (messagePointer); // хабарламаның бірінші таңбасын ұстаңыз long codedChar = asciiFont [displayChar - 48]; if (displayChar == 32) codedChar = 0x000000; messageBuffer [bytePointer+5] = байт ((codedChar & 0xF00000) >> 20); // соңғы тістеуден басқасының барлығын маскаға айналдырып, оны 20 -ға ауыстырыңыз (және т.б.) messageBuffer [bytePointer+4] = байт ((codedChar & 0x0F0000) >> 16); // бұл жадыға бір хабарламаны жіберуі керек messageBuffer [bytePointer+3] = байт ((codedChar & 0x00F000) >> 12); // барлық алты хабарлама белгісінде бейнеленедіBuffer [bytePointer+2] = байт ((codedChar & 0x000F00) >> 8); messageBuffer [bytePointer+1] = байт ((codedChar & 0x0000F0) >> 4); messageBuffer [bytePointer] = байт ((codedChar & 0x00000F)); if (bytePointer == 0) {// bytePointer айналасындағы циклды өңдейді bytePointer = 12; } басқа {bytePointer -= 6; // біз төменнен жоғары қарай толтырамыз; ЕСКЕРТПЕ: мұны жеңілдететінін білу үшін оны кері айналдыру керек} if (messagePointer == message.length ()-1) {// messagePointer = 0 хабарының айналасындағы циклды басқарады; } басқа {messagePointer += 1; // келесі таңбаға өту}}

Буфер жүктелгеннен кейін, шығыс көрсеткіші қайда орналасқанын бақылау және жарық диодты жолды дұрыс 48 биттік жүктеу мәселесі болады (ағымдағы 4 және алдыңғы 44). Жоғарыда айтылғандай, жолақ NeoPixel класының данасы болып табылады және setPixelColor әр пиксельдің түсін (RGB) орнатады. Show () функциясы дисплей мәндерін LED жолына ауыстырады.

// буферден үнемі жылжу үшін цикл

// цикл арқылы өтетін әр жолақта бүкіл жолақты жазғыңыз келеді, тек бастапқы орын өзгереді (int row = 12; row> 0; row--) {index = outputPointer + (12-жол); егер (индекс> 17) индекс = outputPointer+(12 қатар) -18; // цикл егер 17-ден үлкен болса (int баған = 4; баған> 0; баған--) {strip.setPixelColor (uint16_t (12*(баған-1)+(жол-1)), uint8_t (RedLED*(bitRead) (messageBuffer [индекс], баған-1)))), uint8_t (GreenLED*(bitRead (messageBuffer [индекс], баған-1))), uint8_t (BlueLED*(bitRead (messageBuffer [индекс], баған-1)))); // әр жерде жарық диодты жанады, егер бит бір болса}} // outputPointer дисплей жолындағы ағымдағы ең төменгі байтты көрсетеді, егер (outputPointer == 0) outputPointer = 17; else outputPointer -= 1; strip.show (); }

21 -қадам: Укулеле кереметлігімен әлемді таң қалдырыңыз

Image
Image

Ukulele -дің соңғы прототипі шамамен 6 айға созылды және тоқтап қалды.

Үйрену үшін көптеген жаңа технологиялар, мүмкін ағаш өңдеу мен музыкалық теория!

Келесі нұсқа үшін не істеу керек?

  1. Дисплей мен айналмалы кодерден құтылыңыз. Оларды arduino -ға бекітілген Bluetooth модулімен ауыстырыңыз. Оны телефон немесе планшеттің көмегімен қашықтан басқарыңыз. Bluetooth арқылы бәрі жақсы.
  2. Нақты уақытта аккорд үлгілерін қашықтан жаңартыңыз. Қолданба үшін ең жақсы нәрсе қалды.
  3. Жарықдиодты қақпақтар. Қазіргі нұсқа жарық диодты тесіктерге түсудің алдын алу үшін ештеңе жасамайды. Менің досым кішкентай линзалар жасады, бірақ мен оларды қалай дұрыс орнында ұстауға болатынын білмедім.
  4. Балама тақтайша материалдары, мүмкін перделер ұсталғанша түсінікті нәрсе.
  5. Басқа шамдар! Қосымша «жолдар» қосу арқылы мәтін бойынша шектеуді жойыңыз. Бұл шынымен де тақтаның өлшемі мен жарықдиодты корпустардан туындаған шектеулер.

Тағы да, мәтінді айналдыруға рұқсат ету үшін мен жасау керек болатын таңбалар жиынтығын сипаттайтын Instructable серігін қараңыз.

Осы уақытқа дейін жеткізгеніңізге көп рахмет! Махало!

Ұсынылған: