İçindekiler:

Işıklı Ukulele Nasıl Yapılır!: 21 Adım
Işıklı Ukulele Nasıl Yapılır!: 21 Adım

Video: Işıklı Ukulele Nasıl Yapılır!: 21 Adım

Video: Işıklı Ukulele Nasıl Yapılır!: 21 Adım
Video: 5 GÜNDE UKULELE NASIL ÇALINIR? - Ukulele Dersleri #1 (Sıfırdan Ukulele Dersleri) 2024, Temmuz
Anonim
Image
Image
Bir plan yapmak
Bir plan yapmak

Ukulele oynuyorum. Biraz vasat (eğer bu bir kelimeyse) bu yüzden "Kadınları gerçekten etkilemek istiyorsanız, sahnede oynayan felaketten dikkatlerini dağıtmak için bir araca ihtiyacınız var" diye düşündüm. Böylece "Işıklı Ukulele" doğdu.

Bu proje bir Konser Ukulele kiti alır ve her tel ve perde pozisyonuna Arduino kontrollü bir LED ekler. Ayrıca LED dizisinin modunu ve yoğunluğunu seçmek için süslü bir OLED ekran ve döner kodlayıcı tabanlı kullanıcı arayüzü ekler.

Tamamlanmış uke donanım özellikleri:

  1. Arduino MICRO, LED dizisi, ekran ve giriş cihazına arayüz oluşturmak için.
  2. 48 ayrı ayrı programlanabilir tam renkli LED
  3. OLED ekran
  4. Kullanıcı girişi için döner kodlayıcı
  5. Harici güç ve Arduino programlama için USB arayüzü

Uke yazılımında şunlar bulunur:

  1. LED'leri adım adım çalıştıran temel ışık kontrol modları
  2. Şık bir tiyatro kayan yazı modu (performanslar için çok kullanışlı!)
  3. LED yoğunluk kontrolü
  4. Tüm birinci konum Ukulele akorlarının tam bir akor kütüphanesi (akor değeri ve karakteri)
  5. Eşsiz bir 4 x 6 piksel karakter seti kullanarak akan metni (dikey olarak) görüntüleme yeteneği

Bu talimat, tamamlanmış prototipi açıklar. Bazı eğitimsel (acı verici) hatalar ve ilk tasarımınızı neden tamamlamanız ZORUNLUĞUNA (işler ne kadar çirkin olursa olsun) ilişkin değerli bir ders de dahil olmak üzere tam geliştirme destanı BURADA mevcuttur. Gerçekten bilmediğiniz her şeyi sonuna gelene kadar asla bilemezsiniz (ve yine de bilmiyorsunuz!), ama çok daha iyi durumdasınız ve bir sonraki tasarım için çok daha akıllısınız.

Prototipi bir Grizzly Concert Ukulele kiti etrafında oluşturdum. Bir kit ile başlamak, uke'nin (çoğunlukla) gövdesiyle ilgili endişeleri giderir ve gerçek luthier tipi çalışmaların çoğunu ortadan kaldırır. Bu kitler oldukça eksiksizdir ve büyük şemada o kadar pahalı değildir (ve hata yapacağınız için daha az acı verir).

Adım 1: Bir Plan Yapın

Bir plan yapmak
Bir plan yapmak

Bazı kitlerde bulunan klavye (veya klavye) zaten bağlı perdelere sahiptir. Bu iyi/kötü. Zaman kazandırdığı için güzel, ancak bir delme kalıbı oluşturma ve frezeleme sırasında onu yerinde tutma açısından biraz acı verici. Kitte bulunanı yok ettikten sonra yeni bir klavye almaya karar verdim (başka bir kit satın almaktan başka seçeneğim yoktu).

Klavyeyi tasarlarken, PCB'yi ve LED'leri gömmek için gereken kalınlıktaki artışı (ve pasif bileşenleri unutmayın) hesaplamamız gerekiyor, ancak LED'lerin klavye yüzeyinden çok uzak olduğu kadar değil.

LED baskılı devre kartı (PCB), basit bir 2 katmanlı kart olarak tasarlanmıştır. Bu, LED dizisinin elle montajına çok yardımcı olur ve Ukulele boynuna bir miktar mekanik dayanıklılık (cam elyafı ve epoksidir) sağlar. Düzeni Eagle'da başlattım, ancak pano boyutu sınırlamaları nedeniyle Altium Designer'ı kullandım. Altium şematik ve PCB dosyaları burada.

Kit klavyesi sadece 0.125 inç kalınlığındaydı. Bu nedenle, 0.062 inç kalınlığında bir PCB varsayarsak ve LED'ler için ek bir 0.062 inç'e izin verirsek, klavyeden çok fazla (hepsinde olduğu gibi) kesmemiz gerektiği anlamına gelir. Telafi etmek için klavyedeki LED'ler için cepleri kısmen PCB için boyunda karşılık gelen bir ceple kesebiliriz veya tüm klavyeyi (gittiğim seçenek) Luther Mercantile International'dan (LMII) daha kalın bir sürümle değiştirebiliriz., başlamak için 0,25 inç.

AMA, klavyedeki kalınlıktaki artışı telafi etmek için boynu işlemeniz gerekeceğini unutmayın. Elde ettiğiniz diğer avantaj kozmetiktir, çünkü PCB artık klavyenin içine tamamen gömülüdür, bu da kenarları bitirmeyi çok daha kolay hale getirir (ve çok daha güzel görünür!) ve boyun frezelemeyi kolaylaştırır.

Mühendislik işleri (isterseniz görmezden gelin):

Bu arada, bu gerçekten boynun sertliğini çok fazla tehlikeye atmıyor. PCB malzemesi, orijinal klavye ahşabından çok daha serttir (Maun modülü: 10.6 GPa'ya karşı FR4 modülü: 24 GPa), ayrıca bir Ukulele ürettiğimiz için, aksi halde deforme olabilecek çok büyük miktarda tel gerilimi yoktur (büküm veya çözgü) boyun.

Çok ilginç bir düşünce (muhtemelen hala hesaplamam gereken), sıcaklık üzerinde ne olduğudur. Genel olarak ahşap için, damara paralel olarak, termal genleşme katsayısı kabaca 3 x 10^-6/K'dir ve FR4 için 14×10^-6/K'dır. Yani, oldukça önemli bir fark var. Buradaki endişe, sıcaklık değiştikçe boyunda gerginlik oluşması ve bu da tellerin akordunu bozmasıdır. Bu, nötr eksenin karşı tarafına benzer bir katman uygulayarak veya FR4'ü nötr eksene mümkün olduğunca yaklaştırarak telafi edilebilecek bir şey. Ama bu 2.0'a bırakılacak… Modellenecek ve değerlendirilecek bir şey.

Elektronikler uke'nin gövdesine yerleştirilmiştir. Ekran ve döner kodlayıcıya yer açmak için UKE'nin yan duvarında (ses tahtasında değil!) delikler ve ayrıca Arduino Micro'yu tutmak ve USB arayüzüne erişim sağlamak için bir erişim plakası açılmıştır. Erişim plakası/montaj tasarımı ve konumu, USB bağlantısını daha uygun bir konumdan çıkarmak için büyük olasılıkla geliştirilebilir, ancak olduğu gibi, o kadar da kötü değil, çünkü oynarken yolda değil.

Adımların ana hatları aşağıdaki gibidir:

  1. malzemeleri topla
  2. İhtiyacınız olan araçları edinin
  3. Daha kalın klavyeyi yerleştirmek için boynu frezeleyin
  4. Klavyeyi gerekli yerlerde delikler açmak ve kart ve LED'ler için cepler oluşturmak için frezeleyin
  5. LED'leri tutan PCB'yi edinin ve oluşturun
  6. OLED ekran, Döner kodlayıcı ve erişim paneli için Ukulele gövdesindeki freze erişim delikleri
  7. Kapak plakaları yapın
  8. Kabloları PCB'ye bağlayın; elektroniği bağlayın ve test edin
  9. Boynu Ukulele gövdesine takın
  10. PCB kablolarını gövdeye geçirmek için bir erişim tutuşu açın
  11. PCB ve klavyeyi boyuna hizalayın ve yapıştırın
  12. Klavye kenarlarını boyuna hizalayın (fazla malzemeyi çıkarın)
  13. Perde tellerini takın
  14. Ukulele'ye maskeleme uygulayın ve cila uygulayın
  15. Köprüyü hizalayın ve takın
  16. Elektronikleri kurun ve test edin.
  17. Tunerleri takın ve enstrümanı bağlayın
  18. Uke kontrolörünü programlayın
  19. Ukulele muhteşemliğinizle dünyayı şaşırtın!

Adım 2: Malzemeleri Toplayın

Malzeme listemiz şöyle görünüyor:

  1. Ukulele kiti - Grizzly Concert Ukulele kiti (Amazon'da Grizzly Uke Kit) kullandım, ancak bu artık üretilmiyor gibi görünüyor. Zimo, işi yapacak gibi görünen benzer bir model (Zimo Uke Kit @ Amazon) yapar.
  2. Ukulele klavye, önceden oluklu (LMII Uke Fingerboards). Klavyeyi ölçeğinize göre yerleştirecekler, bu da bir karmaşadan kurtarıyor
  3. Epoksi - klavyeyi boyuna yapıştırmak için. Epoksiyi PCB malzemesi ile uyumlu olduğu için tercih ettim. En az 60 dakikalık çalışma ömrü olan bir şey arayın. 5 dakikalık türleri KULLANMAYIN, ayarlamalar yapmak için zamana ihtiyacınız var
  4. Perde telleri - LMII'den de temin edilebilir
  5. Özel PCB - Altium dosyaları burada. Normal FR4 tipi malzemeyi seçtim. Esnek (poliimid) levhalar, çok daha ince olabildikleri için ilginç (daha pahalıysa) bir alternatif olacaktır.
  6. 48x Neopiksel (SK6812) LED'ler. Adafruit ve Digikey'den temin edilebilir
  7. 48x 0.1uF 0402 kapaklar - daha büyük kabul edilebilir, ancak yerleştirmeyi izlemeniz gerekir
  8. Bağlantı teli - karışıklığı önlemek için en az 4 ila 6 renk, öncelikle 28 gauge tel kullandım. LED güç bağlantılarındaki DC düşüşünü izleyin (hem VCC hem de GROUND… o akımın kaynağa geri dönmesi gerekir!)
  9. Döner kodlayıcı - PEC16-4220F-S0024
  10. Süslü ahşap düğme - döner kodlayıcı için (LMII'den benimkini aldım)
  11. OLED ekran - 4D sistemlerden OLED ekranlar
  12. Harici USB pil - her zaman daha ucuzdur, ayrıca yedek parça taşıyabilirsiniz!
  13. Arduino MİKRO
  14. Pirinç sac - ekran için arduino ve çerçeveyi tutacak plakayı yapmak için
  15. Çeşitli sarf malzemeleri: zımpara kağıdı, üretan cila, buzlu şeker çubukları, lastik bantlar, lehim, eritken, fırçalar, çift taraflı bant (3M'nin UHC bandını seviyorum) ve küçük pirinç ağaç vidaları (plaka için)
  16. İsteğe bağlı Ukulele geliştirmeleri - daha iyi tunerler, daha iyi teller, daha iyi somun ve eyer, luthier hünerinizi göstermek istiyorsanız kakma)

3. Adım: İhtiyacınız Olan Araçları Alın

Er ya da geç bunlara erişmeniz veya bunlara erişmeniz gerekecek:

Araç listemiz şunları içerir:

  1. Freze makinesi - CNC tercih edilir, ancak bir yönlendirici ve çok fazla şansla bile yapabilirsiniz. Birleşik CNC freze/yönlendirici kullandım
  2. Yönlendirici uçları - karbür tercih edilir. Metal değil ahşabı işlediğimiz için freze uçları, parmak frezeler yerine seçildi
  3. Kelepçeler - bir sürü. Yapıştırma sırasında çoğunlukla parçaları tutmak için gereklidir
  4. Havya - yüzeye monte lehimleme için küçük uç
  5. Mikroskop veya büyüteç - sadece gözlerinizle lehimlemeyi deneyebilirsiniz, ancak bunu tavsiye etmem, minimum 10x
  6. Cımbız (parçaları yerleştirmek için)
  7. Sürtünme aletleri (burada LMII ile ilgili uygun aletlere bakın, ancak evde sahip olduklarımı ve yaptıklarımı kullandım; çekiçler, eğeler ve kesiciler)
  8. Tahta keskiler, tornavidalar, yumuşak darbeli veya ham deri çekiç (sürtünme için) vb. gibi çeşitli el aletleri.
  9. Aşındırıcılar - çeşitli zımpara kağıtları

Yazılım araçlarımız şunları içerir (bazıları bütçenize/ustalığınıza bağlı olarak isteğe bağlıdır):

  1. Arduino yazılımı
  2. Ukulele kaynak kodu (https://github.com/conrad26/Ukulele)
  3. PCB yerleşim paketi - Altium'u kullandım çünkü Eagle'ın ücretsiz sürümü istediğim tahta boyutunu desteklemedi. Altium, tam özellikli bir düzen paketidir ve gerçekten bir hobi fiyat aralığında değildir. Prototip için Gerber dosyalarını siteme ekledim ama bunların kesinlikle güncellenmesi gerekiyor.
  4. 3B modelleme yazılımı - SolidWorks kullandım, ancak ücretsiz bir alternatif FreeCAD'dir (https://www.freecadweb.org/)
  5. CAM yazılımı - NC freze dosyasını oluşturmak için Autodesk'ten FeatureCAM gibi.

Altium'dan 3D adım dosyası dışa aktarımının ve klavyenin 3D modelinin birleşimi, her şeyin hizalandığından emin olma zorluğunun çoğunu ortadan kaldırır, ancak bu bir gereklilik değildir. Dikkatli düzen aynı sonucu elde edecektir.

Artık ne yapmak istediğimizi ve ne yapmamız gerektiğini bildiğimize göre, hadi bir Ukulele yapalım.

Adım 4: Daha Kalın Klavyeye Yerleştirmek için Boyunu Frezeleyin

Boyunu Daha Kalın Klavyeye Yerleştirmek için Frezeleyin
Boyunu Daha Kalın Klavyeye Yerleştirmek için Frezeleyin

Frezelemeden önce, klavyenin orijinal montaj yüzeyi düzlüğünün SAĞLANMASI ZORUNLUDUR, yoksa bükülmüş bir klavyeye sahip olursunuz, bu da perde tesviyesiyle ilgili her türlü soruna yol açar.

Sadece oraya gitmeyin, acele etmeyin ve boynu dikkatli ve sağlam bir şekilde sıkıştırın ve kesmeden önce tüm boyun boyunca yönlendirici bitin hizasını kontrol edin. Burada geçirilen zaman daha sonra sizi çok fazla kederden kurtaracak.

Boyundaki bir dolgu yerine daha kalın bir klavyeyi seçmemin bir nedeni, artan montaj (yapıştırma) yüzey alanıydı. Diğer bir nedeni de boyun frezelemeyi kolaylaştırmasıdır. Tüm yüzeyi gerekli yüksekliğe kadar keserek sadece vızıldayarak yapabilirsiniz.

Adım 5: LED'leri Tutan PCB'yi Alın ve Oluşturun

LED'leri Tutarak PCB'yi Elde Edin ve Oluşturun
LED'leri Tutarak PCB'yi Elde Edin ve Oluşturun
LED'leri Tutarak PCB'yi Elde Edin ve Oluşturun
LED'leri Tutarak PCB'yi Elde Edin ve Oluşturun

Tüm montajı elle lehimledim. LED paketlerinin eritilmesi özellikle kolaydır, bu nedenle onlara zarar vermemeye özen gösterin. Dize her LED'in çalışmasına bağlı olduğundan, statik bir kayış takmanızı öneririm.

Klavye tasarımı, WS2812B LED'lerini temel alır. Klavyenin sadece ilk oktavını yapmaya karar verdim (48 LED!!). Her LED, bir kaydırma yazmacında bir bit olarak düşünülebilir. Kaydırma yazmacı 800 kHz'de saatlidir. İşleri hızlı bir şekilde kurmak ve çalıştırmak için Adafruit kitaplığını kullandım (programlama bölümüne bakın).

Tasarımı Eagle'da başlattım, ancak tahta boyutu 4 x 5 inç ile sınırlı, bu yüzden Altium'a geçmek zorunda kaldım (veya daha doğrusu seçtim). Altium'u işte kullanıyorum, bu yüzden gerçekte işleri benim için daha hızlı hale getirdi. Altium projesi, şematik ve pcb dosyaları (ve kütüphane bölümleri) sitemde. Tahta yamuk şeklinde ve yaklaşık 10 inç uzunluğundadır. Sanırım taslağı biraz daha sıkıştırmaya çalışmalıydım (bir sonraki dönüş!) Montaj fena değildi, ama eğer paranız yetiyorsa, gerçekten iyi bir havya (JBC Lehimleme Ütüleri) ve iyi bir mikroskop tavsiye ederim. Evet, şımarık biriyim ve hayır, ev laboratuvarımda bu tür şeyler yok. ben ucuzum.

Sunstone'da tahtaları yaptırdım. İki pano için 129 dolar. Bir haftalık dönüş garantili. Yine de nakliye konusunda acele etmeyin. UPS topraklarını kullandığımı fark etmedim ve panolarımın gelmesi için fazladan bir hafta bekledim. Toplam montaj süresi yaklaşık 2 saattir (98 parça).

Adım 6: Klavyeyi Frezeleyin

Image
Image
Ukulele Gövdesindeki Değirmen Erişim Delikleri
Ukulele Gövdesindeki Değirmen Erişim Delikleri

Klavyeyi frezelememiz gereken yerlerde delikler açmak ve kart ve LED'ler için cepler oluşturmak gerekiyor.

Solidworks'te tamamlanmış klavyenin 3B modelini oluşturdum ve FeatureCAM kullanarak CNC frezeleme rutinini oluşturdum.

Klavyenin alt kısmının (ses deliğine en yakın) boyun ve gövde arasındaki yükseklik adım değişimini hesaba katmak için daha ince yapılması gerekecektir. Makul derecede sıkı bir uyum olduğundan emin olmak için kesinlikle birkaç kez denemeye değer.

Geriye dönüp baktığımda, değirmene daha iyi uyması için klavyenin kullanılmayan kısımlarını kesmeliydim (ucuz değirmenim sadece 12 X ekseni hareketine sahipti). İşlem sırası önce ilk değirmen kalınlık ayarlarına göre ayarlanmalıdır. cepler arasında daha az kopmaya yol açması gereken freze cepleri.

Kablolama için alan eklemek için gerektiği gibi manuel ayarlamalar yapın. Unutulmaması gereken önemli bir nokta, bazı ceplerde perde telinin gideceği yuvaya girdim. Bunun bir iletken olduğu göz önüne alındığında, önemli bir şeyi kısa devre yapmadığından emin olun. Ayrıca perdeyi yerinde tutan malzemenin gücünü de azaltır. Tasarım, perde yuvasıyla asla kesişmeyecek şekilde değiştirilmelidir.

Adım 7: Ukulele Gövdesindeki Freze Erişim Delikleri

Ukulele Gövdesindeki Değirmen Erişim Delikleri
Ukulele Gövdesindeki Değirmen Erişim Delikleri

Gövdedeki erişim deliklerini manuel olarak frezeledim. En zor kısım, çok kavisli bir yüzeyin "en düz" bölgesini bulmaktır. Anahattı kurşun kalemle işaretleyin ve OLED ekrana tam oturana kadar malzemeyi kademeli olarak frezeleyin. İşlenmiş bir pirinç çerçeve elde ettim ve 3M VHB yapıştırma bandı kullanarak yapıştırdım.

Her ikisi de yüksek hassasiyet gerektirmediğinden, döner kodlayıcı ve erişim paneli deliklerinin oluşturulması çok daha kolaydır.

Adım 8: Kapak Plakaları Yapın

Kapak Plakaları Yap
Kapak Plakaları Yap
Kapak Plakaları Yap
Kapak Plakaları Yap
Kapak Plakaları Yap
Kapak Plakaları Yap

Ayrıca ekran çerçevesi ve erişim paneli için kapak plakalarını da oluşturmanız gerekir. Erişim panelinin USB (mikro) konektörü için bir deliğe (dikdörtgen) ihtiyacı vardır. Mikro USB için pek çok panel montaj seçeneği olmadığından Arduino'daki mevcut konektörü kullanın. (Sıfırdan tasarlıyor olsaydım, bunlardan birine bir göz atardım)

Kartı yerinde tutmak için, L braketleri pirinçten biçimlendirin ve bunları erişim plakasının arkasına lehimleyin. Bu, konumlandırmada size biraz enlem sağlar. Konumlandırmayı doğru yapmak için, önce Arduino MICRO için bir perfboard montaj kartı (montaj delikleri olan) oluşturun ve 2-56 makine vidasını kullanarak L braketlerini buna takın. Ardından, usb bağlantı noktasını hizalamak için konumu ince ayar yapabilir ve plakadaki braketlerin konumlarını doğru bir şekilde işaretleyebilirsiniz. Braketleri perfboarddan çıkarın ve yerlerine lehimleyin. Son olarak perfboard düzeneğini monte edin.

Pirinç erişim panelini yerinde tutmak için dört küçük pirinç ahşap vida kullandım.

Bu noktada, son montaj başlamadan önce bir test uyumu öneriyorum. Bu adım isteğe bağlıdır ancak önerilir. Yapıştırmadan önce ayarlamalar yapmak çok daha kolaydır.

Adım 9: Kabloları PCB'ye Takın; Elektroniği Bağlayın ve Test Edin

Image
Image
Boyunu Ukulele Gövdesine Bağlayın
Boyunu Ukulele Gövdesine Bağlayın

Henüz elektroniği kalıcı olarak takmayın. Erişim deliğini yönlendirmek için yeterli boşluk bıraktığınızdan emin olarak kabloları PCB'ye takın. Bunların sonunda Arduino MICRO kartına kalıcı olarak bağlanması gerekiyor (fotoğraflar kod geliştirme için kullandığım bir Arduino UNO'yu gösteriyor)

Adım 10: Boyunu Ukulele Gövdesine Bağlayın

Ukulele kitiyle birlikte verilen talimatları izleyerek boynu Ukulele gövdesine takın. Özellikle klavye yüzeyinin uke gövdesine göre hizalanmasına dikkat edin.

Adım 11: PCB Tellerini Gövdeye Geçmek için bir Erişim Deliği açın

PCB Kablolarını Gövdeye Geçmek için bir Erişim Deliği açın
PCB Kablolarını Gövdeye Geçmek için bir Erişim Deliği açın

Yapıştırıcı kuruduktan sonra, PCB'den gelen kabloların Ukulele gövdesine geçmesini sağlamak için açılı olarak ~1/4 (10mm) bir delik açın. Ses tablasına zarar vermediğinizden emin olun.

Tahtanın altındaki tellerin kalınlığına izin vermek için küçük bir cep de oluşturmanız gerekebilir (veya isteğe bağlı olarak bağlantıları üste koyun ve klavyeye kabartma ekleyin.)

Bu noktada başka bir test uyumunun zararı olmaz.

Adım 12: PCB ve Klavyeyi Boyuna Hizalayın ve Yapıştırın

PCB ve Klavyeyi Boyuna Hizalayın ve Yapıştırın
PCB ve Klavyeyi Boyuna Hizalayın ve Yapıştırın

Yapıştırmadan önce kenetlemeyi (ve denemeyi!) iyice düşünmenizi öneririm. Size düz bir kenetleme yüzeyi sağlamak için boynun alt tarafına şekillendirilmiş bir blok şekillendirmek isteyebilirsiniz. Klavye bu noktada boyundan daha büyük, bu yüzden buna izin vermeniz gerekiyor.

Daha sonra bitirmek istediğiniz herhangi bir yüzeye epoksi bulaşmamasına çok dikkat edin. Daha da iyisi, yapıştırmadan önce tüm yapıştırılmamış yüzeylere maskeleme uygulayarak, yalnızca istediğiniz yere gittiğinden emin olun.

Minimum 60 dakikalık çalışma ömrüne sahip epoksi kullanın… hepsine ihtiyacınız olacak.

Önce PCB'yi yerine yapıştırın, fazla yapıştırıcının klavye yapıştırma yüzeyine çıkmadığından emin olun. Bu, klavyeyi boyuna hizalamak için bir yöntem sağlar. PCB'nin pürüzsüz bir lehim maskesi kaplaması var, bu yüzden epoksiye biraz daha iyi bir yüzey kalitesi vermek için biraz zımpara kağıdı ile pürüzlendirdim.

Klavyeyi boyuna hizalayın ve yapıştırın. Daha sonra yankılanabilecek cepler bırakmamaya dikkat edin (vızıltı!). Ayrıca LED yüzeylere tutkal bulaşmamasına dikkat edin.

Yapıştırıcı kuruduğunda, elektroniği bir kez daha kablolamak ve test etmek isteyebilirsiniz. Kötü bir LED, hayattan nefret etmenize neden olur. Prototipte bir adet bozuk LED (ilk!) vardı ve kusurlu LED'e erişmek ve temiz bir şekilde yamalamak için bazı yaratıcı ahşap işleri yapmak zorunda kaldım.

Adım 13: Klavye Kenarlarını Boyuna Seviyelendirin ve Perde Telleri Ekleyin

Tutkal kuruduktan sonra kenarları bitirmeye başlayabilirsiniz. Fazla klavye malzemesini (bir değirmen kullanarak) dikkatlice kestim ve son milimetreyi elle zımparalayarak bitirdim.

Perde tellerinin eklenmesi bir çekiçle (bozulmayı önlemek için plastik bir yüzle) basitçe yapılabilir. Sadece çok sert vurma. Perde telini yuvalarla eşleştirdiyseniz, fazla zorlanmadan girmeleri gerekir.

Dikkat etmeniz gereken şey LED cebinin ince yüzeyini kırmak. Prototipte, bazı LED ceplerinin (boşluğun dar olduğu 12. perdeye yakın) perde yuvasına uzanmasına izin verdim. Bu kötü bir fikir, çünkü bu, perde teli yerleştirildiğinde çatlayabilecek (ve kırabilecek) bir zayıf nokta oluşturur.

Adım 14: Ukulele'ye Maskeleme ve Finish Uygulayın

Klavyeyi (bitmiyor) ve köprü yapıştırma alanını maskeleyin ve bitişi uygulamaya başlayın.

Köprü alanını maskelerken, kitinizle birlikte talimatları okuyun, ardından emin olmak için ölçek uzunluğunu iki kez kontrol edin. Prototip için kullandığım kit yanlış ölçek uzunluğunu kullandı ve bu nedenle köprünün yerini belirlemek için yanlış boyutlar sağladı (ancak en son talimatlar için web sitesini kontrol etmek için bir notu vardı!). İçimden bir ses bunun yanlış olduğunu söyledi ama ben otoriteyi körü körüne kabul ettim.

Talimatları körü körüne takip etmektense NEDEN bir şey yaptığınızı anlamak her zaman daha iyidir.

Bitirmek için, Luthiers'den web'de ne yaptıklarını bilen çok sayıda öğretici var, bu yüzden bitirme sürecine geçmeden önce onlara danışmanızı tavsiye ederim.

Tabii ki bunu yapmadım, bu yüzden yanlış kapatıcıyı kullandım ve çok grenli bir yüzey elde ettim. Bunu yapma.

Ödevini yap.

Adım 15: Köprüyü Hizalayın ve Takın

Köprüyü Hizalayın ve Takın
Köprüyü Hizalayın ve Takın

Bu adım oldukça basittir, ancak yine de, sıkıştırma yönteminizi planlayın ve yapıştırmadan önce önceden deneyin. Köprüyü tutturmak için standart bir ahşap tutkalı kullandım.

Adım 16: Elektronikleri Kurun ve Test Edin

Elektronikleri Kurun ve Test Edin
Elektronikleri Kurun ve Test Edin

Şimdi kablolarınızı güzelleştirmenin zamanı geldi. Ayrıca vücudun içinde yalpalayıp vızıldayan sesler çıkarmasını ya da daha da kötüsü sahnede kırılmasını istemezsiniz.

Arduino kodu USB bağlantı noktası üzerinden güncellenebilir, bu nedenle tamir etmek istemediğiniz sürece gerçekten ayırmanıza gerek yoktur.

Adım 17: Tuner'ları Kurun ve Enstrümanı Telleyin

Image
Image
Uke'nin Programlanması
Uke'nin Programlanması

Ayrıca perdeleri düzleştirmeniz ve kurulumla biraz oynamanız gerekecek, ancak sona bu kadar yakın olduğunuzda neden şimdi endişeleniyorsunuz?

Tunerleri yükselttim ve sese hiçbir şekilde yardımcı olmayan güzel Aquila telleri kullandım. Bu yüzden, bir ukulele projesine para harcarken bunu aklınızda bulundurun…

Adım 18: Uke'nin Programlanması

Son Arduino kodu Github'da. Kodda gelecekteki geliştirmeleri desteklemek için bazı satırlar vardır (metronom işlevi ve ekran için "kaydırıcılar" (kaydırıcıya benzeyen bir UI öğesi) gibi)

Bu kod, Döner Kodlayıcıdan kullanıcı girişini işlemek için bir Döner Kodlayıcı Kitaplığı (Döner Kodlayıcı Arduino Kitaplığı) kullanır.

Ayrıca Adafruit Neopixel kütüphanesini ve burada bulunan örnek kodu kullanır. Tiyatro ve gökkuşağı modları, kütüphane ile sağlanan örneklerden türetilmiştir. (bkz. strandtest.ino).

Ekran sürücüsü 4D sistemler tarafından sağlanır ve burada Github'da bulunur.

Ukulele projesi için uygulanan iki benzersiz işlev vardır. Birincisi, akor kitaplığını uygular ve ikincisi, özel bir karakter seti kullanarak kayan bir metin mesajı görüntüler.

Ekli şema, klavye LED konumlarını ve nasıl bağlandıklarını gösterir. LED 0 sağ üst köşede bulunur.

Adım 19: Bir Akor Nasıl Görüntülenir

Bir Akor Nasıl Görüntülenir
Bir Akor Nasıl Görüntülenir

displayChord işlevi, her akor için parmak konumlarını (şimdilik yalnızca ilk konum) görüntüler. Kullanıcı tarafından seçilen akorlar (kök nota ve kalite) bir çift indeks olarak saklanır. Bunlar sırayla her akor için parmak izlerini aramak için kullanılır.

Akorları saklamak için "GCEA" notasyonunu kullandım (örneğin, "A", "2100" dir). Akorlar, her bir kök nota için önceden hesaplanır ve akorun kalitesine karşılık gelen bir değişkende saklanır. (yani, A majör, "2100"e karşılık gelen "majorChords" dizisinin ilk konumunda saklanır).

char* majorAkorlar = {"2100\n", "3211\n", "4322\n", "0003\n", "1114\n", "2220\n", "3331\n", " 4442\n", "2010\n", "3121\n", "0232\n", "5343\n"};

Bu bir metin dizesi olduğundan, her basamağın 9'dan büyük perde konumlarını hesaba katan bir onaltılık değeri temsil edebileceğini unutmayın. Yani, A ve B LED'leri 10 ve 11'i temsil eder. İlk konum akorları için bu bir sorun değildi).

LED dizisi, her dizi boyunca (A dizisinden başlayarak) 12'lik sıralar (bir oktav) halinde uzunlamasına kablolanmıştır, sonraki 12 dizisi sonraki dizinin ilk perdesinde başlar (adım 18'deki şemaya bakın). Bu, algoritmanın belirli bir akor için hangi ışıkların açılacağını belirlemesi için önemlidir. Bu, 0 ile 11 arasındaki piksellerin A dizisi LED'leri, 12 ile 23 arasındaki piksellerin E dizisi LED'leri vb. olduğu anlamına gelir. Bir A = "2100" ayrıştırılırken (bir dize olarak saklanır, kodda ayrıca bir boş sonlandırıcı "\n" vardır), bunu şu şekilde yorumlarız: A dizesinde hiçbir piksel yanmıyor, E dizesinde de piksel 0 (perde 1) C dizesinde yanar ve G dizesinde piksel 1 (perde 2) yanar. İlk LED'in değil, bir "0"ın kapalı olduğunu unutmayın. Kablolamaya bağlı olarak, LED 24 ve 37'yi yakmak istiyoruz. Bir akoru gösterecek kod aşağıda gösterilmiştir.

for (int i = 0; i < 4; i++) { if (int(kor - '0')) { //akor dizesini ayrıştırmak için algoritma int ledNumber = int(kor - '0') + (3 - i) * 12 - 1; //yukarıdaki tartışmaya bakın, (3-i) strip.setPixelColor(ledNumber, 0, 125, 125) dizinini tersine çevirmek içindir; //setPixelColor(ledNumber, kırmızı değer, yeşil değer, mavi değer) } }

if ifadesi ledin kapalı olup olmadığını kontrol eder. Değilse, karakterin ascii değerini, chord alır ve ledNumber'ın yanmasını sağlamak için '0' için ascii değerini çıkarır.

strip, Adafruit_NeoPixel sınıfının bir örneğidir. setPixelColor işlevi, bu durumda hesaplanan pikselin rengini (0, 125, 125 olarak sabitlenir) ayarlar.

Adım 20: Kayan Bir Mesaj Nasıl Görüntülenir

Kayan Mesaj Nasıl Görüntülenir
Kayan Mesaj Nasıl Görüntülenir

Yani 12 x 4 dizi LED'imiz var… neden onu oldukça rastgele ışık desenlerinden başka bir şey göstermiyorsunuz!

İlk sorun, bir Uke'deki dizi sayısı nedeniyle ekran yüksekliğinin (4) oldukça sınırlı olmasıdır. Yatay kaydırma çoğunlukla okunaksız olacaktır, ancak dikey yönlendirmelerde dikey olarak çalışan 4 x 5 karakteri destekleyebiliriz.

Karakterleri beş "dikey" satır olarak düzenlemek, her karakter arasında bir satır boşluk bırakarak iki karakterin aynı anda görüntülenebileceği anlamına gelir.

Zorluk, standart bir 4 x 5 karakter seti olmamasıydı. Ekteki elektronik tabloyu kullanarak kendim yaptım. Her satırı tek bir onaltılık değere atadım (hangi pikselin açık veya kapalı olduğunu temsil eden 4 bit). Beş onaltılık değerin birleşimi bir karakter oluşturur (ör. "0", 0x69996'dır).

Her karakterin değerleri, ASCII sırasına göre bir dizide saklanır. Karakter seti, belirli harflerle bazı tavizler veriyor, ancak çoğunluk oldukça net. (e-tablonun altındaki karalamalar, bir seçenek olarak rengimiz olduğu için oynadığım fikirlerdir, karaktere "derinlik" ekleyebilir ve muhtemelen bazı ek çözünürlükler elde edebiliriz.

Görüntülenecek dize, ileti dizesi değişkeninde bulunur.

Karakter görüntüsünü temsil etmek için bir arabellek oluşturulur. Özellikle mesajların çoğu 20 karakterden az olacağından, çevrilmiş mesaj dizisinin tamamıyla büyük bir arabellek oluşturabilirdim. Ancak, bunun yerine sabit bir üç karakterli (18 bayt) arabellek oluşturmayı seçtim. Karakterlerden sadece ikisi aktif olarak görüntüleniyor ve üçüncüsü, bir sonraki karakterin yüklendiği ileriye bir bakış. LED dizisi (bunu büyük bir kaydırma yazmacı olarak düşünün) dize için 48 bit ile yüklenir. Bunu kavramsallaştırmayı kolaylaştırmak için biraz hafıza alanı harcadım. Her nibble kendi bellek konumunu alır, bu da bellek gereksinimini iki katına çıkarır, ancak arabellek boyutu pek verilmez.

Çıktı indeksi (işaretçi) bir karakter sınırına ulaştığında (outputPointer 5, 11 veya 17'de) arabellek sonraki karakterle yüklenir.

Tamponu yüklemek için, "mesajdaki" ilk karakteri bir ASCII değeri olarak alırız ve indeksi asciiFont dizisinde almak için 48 çıkarırız. Bu dizindeki değer codedChar içinde saklanır.

Kaydırılan mesajın ilk kısmı LED 47, 35, 23 ve 11'e (ekranın alt kısmı) karşılık gelir. Yani 0x0F999F sıfır sayısı için F (soldaki) birinci, 9 saniye vb.

Sonraki karakter, her bir kemirmeyi maskeleyerek ve sağa kaydırarak yüklenir. Yukarıdaki örnek için, algoritma (0x0F999F & 0xF00000) >> 20, ardından (0x0F999F & 0x0F0000) >> 16 vb. verir.

int indeksi; if (outputPointer == 17 || outputPointer == 5 || outputPointer == 11) { char displayChar = message.charAt(messagePointer); //mesajın ilk karakterini al long codingChar = asciiFont[displayChar - 48]; if (displayChar == 32) codingChar = 0x000000; messageBuffer[bytePointer+5]=byte((codingChar & 0xF00000) >> 20); //son nibble hariç hepsini maskeleyin ve 20 (ve böyle devam eder) ile kaydırın messageBuffer[bytePointer+4]=byte((codedChar & 0x0F0000) >> 16); //bu, bellek konumu başına bir nibble koymalıdır. messageBuffer[bytePointer+3]=byte((codedChar & 0x00F000) >> 12); // altısı da karakter üzerinde temsil edilir messageBuffer[bytePointer+2]=byte((codedChar & 0x000F00) >> 8); messageBuffer[bytePointer+1]=byte((codingChar & 0x0000F0) >> 4); messageBuffer[bytePointer] =byte((codingChar & 0x00000F)); if(bytePointer ==0) { //döngüyü bytePointer üzerinde ele alın bytePointer = 12; } başka { bytePointer -= 6; // aşağıdan yukarıya dolduruyoruz; NOT: kolaylaştırıp kolaylaştırmadığını görmek için bunu tersine çevirmek gerekir } if (messagePointer == message.length()-1) { //mesajın etrafındaki döngüyü idare edin messagePointer = 0; } else { messagePointer +=1; //bir sonraki karaktere geç } }

Tampon yüklendikten sonra, çıkış işaretçisinin nerede olduğunu takip etme ve LED dizisini doğru 48 bitle (mevcut 4 ve önceki 44) yükleme meselesi haline gelir. Daha önce belirtildiği gibi şerit, NeoPixel sınıfının bir örneğidir ve setPixelColor her pikselin rengini (RGB) ayarlar. show() işlevi, ekran değerlerini LED dizisine kaydırır.

// arabelleği sürekli olarak kaydırmak için döngü

// döngüden geçen her geçişte tüm şeridi yazmak istiyorum, sadece başlangıç konumu değişir (int satır=12;satır > 0;satır--) { index = outputPointer + (12-satır); if (indeks > 17) indeks = outputPointer+(12-satır)-18; //(int sütun=4; sütun > 0; sütun--) için 17'den büyükse döngü { strip.setPixelColor(uint16_t(12*(sütun-1)+(satır-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)))); //bit bir ise her konumda LED'i yakar } } //outputPointer, görüntü dizisindeki mevcut en düşük baytı işaret eder if (outputPointer == 0) outputPointer=17; başka çıktıPointer -= 1; şerit.göster(); }

Adım 21: Ukulele Awsomeness ile Dünyayı Şaşırt

Image
Image

Nihai Ukulele prototipi, yaklaşık 6 aylık bir başlangıç ve durma süresi aldı.

Öğrenmek için bir sürü yeni teknoloji ve belki de biraz ahşap işleme ve müzik teorisi!

Bir sonraki sürüm için ne yapmalı?

  1. Ekrandan ve döner kodlayıcıdan kurtulun. Bunları arduino'ya bağlı bir Bluetooth modülü ile değiştirin. Bir telefon veya tablet kullanarak uzaktan kontrol edin. Bluetooth ile her şey daha iyi.
  2. Akor kalıplarını gerçek zamanlı olarak uzaktan güncelleyin. Uygulama için en iyi şey kaldı.
  3. LED kapaklar. Mevcut sürüm, yapışkanlığın LED deliklerine girmesini önlemek için hiçbir şey yapmıyor. Bir arkadaşım bir sürü küçük lens yaptı, ama onları nasıl düzgün bir şekilde yerinde tutacağımı asla çözemedim.
  4. Alternatif klavye malzemeleri, belki perdeler tuttuğu sürece net bir şey.
  5. Daha fazla ışık! Daha fazla "satır" ekleyerek metin üzerindeki kısıtlamayı ortadan kaldırın. Bu gerçekten klavyenin boyutundan ve LED gövdelerinden kaynaklanan bir sınırlamadır.

Yine, kayan metne izin vermek için oluşturmam gereken karakter setini tanımlayan tamamlayıcı Instructable'a bakın.

Buraya kadar getirdiğin için çok teşekkürler! Mahalo!

Önerilen: