فهرست مطالب:

چگونه می توان یک Ukulele روشن کننده ساخت: 21 مرحله
چگونه می توان یک Ukulele روشن کننده ساخت: 21 مرحله

تصویری: چگونه می توان یک Ukulele روشن کننده ساخت: 21 مرحله

تصویری: چگونه می توان یک Ukulele روشن کننده ساخت: 21 مرحله
تصویری: ریشه انجیر به صورت افقی و عمودی 2024, جولای
Anonim
Image
Image
ایجاد یک طرح
ایجاد یک طرح

من بازی اوکولله را انجام می دهم. به طور متوسط (اگر این یک کلمه باشد) بنابراین فکر کردم ، "اگر واقعاً می خواهید خانم ها را تحت تأثیر قرار دهید ، به ابزاری نیاز دارید که آنها را از فاجعه ای که روی صحنه بازی می کند منحرف کند." از این رو "یوکولله روشن" متولد شد.

این پروژه دارای یک کیت Concert Ukulele است و یک LED کنترل شده با آردوینو را در هر موقعیت سیم و فر می افزاید. همچنین یک صفحه نمایش OLED فانتزی و رابط کاربری مبتنی بر رمزگذار چرخشی برای انتخاب حالت و شدت رشته LED اضافه می کند.

ویژگی های سخت افزاری uke تکمیل شده:

  1. Arduino MICRO برای اتصال به رشته LED ، صفحه نمایش و دستگاه ورودی.
  2. 48 ال ای دی تمام رنگی قابل برنامه ریزی
  3. صفحه نمایش OLED
  4. رمزگذار دوار برای ورودی کاربر
  5. رابط USB برای تغذیه خارجی و برنامه نویسی آردوینو

نرم افزار uke دارای:

  1. حالت های اصلی کنترل نور که LED ها را از طریق گام های خود عبور می دهند
  2. حالت خیره کننده تئاتر (برای نمایش بسیار مفید است!)
  3. کنترل شدت LED
  4. یک کتابخانه کامل آکورد از تمام آکوردهای موقعیت اول Ukulele (مقدار و شخصیت آکورد)
  5. قابلیت نمایش متن در حال اجرا (عمودی) با استفاده از مجموعه کاراکترهای منحصر به فرد 4 6 6 پیکسل

این دستورالعمل نمونه اولیه تکمیل شده را توصیف می کند. حماسه کامل توسعه در اینجا موجود است ، از جمله برخی از اشتباهات آموزشی (دردناک) و یک درس ارزشمند در مورد اینکه چرا باید اولین طراحی خود را به پایان برسانید (مهم نیست که چقدر چیزهای زشت به دست می آیند). شما هرگز تمام چیزهایی را که واقعاً نمی دانید تا زمانی که به انتها نرسیدید (و سپس هنوز نمی دانید!) نمی دانید ، اما برای طرح بعدی بسیار بهتر و باهوش تر هستید.

من نمونه اولیه را در اطراف یک کیت Ukulele کنسرت Grizzly ساختم. شروع با یک کیت نگرانی در مورد بدن uke (خوب ، عمدتا) را از بین می برد و اکثر کارهای واقعی از نوع لوتی را حذف می کند. این کیت ها کاملاً کامل هستند و در طرح کلی چیزها چندان گران نیستند (و از آنجا که اشتباه می کنید دردناک نیست).

مرحله 1: برنامه ریزی کنید

ایجاد یک طرح
ایجاد یک طرح

Fretboard (یا صفحه انگشتی) موجود در برخی از کیت ها قبلاً فرت ها را وصل کرده است. این خوب/بد است. این به عنوان صرفه جویی در زمان خوب است ، اما از نظر طرح الگوی مته و نگه داشتن آن در هنگام آسیاب ، کمی درد آور است. پس از از بین بردن مورد ارائه شده در کیت ، من تصمیم گرفتم (خوب ، چاره ای جز خرید یک کیت دیگر نداشتم) برای خرید فرت برد جدید.

هنگام طراحی فرت برد ، ما باید ضخامت مورد نیاز برای تعبیه PCB و LED ها را محاسبه کنیم (و اجزای غیرفعال را فراموش نکنید) ، اما نه آنقدر که LED ها از سطح تختخواب بسیار دور باشند.

برد مدار چاپی LED (PCB) به عنوان یک برد ساده 2 لایه طراحی شده است. این امر به مونتاژ دستی رشته LED کمک زیادی می کند و مقداری استحکام مکانیکی (فایبرگلاس و اپوکسی) در گردن یوکولله ایجاد می کند. من طرح را در Eagle شروع کردم ، اما به دلیل محدودیت اندازه صفحه ، از Altium Designer استفاده کردم. فایلهای شماتیک Altium و PCB در اینجا آمده است.

ضخامت کیت فرت برد فقط 0.125 اینچ بود. بنابراین ، با فرض PCB ضخامت 0.062 اینچ و اجازه دادن 0.062 اینچ اضافی برای LED ها ، به این معنی است که ما مجبوریم مقدار زیادی (مانند همه) تخته جلویی را برش دهیم. برای جبران آن ، می توانیم جیب های LED های Fretboard را با جیب مربوطه در گردن برای PCB تا حدی برش دهیم ، یا می توانیم کل Fretboard (گزینه ای که با آن رفتم) را با نسخه ضخیم تری از Luther Mercantile International (LMII) جایگزین کنیم. ، که برای شروع 0.25 اینچ هستند.

اما ، به یاد داشته باشید که هنوز باید گردن را برای جبران افزایش ضخامت در تخته جلویی ماشینکاری کنید. مزیت دیگر شما زیبایی است ، زیرا PCB در حال حاضر به طور کامل در تخته فرت تعبیه شده است که باعث می شود لبه ها بسیار ساده تر به پایان برسند (و بسیار زیباتر به نظر برسند!) و فرز گردن را ساده می کند.

موارد مهندسی (در صورت تمایل توجه نکنید):

به هر حال ، این امر واقعا سفتی گردن را به خطر نمی اندازد. مواد PCB بسیار سفت تر از چوب فرتبرد اصلی هستند (مدول ماهون: 10.6 GPa در مقابل مدول FR4: 24 GPa) ، بعلاوه از آنجا که ما در حال ساختن یک Ukulele هستیم ، مقدار زیادی از کشش سیم وجود ندارد که در غیر این صورت می تواند تحریف کند (پیچش یا تار) گردن.

یکی از ملاحظات بسیار جالب (که احتمالاً هنوز باید محاسبه کنم) این است که چه اتفاقی روی دما می افتد. به طور کلی برای چوب ، به موازات دانه ، ضریب حرارتی انبساط تقریباً 3 * 10^-6/K و برای FR4 14 × 10^− 6/K است. بنابراین ، تفاوت کاملاً قابل توجهی وجود دارد. نگرانی این است که با تغییر دما ، تنش در گردن ایجاد می شود ، که به نوبه خود سیم ها را تنظیم می کند. این چیزی است که با اعمال لایه ای مشابه در طرف مقابل محور خنثی یا نزدیک شدن FR4 تا حد ممکن به محور خنثی جبران می شود. اما این برای 2.0 باقی می ماند … چیزی برای مدل سازی و ارزیابی.

قطعات الکترونیکی در بدنه uke قرار دارند. سوراخ هایی در دیوار جانبی (نه کمان ویولن و تار!) UKE بریده شده تا فضایی برای صفحه نمایش و رمزگذار چرخشی ایجاد شود ، به علاوه یک صفحه دسترسی برای نگه داشتن Arduino Micro و دسترسی به رابط USB. طراحی و محل دسترسی صفحه/سوار به احتمال زیاد می تواند بهبود یابد تا اتصال USB در مکان مناسب تری ظاهر شود ، اما به نظر می رسد ، آنقدرها هم بد نیست ، زیرا هنگام بازی به هیچ وجه مشکل ندارد.

طرح کلی مراحل به شرح زیر است:

  1. مواد جمع آوری کنید
  2. وسایل مورد نیاز خود را تهیه کنید
  3. گردن را آسیاب کنید تا تخته ضخیم تر ضخامت را در خود جای دهد
  4. تخته جلویی را آسیاب کنید تا در مکان های مورد نیاز سوراخ ایجاد کرده و جیب هایی برای برد و LED ایجاد کنید
  5. PCB نگهدارنده LED ها را تهیه و بسازید
  6. آسیاب های دسترسی در بدنه Ukulele برای صفحه نمایش OLED ، رمزگذار روتاری و پنل دسترسی
  7. صفحات روکش را بسازید
  8. سیمها را به PCB وصل کنید. لوازم الکترونیکی را وصل کرده و آزمایش کنید
  9. گردن را به بدن Ukulele وصل کنید
  10. برای عبور سیم های PCB به بدنه ، یک قفل دسترسی را مته کنید
  11. PCB و Fretboard را به گردن بچسبانید و بچسبانید
  12. لبه های تخته تخت را تا گردن صاف کنید (مواد اضافی را بردارید)
  13. سیم های فرت را نصب کنید
  14. ماسک بزنید و روی Ukulele را بمالید
  15. پل را تراز کرده و وصل کنید
  16. لوازم الکترونیکی نصب کنید و تست کنید.
  17. تیونرها را نصب کرده و ساز را به سیم بکشید
  18. کنترلر Uke را برنامه ریزی کنید
  19. با شگفتی Ukulele خود جهان را شگفت زده کنید!

مرحله 2: جمع آوری مواد

لیست مواد ما به این شکل است:

  1. کیت Ukulele - من از یک کیت Ukulele کنسرت Grizzly (کیت Grizzly Uke در آمازون) استفاده کردم ، اما به نظر می رسد که متوقف شود. Zimo یک مدل مشابه (Zimo Uke Kit @ Amazon) تولید می کند که به نظر می رسد کار خود را انجام دهد
  2. Fretboard Ukulele ، از قبل شکاف دار (LMII Uke Fingerboards). آنها صفحه تخت را روی مقیاس شما قرار می دهند ، که از دردسرها جلوگیری می کند
  3. اپوکسی - برای چسباندن تخته تخت به گردن. من اپوکسی را انتخاب کردم زیرا با مواد PCB سازگار است. به دنبال چیزی باشید که حداقل 60 دقیقه زندگی کاری دارد. از انواع 5 دقیقه ای استفاده نکنید ، برای انجام تنظیمات به زمان نیاز دارید
  4. سیم های فرت - همچنین از LMII موجود است
  5. PCB سفارشی - فایلهای Altium در اینجا هستند. من مواد معمولی نوع FR4 را انتخاب کردم. تخته های فلکس (پلی آمید) جایگزین جالبی (اگر گران تر) باشد ، زیرا می توانند بسیار نازک تر باشند.
  6. LED های 48 نئوپیکسل (SK6812). موجود در Adafruit و Digikey
  7. 48x 0.1uF 0402 کلاه - بزرگتر قابل قبول است ، اما شما باید محل را تماشا کنید
  8. سیم اتصال - حداقل 4 تا 6 رنگ برای جلوگیری از سردرگمی ، من در درجه اول از سیم 28 سنج استفاده کردم. تماشای افت DC روی اتصالات برق LED (هر دو VCC و GROUND … این جریان باید به منبع برگردد!)
  9. رمزگذار روتاری-PEC16-4220F-S0024
  10. دستگیره چوبی فانتزی - برای رمزگذار چرخشی (من از LMII خودم گرفتم)
  11. صفحه نمایش OLED - از سیستم های 4 بعدی صفحه نمایش OLED
  12. باتری USB خارجی - همیشه ارزان تر است ، به علاوه می توانید لوازم یدکی حمل کنید!
  13. آردوینو میکرو
  14. ورق برنج - برای ساخت صفحه برای نگه داشتن آردوینو و قاب برای صفحه نمایش
  15. مواد مصرفی متفرقه شامل: کاغذ سنباده ، روکش اورتان ، چوب بستنی ، نوارهای لاستیکی ، لحیم کاری ، شار ، برس ، نوار دو طرفه (من نوار UHC توسط 3M را دوست دارم) و پیچ های چوبی برنجی کوچک (برای صفحه)
  16. پیشرفت های اختیاری Ukulele - تیونرهای بهتر ، سیم های بهتر ، مهره و زین بهتر ، منبت کاری اگر می خواهید قدرت بیشتر خود را به نمایش بگذارید)

مرحله 3: ابزارهای مورد نیاز خود را تهیه کنید

دیر یا زود باید به موارد زیر دسترسی پیدا کرده یا به آنها دسترسی پیدا کنید:

لیست ابزارهای ما شامل موارد زیر است:

  1. دستگاه فرز - CNC ترجیح داده می شود ، اما حتی ممکن است با روتر و شانس زیادی کنار بیایید. من از دستگاه ترکیبی CNC فرز/روتر استفاده کردم
  2. بیت های روتر - کاربید ترجیح داده می شود. بیت های مسیریاب از آنجا که ما در حال ماشینکاری چوب هستیم نه فلز ، بیش از آسیاب های انتهایی انتخاب شده اند
  3. گیره - تعداد زیادی از آنها بیشتر برای نگه داشتن قطعات هنگام چسباندن مورد نیاز است
  4. لحیم کاری - نوک کوچک برای لحیم کاری روی سطح
  5. میکروسکوپ یا ذره بین - می توانید فقط با چشم خود لحیم کنید ، اما من آن را حداقل 10 برابر توصیه نمی کنم
  6. موچین (برای قرار دادن قطعات در محل)
  7. ابزارهای تختخواب (ابزارهای مناسب LMII را در اینجا ببینید ، اما من از آنچه در خانه داشتم استفاده کردم ، چکش ، فایل و برش)
  8. انواع ابزارهای دستی مانند اسکنه چوبی ، پیچ گوشتی ، ضربه نرم یا چکش پوست خام (برای فرتینگ) و غیره.
  9. مواد ساینده - انواع کاغذ سنباده

ابزارهای نرم افزاری ما شامل (برخی بسته به بودجه/نبوغ شما اختیاری است) است:

  1. نرم افزار آردوینو
  2. کد منبع Ukulele (https://github.com/conrad26/Ukulele)
  3. بسته چیدمان PCB - من از Altium استفاده کردم زیرا نسخه رایگان Eagle اندازه برد مورد نظر من را پشتیبانی نمی کرد. Altium یک بسته طرح بندی کامل است و واقعاً در محدوده قیمت علاقه مندان نیست. فایلهای Gerber را برای نمونه اولیه در سایت خود قرار داده ام ، اما قطعاً اینها نیاز به به روز رسانی دارند
  4. نرم افزار مدل سازی سه بعدی - من از SolidWorks استفاده کردم ، اما یک جایگزین رایگان FreeCAD است (https://www.freecadweb.org/)
  5. نرم افزار CAM - مانند FeatureCAM از Autodesk برای ایجاد فایل آسیاب NC.

ترکیبی از خروجی فایل گام سه بعدی از Altium به همراه یک مدل سه بعدی از تخته فرمت بسیاری از مشکلات را برای اطمینان از مطابقت همه چیز حذف می کند ، اما این یک الزام نیست. چیدمان دقیق به همان نتیجه می رسد.

اکنون که می دانیم می خواهیم چه کار کنیم و چه کارهایی را باید انجام دهیم ، بیایید یک Ukulele بسازیم.

مرحله 4: گردن را آسیاب کنید تا تخته تخت ضخیم تری را در خود جای دهید

گردن را آسیاب کنید تا بتوانید صفحه تخت ضخیم تری را در خود جای دهید
گردن را آسیاب کنید تا بتوانید صفحه تخت ضخیم تری را در خود جای دهید

قبل از فرزکاری ، توجه داشته باشید که مسطح بودن سطح نصب روی تخته Fret باید حفظ شود ، در غیر این صورت شما یک Fretboard پیچ خورده خواهید داشت ، که منجر به انواع مسائل مربوط به تراز شدن می شود.

فقط به آنجا نروید ، وقت بگذارید و گردن را با دقت و محکم محکم کنید و قبل از برش ، تراز بودن قطعه روتر را در کل گردن بررسی کنید. گذراندن زمان در اینجا بعداً از اندوه شما جلوگیری می کند.

یکی از دلایلی که من یک تخته فرت ضخیم تر را برای منبت در گردن انتخاب کردم ، افزایش سطح نصب (چسباندن) بود. دلیل دیگر این است که آسیاب گردن را ساده می کند. شما به سادگی وزوز کل سطح را به ارتفاع مورد نیاز برش می دهید.

مرحله 5: PCB نگهدارنده LED ها را بدست آورید و بسازید

PCB را نگه دارید و LED ها را نگه دارید
PCB را نگه دارید و LED ها را نگه دارید
PCB را نگه دارید و LED ها را نگه دارید
PCB را نگه دارید و LED ها را نگه دارید

تمام مجموعه را با دست لحیم کردم. ذوب بسته های LED بسیار آسان است ، بنابراین مراقب باشید از آسیب رساندن به آنها جلوگیری کنید. من پیشنهاد می کنم از یک بند ثابت استفاده کنید ، زیرا این رشته به هر LED کار می کند.

طراحی Fretboard بر اساس LED های WS2812B است. من تصمیم گرفتم فقط اولین اکتاو صفحه فرت (48 LED !!) را انجام دهم. هر LED را می توان در رجیستر شیفت یک بیت تصور کرد. سرعت شیفت رجیستر 800 کیلوهرتز است. من از کتابخانه Adafruit (بخش برنامه نویسی دیدن کنید) استفاده کردم تا کارها به سرعت راه اندازی شود.

من طراحی را در Eagle شروع کردم ، اما اندازه تخته محدود به 4 * 5 اینچ است ، بنابراین مجبور شدم (یا به عبارت بهتر ، ترجیح دادم) به Altium تغییر دهم. من در محل کار از آلتیم استفاده می کنم ، بنابراین در واقعیت ، این کارها را برای من سریعتر کرد. پروژه Altium ، فایلهای شماتیک و pcb (و قطعات کتابخانه) در سایت من وجود دارد. تخته دارای شکل ذوزنقه ای است و حدود 10 اینچ طول دارد. من فکر می کنم باید سعی می کردم طرح را کمی بیشتر فشرده کنم (چرخش بعدی!) مونتاژ بد نبود ، اما اگر می توانید از عهده آن برآیید ، من واقعاً یک آهن لحیم کاری مناسب (JBC Soldering iron) و یک میکروسکوپ خوب را توصیه می کنم. بله ، من خراب شده ام و نه ، من چنین چیزهایی در آزمایشگاه خانه ام ندارم. من ارزان هستم

من تخته هایی را در سان استون ساخته بودم. 129 دلار برای دو تخته. نوبت یک هفته تضمین شده است. هرچند در حمل و نقل دست و پا نزنید. من متوجه نشدم که از زمین UPS استفاده می کنم و در نهایت یک هفته بیشتر منتظر می مانم تا تخته های من برسند. کل زمان مونتاژ حدود 2 ساعت (98 قسمت) بود.

مرحله 6: تخته Fretboard را آسیاب کنید

Image
Image
سوراخ های دسترسی آسیاب در بدنه Ukulele
سوراخ های دسترسی آسیاب در بدنه Ukulele

ما باید صفحه تخت را آسیاب کنیم تا در مکان های مورد نیاز سوراخ ایجاد کنیم و جیب هایی برای برد و LED ایجاد کنیم.

من یک مدل سه بعدی از فرت برد کامل شده در Solidworks ایجاد کردم و روال فرز CNC را با استفاده از FeatureCAM ایجاد کردم.

قسمت پایینی تختخواب (نزدیک به حفره صوتی) باید نازک تر شود تا بتواند تغییر ارتفاع بین گردن و بدن را مشخص کند. مطمئناً چندین بار آزمایش تست ارزش دارد تا مطمئن شوید که از تناسب مناسبی برخوردار است.

در گذشته ، باید قسمت های بلااستفاده تخته چوبی را قطع می کردم تا آسیاب بهتر جا بیفتد (آسیاب ارزان قیمت من فقط یک محور 12 اینچی داشت). ترتیب عملکردها باید قبل از تنظیم ضخامت آسیاب اول تنظیم شود. جیب های فرز ، که باید منجر به شکاف کمتر بین جیب ها شود.

در صورت لزوم تنظیمات دستی را انجام دهید تا فضا برای سیم کشی اضافه شود. نکته مهمی که باید به آن توجه شود این است که در برخی از جیب ها ، من به شکافی که سیم فرت در آن می رود ، نفوذ کردم. با توجه به اینکه این یک هادی است ، مطمئن شوید که هیچ چیز مهمی را کوتاه نمی کند. همچنین باعث کاهش استحکام ماده ای می شود که فرت را در محل خود نگه می دارد. طرح باید اصلاح شود تا هرگز با شکاف ناهموار قطع نشود.

مرحله 7: سوراخ های دسترسی آسیاب در بدنه Ukulele

سوراخ های دسترسی آسیاب در بدنه Ukulele
سوراخ های دسترسی آسیاب در بدنه Ukulele

من دستی سوراخ های دسترسی بدن را آسیاب کردم. سخت ترین قسمت پیدا کردن "مسطح ترین" منطقه از سطح بسیار خمیده است. طرح کلی را با مداد علامت گذاری کنید و به تدریج مواد را آسیاب کنید تا به اندازه مناسب صفحه نمایش OLED برسید. من یک قاب برنجی تراشیده به دست آوردم و آن را با استفاده از نوار اتصال 3M VHB وصل کردم.

از آنجا که هیچ کدام به دقت زیادی احتیاج ندارند ، ایجاد رمزگذار چرخشی و حفره های پنل دسترسی بسیار ساده تر است.

مرحله 8: صفحات جلد را بسازید

صفحات جلد را بسازید
صفحات جلد را بسازید
صفحات جلد را بسازید
صفحات جلد را بسازید
صفحات جلد را بسازید
صفحات جلد را بسازید

شما همچنین باید صفحات کاور را برای حاشیه صفحه نمایش و پنل دسترسی تزیین کنید. پنل دسترسی به یک سوراخ (مستطیلی) برای اتصال USB (میکرو) نیاز دارد. کافی است از کانکتور موجود در آردوینو استفاده کنید ، زیرا گزینه های نصب پنل زیادی برای میکرو USB وجود ندارد. (گرچه اگر از ابتدا طراحی می کردم ، به یکی از این موارد نگاهی می انداختم)

برای ثابت نگه داشتن تخته ، L را از برنج بیرون بیاورید و آنها را به پشت صفحه دسترسی لحیم کنید. این به شما اجازه می دهد تا کمی موقعیت جغرافیایی داشته باشید. برای موقعیت یابی مناسب ، ابتدا یک تخته نصب روی میز (با سوراخ های نصب) برای Arduino MICRO ایجاد کرده و براکت های L را با استفاده از 2-56 پیچ دستگاه به آن وصل کنید. سپس می توانید موقعیت مکانی را تغییر دهید تا پورت usb را خط بندی کرده و مکان های براکت روی صفحه را با دقت مشخص کنید. براکت ها را از روی تخته چوبی جدا کرده و در جای خود لحیم کنید. در نهایت مجموعه ای از تخته چوبی را سوار کنید.

من از چهار پیچ چوبی برنجی کوچک برای نگه داشتن پنل دسترسی برنج در جای خود استفاده کردم.

در این مرحله توصیه می کنم قبل از شروع مونتاژ نهایی ، یک آزمایش مناسب را انجام دهید. این مرحله اختیاری است اما توصیه می شود. انجام تنظیمات قبل از چسباندن بسیار ساده تر است.

مرحله 9: سیم ها را به PCB وصل کنید. قطعات الکترونیکی را وصل کرده و آزمایش کنید

Image
Image
گردن را به بدن Ukulele وصل کنید
گردن را به بدن Ukulele وصل کنید

هنوز قطعات الکترونیکی را به طور دائم وصل نکنید. سیم ها را به PCB وصل کنید ، مطمئن شوید که مقدار کافی سست برای خروج از سوراخ دسترسی باقی می گذارید. اینها در نهایت باید به طور دائم به برد Arduino MICRO متصل شوند (عکسها نشان دهنده Arduino UNO است که من برای توسعه کد از آن استفاده کردم)

مرحله 10: گردن را به بدن Ukulele وصل کنید

طبق دستورالعمل های موجود در کیت Ukulele ، گردن را به بدن Ukulele وصل کنید. به خصوص نظم و ترتیب سطح صفحه تختخواب را با بدنه uke تماشا کنید.

مرحله 11: برای عبور سیم های PCB به داخل بدن ، یک سوراخ دسترسی ایجاد کنید

برای عبور سیم های PCB به داخل بدن ، یک سوراخ دسترسی ایجاد کنید
برای عبور سیم های PCB به داخل بدن ، یک سوراخ دسترسی ایجاد کنید

هنگامی که چسب خشک شد ، یک سوراخ 1/4 اینچی (10 میلی متری) را با زاویه سوراخ کنید تا سیم های PCB به بدنه Ukulele برسد. مطمئن شوید که به تخته صوتی آسیب نرسانید.

ممکن است لازم باشد یک جیب کوچک نیز ایجاد کنید تا ضخامت سیمهای زیر تخته را مجاز کنید (یا به صورت اختیاری اتصالات را در قسمت بالا قرار دهید و در تخته جلویی تسکین را وارد کنید.)

تناسب آزمایشی دیگر در این مرحله ضرری نخواهد داشت.

مرحله 12: PCB و Fretboard را به گردن تراز کرده و بچسبانید

PCB و Fretboard را به گردن تراز کرده و بچسبانید
PCB و Fretboard را به گردن تراز کرده و بچسبانید

من پیشنهاد می کنم قبل از چسب زدن به بستن (و امتحان کردن آن!) فکر کنید. ممکن است بخواهید یک بلوک به شکل زیر گردن طراحی کنید تا سطح بستن صاف به شما ارائه شود. Fretboard در این مرحله بزرگتر از گردن است ، بنابراین شما باید اجازه دهید.

بسیار مراقب باشید که در هر سطحی که می خواهید بعداً آن را تمام کنید اپوکسی نشود. بهتر است قبل از چسباندن ، ماسک را روی تمام سطوح بدون چسب بمالید تا مطمئن شوید فقط در جایی که می خواهید می رود.

از اپوکسی با حداقل 60 دقیقه طول عمر استفاده کنید … به همه آن نیاز دارید.

ابتدا PCB را در محل خود بچسبانید ، مطمئن شوید که چسب اضافی به سطح چسب فرت برد نریزد. این روشی را برای تراز برد فرت به گردن ارائه می دهد. PCB دارای ماسک لحیم کاری صاف است ، بنابراین من آن را با کمی کاغذ سنباده تمیز کردم تا سطح اپوکسی کمی بهبود یابد.

تخت جلویی را به گردن بچسبانید و بچسبانید. مراقب باشید جیب هایی باقی نگذارید که بعداً طنین انداز شوند (وزوز!). همچنین مراقب باشید که روی سطوح LED چسب نزند.

هنگامی که چسب خشک شد ، ممکن است بخواهید یکبار دیگر قطعات الکترونیکی را سیم کشی کرده و آزمایش کنید. یک LED بد باعث می شود از زندگی متنفر شوید. من یک LED بد (اولین!) روی نمونه اولیه داشتم و مجبور بودم کارهای چوبی خلاقانه انجام دهم تا به LED معیوب دسترسی داشته باشم و آن را تمیز وصله کنم.

مرحله 13: لبه های Fretboard را به گردن تراز کرده و Fret Wires را اضافه کنید

پس از خشک شدن چسب ، می توانید لبه ها را به پایان برسانید. مواد اضافی تخته فرت (با استفاده از آسیاب) را با دقت برش دادم و آخرین میلیمتر را با سنباده دستی تمام کردم.

افزودن سیم های فرت را می توان به سادگی با چکش (با روکش پلاستیکی برای جلوگیری از تداخل) انجام داد. فقط زیاد چکش نکنید. اگر سیم فرت را با شکاف ها مطابقت داده اید ، آنها باید بدون مشکل زیادی وارد شوند.

نکته ای که باید به آن توجه کنید شکستن سطح نازک جیب LED است. در نمونه اولیه ، به برخی جیب های LED (نزدیک فرت 12 ، جایی که فضا تنگ می شود) اجازه دادم تا در شکاف فرت گسترش یابد. این ایده بدی است ، زیرا این باعث ایجاد نقطه ضعیفی می شود که ممکن است با نصب سیم فرت ترک شود (و شد).

مرحله 14: ماسک بزنید و Finish را روی اوکولله بمالید

روی تخته تخت (نازک نمی شود) و قسمت چسب زدن به پل را ماسک کنید و شروع به کار کنید.

هنگام پوشاندن ناحیه پل ، دستورالعمل ها را با کیت خود بخوانید ، سپس برای اطمینان بیشتر طول مقیاس را دوباره بررسی کنید.کیتی که برای نمونه اولیه استفاده کردم از طول مقیاس اشتباه استفاده کرد و از این رو ابعاد اشتباهی را برای مکان یابی پل ارائه کرد (اما برای بررسی آخرین دستورالعمل ها وب سایت را یادداشت کرده بود!). روده ام به من گفت اشتباه است ، اما من کورکورانه اقتدار را پذیرفتم.

همیشه بهتر است بفهمید چرا کاری را انجام می دهید ، نه اینکه کورکورانه از دستورالعمل ها پیروی کنید.

در پایان ، آموزشهای زیادی از Luthiers وجود دارد که می دانند در وب چه کار می کنند ، بنابراین توصیه می کنم قبل از شروع به کار ، با آنها مشورت کنید.

البته من این کار را نکردم ، بنابراین در نهایت از سیلر اشتباه استفاده کردم و در نتیجه سطح بسیار دانه ای ایجاد شد. این کار را نکنید.

مشقت را بنویس.

مرحله 15: پل را تراز کرده و وصل کنید

پل را تراز کرده و وصل کنید
پل را تراز کرده و وصل کنید

این مرحله بسیار ساده است ، اما دوباره ، روش بستن خود را برنامه ریزی کرده و قبل از چسباندن آن را از قبل امتحان کنید. من از چسب استاندارد چوب برای اتصال پل استفاده کردم.

مرحله 16: تجهیزات الکترونیکی و تست را نصب کنید

الکترونیک و تست را نصب کنید
الکترونیک و تست را نصب کنید

اکنون زمان آن است که سیم کشی خود را زیبا کنید. به علاوه شما نمی خواهید آن را در داخل بدن بچرخانید و صداهای وزوز ایجاد کنید یا بدتر از آن روی صحنه بشکند.

کد آردوینو را می توان از طریق پورت USB به روز کرد ، بنابراین واقعاً نیازی به جدا کردن آن نیست مگر اینکه بخواهید کار کنید.

مرحله 17: Tuners را نصب کرده و String the Instrument را نصب کنید

Image
Image
برنامه نویسی Uke
برنامه نویسی Uke

همچنین به احتمال زیاد شما نیاز به تنظیم سطح فرت دارید و کمی با تنظیمات بازی می کنید ، اما چرا باید نگران باشید ، وقتی به پایان نزدیک شده اید؟

من تیونرها را ارتقا دادم و از سیمهای Aquila زیبا استفاده کردم ، که هیچ کمکی به صدا نمی کرد. بنابراین این نکته را در نظر داشته باشید که در حال جمع آوری پول برای یک پروژه پروژه هستید…

مرحله 18: برنامه نویسی Uke

کد نهایی آردوینو در Github است. برخی از خطوط در کد برای پشتیبانی از پیشرفت های آینده وجود دارد (مانند یک عملکرد مترونوم و "لغزنده" برای صفحه نمایش (یک عنصر UI که شبیه یک نوار لغزنده است))

این کد از کتابخانه رمزگذار روتاری (کتابخانه آردوینو Rotary Encoder) برای مدیریت ورودی کاربر از رمزگذار روتاری استفاده می کند.

همچنین از کتابخانه Adafruit Neopixel و کد نمونه موجود در اینجا استفاده می کند. حالت های تئاتر و رنگین کمان برگرفته از نمونه هایی است که به همراه کتابخانه ارائه شده است. (به strandtest.ino مراجعه کنید).

درایور صفحه نمایش توسط سیستم های 4 بعدی ارائه شده است و در Github در اینجا یافت می شود.

دو عملکرد منحصر به فرد برای پروژه Ukulele اجرا شده است. اولی کتابخانه آکورد را پیاده سازی می کند و دومی با استفاده از مجموعه کاراکترهای سفارشی یک پیام متنی پیمایش را نمایش می دهد.

نمودار ضمیمه شده مکان های LED صفحه تختخواب و نحوه اتصال آنها را نشان می دهد. LED 0 در گوشه بالا سمت راست قرار دارد.

مرحله 19: نحوه نمایش وتر

نحوه نمایش وتر
نحوه نمایش وتر

تابع displayChord موقعیت های انگشت (موقعیت فعلی را فقط در حال حاضر) برای هر وتر نمایش می دهد. آکوردهای انتخاب شده توسط کاربر (نکته و کیفیت ریشه) به عنوان یک جفت شاخص ذخیره می شوند. اینها به نوبه خود برای جستجوی انگشتان هر آکورد استفاده می شوند.

من از علامت "GCEA" برای ذخیره آکورد استفاده کردم (به عنوان مثال "A" "2100" است). آکوردها برای هر نت ریشه از قبل محاسبه شده و در متغیری متناسب با کیفیت آکورد ذخیره می شوند. (بنابراین ، A major ، در اولین محل آرایه "majorChords" ، مربوط به "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 "} ؛

توجه داشته باشید که از آنجا که این یک رشته متنی است ، هر رقم می تواند یک مقدار شش ضلعی را برای موقعیت های fret بزرگتر از 9 نشان دهد. یعنی ، A و B LED های 10 و 11 را نشان می دهند. برای آکورد موقعیت اول ، این مسئله نبود) به

سیم LED به صورت طولی در ردیف های 12 (یک اکتاو) در امتداد هر رشته (با رشته A شروع می شود) سیم کشی می شود ، اجرای بعدی 12 از اولین فرت رشته بعدی شروع می شود (نمودار مرحله 18 را ببینید). این برای الگوریتم مهم است که تعیین کند چراغ ها برای یک وتر مشخص روشن شوند. این بدان معناست که پیکسل های 0 تا 11 LED های رشته A ، 12 تا 23 LED های رشته E و غیره هستند. هنگام تجزیه A = "2100" (ذخیره شده به عنوان یک رشته ، همچنین یک پایانه تهی "\ n" در کد وجود دارد) ، ما آن را به این صورت تفسیر می کنیم: هیچ پیکسلی در رشته A روشن نیست و همچنین در رشته E ، پیکسل 0 (fret 1) در رشته C روشن است و پیکسل 1 (fret 2) در رشته G. توجه داشته باشید که "0" خاموش است ، اولین LED نیست. بر اساس سیم کشی ، ما می خواهیم LED های 24 و 37 را روشن کنیم. کد نمایش وتر در زیر نشان داده شده است.

برای (int i = 0؛ i <4؛ i ++) {if (int (chord - '0')) {// algorithm to paord the chord string int ledNumber = int (chord - '0') + (3 - i) * 12 - 1 ؛ // بحث بالا را ببینید ، (3-i) این است که نوار index.setPixelColor (ledNumber، 0، 125، 125) را معکوس کند. // setPixelColor (ledNumber ، مقدار قرمز ، مقدار سبز ، مقدار آبی)}}

دستور if بررسی می کند که آیا led خاموش است. اگر اینطور نباشد ، مقدار ascii کاراکتر ، وتر را می گیرد و مقدار ascii را برای '0' کم می کند تا ledNumber روشن شود.

strip نمونه ای از کلاس Adafruit_NeoPixel است. تابع setPixelColor رنگ پیکسل محاسبه شده (در این حالت (0 ، 125 ، 125) ثابت می شود.

مرحله 20: نحوه نمایش یک پیام پیمایش

نحوه نمایش یک پیام پیمایش
نحوه نمایش یک پیام پیمایش

بنابراین ما یک آرایه 12 * 4 از LED ها داریم … چرا آن را به چیزی غیر از الگوهای نوری بسیار تصادفی نشان ندهید!

اولین مسئله این است که ارتفاع صفحه نمایش (4) به دلیل تعداد رشته های یک Uke نسبتاً محدود است. پیمایش افقی عمدتاً ناخوانا خواهد بود ، اما در جهت عمودی ، می توانیم 4 * 5 نویسه را که به صورت عمودی اجرا می شوند ، پشتیبانی کنیم.

سازماندهی کاراکترها به عنوان پنج ردیف "عمودی" به این معنی است که دو کاراکتر می توانند همزمان نمایش داده شوند و یک فاصله بین هر کاراکتر ایجاد شود.

مشکل این بود که هیچ مجموعه استاندارد 4 * 5 کاراکتری وجود نداشت. من خودم با استفاده از صفحه گسترده ضمیمه تهیه کردم. من هر سطر را به یک مقدار شش ضلعی اختصاص دادم (4 بیت نشان دهنده پیکسل روشن یا خاموش است). ترکیب پنج مقدار شش ضلعی یک کاراکتر را تشکیل می دهد (به عنوان مثال "0" 0x69996 است).

مقادیر هر کاراکتر به ترتیب ASCII در یک آرایه ذخیره می شوند. مجموعه شخصیت ها با حروف خاصی سازش می کند ، اما اکثریت آنها به طور معقول واضح است. (خط نویسی در پایین صفحه گسترده ایده هایی است که من با آنها بازی می کردم ، زیرا ما رنگ را به عنوان یک گزینه انتخاب کرده ایم ، می توانیم "عمق" را به شخصیت اضافه کنیم و احتمالاً وضوح اضافی دریافت کنیم.

رشته نمایش داده شده در متغیر رشته ، پیام ، موجود است.

یک بافر برای نمایش کاراکتر ایجاد می شود. من حدس می زنم که می توانم به سادگی یک بافر بزرگ با کل دنباله پیام ترجمه شده ایجاد کنم ، به ویژه اینکه اکثر پیام ها کمتر از 20 کاراکتر یا بیشتر خواهند بود. با این حال ، من به جای آن یک بافر ثابت سه کاراکتری (18 بایت) ایجاد کردم. فقط دو نفر از شخصیت ها به طور فعال نمایش داده می شوند و سومی یک نگاه به جلو است ، جایی که شخصیت بعدی بارگذاری می شود. رشته LED (آن را به عنوان یک ثبت کننده تغییر بزرگ در نظر بگیرید) با 48 بیت برای رشته بارگذاری می شود. من مقداری فضای حافظه را هدر دادم تا بتوان مفهوم سازی آن را آسان تر کرد. هر تکه ای مکان حافظه خود را دریافت می کند و نیاز به حافظه را دو برابر می کند ، اما با توجه به اندازه بافر چندان مهم نیست.

وقتی شاخص خروجی (اشاره گر) به مرز یک کاراکتر می رسد ، بافر با کاراکتر بعدی بارگذاری می شود (خروجی Pointer در 5 ، 11 یا 17).

برای بارگذاری بافر ، اولین کاراکتر را در "پیام" به عنوان مقدار ASCII گرفته و 48 را کم می کنیم تا ایندکس در آرایه asciiFont بدست آید. مقدار موجود در آن شاخص در codedChar ذخیره می شود.

قسمت اول پیام منتقل شده مربوط به LED های 47 ، 35 ، 23 و 11 (پایین صفحه نمایش) است. بنابراین برای عدد صفر 0x0F999F ، F (سمت چپ) در ابتدا ، 9 ثانیه و غیره جابجا می شود.

کاراکتر بعدی با پوشاندن هر نوک انگشت و انتقال آن به راست بارگیری می شود. برای مثال بالا ، الگوریتم (0x0F999F & 0xF00000) >> 20 ، سپس (0x0F999F & 0x0F0000) >> 16 و غیره را می دهد.

شاخص int ؛ if (outputPointer == 17 || outputPointer == 5 || outputPointer == 11) {char displayChar = message.charAt (messagePointer) ؛ // اولین کاراکتر پیام long codedChar = asciiFont [displayChar - 48] را بگیرید ؛ if (displayChar == 32) codedChar = 0x000000 ؛ messageBuffer [bytePointer+5] = بایت ((codedChar & 0xF00000] >> 20)؛ // همه چیز را بجز آخرین نوک پنهان کرده و آن را 20 بار (و غیره) تغییر دهید // این باید یک ضربه کوچک به ازای هر یک از مکانهای حافظه ایجاد کند. // هر شش نشان دهنده بر روی message messageBuffer [bytePointer+2] = بایت ((codedChar & 0x000F00] >> 8)؛ messageBuffer [bytePointer+1] = بایت ((codedChar & 0x0000F0) >> 4)؛ messageBuffer [bytePointer] = بایت ((codedChar & 0x00000F))؛ if (bytePointer == 0) {// حلقه اطراف bytePointer bytePointer = 12 را اداره کنید؛ } else {bytePointer -= 6؛ // ما از پایین به بالا پر می کنیم ؛ نکته: باید به حالت معکوس نگاه کنید تا ببینید آیا این کار را آسان تر می کند} if (messagePointer == message.length ()-1) {// حلقه اطراف پیام را مدیریت کنیدPointer = 0؛ } else {messagePointer += 1؛ // حرکت به نویسه بعدی}}

هنگامی که بافر بارگیری می شود ، موضوع ردیابی مکان نشانگر خروجی و بارگیری رشته LED با 48 بیت صحیح (4 فعلی و 44 قبلی) می شود. همانطور که قبلاً ذکر شد ، نوار نمونه ای از کلاس NeoPixel است و setPixelColor رنگ (RGB) هر پیکسل را تعیین می کند. تابع show () مقادیر نمایشگر را به رشته LED تغییر می دهد.

// حلقه برای تغییر مداوم بافر

// می خواهم کل نوار را در هر گذر از حلقه بنویسم ، فقط محل شروع تغییر می کند (int row = 12؛ row> 0؛ row--) {index = outputPointer + (12-row)؛ if (index> 17) index = outputPointer+(12-row) -18 ؛ // حلقه اگر بزرگتر از 17 برای (int column = 4؛ column> 0؛ column--) {strip.setPixelColor (uint16_t (12*(column-1)+(row-1))، uint8_t (RedLED*(bitRead (messageBuffer [index]، column-1)))، uint8_t (GreenLED*(bitRead (messageBuffer [index]، column-1))))، uint8_t (BlueLED*(bitRead (messageBuffer [index]، column-1)))))؛ // در هر مکان LED را روشن کنید اگر بیت یک باشد}} // outputPointer به پایین ترین بایت فعلی در رشته نمایش if (outputPointer == 0) outputPointer = 17 اشاره می کند؛ else outputPointer -= 1؛ strip.show ()؛ }

مرحله 21: جهان را با جذابیت خود به نام Ukulele متحیر کنید

Image
Image

نمونه اولیه Ukulele حدود 6 ماه طول کشید و متوقف شد.

بسیاری از فن آوری های جدید برای یادگیری و شاید برخی از نجاری و نظریه موسیقی برای راه اندازی!

برای نسخه بعدی چه باید کرد؟

  1. از شر صفحه نمایش و رمزگذار چرخشی خلاص شوید. آنها را با یک ماژول بلوتوث متصل به آردوینو جایگزین کنید. با استفاده از تلفن یا رایانه لوحی آن را از راه دور کنترل کنید. با بلوتوث همه چیز بهتر است.
  2. از راه دور الگوهای وتر را در زمان واقعی به روز کنید. چیزی که بهتر است برای برنامه باقی بماند.
  3. روکش های LED. نسخه فعلی هیچ مانعی برای جلوگیری از ورود گانک به سوراخ های LED ندارد. دوستی تعدادی لنز کوچک درست کرد ، اما من هرگز نتوانستم بفهمم چگونه آنها را به درستی در جای خود نگه دارم.
  4. مواد جایگزین فرت برد ، شاید تا زمانی که فرت ها نگه داشته می شوند چیزی واضح باشد.
  5. چراغ های بیشتر! با افزودن "ردیف" بیشتر محدودیت متن را حذف کنید. این واقعاً محدودیتی است که به دلیل اندازه تخته تخت و بدنه های LED ایجاد می شود.

دوباره ، دستورالعمل همراه را مشاهده کنید که مجموعه شخصیت هایی را که باید برای ایجاد پیمایش متن ایجاد کنم ، توصیف می کند.

خیلی ممنون که تا اینجا پیش رفتید! ماهالو!

توصیه شده: