Daftar Isi:

Cara Membuat Ukulele yang Menyala!: 21 Langkah
Cara Membuat Ukulele yang Menyala!: 21 Langkah

Video: Cara Membuat Ukulele yang Menyala!: 21 Langkah

Video: Cara Membuat Ukulele yang Menyala!: 21 Langkah
Video: tuning ukulele (tuning ukulele senar 4) 2024, Juli
Anonim
Image
Image
Membuat rencana
Membuat rencana

Saya memainkan Ukulele. Agak biasa-biasa saja (jika itu sebuah kata) jadi saya pikir, "jika Anda benar-benar ingin membuat para wanita terkesan, Anda perlu cara untuk mengalihkan perhatian mereka dari bencana yang terjadi di atas panggung." Maka lahirlah "Ukulele Terang".

Proyek ini mengambil kit Ukulele Konser dan menambahkan LED yang dikendalikan Arduino di setiap posisi senar dan fret. Ini juga menambahkan tampilan OLED mewah dan antarmuka pengguna berbasis encoder putar untuk memilih mode dan intensitas string LED.

Fitur perangkat keras uke yang lengkap:

  1. Arduino MICRO untuk antarmuka ke string LED, tampilan dan perangkat input.
  2. 48 LED warna penuh yang dapat diprogram secara individual
  3. Layar OLED
  4. Sebuah encoder putar untuk input pengguna
  5. Antarmuka USB untuk daya eksternal dan pemrograman Arduino

Perangkat lunak uke memiliki:

  1. Mode kontrol cahaya dasar yang menjalankan LED melalui langkahnya
  2. Mode tenda teater yang bagus (sangat berguna untuk pertunjukan!)
  3. Kontrol intensitas LED
  4. Pustaka akor lengkap dari semua akord Ukulele posisi pertama (nilai dan karakter akord)
  5. Kemampuan untuk menampilkan teks berjalan (vertikal) menggunakan set karakter unik 4 x 6 piksel

Instruksi ini menjelaskan prototipe yang telah selesai. Saga pengembangan lengkap tersedia DI SINI, termasuk beberapa kesalahan pendidikan (menyakitkan) dan pelajaran berharga tentang mengapa Anda HARUS menyelesaikan desain pertama Anda sampai selesai (tidak peduli seberapa buruk keadaannya). Anda tidak pernah tahu semua hal yang benar-benar tidak Anda ketahui sampai Anda mencapai akhir (dan kemudian Anda masih tidak tahu!), tetapi Anda jauh lebih baik dan lebih pintar untuk desain berikutnya.

Saya membangun prototipe di sekitar kit Grizzly Concert Ukulele. Dimulai dengan kit menghilangkan kekhawatiran tentang tubuh uke (well, sebagian besar), dan menghilangkan sebagian besar pekerjaan tipe luthier yang sebenarnya. Kit ini cukup lengkap dan tidak terlalu mahal dalam skema besar (dan tidak terlalu menyakitkan karena Anda akan membuat kesalahan).

Langkah 1: Buat Rencana

Membuat rencana
Membuat rencana

Fretboard (atau fingerboard) yang disertakan dalam beberapa kit sudah memiliki fret yang terpasang. Itu baik/buruk. Ini bagus sebagai penghemat waktu, tetapi dalam hal meletakkan pola bor dan menahannya di tempat sambil menggiling, itu sedikit menyusahkan. Setelah menghancurkan yang disediakan dalam kit, saya memilih (well, saya tidak punya pilihan selain membeli kit lain) untuk membeli fretboard baru.

Saat mendesain fretboard, kita perlu menghitung peningkatan ketebalan yang diperlukan untuk memasang PCB dan LED (dan jangan lupa komponen pasifnya), tetapi jangan terlalu jauh dari permukaan fretboard.

Papan sirkuit cetak LED (PCB) dirancang sebagai papan 2 lapis sederhana. Ini banyak membantu dengan perakitan tangan string LED dan memberikan beberapa kekuatan mekanis (itu fiberglass dan epoksi) ke leher Ukulele. Saya memulai tata letak di Eagle, tetapi akhirnya menggunakan Altium Designer karena keterbatasan ukuran papan. File skema dan PCB Altium ada di sini.

Kit fretboard hanya setebal 0,125 inci. Jadi, dengan asumsi PCB tebal 0,062 inci dan memungkinkan tambahan 0,062 inci untuk LED, berarti kita harus memotong banyak (seperti dalam semua) fretboard. Untuk mengimbanginya, kami dapat memotong sebagian kantong untuk LED di fretboard dengan kantong yang sesuai di leher untuk PCB, atau kami dapat mengganti seluruh fretboard (opsi yang saya gunakan) dengan versi yang lebih tebal dari Luther Mercantile International (LMII), yang 0,25 inci untuk memulai.

TAPI, ingatlah bahwa Anda masih harus mengerjakan bagian leher untuk mengimbangi peningkatan ketebalan di fretboard. Keuntungan lain yang Anda dapatkan adalah kosmetik, karena PCB sekarang benar-benar tertanam di dalam fretboard yang membuat ujungnya jauh lebih mudah untuk diselesaikan (dan terlihat jauh lebih bagus!) dan menyederhanakan penggilingan leher.

Hal-hal teknik (abaikan jika Anda mau):

Omong-omong, ini tidak terlalu mengurangi kekakuan leher. Bahan PCB jauh lebih kaku daripada kayu fretboard asli (Modulus Mahoni: 10,6 GPa versus modulus FR4: 24 GPa), ditambah lagi karena kami sedang membangun Ukulele, tidak ada banyak tegangan senar yang dapat terdistorsi (memutar). atau melengkung) leher.

Satu pertimbangan yang sangat menarik (yang mungkin masih harus saya hitung) adalah apa yang terjadi pada suhu. Umumnya untuk kayu, sejajar dengan serat, koefisien ekspansi termal kira-kira 3 x 10^-6/K, dan untuk FR4 adalah 14×10^−6/K. Jadi, ada perbedaan yang cukup signifikan. Kekhawatirannya adalah bahwa ketegangan tercipta di leher saat suhu bervariasi, yang pada gilirannya membuat senar menjadi tidak selaras. Itu sesuatu yang dapat dikompensasikan dengan menerapkan lapisan serupa di sisi berlawanan dari sumbu netral atau dengan membuat FR4 sedekat mungkin dengan sumbu netral. Tapi itu akan dibiarkan untuk 2.0…Sesuatu untuk dimodelkan dan dievaluasi.

Elektronik ditempatkan di tubuh uke. Lubang dipotong di dinding samping (bukan papan suara!) UKE untuk memberi ruang bagi tampilan dan rotary encoder, ditambah pelat akses untuk menahan Arduino Micro dan menyediakan akses ke antarmuka USB. Desain dan lokasi pelat akses/pemasangan kemungkinan dapat ditingkatkan untuk membuat koneksi USB keluar di lokasi yang lebih nyaman, tetapi sebagaimana adanya, itu tidak terlalu buruk, karena tidak menghalangi saat Anda bermain.

Garis besar langkah-langkahnya adalah sebagai berikut:

  1. Kumpulkan bahan
  2. Dapatkan alat yang Anda butuhkan
  3. Giling leher untuk mengakomodasi fretboard yang lebih tebal
  4. Giling fretboard untuk membuat lubang di lokasi yang diperlukan dan untuk membuat kantong untuk papan dan LED
  5. Dapatkan dan buat PCB yang menahan LED
  6. Lubang akses giling di badan Ukulele untuk tampilan OLED, Rotary encoder, dan panel akses
  7. Buat pelat penutup
  8. Pasang kabel ke PCB; hubungkan dan uji elektronik
  9. Pasang leher ke badan Ukulele
  10. Bor penahan akses untuk memasukkan kabel PCB ke dalam bodi
  11. Sejajarkan dan rekatkan PCB dan fretboard ke leher
  12. Ratakan tepi fretboard ke leher (buang bahan berlebih)
  13. Pasang kabel fret
  14. Oleskan masking dan aplikasikan hasil akhir ke Ukulele
  15. Sejajarkan dan pasang jembatan
  16. Pasang elektronik dan uji.
  17. Pasang tuner dan senar instrumen
  18. Program pengontrol Uke
  19. Kagumi dunia dengan kehebatan Ukulele Anda!

Langkah 2: Kumpulkan Bahan

Daftar bahan kami terlihat seperti ini:

  1. Kit Ukulele - Saya menggunakan kit Ukulele Grizzly Concert (Grizzly Uke Kit di Amazon), tetapi tampaknya akan dihentikan. Zimo membuat model serupa (Zimo Uke Kit @ Amazon) yang sepertinya akan berhasil
  2. Fretboard Ukulele, pra-slot (LMII Uke Fingerboards). Mereka akan memasang fretboard ke timbangan Anda, yang akan menghemat kekacauan masalah
  3. Epoxy - untuk menempelkan fretboard ke leher. Saya memilih epoksi karena kompatibel dengan bahan PCB. Carilah sesuatu dengan setidaknya 60 menit kehidupan kerja. JANGAN gunakan tipe 5 menit, Anda perlu waktu untuk melakukan penyesuaian
  4. Kabel fret - juga tersedia dari LMII
  5. PCB Kustom - File Altium ada di sini. Saya memilih bahan tipe FR4 normal. Papan fleksibel (polimida) akan menjadi alternatif yang menarik (jika lebih mahal), karena bisa jauh lebih tipis
  6. 48x Neopiksel (SK6812) LED. Tersedia dari Adafruit dan Digikey
  7. 48x 0.1uF 0402 caps - lebih besar dapat diterima, tetapi Anda harus memperhatikan penempatannya
  8. Kawat pengait - setidaknya 4 hingga 6 warna untuk menghindari kebingungan, saya menggunakan terutama 28 kawat pengukur. Perhatikan penurunan DC pada sambungan daya LED (baik VCC dan GROUND… arus itu harus kembali ke sumbernya!)
  9. Encoder putar - PEC16-4220F-S0024
  10. Kenop kayu mewah - untuk rotary encoder (saya mendapatkan milik saya dari LMII)
  11. Tampilan OLED - dari sistem 4D tampilan OLED
  12. Baterai USB eksternal - lebih murah setiap saat, plus Anda dapat membawa suku cadang!
  13. Arduino MIKRO
  14. Lembaran kuningan - untuk membuat pelat untuk menahan arduino dan bezel untuk tampilan
  15. Bahan habis pakai lain-lain termasuk: amplas, lapisan urethane, stik es krim, karet gelang, solder, fluks, kuas, pita dua sisi (saya suka pita UHC 3M) dan sekrup kayu kuningan kecil (untuk pelat)
  16. Perangkat tambahan Ukulele opsional - tuner yang lebih baik, senar yang lebih baik, mur dan pelana yang lebih baik, tatahan jika Anda ingin memamerkan kehebatan luthier Anda)

Langkah 3: Dapatkan Alat yang Anda Butuhkan

Cepat atau lambat Anda akan perlu untuk mendapatkan atau mendapatkan akses ke ini:

Daftar alat kami meliputi:

  1. Mesin penggilingan - CNC lebih disukai, tetapi Anda bahkan mungkin bertahan dengan router dan banyak keberuntungan. Saya menggunakan pabrik/router CNC kombo
  2. Bit router - lebih disukai karbida. Bit router dipilih daripada end mill karena kami memproses kayu, bukan logam
  3. Klem - banyak. Sebagian besar diperlukan untuk menahan bagian saat menempelkan
  4. Besi solder - ujung kecil untuk penyolderan pemasangan permukaan
  5. Mikroskop atau kaca pembesar - Anda dapat mencoba menyolder hanya dengan mata Anda, tetapi saya tidak akan merekomendasikannya, minimal 10x
  6. Pinset (untuk meletakkan bagian-bagian di tempatnya)
  7. Alat fretting (lihat alat yang tepat di LMII di sini, tetapi saya menggunakan apa yang saya miliki di rumah dan membuat; palu, file, dan pemotong)
  8. Berbagai macam perkakas tangan seperti pahat kayu, obeng, pukulan lembut atau palu kulit mentah (untuk fretting), dll.
  9. Abrasive - berbagai grit amplas

Perangkat lunak kami meliputi (beberapa opsional tergantung pada anggaran/kecerdasan Anda):

  1. Perangkat lunak Arduino
  2. Kode sumber Ukulele (https://github.com/conrad26/Ukulele)
  3. Paket tata letak PCB - Saya menggunakan Altium karena versi gratis Eagle tidak mendukung ukuran papan yang saya inginkan. Altium adalah paket tata letak berfitur lengkap dan tidak benar-benar dalam kisaran harga penghobi. Saya telah menyertakan file Gerber di situs saya untuk prototipe, tetapi ini pasti membutuhkan pembaruan
  4. Perangkat lunak pemodelan 3D - Saya menggunakan SolidWorks, tetapi satu alternatif gratis adalah FreeCAD (https://www.freecadweb.org/)
  5. Perangkat lunak CAM - seperti FeatureCAM dari Autodesk untuk membuat file pabrik NC.

Kombinasi ekspor file langkah 3D dari Altium bersama dengan model 3D fretboard menghilangkan banyak kesulitan dalam memastikan semuanya berbaris, tapi itu bukan keharusan. Tata letak yang cermat akan mencapai hasil yang sama.

Sekarang setelah kita tahu apa yang ingin kita lakukan, dan apa yang perlu kita lakukan, mari kita buat Ukulele.

Langkah 4: Giling Leher untuk Mengakomodasi Fretboard yang Lebih Tebal

Giling Leher untuk Mengakomodasi Fretboard yang Lebih Tebal
Giling Leher untuk Mengakomodasi Fretboard yang Lebih Tebal

Sebelum penggilingan, perhatikan bahwa kerataan permukaan pemasangan fretboard asli HARUS dipertahankan, atau Anda akan memiliki fretboard bengkok, yang menyebabkan segala macam masalah dengan leveling fret.

Jangan pergi ke sana, luangkan waktu Anda dan jepit leher dengan hati-hati dan kaku dan periksa keselarasan ke bit router di seluruh leher sebelum memotong. Waktu yang dihabiskan di sini akan menghemat banyak kesedihan nantinya.

Salah satu alasan saya memilih fretboard yang lebih tebal daripada inlay di leher adalah peningkatan luas permukaan pemasangan (perekatan). Alasan lain adalah menyederhanakan penggilingan leher. Anda cukup buzz memotong seluruh permukaan dengan ketinggian yang dibutuhkan.

Langkah 5: Dapatkan dan Bangun PCB yang Memegang LED

Dapatkan dan Bangun PCB Memegang LED
Dapatkan dan Bangun PCB Memegang LED
Dapatkan dan Bangun PCB Memegang LED
Dapatkan dan Bangun PCB Memegang LED

Saya menyolder seluruh rakitan dengan tangan. Paket LED sangat mudah meleleh, jadi berhati-hatilah agar tidak merusaknya. Saya sarankan memakai tali statis, karena tali tergantung pada setiap LED bekerja.

Desain Fretboard didasarkan pada LED WS2812B. Saya memutuskan untuk hanya melakukan oktaf pertama fretboard (48 LED!!). Setiap LED dapat dianggap sebagai satu bit dalam register geser. Register geser memiliki clock pada 800 kHz. Saya menggunakan perpustakaan Adafruit (lihat bagian pemrograman) untuk menyiapkan dan menjalankan semuanya dengan cepat.

Saya memulai desain di Eagle, tetapi ukuran papan terbatas seperti 4 x 5 inci, jadi saya harus (atau lebih tepatnya, saya memilih untuk) beralih ke Altium. Saya menggunakan Altium di tempat kerja, jadi pada kenyataannya, itu membuat segalanya lebih cepat bagi saya. Proyek Altium, file skema dan pcb (dan bagian perpustakaan) ada di situs saya. Papan berbentuk trapesium dan panjangnya sekitar 10 inci. Saya pikir saya harus mencoba untuk menekan garis sedikit lebih (putaran berikutnya!) Perakitan tidak buruk, tetapi jika Anda mampu membelinya, saya benar-benar sangat merekomendasikan besi solder yang layak (JBC Soldering Irons) dan mikroskop yang baik. Ya, saya manja dan tidak, saya tidak punya barang seperti itu di lab rumah saya. aku murah.

Saya memiliki papan yang dibuat di Sunstone. $129 untuk dua papan. Dijamin satu minggu giliran. Jangan berhemat pada pengiriman sekalipun. Saya tidak menyadari bahwa saya menggunakan ground UPS dan saya akhirnya menunggu satu minggu ekstra untuk papan saya tiba. Total waktu perakitan sekitar 2 jam (98 bagian).

Langkah 6: Giling Fretboard

Image
Image
Lubang Akses Penggilingan di Badan Ukulele
Lubang Akses Penggilingan di Badan Ukulele

Kita perlu menggiling fretboard untuk membuat lubang di lokasi yang diperlukan dan membuat kantong untuk papan dan LED.

Saya membuat model 3D dari fretboard yang telah selesai di Solidworks dan membuat rutinitas penggilingan CNC menggunakan FeatureCAM.

Bagian bawah fretboard (paling dekat dengan lubang suara) perlu dibuat lebih tipis untuk memperhitungkan perubahan tinggi langkah antara leher dan badan. Pasti layak untuk diuji beberapa kali untuk memastikan bahwa itu cukup pas.

Dalam retrospeksi, saya harus memotong bagian fretboard yang tidak digunakan agar lebih cocok dengan penggilingan (pabrik murah saya hanya memiliki perjalanan sumbu X 12 ). Urutan operasi harus diatur ke penyesuaian ketebalan penggilingan pertama sebelum penggilingan kantong, yang akan menyebabkan lebih sedikit jerawat di antara kantong.

Lakukan penyesuaian manual sesuai kebutuhan untuk menambah ruang untuk pemasangan kabel. Satu hal penting yang perlu diperhatikan adalah bahwa di beberapa saku, saya menerobos ke dalam slot tempat kabel fret akan pergi. Mengingat itu adalah konduktor, pastikan itu tidak berakhir dengan korslet pada sesuatu yang penting. Ini juga mengurangi kekuatan material yang menahan fret di tempatnya. Desain harus dimodifikasi agar tidak pernah bersinggungan dengan slot fret.

Langkah 7: Lubang Akses Penggilingan di Badan Ukulele

Lubang Akses Penggilingan di Badan Ukulele
Lubang Akses Penggilingan di Badan Ukulele

Saya secara manual menggiling lubang akses di tubuh. Bagian tersulit adalah menemukan wilayah "paling datar" dari permukaan yang sangat melengkung. Tandai garis luar dengan pensil dan giling bahan secara bertahap hingga Anda mendapatkan ukuran yang pas untuk tampilan OLED. Saya memperoleh bezel kuningan yang dikerjakan dengan mesin dan memasangnya menggunakan pita perekat 3M VHB.

Karena keduanya tidak memerlukan presisi tinggi, encoder putar dan lubang panel akses jauh lebih mudah dibuat.

Langkah 8: Buat Pelat Penutup

Membuat Pelat Penutup
Membuat Pelat Penutup
Membuat Pelat Penutup
Membuat Pelat Penutup
Membuat Pelat Penutup
Membuat Pelat Penutup

Anda juga perlu memoles pelat penutup untuk bezel layar dan panel akses. Panel akses membutuhkan lubang (persegi panjang) untuk konektor USB (mikro). Cukup gunakan konektor yang ada di Arduino, karena tidak banyak pilihan panel mount untuk micro USB. (walaupun jika saya mendesain dari awal, maka saya akan melihat salah satunya)

Untuk menahan papan di tempatnya, buat braket L dari kuningan dan solder ke bagian belakang pelat akses. Ini memungkinkan Anda beberapa garis lintang dalam penentuan posisi. Untuk mendapatkan pemosisian yang tepat, pertama buat papan pemasangan perfboard (dengan lubang pemasangan) untuk Arduino MICRO dan pasang braket L menggunakan 2-56 sekrup mesin. Anda kemudian dapat men-tweak lokasi untuk menyejajarkan port usb dan secara akurat menandai lokasi untuk braket di piring. Lepaskan braket dari perfboard dan solder di tempatnya. Terakhir pasang rakitan perfboard.

Saya menggunakan empat sekrup kayu kuningan kecil untuk menahan panel akses kuningan di tempatnya.

Pada titik ini saya merekomendasikan uji kecocokan sebelum perakitan akhir dimulai. Langkah ini opsional tetapi disarankan. Jauh lebih mudah untuk melakukan penyesuaian sebelum menempel.

Langkah 9: Pasang Kabel ke PCB; Hubungkan dan Uji Elektronik

Image
Image
Pasang Leher ke Badan Ukulele
Pasang Leher ke Badan Ukulele

Jangan memasang elektronik secara permanen. Pasang kabel ke PCB, pastikan Anda meninggalkan cukup kendur untuk merutekan lubang akses. Ini pada akhirnya perlu dilampirkan secara permanen ke papan Arduino MICRO (foto menunjukkan Arduino UNO, yang saya gunakan untuk pengembangan kode)

Langkah 10: Pasang Leher ke Badan Ukulele

Pasang leher ke badan Ukulele mengikuti instruksi yang disertakan dengan kit Ukulele. Terutama perhatikan keselarasan permukaan fretboard dengan badan uke.

Langkah 11: Bor Lubang Akses untuk Melewati Kabel PCB Ke Tubuh

Bor Lubang Akses untuk Memasukkan Kabel PCB Ke Tubuh
Bor Lubang Akses untuk Memasukkan Kabel PCB Ke Tubuh

Setelah lem mengering, bor lubang ~1/4 (10mm) pada suatu sudut agar kabel dari PCB dapat dirutekan ke badan Ukulele. Pastikan untuk tidak merusak papan suara.

Anda mungkin perlu membuat saku kecil juga untuk memungkinkan ketebalan kabel di bawah papan (atau secara opsional meletakkan sambungan di atas dan menyertakan relief di papan fret.)

Tes lain yang cocok tidak ada salahnya pada saat ini.

Langkah 12: Sejajarkan dan Rekatkan PCB dan Fretboard ke Leher

Sejajarkan dan Rekatkan PCB dan Fretboard ke Leher
Sejajarkan dan Rekatkan PCB dan Fretboard ke Leher

Saya sarankan untuk memikirkan penjepitan (dan mencobanya!) sebelum menempel. Anda mungkin ingin membuat balok yang berbentuk di bagian bawah leher untuk memberi Anda permukaan penjepit yang rata. Fretboard lebih besar dari leher pada saat ini, jadi Anda harus mengizinkannya.

Berhati-hatilah agar epoksi tidak menempel pada permukaan apa pun yang ingin Anda selesaikan nanti. Lebih baik lagi menerapkan masking ke semua permukaan yang tidak direkatkan sebelum Anda merekatkan untuk memastikan itu hanya berjalan di tempat yang Anda inginkan.

Gunakan epoksi dengan masa kerja minimal 60 menit…Anda akan membutuhkan semuanya.

Rekatkan PCB di tempatnya terlebih dahulu, pastikan lem berlebih tidak keluar ke permukaan perekatan fretboard. Ini memberikan metode untuk menyelaraskan fretboard ke leher. PCB memiliki lapisan akhir topeng solder yang halus, jadi saya mengaduknya dengan sedikit amplas untuk memberikan permukaan akhir yang sedikit lebih baik pada epoksi.

Sejajarkan dan rekatkan fretboard ke leher. Berhati-hatilah agar tidak meninggalkan kantong yang nantinya bisa bergema (buzz!). Juga berhati-hatilah agar lem tidak menempel pada permukaan LED.

Setelah lem mengering, Anda mungkin ingin memasang kawat dan menguji elektronik sekali lagi. Satu LED yang buruk akan membuat Anda membenci kehidupan. Saya memiliki satu LED yang buruk (yang pertama!) pada prototipe dan saya harus melakukan beberapa pekerjaan kreatif untuk mengakses LED yang rusak dan menambalnya dengan bersih.

Langkah 13: Ratakan Tepi Fretboard ke Leher dan Tambahkan Kabel Fret

Setelah lem mengering, Anda bisa mulai menyelesaikan bagian tepinya. Saya dengan hati-hati memotong bahan fretboard berlebih (menggunakan penggilingan) dan menyelesaikan milimeter terakhir dengan pengamplasan tangan.

Menambahkan kabel fret dapat dilakukan dengan palu (dengan permukaan plastik untuk menghindari kerusakan). Hanya saja, jangan palu terlalu keras. Jika Anda telah mencocokkan kabel fret ke slot, kabel tersebut akan masuk tanpa banyak kesulitan.

Hal yang perlu Anda perhatikan adalah merusak permukaan tipis saku LED. Pada prototipe, saya mengizinkan beberapa kantong LED (dekat fret ke-12, di mana ruang menjadi sempit) untuk meluas ke slot fret. Itu ide yang buruk, karena itu menciptakan titik lemah yang mungkin (dan memang) retak begitu kabel fret dimasukkan.

Langkah 14: Terapkan Masking dan Terapkan Selesai ke Ukulele

Tutupi fretboard (tidak selesai) dan area perekatan jembatan dan mulailah menerapkan hasil akhir.

Saat menutupi area jembatan, baca instruksi dengan kit Anda, lalu periksa kembali panjang skala hanya untuk memastikan. Kit yang saya gunakan untuk prototipe menggunakan panjang skala yang salah dan karenanya memberikan dimensi yang salah untuk menemukan jembatan (tetapi memiliki catatan untuk memeriksa situs web untuk instruksi terbaru!). Naluri saya mengatakan itu salah, tetapi saya secara membabi buta menerima otoritas.

Itu selalu lebih baik untuk memahami MENGAPA Anda melakukan sesuatu, daripada mengikuti instruksi secara membabi buta.

Untuk penyelesaiannya, ada banyak tutorial dari Luthiers yang tahu apa yang mereka lakukan di web, jadi saya sarankan untuk berkonsultasi dengan mereka sebelum masuk ke proses penyelesaian.

Saya, tentu saja, tidak melakukannya, jadi saya akhirnya menggunakan sealer yang salah, menghasilkan permukaan yang sangat kasar. Jangan lakukan itu.

Kerjakan pekerjaan rumah Anda.

Langkah 15: Sejajarkan dan Pasang Jembatan

Sejajarkan dan Pasang Jembatan
Sejajarkan dan Pasang Jembatan

Langkah ini cukup mudah, tetapi sekali lagi, rencanakan metode penjepitan Anda dan cobalah terlebih dahulu sebelum merekatkan. Saya menggunakan lem kayu standar untuk menempelkan jembatan.

Langkah 16: Instal Elektronik dan Uji

Instal Elektronik dan Uji
Instal Elektronik dan Uji

Sekarang adalah waktu untuk membuat kabel Anda cantik. Plus Anda tidak ingin itu jatuh di dalam tubuh dan membuat suara mendengung atau lebih buruk lagi pecah di atas panggung.

Kode Arduino dapat diperbarui melalui port USB, jadi tidak perlu membongkarnya kecuali Anda ingin mengotak-atiknya.

Langkah 17: Instal Tuner dan Senar Instrumen

Image
Image
Memprogram Uke
Memprogram Uke

Anda juga mungkin perlu menaikkan level fret dan bermain dengan pengaturan sedikit, tetapi mengapa khawatir sekarang, ketika Anda sudah sangat dekat dengan akhir?

Saya memutakhirkan tuner dan menggunakan senar Aquila yang bagus, yang tidak membantu suara sama sekali. Jadi ingatlah itu saat Anda mengeluarkan uang untuk proyek ukulele…

Langkah 18: Memprogram Uke

Kode Arduino terakhir ada di Github. Ada beberapa baris dalam kode untuk mendukung peningkatan di masa mendatang (seperti fungsi metronom dan "penggeser" untuk tampilan (elemen UI yang terlihat seperti penggeser)

Kode ini menggunakan Rotary Encoder Library (Rotary Encoder Arduino Library) untuk menangani input pengguna dari Rotary Encoder.

Itu juga menggunakan pustaka Adafruit Neopixel dan kode contoh yang terletak di sini. Mode teater dan pelangi berasal dari contoh yang disediakan bersama perpustakaan. (lihat strandtest.ino).

Driver tampilan disediakan oleh sistem 4D dan ditemukan di Github di sini.

Ada dua fungsi unik yang diterapkan untuk proyek Ukulele. Yang pertama mengimplementasikan perpustakaan akor, dan yang kedua menampilkan pesan teks bergulir menggunakan kumpulan karakter khusus.

Diagram terlampir menunjukkan lokasi LED fretboard dan bagaimana mereka terhubung. LED 0 terletak di pojok kanan atas.

Langkah 19: Cara Menampilkan Akor

Cara Menampilkan Akor
Cara Menampilkan Akor

Fungsi displayChord menampilkan posisi jari (hanya posisi pertama untuk saat ini) untuk setiap chord. Akor yang dipilih oleh pengguna (catatan akar dan kualitas) disimpan sebagai sepasang indeks. Ini pada gilirannya digunakan untuk mencari fingering untuk setiap akord.

Saya menggunakan notasi "GCEA" untuk menyimpan akor (misalnya, "A" adalah "2100"). Akor sudah dihitung sebelumnya untuk setiap nada dasar dan disimpan dalam variabel yang sesuai dengan kualitas akor. (jadi, A mayor, disimpan di lokasi pertama larik "majorChords", sesuai dengan "2100").

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

Perhatikan bahwa karena ini adalah string teks, setiap digit juga dapat mewakili nilai hex untuk memperhitungkan posisi fret yang lebih besar dari 9. Artinya, A dan B akan mewakili LED 10 dan 11. Untuk akord posisi pertama, ini tidak menjadi masalah).

Senar LED disambungkan secara memanjang dalam baris 12 (satu oktaf) di sepanjang setiap senar (dimulai dengan senar A), rangkaian 12 berikutnya dimulai pada fret pertama dari senar berikutnya (lihat diagram di langkah 18). Ini penting bagi algoritme untuk menentukan lampu mana yang akan menyala untuk akor yang diberikan. Itu berarti bahwa piksel 0 hingga 11 adalah LED string A, 12 hingga 23 adalah LED string E, dan seterusnya. Saat menguraikan A = "2100" (disimpan sebagai string, ada juga terminator nol "\n" dalam kode), kami menafsirkannya sebagai: tidak ada piksel pada string A yang menyala, atau pada string E, piksel 0 (fret 1) pada senar C menyala dan piksel 1 (fret 2) pada senar G. Perhatikan bahwa "0" mati, bukan LED pertama. Berdasarkan pengkabelan, kami ingin menyalakan LED 24 dan 37. Kode untuk menampilkan akor ditunjukkan di bawah ini.

for (int i = 0; i < 4; i++) { if (int(chord - '0')) { //algoritma untuk mengurai string chord int ledNumber = int(chord - '0') + (3 - i) * 12 - 1; //lihat diskusi di atas, (3-i) adalah untuk membalikkan strip indeks.setPixelColor(ledNumber, 0, 125, 125); //setPixelColor(ledNumber, nilai merah, nilai hijau, nilai biru) } }

Pernyataan if memeriksa apakah led mati. Jika tidak, maka dibutuhkan nilai ascii dari karakter, chord, dan kurangi nilai ascii untuk '0' agar ledNumber menyala.

strip adalah turunan dari kelas Adafruit_NeoPixel. Fungsi setPixelColor mengatur warna untuk piksel yang dihitung (ditetapkan pada (0, 125, 125) dalam kasus ini.

Langkah 20: Cara Menampilkan Pesan Bergulir

Cara Menampilkan Pesan Bergulir
Cara Menampilkan Pesan Bergulir

Jadi kami memiliki rangkaian LED 12 x 4… mengapa tidak membuatnya menampilkan sesuatu selain pola cahaya yang cukup acak!

Masalah pertama adalah bahwa tinggi tampilan (4) agak terbatas karena jumlah string pada Uke. Pengguliran horizontal sebagian besar tidak terbaca, tetapi dalam orientasi vertikal, kami dapat mendukung 4 x 5 karakter yang berjalan secara vertikal.

Mengatur karakter sebagai lima baris "vertikal" berarti bahwa dua karakter dapat ditampilkan secara bersamaan dengan memungkinkan satu spasi baris di antara setiap karakter.

Kesulitannya adalah tidak ada set karakter standar 4 x 5. Saya membuat sendiri menggunakan spreadsheet terlampir. Saya menetapkan setiap baris ke nilai hex tunggal (4 bit yang mewakili piksel mana yang aktif atau nonaktif). Kombinasi dari lima nilai heksagonal membentuk sebuah karakter (misalnya "0" adalah 0x69996).

Nilai untuk setiap karakter disimpan dalam array dalam urutan ASCII. Set karakter membuat beberapa kompromi dengan huruf-huruf tertentu, tetapi mayoritas cukup jelas. (coretan di bagian bawah spreadsheet adalah ide yang saya mainkan karena kami memiliki warna sebagai opsi, kami dapat menambahkan "kedalaman" ke karakter dan mungkin mendapatkan beberapa resolusi tambahan.

String yang akan ditampilkan terkandung dalam variabel string, message.

Buffer dibuat untuk mewakili tampilan karakter. Saya kira saya bisa saja membuat buffer besar dengan seluruh urutan pesan yang diterjemahkan, terutama karena sebagian besar pesan akan kurang dari 20 karakter atau lebih. Namun, saya memilih untuk membuat buffer tiga karakter (18 byte) tetap. Hanya dua karakter yang aktif ditampilkan, dan yang ketiga adalah pandangan ke depan, di mana karakter berikutnya dimuat. String LED (anggap sebagai register geser besar) dimuat dengan 48 bit untuk string. Saya menyia-nyiakan beberapa ruang memori untuk membuat ini lebih mudah dikonseptualisasikan. Setiap gigitan mendapatkan lokasi memorinya sendiri, menggandakan kebutuhan memori, tetapi tidak banyak mengingat ukuran buffer.

Buffer dimuat dengan karakter berikutnya ketika indeks keluaran (pointer) mencapai batas karakter (outputPointer pada 5, 11, atau 17).

Untuk memuat buffer, kita ambil karakter pertama dalam "pesan" sebagai nilai ASCII dan kurangi 48 untuk mendapatkan indeks dalam array asciiFont. Nilai pada indeks itu disimpan dalam codedChar.

Bagian pertama dari pesan yang digeser keluar sesuai dengan LED 47, 35, 23, dan 11 (bagian bawah layar). Jadi untuk angka nol 0x0F999F, F (yang kiri) digeser pertama, 9 detik dan seterusnya.

Karakter berikutnya dimuat dengan menutupi setiap gigitan dan menggesernya ke kanan. Untuk contoh di atas, algoritma memberikan (0x0F999F & 0xF00000) >> 20, lalu (0x0F999F & 0x0F0000) >> 16, dll.

int indeks; if (outputPointer == 17 || outputPointer == 5 || outputPointer == 11) { char displayChar = message.charAt(messagePointer); //ambil karakter pertama dari pesan long codedChar = asciiFont[displayChar - 48]; if (displayChar == 32) codedChar = 0x000000; messageBuffer[bytePointer+5]=byte((codedChar & 0xF00000) >> 20); //masker semua kecuali gigitan terakhir dan geser ke 20 (dan seterusnya) messageBuffer[bytePointer+4]=byte((codedChar & 0x0F0000) >> 16); //ini harus menempatkan satu gigitan per lokasi memori messageBuffer[bytePointer+3]=byte((codedChar & 0x00F000) >> 12); //keenam mewakili pada karakter messageBuffer[bytePointer+2]=byte((codedChar & 0x000F00) >> 8); messageBuffer[bytePointer+1]=byte((codedChar & 0x0000F0) >> 4); messageBuffer[bytePointer] =byte((codedChar & 0x00000F)); if(bytePointer ==0) { //menangani loop di sekitar bytePointer bytePointer = 12; } else { bytePointer -= 6; //kami mengisi dari bawah ke atas; CATATAN: perlu melihat membalikkan ini untuk melihat apakah itu membuatnya lebih mudah } if (messagePointer == message.length()-1) { //menangani loop di sekitar pesan messagePointer = 0; } else { messagePointer +=1; //pindah ke karakter berikutnya } }

Setelah buffer dimuat, itu menjadi masalah pelacakan di mana pointer output berada dan memuat string LED dengan 48 bit yang benar (4 saat ini dan sebelumnya 44). Seperti disebutkan sebelumnya, strip adalah turunan dari kelas NeoPixel dan setPixelColor mengatur warna (RGB) setiap piksel. Fungsi show() menggeser nilai tampilan ke string LED.

// loop untuk terus menggeser buffer

// ingin menuliskan seluruh strip pada setiap lintasan melalui loop, hanya lokasi awal yang berubah untuk (int row=12;row > 0;row--) { index = outputPointer + (12-row); if (indeks > 17) indeks = outputPointer+(12-baris)-18; //loop jika lebih besar dari 17 for (int column=4; column > 0; column--) { strip.setPixelColor(uint16_t(12*(column-1)+(row-1)), uint8_t(RedLED*(bitRead (messageBuffer[index], kolom-1))), uint8_t(GreenLED*(bitRead(messageBuffer[index], kolom-1))), uint8_t(BlueLED*(bitRead(messageBuffer[index], kolom-1)))); //di setiap lokasi nyalakan LED jika bitnya satu } } //outputPointer menunjuk ke byte terendah saat ini dalam string tampilan jika (outputPointer == 0) outputPointer=17; lain outputPointer -= 1; strip.tampilkan(); }

Langkah 21: Kagumi Dunia Dengan Kehebatan Ukulele Anda

Image
Image

Prototipe Ukulele terakhir membutuhkan waktu sekitar 6 bulan untuk memulai dan berhenti.

Banyak teknologi baru untuk dipelajari dan mungkin beberapa teori pertukangan kayu dan musik untuk boot!

Apa yang harus dilakukan untuk versi berikutnya?

  1. Singkirkan display dan rotary encoder. Ganti dengan modul Bluetooth yang terpasang pada arduino. Kontrol jarak jauh menggunakan ponsel atau tablet. Semuanya lebih baik dengan Bluetooth.
  2. Perbarui pola akord dari jarak jauh secara real time. Sesuatu yang terbaik tersisa untuk aplikasi.
  3. penutup LED. Versi saat ini tidak melakukan apa pun untuk mencegah kotoran masuk ke lubang LED. Seorang teman membuat banyak lensa kecil, tetapi saya tidak pernah tahu bagaimana membuatnya tetap di tempatnya dengan benar.
  4. Bahan fretboard alternatif, mungkin sesuatu yang jelas selama fretnya tahan.
  5. Lebih banyak lampu! Hilangkan batasan pada teks dengan menambahkan lebih banyak "baris". Ini benar-benar batasan yang disebabkan oleh ukuran fretboard dan badan LED.

Sekali lagi, lihat Instructable pendamping yang menjelaskan set karakter yang harus saya buat untuk memungkinkan teks bergulir.

Terima kasih banyak untuk membuatnya sejauh ini! Mahalo!

Direkomendasikan: