Mündəricat:

İşıqlı Ukulele necə qurulacaq !: 21 addım
İşıqlı Ukulele necə qurulacaq !: 21 addım

Video: İşıqlı Ukulele necə qurulacaq !: 21 addım

Video: İşıqlı Ukulele necə qurulacaq !: 21 addım
Video: Tutorial on a magical ukulele (very easy) 2024, Iyul
Anonim
Image
Image
Plan hazırlayın
Plan hazırlayın

Ukulele oynayıram. Orta dərəcədə (əgər bu sözdürsə) belə düşündüm ki, "həqiqətən xanımları təəccübləndirmək istəyirsinizsə, onları səhnədə oynayan fəlakətdən yayındırmaq üçün bir vasitəyə ehtiyacınız var". Beləliklə, "İşıqlı Ukulele" dünyaya gəldi.

Bu layihə bir Konsert Ukulele dəsti alır və hər bir simli və pərçim mövqeyinə Arduino tərəfindən idarə olunan LED əlavə edir. Həm də LED siminin rejimini və intensivliyini seçmək üçün xülya OLED ekranı və fırlanan kodlayıcı əsaslı istifadəçi interfeysi əlavə edir.

Tamamlanmış uke hardware xüsusiyyətləri:

  1. Arduino MICRO, LED simli, ekran və giriş cihazı ilə əlaqə qurur.
  2. 48 fərdi proqramlaşdırıla bilən tam rəngli LED
  3. OLED ekran
  4. İstifadəçi girişi üçün fırlanan bir kodlayıcı
  5. Xarici güc və Arduino proqramlaşdırma üçün USB interfeysi

Uke proqram təminatı var:

  1. LED -ləri addımlarla idarə edən əsas işıq nəzarət rejimləri
  2. Qəşəng bir teatr marquee rejimi (tamaşalar üçün çox əlverişlidir!)
  3. LED intensivliyinə nəzarət
  4. Bütün ilk mövqe Ukulele akkordlarının tam akkord kitabxanası (akkord dəyəri və xarakter)
  5. 4 x 6 piksellik unikal simvol dəsti ilə işləyən mətni (şaquli) göstərmək imkanı

Bu təlimat tamamlanmış prototipi təsvir edir. Tam inkişaf dastanı BURADA mövcuddur, o cümlədən bəzi təhsilli (ağrılı) səhvlər və ilk dizaynınızı niyə başa çatdırmalısınız (nə qədər çirkin olsa da). Həqiqətən bilmədiyiniz hər şeyi sonuna qədər bilməyəcəksiniz (və sonra hələ də bilməyəcəksiniz!), Amma daha yaxşı bir vəziyyətdəsiniz və növbəti dizayn üçün daha ağıllısınız.

Prototipi Grizzly Konserti Ukulele dəsti ətrafında qurdum. Bir dəstlə başlamaq, uke bədəni ilə bağlı narahatlığı aradan qaldırır (yaxşı, əsasən) və əsl luthier tipli işlərin çoxunu ortadan qaldırır. Bu dəstlər olduqca tamamlıdır və möhtəşəm işlərdə o qədər də bahalı deyil (və səhvlər edəcəyiniz üçün daha az ağrılıdır).

Addım 1: Plan hazırlayın

Plan hazırlayın
Plan hazırlayın

Bəzi dəstlərə daxil olan lövhə (və ya klaviatura) artıq pərdələri bağlayır. Bu yaxşı/pisdir. Vaxt qənaətçisi kimi gözəldir, amma bir qazma nümunəsi hazırlamaq və freze edərkən yerində saxlamaq baxımından bir az ağrıyır. Kitdə olanı məhv etdikdən sonra (başqa bir dəst almaqdan başqa çarəm yox idi) yeni bir lövhə almağı seçdim.

Lövhəni hazırlayarkən, PCB və LED -ləri yerləşdirmək üçün lazım olan qalınlığın artmasını hesablamalıyıq (və passiv komponentləri də unutmayın), lakin LED -lərin lövhə səthindən çox uzaqda olması.

LED çaplı devre kartı (PCB) sadə 2 qatlı bir lövhə olaraq hazırlanmışdır. Bu, LED telinin əllə yığılmasına çox kömək edir və Ukulele boynuna bəzi mexaniki güc (fiberglas və epoksi) verir. Layihəni Eagle -da başladım, amma lövhə ölçüsünün məhdud olması səbəbindən Altium Designer istifadə edərək sona çatdım. Altium sxematik və PCB sənədləri burada.

Kit lövhəsi yalnız 0.125 düym qalınlığında idi. Beləliklə, 0.062 düym qalınlığında bir PCB alaraq və LEDlər üçün əlavə 0.062 düym icazə verdiyimiz təqdirdə, lövhənin çox hissəsini (hamısında olduğu kimi) kəsməliyik. Kompensasiya etmək üçün ya lövhədəki LED -lərin ciblərini PCB üçün uyğun bir cib ilə kəsə bilərik, ya da bütün lövhəni (getdiyim variantı) Luther Mercantile International (LMII) qalın versiyası ilə əvəz edə bilərik. başlamaq üçün 0,25 düym olan.

AMMA unutmayın ki, lövhədə qalınlığın artmasını kompensasiya etmək üçün hələ də boynunuzu emal etməli olacaqsınız. Əldə etdiyiniz digər bir üstünlük kosmetikdir, çünki PCB artıq lövhənin içərisinə tamamilə daxil edilmişdir ki, bu da kənarların bitməsini (və daha gözəl görünməsini) çox asanlaşdırır və boyun kəsilməsini asanlaşdırır.

Mühəndislik işləri (istəsəniz görməzdən gəlin):

Yeri gəlmişkən, bu, boyun sərtliyini o qədər də pozmur. PCB materialı orijinal taxta taxtadan (Mahogany modulu: 10.6 GPa qarşı FR4 modulu: 24 GPa) daha sərtdir, üstəgəl bir Ukulele qurduğumuz üçün başqa cür təhrif edə biləcək çox böyük bir ip gərginliyi yoxdur və ya əymək) boyun.

Çox maraqlı bir fikir (ehtimal ki, hələ hesablamalıyam) temperaturda baş verənlərdir. Taxta paralel olaraq taxıl üçün, genişlənmə termal əmsalı təxminən 3 x 10^-6/K, FR4 üçün isə 14 × 10^-6/K-dir. Beləliklə, olduqca əhəmiyyətli bir fərq var. Narahatlıq, temperatur dəyişdikcə boyunda gərginliyin yaranmasıdır ki, bu da ipləri sökür. Neytral oxun əks tərəfinə bənzər bir təbəqə tətbiq etməklə və ya FR4 -ü neytral oxa mümkün qədər yaxınlaşdırmaqla kompensasiya edilə bilən bir şeydir. Ancaq bu, 2.0 -a qalacaq … Modelləşdirmək və qiymətləndirmək üçün bir şey.

Elektronika uke gövdəsində yerləşir. Ekran və fırlanan kodlayıcı üçün yer açmaq üçün UKE -nin yan divarında (səs paneli deyil!) Deliklər kəsilir, üstəgəl Arduino Micro -nu tutmaq və USB interfeysinə çıxış təmin etmək üçün giriş lövhəsi açılır. USB bağlantısının daha əlverişli bir yerə çıxması üçün giriş lövhəsi/montaj dizaynı və yeri çox güman ki, təkmilləşdirilə bilər, ancaq oynadığınız zaman heç bir şəkildə olmadığı üçün hər şey o qədər də pis deyil.

Addımların konturu belədir:

  1. Material toplayın
  2. Lazım olan vasitələri alın
  3. Qalın lövhəni yerləşdirmək üçün boynunu doğrayın
  4. Lazımi yerlərdə deliklər açmaq və lövhə və LEDlər üçün ciblər yaratmaq üçün lövhəni dəyirmanlayın
  5. LEDləri tutan PCB əldə edin və qurun
  6. OLED ekran, Rotary kodlayıcı və giriş paneli üçün Ukulele gövdəsindəki dəyirman giriş delikləri
  7. Qapaq lövhələri düzəldin
  8. PCB -yə tellər bağlayın; elektronikanı bağlayın və sınayın
  9. Boyunu Ukulele bədəninə bağlayın
  10. PCB tellərini gövdəyə ötürmək üçün bir giriş tutacağı qazın
  11. PCB və lövhəni boyuna hizalayın və yapışdırın
  12. Lövhənin kənarlarını boyuna düzəldin (artıq materialı çıxarın)
  13. Çubuq tellərini quraşdırın
  14. Ukulele üçün maska tətbiq edin və bitirmə tətbiq edin
  15. Körpünü hizalayın və bağlayın
  16. Elektronikanı quraşdırın və sınayın.
  17. Tünerləri quraşdırın və aləti bağlayın
  18. Uke nəzarətçisini proqramlaşdırın
  19. Ukulele möhtəşəmliyinizlə dünyanı heyrətləndirin!

Addım 2: Material toplayın

Material siyahımız belə görünür:

  1. Ukulele dəsti - Bir Grizzly Konserti Ukulele dəstindən istifadə etdim (Amazonda Grizzly Uke Kit), amma bunun dayandırılacağı görünür. Zimo, işi görəcək bənzər bir model (Zimo Uke Kit @ Amazon) hazırlayır
  2. Ukulele lövhəsi, əvvəlcədən yivli (LMII Uke Fingerboards). Lövhəni ölçüsünüzə uyğunlaşdıracaqlar ki, bu da problemdən xilas olacaq
  3. Epoksi - lövhəni boyuna yapışdırmaq üçün. PCB materialına uyğun olduğu üçün epoksi seçdim. Ən azı 60 dəqiqəlik iş həyatı olan bir şey axtarın. 5 dəqiqəlik istifadə etməyin, düzəlişlər etmək üçün vaxt lazımdır
  4. Fret tellər - LMII -dən də mövcuddur
  5. Xüsusi PCB - Altium faylları burada. Normal FR4 tipli materialı seçdim. Flex (poliimid) lövhələr daha incə ola biləcəyi üçün maraqlı (daha bahalı olarsa) alternativ olardı
  6. 48x Neopixel (SK6812) LEDləri. Adafruit və Digikey -də mövcuddur
  7. 48x 0.1uF 0402 qapaqları - daha böyük ölçülər məqbuldur, ancaq yerləşdirməni izləməlisiniz
  8. Bağlama teli - qarışıqlığın qarşısını almaq üçün ən azı 4-6 rəng, ilk növbədə 28 ölçü tel istifadə etdim. LED güc əlaqələrində DC düşməsini izləyin (həm VCC, həm də GROUND … cərəyanın mənbəyə qayıtması lazımdır!)
  9. Döner kodlayıcı-PEC16-4220F-S0024
  10. Fantezi taxta düymə - fırlanan kodlayıcı üçün (özümü LMII -dən aldım)
  11. OLED ekran - 4D sistemlərindən OLED displeylər
  12. Xarici USB batareyası - hər zaman daha ucuzdur, üstəlik ehtiyat hissələri də götürə bilərsiniz!
  13. Arduino Mikro
  14. Lövhə pirinç - lövhənin ekran üçün arduino və çərçivəni tutması üçün
  15. Müxtəlif istehlak materialları: zımpara, uretan örtük, dəmir çubuqlar, rezin bantlar, lehim, axı, fırçalar, iki tərəfli lent (3M UHC lentini bəyənirəm) və kiçik pirinç ağac vintləri (boşqab üçün)
  16. İsteğe bağlı Ukulele təkmilləşdirmələri - daha yaxşı tünerlər, daha yaxşı tellər, daha yaxşı qoz və yəhər, əgər luthier şücaətinizi nümayiş etdirmək istəyirsinizsə)

Addım 3: Lazımi alətləri əldə edin

Gec -tez bunlara giriş əldə etməli və ya əldə etməlisiniz:

Alətlər siyahımıza daxildir:

  1. Freze maşını - CNC -yə üstünlük verilir, amma hətta bir router və çox şans əldə edə bilərsiniz. Bir kombo CNC freze/yönlendirici istifadə etdim
  2. Router bitləri - karbidə üstünlük verilir. Router bitləri metal deyil, ağac emal etdiyimiz üçün son dəyirmanlar üzərində seçilir
  3. Kelepçeler - çoxu. Əsasən yapışdırarkən hissələri tutmaq lazımdır
  4. Lehimləmə dəmiri - səthə montaj lehimləmə üçün kiçik bir uc
  5. Mikroskop və ya böyüdücü - yalnız gözlərinizlə lehimləməyə cəhd edə bilərsiniz, amma bunu məsləhət görməzdim, minimum 10 dəfə
  6. Cımbız (hissələri yerinə qoymaq üçün)
  7. Sarsıdıcı alətlər (burada LMII -də müvafiq alətlərə baxın, amma evdə olanları istifadə etdim və çəkiclər, sənədlər və kəsicilər)
  8. Ağac kəsikləri, tornavidalar, yumşaq zərbə və ya xam dəri çəkic (çilçıraq üçün) və s.
  9. Aşındırıcılar - müxtəlif zımpara parçaları

Proqram vasitələrimizə daxildir (bəziləri büdcənizə/ixtiraçılığınıza görə isteğe bağlıdır):

  1. Arduino proqramı
  2. Ukulele mənbə kodu (https://github.com/conrad26/Ukulele)
  3. PCB layout paketi - Altium istifadə etdim, çünki Eagle -in pulsuz versiyası istədiyim lövhə ölçüsünü dəstəkləmirdi. Altium, tam bir xüsusiyyətli bir paket paketidir və əslində bir hobbi qiymət aralığında deyil. Prototip üçün saytımda Gerber fayllarını daxil etdim, amma bunların mütləq bir yeniləməyə ehtiyacı var
  4. 3D modelləşdirmə proqramı - SolidWorks -dən istifadə etdim, amma bir pulsuz alternativ FreeCAD -dır (https://www.freecadweb.org/)
  5. NC freze faylını yaratmaq üçün Autodesk -dən FeatureCAM kimi CAM proqramı.

Altium'dan 3D addım fayl ixracatının bir 3D modeli ilə birlikdə, hər şeyin uyğunlaşdığından əmin olmaq çətinliyini aradan qaldırır, amma bu bir şərt deyil. Diqqətli düzülüş eyni nəticəni əldə edəcək.

İndi nə etmək istədiyimizi və nə etmək lazım olduğunu bildiyimiz üçün bir Ukulele quraq.

Addım 4: Qalın lövhəni yerləşdirmək üçün Boyunu dəyirmanlayın

Qalın lövhəni yerləşdirmək üçün Boyunu dəyirman edin
Qalın lövhəni yerləşdirmək üçün Boyunu dəyirman edin

Freze etmədən əvvəl, orijinal lövhə montaj səthinin düzlüyünün qorunmalı olduğunu və ya bükülmüş bir lövhəyə sahib olacağınızı unutmayın ki, bu da tələlərin hamarlanması ilə bağlı hər cür problemə səbəb olur.

Yalnız oraya getməyin, vaxtınızı ayırın və boynunuzu diqqətlə və sərt şəkildə bağlayın və kəsmədən əvvəl bütün boyundakı marşrutlaşdırıcının bitinə hizalanmasını yoxlayın. Burada keçirdiyiniz vaxt sonradan çox kədərdən xilas olacaq.

Boyundakı bir kakma üzərində daha qalın bir lövhə seçməyimin bir səbəbi, artan montaj (yapışdırıcı) səth sahəsi idi. Başqa bir səbəb isə boyun kəsilməsini asanlaşdırmasıdır. Sadəcə səs -küylə bütün səthi lazımi hündürlüyə kəsirsiniz.

Addım 5: LEDləri tutan PCB əldə edin və qurun

LEDləri tutan PCB əldə edin və qurun
LEDləri tutan PCB əldə edin və qurun
LEDləri tutan PCB əldə edin və qurun
LEDləri tutan PCB əldə edin və qurun

Əl ilə bütün qurğunu lehimlədim. LED paketləri xüsusilə asanlıqla əriyir, buna görə də zədələnməməsinə diqqət yetirin. Statik bir kəmər taxmağı təklif edirəm, çünki sim hər LED işindən asılıdır.

Fretboard dizaynı WS2812B LEDləri ətrafında qurulmuşdur. Yalnız lövhənin ilk oktavasını etməyə qərar verdim (48 LED !!). Hər bir LED, bir keçid qeydində bir bit kimi düşünülə bilər. Dəyişdirmə reyestri 800 kHz -də işləyir. Adafruit kitabxanasından (proqramlaşdırma bölməsinə baxın) istifadə edərək işləri sürətlə davam etdirə bildim.

Dizaynı Eagle -də başladım, ancaq lövhənin ölçüsü 4 x 5 düym ilə məhdudlaşdı, buna görə (və ya daha doğrusu, seçim etdim) Altiuma keçməliydim. Altiumu iş yerində istifadə edirəm, buna görə də əslində mənim işimi daha da sürətləndirdi. Altium layihəsi, sxematik və pcb faylları (və kitabxana hissələri) saytımdadır. Lövhə trapezoid şəklindədir və təxminən 10 düym uzunluğundadır. Düşünürəm ki, konturu bir az daha sıxmağa çalışmalıydım (sonrakı fırlanma!) Montaj pis deyildi, amma əgər ödəyə bilsəniz, həqiqətən, layiqli bir lehimləmə dəmirini (JBC Lehimləmə Dəmirləri) və yaxşı bir mikroskopu məsləhət görürəm. Bəli, mən korlanmışam və yox, ev laboratoriyamda belə bir şey yoxdur. Mən ucuzam.

Lövhələri Sunstone -da hazırladım. İki lövhə üçün 129 dollar. Bir həftəlik növbəyə zəmanət verilir. Göndərmə mövzusunda heç bir qənaət etməyin. UPS yerindən istifadə etdiyimi fərq etmədim və lövhələrimin gəlməsi üçün əlavə bir həftə gözlədim. Ümumi montaj müddəti təxminən 2 saat (98 hissə) idi.

Addım 6: Lövhəni doğrayın

Image
Image
Ukulele gövdəsindəki dəyirman giriş delikləri
Ukulele gövdəsindəki dəyirman giriş delikləri

Lazımi yerlərdə deşik açmaq və lövhə və LEDlər üçün ciblər yaratmaq üçün lövhəni dəyirman etməliyik.

Solidworks -da tamamlanmış lövhənin 3D modelini yaratdım və FeatureCAM -dan istifadə edərək CNC freze rejimini yaratdım.

Boyun və bədən arasındakı hündürlükdə addım dəyişikliyini nəzərə almaq üçün lövhənin alt hissəsinin (səs çuxuruna ən yaxın) daha incə olması lazımdır. Mükəmməl bir uyğunluq olduğundan əmin olmaq üçün bir neçə dəfə sınaqdan keçirməyə dəyər.

Geriyə baxanda, dəyirmanı daha yaxşı uyğunlaşdırmaq üçün lövhənin istifadə olunmamış hissələrini kəsməli idim (mənim ucuz dəyirmanımda yalnız 12 X oxlu hərəkət var idi). Əməliyyat qaydası əvvəl əvvəl dəyirman qalınlığı tənzimləmələrinə qədər qurulmalıdır. ciblər arasında daha az qırılmalara səbəb olan freze cibləri.

Kablolama üçün yer əlavə etmək üçün lazım olduqda əl ilə düzəlişlər edin. Diqqət yetirməli olduğum bir şey, ciblərin bir qisimində telin keçəcəyi yuvaya girməyimdir. Bir dirijor olduğunu nəzərə alsaq, vacib bir şeyin qısalmamasına əmin olun. Çubuğu yerində saxlayan materialın gücünü də azaldır. Dizayn heç vaxt tıxac yuvası ilə kəsişməyəcək şəkildə dəyişdirilməlidir.

Addım 7: Ukulele Bədənində Dəyirman Giriş Delikləri

Ukulele gövdəsindəki dəyirman giriş delikləri
Ukulele gövdəsindəki dəyirman giriş delikləri

Bədəndəki giriş çuxurlarını əllə üyütdüm. Ən çətin hissəsi çox əyri bir səthin "ən düz" bölgəsini tapmaqdır. Konturu qələmlə işarələyin və OLED ekrana tam uyğunlaşana qədər materialı tədricən kəsin. İşlənmiş bir pirinç çərçivə əldə etdim və 3M VHB yapışan bantla bağladım.

Heç biri böyük dəqiqliyə ehtiyac duymadığından, fırlanan kodlayıcı və giriş paneli delikləri yaratmaq daha asandır.

Addım 8: Qapaq lövhələri düzəldin

Qapaq lövhələri düzəldin
Qapaq lövhələri düzəldin
Qapaq lövhələri düzəldin
Qapaq lövhələri düzəldin
Qapaq lövhələri düzəldin
Qapaq lövhələri düzəldin

Ekranın çərçivəsi və giriş paneli üçün örtük plitələrini də əymək lazımdır. Giriş panelinin USB (mikro) konnektoru üçün bir çuxura (düzbucaqlı) ehtiyacı var. Arduino -da mövcud konnektoru istifadə edin, çünki mikro USB üçün panel montaj variantları çox deyil. (sıfırdan dizayn etsəydim, bunlardan birinə baxardım)

Lövhəni yerində tutmaq üçün L mötərizələrini pirinçdən düzəldin və giriş lövhəsinin arxasına yapışdırın. Bu, mövqelərdə bir qədər genişliyə imkan verir. Düzgün mövqeləşdirmə əldə etmək üçün əvvəlcə Arduino MICRO üçün bir pervaz montaj lövhəsi (montaj delikləri ilə) yaradın və 2-56 maşın vintlərindən istifadə edərək L mötərizələrini ona bağlayın. Daha sonra usb portunu sıralamaq və boşqabdakı mötərizələrin yerini dəqiq qeyd etmək üçün yeri dəyişə bilərsiniz. Mötərizəni mükəmməl taxtadan çıxarın və yerinə lehimləyin. Nəhayət, perfboard qurğusunu quraşdırın.

Pirinç giriş panelini yerində saxlamaq üçün dörd kiçik pirinç ağac vintindən istifadə etdim.

Bu nöqtədə son montaj başlamazdan əvvəl bir test uyğunluğunu tövsiyə edirəm. Bu addım isteğe bağlıdır, lakin tövsiyə olunur. Yapışdırmadan əvvəl düzəlişlər etmək daha asandır.

Addım 9: Telləri PCB -yə bağlayın; Elektronikanı qoşun və sınayın

Image
Image
Boyunu Ukulele Bədəninə bağlayın
Boyunu Ukulele Bədəninə bağlayın

Elektronikanı qalıcı olaraq bağlamayın. Giriş çuxurundan çıxmaq üçün kifayət qədər boşluq buraxdığınızdan əmin olaraq telləri PCB -yə bağlayın. Nəticədə bunların Arduino MICRO lövhəsinə daimi olaraq bağlanması lazımdır (fotoşəkillərdə kod hazırlamaq üçün istifadə etdiyim bir Arduino UNO göstərilir)

Addım 10: Boyunu Ukulele Bədəninə bağlayın

Ukulele dəstinə daxil olan təlimatları izləyərək boynu Ukulele gövdəsinə bağlayın. Xüsusilə lövhə səthinin uke gövdəsinə uyğunluğunu izləyin.

Adım 11: PCB tellərini bədənə ötürmək üçün bir giriş çuxuru qazın

PCB tellərini bədənə ötürmək üçün bir giriş çuxuru qazın
PCB tellərini bədənə ötürmək üçün bir giriş çuxuru qazın

Yapışqan quruduqdan sonra, PCB -dən gələn tellərin Ukulele gövdəsinə keçməsini təmin etmək üçün ~ 1/4 (10mm) delik açın. Səs lövhəsinə zərər verməyin.

Lövhənin altındakı tellərin qalınlığına icazə vermək üçün kiçik bir cib də yaratmalı ola bilərsiniz (və ya isteğe bağlı olaraq bağlantıları üstə qoyun və lövhəyə rahatlama daxil edin.)

Başqa bir test uyğunluğu bu anda zərər verməyəcək.

Addım 12: PCB və lövhəni boyuna hizalayın və yapışdırın

PCB və lövhəni Boyuna Hizalayın və Yapışdırın
PCB və lövhəni Boyuna Hizalayın və Yapışdırın

Yapıştırmadan əvvəl bağlamağı (və sınamağı!) Düşünməyi təklif edirəm. Düz bir sıxma səthi vermək üçün boynunun alt hissəsinə bənzər bir blok hazırlamaq istəyə bilərsiniz. Bu anda lövhə boyundan daha böyükdür, buna görə icazə verməlisiniz.

Daha sonra bitirmək istədiyiniz səthə epoksi vurmamaq üçün çox diqqətli olun. Yalnız istədiyiniz yerə getdiyinə əmin olmaq üçün yapışdırmadan əvvəl yapışmayan bütün səthlərə maskalar tətbiq etmək daha yaxşıdır.

Minimum 60 dəqiqəlik ömrü olan epoksi istifadə edin … hamısına ehtiyacınız olacaq.

Əvvəlcə PCB -ni yerə yapışdırın, artıq yapışqan lövhənin yapışdırıcı səthinə çıxmadığından əmin olun. Bu, lövhəni boyuna uyğunlaşdırmaq üçün bir üsul təqdim edir. PCB hamar bir lehim maskasına malikdir, buna görə epoksiyaya bir az yaxşılaşdırılmış bir səth vermək üçün bir az zımpara ilə düzəltdim.

Lövhəni boyuna hizalayın və yapışdırın. Daha sonra rezonansa səbəb ola biləcək ciblər buraxmamaq üçün diqqətli olun (səs -küy!). LED səthlərinə yapışqan vurmamaq üçün də diqqətli olun.

Yapışqan quruduqdan sonra elektronikanı bir dəfə də tellə sınamaq istəyə bilərsiniz. Bir pis LED həyatdan nifrət edəcək. Prototipdə bir pis LED (birincisi!) Var idi və qüsurlu LED -ə daxil olmaq və onu təmiz bir şəkildə düzəltmək üçün bir az yaradıcı ağac işi etməli oldum.

Addım 13: Klaviatura Kenarlarını Boyuna Düzəldin və Kəmər Telləri əlavə edin

Yapışqan quruduqdan sonra kənarları bitirməyə başlaya bilərsiniz. Artıq lövhə materialını diqqətlə kəsdim (dəyirman istifadə edərək) və əllə zımpara edərək son milimetrini bitirdim.

Tellərin əlavə edilməsi sadəcə çəkiclə edilə bilər (əriməməsi üçün plastik üzlə). Sadəcə çox sərt çəkməyin. Çubuq telini yuvalara uyğunlaşdırmısınızsa, çox çətinlik çəkmədən içəri girməlidirlər.

Diqqət etməli olduğunuz şey, LED cibinin nazik səthini sındırmaqdır. Prototipdə, bəzi LED ciblərinin (boşluğun sıx olduğu 12 -ci pillənin yaxınlığında) perde yuvasına uzanmasına icazə verdim. Bu pis bir fikirdir, çünki bu, telin taxıldığı zaman çatlaya biləcək (və çatlayan) zəif bir nöqtə yaradır.

Addım 14: Maskeləmə tətbiq edin və Ukulele Finish tətbiq edin

Lövhəni (bitmir) və körpünün yapışqan sahəsini maskalayın və bitirməyə başlayın.

Körpü sahəsini maskalayarkən, dəstinizlə birlikdə təlimatları oxuyun, sonra əmin olmaq üçün tərəzinin uzunluğunu iki dəfə yoxlayın. Prototip üçün istifadə etdiyim dəst səhv ölçülü uzunluqdan istifadə etdi və buna görə də körpünün yerini təyin etmək üçün yanlış ölçülər verdi (lakin son təlimatlar üçün veb saytını yoxlamaq üçün bir qeyd var idi!). Bağırsağım bunun səhv olduğunu söylədi, amma səlahiyyətləri kor -koranə qəbul etdim.

Təlimatları kor -koranə yerinə yetirməkdənsə, NİYƏ bir şey etdiyinizi anlamaq həmişə daha yaxşıdır.

Bitirmə üçün, İnternetdə nə etdiklərini bilən Luthiersdən çoxlu dərslər var, buna görə də bitirmə prosesinə keçməzdən əvvəl onlarla məsləhətləşməyi məsləhət görürəm.

Əlbəttə ki, bunu etmədim, buna görə səhv bir möhürləyici istifadə etdim və nəticədə çox dənəli bir səth meydana gəldi. Bunu etməyin.

Ev tapşırığını et.

Addım 15: Körpünü hizalayın və bağlayın

Körpünü hizalayın və bağlayın
Körpünü hizalayın və bağlayın

Bu addım olduqca sadədir, amma yenə də bağlama üsulunuzu planlaşdırın və yapışdırmadan əvvəl əvvəlcədən sınayın. Körpünü bağlamaq üçün standart bir ağac yapışqan istifadə etdim.

Addım 16: Elektronikanı quraşdırın və sınayın

Elektronika quraşdırın və sınayın
Elektronika quraşdırın və sınayın

Kablolarınızı gözəl etmək vaxtı gəldi. Üstəlik, bədənin içərisinə yuvarlanmasını və uğultulu səslər çıxarmasını və ya səhnədə daha da pisləşməsini istəmirsiniz.

Arduino kodu USB portu vasitəsi ilə yenilənə bilər, buna görə də ləkələmək istəməsəniz onu ayırmaq lazım deyil.

Addım 17: Tünerləri quraşdırın və Aləti String edin

Image
Image
Uke proqramlaşdırılması
Uke proqramlaşdırılması

Çox güman ki, pərdələri düzəltməli və quruluşu bir az oynamalı olacaqsınız, amma sona çox yaxın olduğunuzda niyə indi narahat olursunuz?

Tünerləri təkmilləşdirdim və səsə heç bir kömək etməyən gözəl Aquila simlərindən istifadə etdim. Bir layihəyə pul xərcləyərkən bunu unutmayın …

Addım 18: Uke proqramlaşdırılması

Son Arduino kodu Githubdadır. Gələcək inkişafları dəstəkləmək üçün kodda bəzi sətirlər var (məsələn, bir metronom funksiyası və ekran üçün "sürgülər" (sürüşmə kimi görünən bir UI elementi)

Bu kod, Rotary Encoder -dən istifadəçi girişini idarə etmək üçün Rotary Encoder Library (Rotary Encoder Arduino Library) istifadə edir.

Burada yerləşən Adafruit Neopixel kitabxanasından və nümunə kodundan da istifadə edir. Teatr və göy qurşağı rejimi kitabxana ilə birlikdə təqdim olunan nümunələrdən alınmışdır. (bax strandtest.ino).

Ekran sürücüsü 4D sistemləri tərəfindən təmin edilir və burada Github -da tapılır.

Ukulele layihəsi üçün tətbiq olunan iki unikal funksiya var. Birincisi, akkord kitabxanasını həyata keçirir, ikincisi, xüsusi bir xarakter dəsti istifadə edərək sürüşən mətn mesajını göstərir.

Əlavə edilmiş diaqram, lövhənin LED yerlərini və necə bağlandığını göstərir. LED 0 sağ üst küncdə yerləşir.

Addım 19: Akkord Necə Göstərilir

Akkord Necə Göstərilir
Akkord Necə Göstərilir

DisplayChord funksiyası hər bir akkord üçün barmaq mövqelərini (yalnız indiyə qədər ilk mövqe) göstərir. İstifadəçinin seçdiyi akkordlar (kök notu və keyfiyyəti) bir cüt indeks olaraq saxlanılır. Bunlar öz növbəsində hər bir akkordun barmaqlarını axtarmaq üçün istifadə olunur.

Akkordları saxlamaq üçün "GCEA" işarəsini istifadə etdim (məsələn, "A" "2100" dir). Akkordlar hər kök notu üçün əvvəlcədən hesablanır və akkordun keyfiyyətinə uyğun bir dəyişəndə saxlanılır. (beləliklə, bir mayor, "2100" ə uyğun gələn "majorChords" serialının ilk yerində saxlanılır).

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

Diqqət yetirin ki, bu mətn sətri olduğundan hər bir rəqəm 9 -dan böyük fret mövqelərini hesablamaq üçün altıbucaqlı bir dəyəri də ifadə edə bilər. Yəni A və B 10 və 11 LEDlərini təmsil edərdi. İlk mövqe tonları üçün bu problem deyildi).

LED simli, hər bir simli boyunca (A simli ilə başlayaraq) 12 (bir oktava) cərgələrdə uzunlamasına bağlanır, 12 -nin sonrakı qaçışı növbəti sətrin ilk pərdəsindən başlayır (addım 18 -dəki diaqrama baxın). Bu alqoritm üçün müəyyən bir akkord üçün hansı işıqların yandırılacağını təyin etmək vacibdir. Bu o deməkdir ki, 0 -dan 11 -ə qədər olan piksellər A simli LEDlər, 12 -dən 23 -ə qədər E simli LEDlər və s. A = "2100" (bir simli olaraq saxlanılır, kodda "\ n" sıfır terminatoru da var) təhlil edərkən bunu belə şərh edirik: A simli üzərində heç bir piksel yanmır, nə də E sətrində piksel 0 C simli (fret 1) işıqlandırılır və G simli üzərində piksel 1 (fret 2). Qeyd edək ki, "0" sönüb, ilk LED deyil. Kabelə əsaslanaraq 24 və 37 LED -lərini yandırmaq istəyirik. Akkordun göstərilməsi üçün kod aşağıda göstərilmişdir.

for (int i = 0; i <4; i ++) {if (int (chord - '0')) {// alqoritm akord simli int ledNumber = int (chord - '0')) + (3 - i) * 12 - 1; // yuxarıdakı müzakirəyə baxın, (3-i) indeks zolağını tərsinə çevirməkdir. setPixelColor (ledNumber, 0, 125, 125); // setPixelColor (ledNumber, qırmızı dəyər, yaşıl dəyər, mavi dəyər)}}

If ifadəsi, ledin söndürüldüyünü yoxlayır. Əgər belə deyilsə, o zaman xarakterin ascii dəyərini götürür və ledNumberın yanmasını təmin etmək üçün '0' üçün ascii dəyərini çıxarır.

strip, Adafruit_NeoPixel sinifinin bir nümunəsidir. SetPixelColor funksiyası hesablanmış pikselin rəngini təyin edir (bu vəziyyətdə (0, 125, 125) sabitdir.

Addım 20: Bir Kaydırma Mesajını Necə Göstərmək olar

Bir Kaydırma Mesajını Necə Göstərmək olar
Bir Kaydırma Mesajını Necə Göstərmək olar

Beləliklə, 12 x 4 LED -lərimiz var … niyə olduqca təsadüfi işıq nümunələrindən başqa bir şey göstərməyək!

Birinci məsələ, ekran hündürlüyünün (4) bir Uke üzərindəki simlərin sayına görə olduqca məhdud olmasıdır. Üfüqi sürüşmə əsasən oxunmaz olardı, ancaq şaquli istiqamətdə 4x5 simvolu şaquli olaraq dəstəkləyə bilərik.

Simvolları beş "şaquli" satır kimi təşkil etmək, hər bir simvol arasında bir sətir boşluğuna imkan verən iki simvolun eyni vaxtda göstərilə bilməsi deməkdir.

Çətinlik, standart 4 x 5 simvol dəstinin olmaması idi. Əlavə edilmiş elektron tablodan istifadə edərək özüm hazırladım. Hər bir satırı tək hex dəyərinə təyin etdim (hansı pikselin açıldığını və ya söndüyünü göstərən 4 bit). Beş hex dəyərinin birləşməsi bir xarakter yaradır (məsələn, "0" 0x69996).

Hər bir xarakter üçün dəyərlər ASCII qaydasında bir sıra olaraq saxlanılır. Xarakter dəsti müəyyən hərflərlə bəzi güzəştlər edir, lakin əksəriyyəti olduqca aydındır. (elektron cədvəlin altındakı yazı, oynadığım fikirlərdir, çünki bir seçim olaraq rəngimiz var, xarakterə "dərinlik" əlavə edə bilərik və bəlkə də əlavə bir həll əldə edə bilərik.

Göstəriləcək simli, string dəyişənində, mesajda var.

Xarakter görüntüsünü təmsil etmək üçün bir tampon yaradılır. Düşünürəm ki, bütün tərcümə edilmiş mesaj ardıcıllığı ilə böyük bir tampon yarada bilərdim, xüsusən də əksər mesajlar 20 simvoldan az olacaq. Ancaq bunun əvəzinə sabit üç xarakterli (18 bayt) tampon yaratmağı seçdim. Simvollardan yalnız ikisi fəal şəkildə nümayiş etdirilir, üçüncüsü isə növbəti personajın yükləndiyi yerə baxır. LED simli (bunu böyük bir keçid reyestri olaraq düşünün) sim üçün 48 bitlə yüklənir. Konsepsiyanı asanlaşdırmaq üçün bir az yaddaş boş yerə sərf etdim. Hər nibble, yaddaş ehtiyacını ikiqat artıraraq öz yaddaş yerini alır, ancaq tampon ölçüsü nəzərə alınmaqla çox deyil.

Çıxış indeksi (göstərici) bir xarakter sərhədinə çatdıqda (5, 11 və ya 17 -də outputPointer) bufer növbəti xarakterlə yüklənir.

Tamponu yükləmək üçün "mesaj" dakı ilk xarakteri ASCII dəyəri olaraq götürürük və asciiFont sırasındakı indeksi əldə etmək üçün 48 -dən çıxırıq. Bu indeksdəki dəyər codedChar -da saxlanılır.

Mesajın ilk hissəsi 47, 35, 23 və 11 LED -lərinə uyğundur (ekranın alt hissəsi). Sıfır 0x0F999F sayı üçün F (solda) birinci, 9 saniyə və s.

Növbəti xarakter, hər nibblesi maskalayaraq sağa köçürərək yüklənir. Yuxarıdakı nümunə üçün alqoritm (0x0F999F və 0xF00000) >> 20, sonra (0x0F999F və 0x0F0000) >> 16 və s.

int indeksi; if (outputPointer == 17 || outputPointer == 5 || outputPointer == 11) {char displayChar = message.charAt (messagePointer); // uzun codedChar = asciiFont [displayChar - 48] mesajının ilk xarakterini tutun; əgər (displayChar == 32) codedChar = 0x000000; messageBuffer [bytePointer+5] = bayt ((codedChar & 0xF00000) >> 20); // son nibble istisna olmaqla hamısını maskalayın və 20 (və s.) üzərinə köçürün messageBuffer [bytePointer+4] = bayt ((codedChar & 0x0F0000) >> 16); // bu, hər bir yaddaş yeri üçün bir nibble qoymalıdır messageBuffer [bytePointer+3] = byte ((codedChar & 0x00F000) >> 12); // hər altısı xarakter mesajında təmsil olunurBuffer [bytePointer+2] = bayt ((codedChar & 0x000F00) >> 8); messageBuffer [bytePointer+1] = bayt ((codedChar & 0x0000F0) >> 4); messageBuffer [bytePointer] = bayt ((codedChar & 0x00000F)); if (bytePointer == 0) {// bytePointer üzərindəki döngəni idarə edin bytePointer = 12; } başqa {bytePointer -= 6; // aşağıdan yuxarıya doldururuq; DİQQƏT: bunu asanlaşdıracağını görmək üçün bunu geri çevirməyə baxmaq lazımdır} if (messagePointer == message.length ()-1) {// messagePointer = 0 mesajındakı döngəni idarə edin; } başqa {messagePointer += 1; // növbəti simvola keçin}}

Tampon yükləndikdən sonra çıxış göstəricisinin harada olduğunu izləmək və LED simini düzgün 48 bitlə (cari 4 və əvvəlki 44) yükləmək məsələsi olur. Daha əvvəl də qeyd edildiyi kimi, strip NeoPixel sinifinin nümunəsidir və setPixelColor hər pikselin rəngini (RGB) təyin edir. Göstər () funksiyası ekran dəyərlərini LED siminə köçürür.

tamponu davamlı olaraq dəyişdirmək üçün // loop

// döngənin hər keçidində bütün zolağı yazmaq istəyirəm, yalnız başlanğıc yeri dəyişir (int row = 12; row> 0; row--) {index = outputPointer + (12-row); əgər (indeks> 17) indeks = outputPointer+(12 sıra) -18; // loop (int sütun = 4; sütun> 0; sütun--) {strip.setPixelColor (uint16_t (12*(sütun-1)+(sıra-1)), uint8_t (RedLED*(bitRead (messageBuffer [index], sütun-1)))), uint8_t (GreenLED*(bitRead (messageBuffer [index], sütun-1))), uint8_t (BlueLED*(bitRead (messageBuffer [index], sütun-1)))); // hər bir yerdə, bit birdirsə LED -i yandırır}} // outputPointer, əgər (outputPointer == 0) outputPointer = 17; else outputPointer -= 1; strip.show (); }

Addım 21: Ukulele Möhtəşəmliyinizlə Dünyanı heyrətləndirin

Image
Image

Ukulele -nin son prototipi təxminən 6 ay davam etdi və çıxmaq üçün dayandı.

Öyrənmək üçün bir çox yeni texnologiya və bəlkə də ağac emalı və musiqi nəzəriyyəsi.

Növbəti versiya üçün nə etməli?

  1. Ekran və fırlanan kodlayıcıdan qurtulun. Onları arduinoya qoşulmuş Bluetooth modulu ilə əvəz edin. Telefon və ya planşetdən istifadə edərək uzaqdan idarə edin. Bluetooth ilə hər şey daha yaxşıdır.
  2. Akkord nümunələrini uzaqdan real vaxt rejimində yeniləyin. Tətbiq üçün ən yaxşısı qaldı.
  3. LED qapaqlar. Mövcud versiya, gunkun LED deliklərinə girməsinin qarşısını almaq üçün heç bir şey etmir. Bir dostum bir dəstə kiçik linzalar düzəltdi, amma onların yerində necə düzgün qalmasını necə başa düşə bilmədim.
  4. Alternativ lövhə materialları, bəlkə də pərdələr tutulduqca aydın bir şey.
  5. Daha çox işıq! Daha çox "satır" əlavə edərək mətndəki məhdudiyyəti aradan qaldırın. Bu, həqiqətən lövhənin və LED gövdələrinin ölçüsündən qaynaqlanan bir məhdudiyyətdir.

Yenə, mətni sürüşdürmək üçün yaratmağım lazım olan xarakter dəstini təsvir edən Instructable yoldaşına baxın.

Bu günə qədər keçdiyiniz üçün çox sağ olun! Mahalo!

Tövsiyə: