Mundarija:

Chiroqli Ukulele qanday quriladi ?: 21 qadam
Chiroqli Ukulele qanday quriladi ?: 21 qadam

Video: Chiroqli Ukulele qanday quriladi ?: 21 qadam

Video: Chiroqli Ukulele qanday quriladi ?: 21 qadam
Video: ПОКУПАЙ НЕДВИЖИМОСТЬ У ПРОВЕРЕННЫХ ЗАСТРОЙЩИКОВ | Северный Кипр 2023 2024, Iyul
Anonim
Image
Image
Reja tuzing
Reja tuzing

Men Ukulele o'ynayman. O'ylaymanki, "agar bu haqiqatan ham ayollarni hayratda qoldirmoqchi bo'lsa, ularni sahnada o'ynayotgan falokatdan chalg'itadigan vosita kerak". Shunday qilib, "Ukulele" paydo bo'ldi.

Ushbu loyiha "Ukulele" konsert to'plamini oladi va Arduino tomonidan boshqariladigan LEDni har bir satr va panjara holatiga qo'shadi. Bundan tashqari, LED chizig'ining rejimi va intensivligini tanlash uchun ajoyib OLED -displey va aylanuvchi kodlovchi asosli foydalanuvchi interfeysi qo'shiladi.

Uke apparatining tugallangan xususiyatlari:

  1. Arduino MICRO LED chizig'i, displey va kirish moslamasiga ulanish uchun.
  2. 48 ta individual dasturlashtirilgan to'liq rangli LED
  3. OLED displey
  4. Foydalanuvchi kiritish uchun aylanadigan kodlovchi
  5. Tashqi quvvat va Arduino dasturlash uchun USB interfeysi

Uke dasturiy ta'minoti quyidagilarga ega:

  1. LEDlarni tezlik bilan boshqaradigan yorug'likni boshqarishning asosiy usullari
  2. Ajoyib teatr marquee rejimi (spektakllar uchun juda qulay!)
  3. LED intensivligini boshqarish
  4. Ukulele akkordlarining birinchi holatidagi to'liq akkordlar kutubxonasi (akkord qiymati va xarakteri)
  5. Noyob 4 x 6 pikselli belgilar to'plami yordamida ishlaydigan matnni (vertikal) ko'rsatish imkoniyati

Bu ko'rsatma to'ldirilgan prototipni tavsiflaydi. To'liq rivojlanish dastani BU YERDA, shu jumladan ba'zi ta'limiy (og'riqli) xatolar va nima uchun siz birinchi dizayningizni oxirigacha tugatishingiz kerakligi haqida (qanday yomon narsalar bo'lishidan qat'i nazar) qimmatli darsni o'z ichiga oladi. Siz oxirigacha bilmagan hamma narsani bila olmaysiz (va keyin ham bilmayapsiz!), Lekin siz keyingi dizayn uchun ancha yaxshi va aqlli bo'lasiz.

Men prototipni Grizzly Concert Ukulele to'plami atrofida qurdim. To'plamdan boshlash ukaning tanasi haqidagi xavotirni engillashtiradi (yaxshi, asosan) va haqiqiy lutier ishining ko'p qismini yo'q qiladi. Bu to'plamlar juda to'liq va katta xarajatlar sxemasida unchalik qimmat emas (va siz og'riqli bo'lasiz, chunki siz xato qilasiz).

1 -qadam: Reja tuzing

Reja tuzing
Reja tuzing

Ba'zi to'plamlarga kiritilgan panelda (yoki panjara) allaqachon panjara o'rnatilgan. Bu yaxshi/yomon. Bu vaqtni tejovchi kabi yoqimli, lekin burg'ulash naqshini qo'yish va uni frezalashda ushlab turish nuqtai nazaridan, bu biroz og'riq. To'plamda yo'q qilinganidan so'ng, men yangi taxta sotib olishni tanladim.

Panel taxtasini loyihalashda biz tenglikni va svetodiodlarni o'rnatish uchun kerak bo'lgan qalinlikning oshishini hisoblashimiz kerak (va passiv komponentlarni ham unutmang), lekin LEDlar panel yuzasidan juda uzoq emas.

LED bosilgan elektron karta (PCB) oddiy 2 qatlamli karta sifatida yaratilgan. Bu LED chizig'ini qo'l bilan yig'ishda ko'p yordam beradi va Ukulele bo'yniga mexanik kuch beradi (bu shisha tolali va epoksi). Men Eagle -da tartibni boshladim, lekin taxta o'lchamlari cheklanganligi sababli Altium Designer -dan foydalanishni tugatdim. Altium sxematik va PCB fayllari bu erda.

To'plam panelining qalinligi atigi 0,125 dyuym edi. Shunday qilib, qalinligi 0,062 dyuymli tenglikni hisobga olsak va LEDlar uchun qo'shimcha 0,062 dyuymga ruxsat berilsa, biz panel panelini (hamma narsada bo'lgani kabi) kesib tashlashimiz kerak bo'ladi. Kompensatsiyani to'lash uchun biz PCB uchun bo'ynidagi mos cho'ntakka ega bo'lgan paneldagi LEDlarning cho'ntaklarini qisman kesib tashlashimiz mumkin yoki biz butun taxtani (men tanlagan variantni) Luther Mercantile International (LMII) ning qalinroq versiyasiga almashtirishimiz mumkin., boshlash uchun 0,25 dyuym.

LEKIN, esda tutingki, taxtada qalinligi oshganini qoplash uchun siz hali ham bo'yniga ishlov berishingiz kerak bo'ladi. Siz olishning yana bir afzalligi - bu kosmetik, chunki PCB endi taxtaning ichiga to'liq joylashtirilgan, bu uning qirralarini tugatishni ancha osonlashtiradi (va bundan ham chiroyli ko'rinadi!) Va bo'ynini frezalashni osonlashtiradi.

Muhandislik ishlari (agar xohlasangiz, e'tibor bermang):

Aytgancha, bu, albatta, bo'ynining qattiqligini buzmaydi. PCB materiali yog'ochdan yasalgan yog'ochdan ancha qattiqroqdir (Mahogany moduli: 10.6 GPa va FR4 moduli: 24 GPa), bundan tashqari, biz Ukulele qurayotganimiz uchun, aks holda buzilishi mumkin bo'lgan juda katta torli kuchlanish yo'q. yoki burish) bo'yin.

Juda qiziq bir mulohaza (ehtimol men hali ham hisoblashim kerak) - bu haroratda nima sodir bo'lishi. Odatda yog'och uchun, donga parallel ravishda, termal kengayish koeffitsienti taxminan 3 x 10^-6/K, FR4 uchun esa 14 × 10^-6/K ni tashkil qiladi. Shunday qilib, juda katta farq bor. Xavotir shundaki, harorat o'zgarganda bo'ynida kuchlanish paydo bo'ladi, bu esa o'z navbatida iplarni sozlamaydi. Bu neytral o'qning qarama -qarshi tomoniga o'xshash qatlamni qo'llash yoki FR4ni neytral o'qga iloji boricha yaqinlashtirish orqali qoplanishi mumkin bo'lgan narsa. Lekin bu 2.0 ga qoldiriladi … Modellashtirish va baholash uchun biror narsa.

Elektronika uke tanasida joylashgan. Displey va aylanuvchi kodlovchi uchun joy ajratish uchun UKE yon devorida (ovoz paneli emas!) Teshiklar kesilgan, shuningdek Arduino Micro -ni ushlab turish va USB interfeysiga kirishni ta'minlash uchun kirish plitasi. USB ulanishni qulayroq joyga olib chiqish uchun kirish plitasi/o'rnatish moslamasi va joylashuvi yaxshilanishi mumkin edi, lekin hozir hammasi yomon emas, chunki siz o'ynayotganingizda bunday bo'lmaydi.

Bosqichlar sxemasi quyidagicha:

  1. Materiallarni yig'ish
  2. Sizga kerak bo'lgan vositalarni oling
  3. Qalinroq taxtani joylashtirish uchun bo'yni tegirmon qiling
  4. Kerakli joylarda teshik qilish va taxta va LEDlar uchun cho'ntaklar yaratish uchun taxtani maydalang
  5. LEDlarni ushlab turgan tenglikni olish va qurish
  6. OLED displeyi, aylanadigan kodlovchi va kirish paneli uchun Ukulele korpusidagi tegirmon kirish teshiklari
  7. Qoplama plitalarini yasang
  8. PCBga simlarni ulang; elektronikani ulang va sinab ko'ring
  9. Bo'yni Ukulele tanasiga ulang
  10. PCB simlarini korpusga o'tkazish uchun kirish tutqichini burang
  11. PCB va taxtani bo'yniga tekislang va yopishtiring
  12. Plitka qirralarini bo'yniga tekislang (ortiqcha materialni olib tashlang)
  13. Quvvat simlarini joylashtiring
  14. Niqobni qo'llang va Ukulelega pardoz qo'llang
  15. Ko'prikni tekislang va ulang
  16. Elektron qurilmani o'rnating va sinovdan o'tkazing.
  17. Tyunerlarni o'rnating va asbobni mahkamlang
  18. Uke tekshirgichini dasturlash
  19. Ukulele ajoyibligingiz bilan dunyoni hayratda qoldiring!

2 -qadam: materiallarni yig'ish

Bizning materiallar ro'yxati shunday ko'rinadi:

  1. Ukulele to'plami - Men Grizzly Concert Ukulele to'plamini ishlatardim (Amazonda Grizzly Uke Kit), lekin bu to'xtatilganga o'xshaydi. Zimo shunga o'xshash modelni yaratadi (Zimo Uke Kit @ Amazon), bu ishni bajaradiganga o'xshaydi
  2. Ukulele klaviatura, oldindan yivli (LMII Uke Fingerboards). Ular shkafni sizning shkalangizga joylashtiradilar, bu esa muammoning oldini oladi
  3. Epoksi - panjarani bo'yniga yopishtirish uchun. Men epoksi tanladim, chunki u PCB materialiga mos keladi. Ish vaqti kamida 60 minut bo'lgan narsani qidiring. 5 daqiqali turni ishlatmang, sozlash uchun vaqt kerak
  4. Tarmoqli simlar - LMII -da ham mavjud
  5. Maxsus PCB - Altium fayllari bu erda. Men FR4 tipidagi oddiy materialni tanladim. Flex (poliimid) taxtalar qiziqarli (qimmatroq bo'lsa) alternativa bo'lardi, chunki ular ancha nozikroq bo'lishi mumkin
  6. 48x Neopixel (SK6812) LED. Adafruit va Digikey -da mavjud
  7. 48x 0.1uF 0402 qopqoqlari - kattaroqligi maqbuldir, lekin siz joylashuvini kuzatishingiz kerak
  8. Bog'lanish simlari - chalkashliklarni oldini olish uchun kamida 4 dan 6 ranggacha, men asosan 28 o'lchovli simni ishlatardim. LED quvvat ulanishlarining doimiy oqimining pasayishini kuzatib turing (VCC va GROUND … bu oqim manbaga qaytishi kerak!)
  9. Aylanadigan kodlovchi-PEC16-4220F-S0024
  10. Ajoyib yog'och tugma - aylanadigan kodlovchi uchun (meniki LMIIdan)
  11. OLED -displey - 4D tizimli OLED -displeylar
  12. Tashqi USB batareyasi - har doim ham arzon, zaxira buyumlarni ham olib yurishingiz mumkin!
  13. Arduino MICRO
  14. Guruchli guruch - displey uchun arduino va ramkani ushlab turadigan plastinka
  15. Har xil sarf materiallari, shu jumladan: zımpara, uretan qoplamasi, popsikl tayoqchalari, rezina bantlar, lehim, oqim, cho'tkalar, ikki tomonlama lenta (menga UHC tasmasi 3M) va kichik guruchli yog'och vintlar (plastinka uchun)
  16. Ixtiyoriy Ukulele -ni takomillashtirish - yaxshiroq tyunerlar, torlar, yaxshi yong'oq va egar, agar siz o'z mahoratingizni namoyish qilmoqchi bo'lsangiz)

3 -qadam: Sizga kerak bo'lgan vositalarni oling

Ertami -kechmi siz ularga kirishingiz yoki kirishingiz kerak bo'ladi:

Bizning asboblar ro'yxatimizga quyidagilar kiradi:

  1. Freze mashinasi - CNC afzal, lekin siz hatto yo'riqnoma va katta omadga ega bo'lishingiz mumkin. Men kombinatsiyalangan CNC tegirmon/yo'riqchidan foydalanardim
  2. Router bitlari - karbidga afzallik beriladi. Yo'naltiruvchi bitlar frezalarda tanlanadi, chunki biz metall emas, yog'ochni qayta ishlaymiz
  3. Qisqichlar - juda ko'p. Ko'pincha yopishtirish paytida qismlarni ushlab turish kerak
  4. Lehimlash temir - sirtga lehimlash uchun kichik uchi
  5. Mikroskop yoki kattalashtiruvchi - siz faqat ko'zingiz bilan lehimlashga urinib ko'rishingiz mumkin, lekin men buni tavsiya qilmayman, kamida 10 marta.
  6. Cımbız (qismlarni joyiga qo'yish uchun)
  7. Qo'rqitish asboblari (bu erda LMII bo'yicha tegishli asboblarni ko'ring, lekin men o'z uyimda bor narsamdan foydalanganman va bolg'alar, fayllar va kesgichlar)
  8. Har xil qo'l asboblari, masalan, yog'och kesgichlar, tornavidalar, yumshoq zarba yoki xom bolg'a (burish uchun) va boshqalar.
  9. Aşındırıcılar - har xil zımparalar

Bizning dasturiy vositalarga quyidagilar kiradi (ba'zilari sizning byudjetingizga/ixtirochiligingizga qarab ixtiyoriy):

  1. Arduino dasturi
  2. Ukulele manba kodi (https://github.com/conrad26/Ukulele)
  3. PCB sxemasi to'plami - Men Altium -dan foydalandim, chunki Eagle -ning bepul versiyasi men xohlagan taxta hajmini qo'llab -quvvatlamadi. Altium - bu to'la -to'kis joylashtirilgan paketlar to'plami, va aslida sevimli mashg'ulotlar narxlari oralig'ida emas. Men prototip uchun saytimga Gerber fayllarini qo'shganman, lekin ular albatta yangilanishi kerak
  4. 3D modellashtirish dasturi - men SolidWorks -dan foydalanardim, lekin bitta bepul muqobil FreeCAD (https://www.freecadweb.org/)
  5. NC tegirmon faylini yaratish uchun Autodesk -dan FeatureCAM kabi CAM dasturi.

Altium -dan 3D -bosqichli fayllarni eksport qilish va 3D -modellar bilan birlashtirish hamma narsaning to'g'ri kelishiga ishonch hosil qilishda ko'p qiyinchiliklarni bartaraf etadi, lekin bu shart emas. Ehtiyotkorlik bilan joylashtirish xuddi shunday natijaga erishadi.

Endi biz nima qilishni xohlayotganimizni va nima qilish kerakligini bilganimizdan so'ng, keling, Ukulele quraylik.

4 -qadam: Qalinroq taxtani joylashtirish uchun bo'yni tegirmon qiling

Qalinroq taxtani joylashtirish uchun bo'yin tegirmoni
Qalinroq taxtani joylashtirish uchun bo'yin tegirmoni

Frezalashdan oldin, esda tutingki, dastlabki taxta panelining tekisligi saqlanib qolishi kerak, aks holda siz burama taxtaga ega bo'lasiz, bu esa har xil muammolarni keltirib chiqaradi.

Faqat u erga bormang, shoshmang va bo'ynini ehtiyotkorlik bilan va qattiq qisib oling va kesishdan oldin marshrutizatorning butun bo'ynidagi hizalanishini tekshiring. Bu erda o'tkazilgan vaqt, keyinchalik sizni qayg'udan qutqaradi.

Bo'yin ustidagi qalin taxtani tanlashimning bir sababi - o'rnatish (yopishtirish) maydonining ko'payishi. Yana bir sabab - bu bo'yinning frezelemasini osonlashtiradi. Siz shunchaki shovqin bilan butun sirtni kerakli balandlikka kesib tashlaysiz.

5 -qadam: LEDlarni ushlab turgan tenglikni olish va qurish

LEDlarni ushlab turgan tenglikni olish va qurish
LEDlarni ushlab turgan tenglikni olish va qurish
LEDlarni ushlab turgan tenglikni olish va qurish
LEDlarni ushlab turgan tenglikni olish va qurish

Men butun yig'ilishni qo'l bilan lehimladim. LED -paketlarni eritish juda oson, shuning uchun ularni shikastlamaslik uchun ehtiyot bo'ling. Men statik tasma kiyishni taklif qilaman, chunki chiziq har bir LEDning ishlashiga bog'liq.

Fretboard dizayni WS2812B LEDlariga asoslangan. Men faqat taxtaning birinchi oktavasini bajarishga qaror qildim (48 LED !!). Har bir LEDni registrda bitta bit deb hisoblash mumkin. Shift registri 800 kHz chastotasida ishlaydi. Men hamma narsani tezda ishga tushirish uchun Adafruit kutubxonasidan (dasturlash bo'limiga qarang) foydalandim.

Men dizaynni Eagle -da boshladim, lekin taxtaning o'lchami 4 x 5 dyuym bilan cheklangan, shuning uchun men (yoki to'g'rirog'i, men tanlaganman) Altiumga o'tishga majbur bo'ldim. Men ishda Altiumdan foydalanaman, shuning uchun bu men uchun hamma narsani tezroq qildi. Altium loyihasi, sxematik va pcb fayllari (va kutubxona qismlari) mening saytimda. Kengash trapezoidal shaklga ega va uzunligi taxminan 10 dyuym. O'ylaymanki, men konturni biroz ko'proq siqishga harakat qilishim kerak edi (keyingi aylanish!) Yig'ish yomon emas edi, lekin agar bunga qodir bo'lsangiz, men chindan ham munosib lehimlantiruvchi temir (JBC lehimli dazmollar) va yaxshi mikroskopni tavsiya qilaman. Ha, men buzilganman va yo'q, mening uy laboratoriyamda bunday narsalar yo'q. Men arzonman.

Menda Sunstounda taxtalar bor edi. Ikki taxta uchun 129 dollar. Bir haftalik aylanish kafolatlangan. Biroq, yuk tashishda tejamang. Men UPSdan foydalanganimni payqamadim va taxtalarim kelishini qo'shimcha hafta kutdim. Umumiy yig'ilish vaqti taxminan 2 soatni tashkil etdi (98 qism).

6 -qadam: taxtani maydalang

Image
Image
Ukulele tanasidagi tegirmonga kirish teshiklari
Ukulele tanasidagi tegirmonga kirish teshiklari

Kerakli joylarda teshik ochish, taxta va LEDlar uchun cho'ntaklar yaratish uchun biz taxtani tegirmon qilishimiz kerak.

Men Solidworks -da tugallangan panelning 3D modelini yaratdim va FeatureCAM yordamida CNC frezalash tartibini yaratdim.

Bo'yin va tana orasidagi balandlikning qadam o'zgarishini hisobga olgan holda, taxtaning pastki qismini (tovush teshigiga eng yaqin) ingichka qilib qo'yish kerak. Bu juda mos ekanligiga ishonch hosil qilish uchun, albatta, bir necha bor sinovdan o'tkazishga arziydi.

Orqaga qarab, men tegirmonga yaxshiroq joylashishi uchun taxtaning ishlatilmaydigan qismlarini kesib tashlashim kerak edi (mening arzon tegirmonda faqat 12 dyuymli X o'qi bor edi). Ish tartibi birinchi tegirmon qalinligi sozlamalariga qadar o'rnatilishi kerak. cho'ntaklarni kesish, bu cho'ntaklar o'rtasida kamroq uzilishlarga olib kelishi kerak.

Elektr o'tkazgichlar uchun joy qo'shish uchun kerak bo'lganda qo'lda sozlashlarni amalga oshiring. Shuni e'tiborga olish kerakki, ba'zi cho'ntaklarda men simlar ketadigan uyaga kirib ketdim. Bu konduktor ekanligini hisobga olib, u hech qanday muhim narsani qisqartirmasligiga ishonch hosil qiling. Bundan tashqari, panjarani ushlab turgan materialning mustahkamligi pasayadi. Dizayn hech qachon tirqish uyasi bilan kesishmasligi uchun o'zgartirilishi kerak.

7 -qadam: Ukulele tanasidagi tegirmonga kirish teshiklari

Ukulele tanasidagi tegirmonga kirish teshiklari
Ukulele tanasidagi tegirmonga kirish teshiklari

Men tanadagi kirish teshiklarini qo'lda frezladim. Eng qiyin qismi - bu juda egri yuzaning "eng tekis" mintaqasini topish. Qalamni qalam bilan belgilang va OLED -displeyga mos keladigan bo'lguncha materialni asta -sekin maydalang. Men guruchdan yasalgan ramka oldim va uni 3M VHB yopishqoq lenta yordamida biriktirdim.

Hech biri aniqlikni talab qilmagani uchun, aylanadigan kodlovchi va kirish paneli teshiklarini yaratish ancha oson.

8 -qadam: Qoplama plitalarini yasang

Qoplama plitalarini yasang
Qoplama plitalarini yasang
Qoplama plitalarini yasang
Qoplama plitalarini yasang
Qoplama plitalarini yasang
Qoplama plitalarini yasang

Bundan tashqari, ekran paneli va kirish paneli uchun qopqoq plitalarini mahkamlashingiz kerak. Kirish paneli USB (mikro) ulagichi uchun teshik (to'rtburchaklar) kerak. Arduino -dagi mavjud ulagichdan foydalaning, chunki mikro USB -ni panelga o'rnatish variantlari ko'p emas. (agar men noldan loyihalashtirgan bo'lsam, shulardan birini ko'rib chiqardim)

Kengashni joyida ushlab turish uchun, L -qavslarni guruchdan yasang va ularni kirish plitasining orqa tomoniga lehimlang. Bu sizga joylashishni aniqlashda bir oz kenglik beradi. Joylashuvni to'g'ri aniqlash uchun birinchi navbatda Arduino MICRO uchun perforator taxtasini (o'rnatish teshiklari bilan) yarating va unga L-qavslarni 2-56 ta vint yordamida mahkamlang. Shundan so'ng siz usb portini joylashtirish va plastinkadagi qavslar uchun joylarni aniq belgilash uchun joyni o'zgartirishingiz mumkin. Qavslarni mukammal taxtadan olib tashlang va ularni joyiga lehimlang. Nihoyat, perforator taxtasini joylashtiring.

Guruch kirish panelini ushlab turish uchun men to'rtta kichik guruchli yog'och vintni ishlatardim.

Shu nuqtada men yakuniy yig'ilish boshlanishidan oldin testdan o'tishni tavsiya qilaman. Bu qadam ixtiyoriy, lekin tavsiya etiladi. Yopishtirishdan oldin sozlash osonroq.

9 -qadam: simlarni tenglikka ulang; Elektronni ulang va sinab ko'ring

Image
Image
Bo'yinni Ukulele tanasiga ulang
Bo'yinni Ukulele tanasiga ulang

Hali elektronikani doimiy ravishda biriktirmang. PCBga simlarni ulang va kirish teshigidan chiqib ketish uchun bo'sh joy qoldiring. Oxir -oqibat, ular Arduino MICRO kartasiga doimiy ravishda biriktirilishi kerak (rasmlarda men kod ishlab chiqish uchun ishlatgan Arduino UNO tasvirlangan)

10 -qadam: Bo'yni Ukulele tanasiga ulang

Ukulele to'plamiga kiritilgan ko'rsatmalarga muvofiq bo'yni Ukulele tanasiga ulang. Ayniqsa, taxta yuzasining uke tanasiga mos kelishini kuzating.

11 -qadam: PCB simlarini tanaga o'tkazish uchun kirish teshigini burang

PCB simlarini tanaga o'tkazish uchun kirish teshigini burang
PCB simlarini tanaga o'tkazish uchun kirish teshigini burang

Yelim quriganidan so'ng, PCB simlari Ukulele korpusiga o'tishi uchun burchak ostida ~ 1/4 dyuymli (10 mm) teshik oching. Ovoz panelini shikastlamang.

Kengash ostidagi simlarning qalinligini ta'minlash uchun sizga kichik cho'ntak yaratish kerak bo'lishi mumkin (yoki ixtiyoriy ravishda ulanishlarni tepaga joylashtiring va paneldagi bo'shliqni qo'shing).

Boshqa test sinovi hozircha zarar qilmaydi.

12 -qadam: tenglikni va taxtani bo'yniga tekislang va yopishtiring

PCB va taxtani bo'yniga tekislang va yopishtiring
PCB va taxtani bo'yniga tekislang va yopishtiring

Men yopishtirishdan oldin siqish orqali o'ylashni taklif qilaman (va sinab ko'ring!). Sizga tekis qisish yuzasini berish uchun bo'yinning pastki qismiga o'xshash blok yasashni xohlashingiz mumkin. Qoplama taxtasi bo'ynidan kattaroqdir, shuning uchun siz bunga ruxsat berishingiz kerak.

Keyinchalik tugatmoqchi bo'lgan sirtga epoksi tushmasligi uchun juda ehtiyot bo'ling. Yaxshisi, yopishtirishdan oldin barcha yopishtirilmagan yuzalarga niqob qo'llang, shunda u faqat siz xohlagan joyga to'g'ri keladi.

Ishlash muddati kamida 60 minut bo'lgan epoksiyadan foydalaning … sizga hammasi kerak bo'ladi.

PCBni avval elim bilan yopishtiring, shunda ortiqcha yopishtiruvchi plastinka yopishtiruvchi yuzasiga tushmaydi. Bu panelni bo'yniga tekislash usulini beradi. PCB lehim niqobining silliq qoplamasiga ega, shuning uchun men epoksiyaga biroz yaxshilangan sirtni berish uchun uni zımpara bilan yaxshilab ishladim.

Plitkani bo'yniga tekislang va yopishtiring. Ehtiyot bo'ling, keyinroq rezonansli bo'lishi mumkin bo'lgan cho'ntaklarni qoldirmang (buzz!). Bundan tashqari, LED sirtiga elim yopishmasligidan ehtiyot bo'ling.

Yelim quriganidan so'ng, siz elektronni yana bir bor sim bilan tekshirib ko'rishingiz mumkin. Bir yomon LED sizni hayotdan nafratlantiradi. Prototipda bitta yomon LED (birinchi!) Bor edi va men nuqsonli LEDga kirish va uni toza qilib tuzatish uchun yog'ochdan yasalgan ijodiy ishlarni bajarishim kerak edi.

13 -qadam: Panjara qirralarini bo'yniga tekislang va simlarni qo'shing

Yelim quriganidan so'ng, siz qirralarni tugatishni boshlashingiz mumkin. Men ortiqcha taxta materialini ehtiyotkorlik bilan kesib oldim (tegirmon yordamida) va oxirgi millimetrni qo'lda silliqlash bilan tugatdim.

Qo'rqinchli simlarni qo'shish oddiygina bolg'a bilan amalga oshirilishi mumkin (buzilmaslik uchun plastik yuz bilan). Faqat juda qattiq zarba qilmang. Agar siz simni uyalarga moslashtirgan bo'lsangiz, ular hech qanday qiyinchiliksiz kirishi kerak.

Siz tomosha qilishingiz kerak bo'lgan narsa - LED cho'ntagining ingichka yuzasini sindirish. Prototipda men bir nechta LED cho'ntaklarini (bo'sh joy torayib ketadigan 12 -chi panelda) panjara uyasiga uzatishga ruxsat berdim. Bu yomon fikr, chunki bu zaif joyni yaratadi, u simli simni kiritgandan keyin yorilishi mumkin (va ham).

14 -qadam: Ukulelega niqobni qo'llang va tugatishni qo'llang

Plitka taxtasini (u tugamaydi) va ko'prikni yopishtiruvchi joyini niqoblang va pardozlashni boshlang.

Ko'prik maydonini niqoblashda, to'plamingiz bilan birga ko'rsatmalarni o'qing, shundan so'ng ishonch hosil qilish uchun o'lchov uzunligini ikki marta tekshiring. Men prototip uchun ishlatgan to'plam noto'g'ri o'lchov uzunligidan foydalangan va shuning uchun ko'prikni joylashtirish uchun noto'g'ri o'lchovlarni taqdim etgan (lekin uning veb -saytida so'nggi ko'rsatmalarni tekshirish uchun eslatma bor edi!). Ichim menga bu noto'g'ri ekanligini aytdi, lekin men ko'r -ko'rona hokimiyatni qabul qildim.

Ko'rsatmalarga ko'r -ko'rona amal qilishdan ko'ra, NIMA qilayotganingizni tushunish har doim yaxshiroqdir.

Tugatish uchun Luthiers -dan Internetda nima qilayotganlarini biladigan ko'plab darsliklar bor, shuning uchun men tugatish jarayoniga o'tishdan oldin ular bilan maslahatlashishni maslahat beraman.

Men, albatta, bunday qilmadim, shuning uchun men noto'g'ri yopishtiruvchi vositani ishlatib qo'ydim, natijada juda g'alla yuzasi paydo bo'ldi. Buni qilma.

Uy vazifangizni qiling.

15 -qadam: Ko'prikni tekislang va ulang

Hizalang va ko'prikni mahkamlang
Hizalang va ko'prikni mahkamlang

Bu qadam juda sodda, lekin yana siqish usulini rejalashtiring va yopishtirishdan oldin uni sinab ko'ring. Men ko'prikni ulash uchun standart yog'och elim ishlatardim.

16 -qadam: Elektronikani o'rnating va sinovdan o'tkazing

Elektronika o'rnatish va sinov
Elektronika o'rnatish va sinov

Endi simlarni chiroyli qilish vaqti keldi. Qolaversa, siz uning tanaga kirib ketishini, shovqin -suron chiqarishni yoki undan ham yomoni, sahnada buzilishini xohlamaysiz.

Arduino kodini USB porti orqali yangilash mumkin, shuning uchun agar siz o'ylamoqchi bo'lsangiz, uni ajratishning hojati yo'q.

17 -qadam: Tyunerlarni o'rnating va asbobni torting

Image
Image
Uke dasturlash
Uke dasturlash

Siz, ehtimol, bezovtalanishni to'g'rilab, sozlash bilan biroz o'ynashingiz kerak bo'ladi, lekin oxirigacha yaqin bo'lganingizda, endi nima uchun tashvishlanasiz?

Men tyunerlarni takomillashtirdim va yaxshi Aquila simlaridan foydalandim, bu tovushga hech qanday yordam bermadi. Shuni yodda tutingki, siz ukulele loyihasiga pul yig'ayotganingizda …

18 -qadam: Uke dasturlash

Oxirgi Arduino kodi Github -da. Kodda kelajakda takomillashtirishni qo'llab -quvvatlash uchun ba'zi satrlar mavjud (masalan, metronom funktsiyasi va displey uchun "slayderlar" (slayderga o'xshash UI elementi)

Ushbu kod Rotary Encoder kutubxonasidan (Rotary Encoder Arduino kutubxonasi) foydalanadi.

Bundan tashqari, bu erda joylashgan Adafruit Neopixel kutubxonasi va misol kodidan foydalaniladi. Teatr va kamalak rejimi kutubxona bilan ta'minlangan misollardan olingan. (qarang strandtest.ino).

Displey drayveri 4D tizimlari tomonidan ta'minlangan va Github -da bu erda joylashgan.

Ukulele loyihasi uchun ikkita o'ziga xos funktsiya mavjud. Birinchisi akkordlar kutubxonasini amalga oshiradi, ikkinchisi esa maxsus belgilar to'plami yordamida aylantiruvchi matnli xabarni ko'rsatadi.

Ilova qilingan diagrammada svetodiodning joylashuvi va ular qanday ulanganligi ko'rsatilgan. LED 0 yuqori o'ng burchakda joylashgan.

19 -qadam: Akkordni qanday ko'rsatish kerak

Akkordni qanday ko'rsatish kerak
Akkordni qanday ko'rsatish kerak

DisplayChord funktsiyasi har bir akkord uchun barmoq pozitsiyalarini ko'rsatadi (faqat hozircha birinchi pozitsiya). Foydalanuvchi tanlagan akkordlar (ildiz notasi va sifati) bir juft indeks sifatida saqlanadi. Bular o'z navbatida har bir akkord uchun barmoq izlarini qidirish uchun ishlatiladi.

Men akkordlarni saqlash uchun "GCEA" belgisini ishlatardim (masalan, "A" - "2100"). Akkordlar har bir ildiz notasi uchun oldindan hisoblab chiqiladi va akkord sifatiga mos keladigan o'zgaruvchida saqlanadi. (Shunday qilib, mayor, "2100" ga mos keladigan "majorChords" qatorining birinchi joyida saqlanadi).

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

E'tibor bering, bu matnli satr bo'lgani uchun, har bir raqam 9dan kattaroq burchakli pozitsiyalarni hisobga oladigan oltilik qiymatini ham ko'rsatishi mumkin. Ya'ni, A va B 10 va 11 -chi LEDlarni ifodalaydi. Birinchi pozitsiyali akkordlar uchun bu muammo emas edi).

LED chizig'i har bir satr bo'ylab (A simidan boshlanadi) 12 qatorli (oktava) uzunlikdagi sim bilan ulanadi, keyingi 12 -qator keyingi qatorning birinchi chizig'idan boshlanadi (18 -qadamdagi diagramaga qarang). Bu algoritm uchun berilgan akkord uchun qaysi chiroqlar yoqilishini aniqlash muhim ahamiyatga ega. Bu shuni anglatadiki, 0 dan 11 gacha piksellar A chiziqli LEDlar, 12 dan 23 gacha E chiziqli LEDlar va boshqalar. A = "2100" ni tahlil qilishda (mag'lubiyat sifatida saqlanadi, kodda "\ n" nolinchi terminatori ham mavjud), biz uni quyidagicha izohlaymiz: A satrda piksellar yonmaydi, E satrida piksel 0 yo'q. (fret 1) C satrida yonadi va G satrida 1 -piksel (2 -fret). E'tibor bering, "0" o'chirilgan, birinchi LED emas. Kabelga asoslanib, biz 24 va 37 LEDlarini yoqmoqchimiz. Akkordni ko'rsatish uchun kod quyida ko'rsatilgan.

for (int i = 0; i <4; i ++) {if (int (akkord - '0')) {// algoritmi int ledNumber = int (akkord - '0')) + (3 - i) * 12 - 1; // yuqoridagi muhokamaga qarang, (3-i) indeks chizig'ini teskari yo'naltirishdir. setPixelColor (ledNumber, 0, 125, 125); // setPixelColor (ledNumber, qizil, yashil, ko'k qiymat)}}

If ifodasi chiroq o'chirilganligini tekshiradi. Agar shunday bo'lmasa, u holda belgisining ascii qiymatini oladi va ledNumberning yonishi uchun '0' uchun ascii qiymatini chiqaradi.

strip Adafruit_NeoPixel sinfining namunasidir. SetPixelColor funktsiyasi hisoblangan pikselning rangini belgilaydi (bu holatda (0, 125, 125).

20 -qadam: aylantiruvchi xabarni qanday ko'rsatish kerak

O'tkazuvchi xabarni qanday ko'rsatish mumkin
O'tkazuvchi xabarni qanday ko'rsatish mumkin

Shunday qilib, bizda 12 x 4 o'lchamli LEDlar bor … nima uchun uni tasodifiy yorug'lik naqshlaridan boshqa narsani ko'rsatmasligingiz kerak!

Birinchi muammo shundaki, displey balandligi (4) Ukedagi satrlar soni tufayli ancha cheklangan. Gorizontal aylantirish asosan o'qilmaydi, lekin vertikal yo'nalishda biz vertikal ravishda ishlaydigan 4 x 5 belgini qo'llab -quvvatlashimiz mumkin.

Belgilarni beshta "vertikal" qator sifatida tartibga solish, ikkita belgini bir vaqtning o'zida ko'rsatish mumkin, demak, har bir belgi o'rtasida bitta satr oralig'i bo'lishi mumkin.

Qiyinchilik shundaki, standart 4 x 5 belgilar to'plami yo'q edi. Men biriktirilgan elektron jadval yordamida o'zim yaratdim. Men har bir qatorni bitta olti burchakli qiymatga tayinladim (qaysi piksel yoqilgan yoki o'chirilganligini ko'rsatuvchi 4 bit). Besh burchakli qiymatlarning kombinatsiyasi belgini tashkil qiladi (masalan, "0" - 0x69996).

Har bir belgining qiymatlari ASCII tartibida massivda saqlanadi. Belgilar to'plami ba'zi harflar bilan murosaga keladi, lekin ko'pchilik aniq. (elektron jadvalning pastki qismidagi yozish - bu men o'ynagan g'oyalar, chunki bizda rang bor, biz xarakterga "chuqurlik" qo'shishimiz va, ehtimol, qo'shimcha aniqlikni olishimiz mumkin.

Ko'rsatiladigan satr string o'zgaruvchisi, xabarda mavjud.

Belgilar tasvirini ko'rsatish uchun bufer yaratiladi. O'ylaymanki, men butun tarjima qilingan xabarlar ketma -ketligi bilan katta bufer yaratgan bo'lardim, ayniqsa, aksariyat xabarlar 20 belgidan kam bo'lishi mumkin. Biroq, men o'rniga uchta belgidan iborat (18 baytli) bufer yaratishni tanladim. Belgilarning faqat ikkitasi faol ko'rsatilmoqda, uchinchisi - oldinga qarash, bu erda keyingi belgi yuklanadi. LED chizig'i (buni katta siljish registri deb o'ylang) mag'lubiyat uchun 48 bit bilan yuklangan. Men kontseptsiyani osonlashtirish uchun xotira maydonini behuda sarfladim. Har bir nibble o'z xotira joyini oladi, bu xotira talabini ikki barobar oshiradi, lekin bufer hajmi unchalik katta emas.

Chiqish indeksi (ko'rsatgich) belgi chegarasiga yetganda (outputPointer 5, 11 yoki 17 da) bufer keyingi belgi bilan yuklanadi.

Buferni yuklash uchun biz "xabar" dagi birinchi belgini ASCII qiymati sifatida olamiz va asciiFont qatoridagi indeksni olish uchun 48 ni ayiramiz. Bu indeksdagi qiymat codedChar -da saqlanadi.

Xabarning birinchi qismi 47, 35, 23 va 11 LEDlarga mos keladi (displeyning pastki qismi). Shunday qilib, nol 0x0F999F raqami uchun F (chapda) birinchi, 9 soniya va boshqalarga siljiydi.

Keyingi belgi har bir nibblni maskalash va o'ngga siljitish orqali yuklanadi. Yuqoridagi misol uchun algoritm (0x0F999F va 0xF00000) >> 20, keyin (0x0F999F va 0x0F0000) >> 16 va boshqalarni beradi.

int indeksi; if (outputPointer == 17 || outputPointer == 5 || outputPointer == 11) {char displayChar = message.charAt (messagePointer); // xabarning birinchi belgisini oling uzoq kodlanganChar = asciiFont [displayChar - 48]; agar (displayChar == 32) codedChar = 0x000000; messageBuffer [bytePointer+5] = bayt ((codedChar & 0xF00000) >> 20); // oxirgi nibbildan boshqa hamma narsani niqoblang va uni 20 (va hokazo) ga o'tkazing messageBuffer [bytePointer+4] = bayt ((codedChar & 0x0F0000) >> 16); // bu har bir xotira joyiga bitta nibble qo'yishi kerak messageBuffer [bytePointer+3] = bayt ((codedChar & 0x00F000) >> 12); // oltitasi ham belgida ifodalanadi messageBuffer [bytePointer+2] = bayt ((codedChar & 0x000F00) >> 8); messageBuffer [bytePointer+1] = bayt ((codedChar & 0x0000F0) >> 4); messageBuffer [bytePointer] = bayt ((codedChar & 0x00000F)); if (bytePointer == 0) {// tsiklni bytePointer bytePointer = 12 atrofida boshqaring; } boshqa {bytePointer -= 6; // biz pastdan yuqoriga to'ldiramiz; ESLATMA: buni qaytarishni ko'rib chiqish kerakmi, buni osonlashtiradimi yoki yo'qmi} if (messagePointer == message.length ()-1) {// messagePointer = 0 xabari atrofidagi ko'chadan ishlov berish; } boshqa {messagePointer += 1; // keyingi belgiga o'ting}}

Bufer yuklangandan so'ng, chiqish ko'rsatkichi qayerda ekanligini kuzatish va LED chizig'ini to'g'ri 48 bitli yuklash masalasi bo'ladi (joriy 4 va oldingi 44). Yuqorida aytib o'tganimizdek, chiziq NeoPixel sinfining namunasidir va setPixelColor har bir pikselning rangini (RGB) o'rnatadi. Show () funktsiyasi displey qiymatlarini LED chizig'iga o'tkazadi.

buferni doimiy ravishda siljitish uchun // loop

// halqa orqali o'tishda har bir chiziqni yozishni xohlaysiz, faqat boshlang'ich joy o'zgaradi (int qator = 12; qator> 0; qator--) {indeks = outputPointer + (12 qatorli); agar (indeks> 17) indeks = outputPointer+(12 qatorli) -18; // loop 17 dan katta bo'lsa, (messageBuffer [indeks], ustun-1))), uint8_t (GreenLED*(bitRead (messageBuffer [indeks], ustun-1))), uint8_t (BlueLED*(bitRead (messageBuffer [indeks], ustun-1)))); // har bir joyda LED yonadi, agar bit bitta bo'lsa}} // outputPointer displey satridagi joriy eng past baytni ko'rsatadi, agar (outputPointer == 0) outputPointer = 17; else outputPointer -= 1; strip.show (); }

21 -qadam: Ukulele ajoyibligingiz bilan dunyoni hayratda qoldiring

Image
Image

Yakuniy Ukulele prototipi taxminan 6 oy davom etdi va to'xtab qoldi.

O'rganish uchun juda ko'p yangi texnologiyalar va ehtimol yog'ochni qayta ishlash va musiqiy nazariyani ishga tushirish mumkin!

Keyingi versiya uchun nima qilish kerak?

  1. Displey va aylanadigan kodlovchi qurilmasidan xalos bo'ling. Ularni arduino -ga ulangan Bluetooth moduli bilan almashtiring. Telefon yoki planshet yordamida masofadan boshqaring. Bluetooth bilan hamma narsa yaxshiroq.
  2. Akkord naqshlarini real vaqt rejimida masofadan yangilang. Ilova uchun eng yaxshi narsa qoldi.
  3. LED qopqoqlari. Hozirgi versiya gunkning LED teshiklariga kirishiga yo'l qo'ymaydi. Do'stim bir nechta mayda linzalar yasadi, lekin men ularni qanday qilib to'g'ri joyiga qo'yishni bilmasdim.
  4. Muqobil taxta materiallari, ehtimol panjara ushlab turganda aniq narsa.
  5. Yana chiroqlar! Ko'proq "qatorlar" qo'shish orqali matndagi cheklovni olib tashlang. Bu, albatta, paneldagi o'lchamlari va LED korpuslari bilan bog'liq cheklovdir.

Yana, matnni aylantirish uchun men yaratishim kerak bo'lgan belgilar to'plamini tasvirlaydigan Instructable sherigiga qarang.

Shu paytgacha etib kelganingiz uchun katta rahmat! Mahalo!

Tavsiya: