תוכן עניינים:

כיצד לבנות Ukulele מאיר !: 21 שלבים
כיצד לבנות Ukulele מאיר !: 21 שלבים

וִידֵאוֹ: כיצד לבנות Ukulele מאיר !: 21 שלבים

וִידֵאוֹ: כיצד לבנות Ukulele מאיר !: 21 שלבים
וִידֵאוֹ: תפסתי אותה על חםםםם!!!!!! 2024, נוֹבֶמבֶּר
Anonim
Image
Image
ליצור תוכנית
ליצור תוכנית

אני משחק באוקוללה. די בינוני (אם זאת מילה) אז חשבתי, "אם אתה באמת רוצה להרשים את הנשים, אתה צריך אמצעי להסיח את דעתן מהאסון שמתרחש על הבמה". מכאן שנולד "Ukulele Light-up".

פרויקט זה לוקח ערכת קונצרט Ukulele ומוסיף LED נשלט על ידי Arduino בכל מיתר ומיקום דאגה. הוא גם מוסיף תצוגת OLED מפוארת וממשק משתמש מבוסס מקודד סיבובי לבחירת המצב והעוצמה של מחרוזת ה- LED.

תכונות החומרה של uke שהושלמו:

  1. Arduino MICRO לממשק למחרוזת LED, תצוגה וקלט קלט.
  2. 48 נוריות צבע מלאות לתכנות בנפרד
  3. תצוגת OLED
  4. מקודד סיבובי לקלט משתמשים
  5. ממשק USB להפעלה חיצונית ותכנות ארדואינו

לתוכנת uke יש:

  1. מצבי בקרת אור בסיסיים המפעילים את הלדים לאורך קצבם
  2. מצב מרכזי תיאטרון מפואר (מאוד שימושי להופעות!)
  3. בקרת עוצמת LED
  4. ספריית אקורדים מלאה של כל אקורדי Ukulele במיקום הראשון (ערך אקורד ואופי)
  5. יכולת להציג טקסט פועל (אנכית) באמצעות ערכת תווים ייחודית של 4 x 6 פיקסלים

מדריך זה מתאר את אב הטיפוס שהושלם. סאגת הפיתוח המלאה זמינה כאן, כולל כמה טעויות חינוכיות (כואבות) ושיעור יקר מדוע עליכם לסיים את העיצוב הראשון עד תום (לא משנה כמה דברים מכוערים). אתה אף פעם לא יודע את כל הדברים שאתה באמת לא יודע עד שאתה מגיע לסוף (ואז אתה עדיין לא!), אבל אתה הרבה יותר טוב והרבה יותר חכם לעיצוב הבא.

בניתי את אב הטיפוס סביב ערכת Ukulele של קונצרט גריזלי. החל בערכה מוריד את הדאגה לגוף האוקט (ובכן, בעיקר), ומבטל את רוב העבודה האמיתית מסוג luthier. הערכות האלה די שלמות ולא כל כך יקרות במכלול הדברים (ופחות כואבות מכיוון שתעשו טעויות).

שלב 1: בנה תוכנית

ליצור תוכנית
ליצור תוכנית

לוח הלוח (או לוח האצבע) הכלול בחלק מהערכות כבר מחובר את הסריגים. זה טוב/רע. זה נחמד כחוסך זמן, אבל מבחינת פריסת תבנית מקדחה והחזקתה במקום בזמן הטחינה, זה קצת מכאיב. לאחר שהרסתי את זה שסופק בערכה, בחרתי (טוב, לא הייתה לי ברירה מלבד לקנות ערכה אחרת) לקנות לוח לוח חדש.

בעת עיצוב הלוח, עלינו לחשב את העלייה בעובי הדרוש להטמעת הלוח והנורות הלדים (ואל תשכח את הרכיבים הפסיביים), אך לא עד כדי כך שהנורות רחוקות מדי ממשטח הלוח.

הלוח המודפס LED (PCB) מעוצב כלוח דו -שכבתי פשוט. זה עוזר מאוד בהרכבת היד של מחרוזת ה- LED ומספק קצת חוזק מכני (זה פיברגלס ואפוקסי) לצוואר האוקוללה. התחלתי את הפריסה ב- Eagle, אך בסופו של דבר השתמשתי ב- Altium Designer בשל מגבלות גודל הלוח. הקבצים הסכמטיים וה- PCB של Altium נמצאים כאן.

לוח הלוח של הערכה היה בעובי 0.125 אינץ 'בלבד. לכן, בהנחה של PCB בעובי 0.062 אינץ 'ומאפשרת 0.062 אינץ' נוספים עבור נוריות הלדים, פירושו שנצטרך לחתוך הרבה (כמו בכל) מהלוח הלוח. כדי לפצות אנו יכולים לחתוך חלקית כיסים עבור נוריות הלוח בלוח המחבט עם כיס תואם בצוואר ה- PCB, או שנוכל להחליף את כל לוח הלוח (האפשרות שאליה הלכתי) בגרסה עבה יותר של Luther Mercantile International (LMII), שהם 0.25 אינץ 'להתחלה.

אבל, זכור כי עדיין תצטרך לכבד את הצוואר כדי לפצות על עלייה בעובי הלוח. היתרון הנוסף שאתה מקבל הוא קוסמטי, מכיוון שה- PCB מוטבע כעת לחלוטין בתוך לוח הלוח, מה שהופך את הקצוות להרבה יותר קלים לסיום (ונראים הרבה יותר נחמדים!) ומפשטים את כרסום הצוואר.

דברים הנדסיים (תתעלמו אם תרצו):

אגב, זה לא ממש פוגע בנוקשות הצוואר עד כדי כך. חומר ה- PCB נוקשה בהרבה מעץ הלוח המקורי (מודול מהגוני: 10.6 GPa מול מודול FR4: 24 GPa), בנוסף מכיוון שאנו בונים Ukulele, אין כמות עצומה של מתח מיתר שעלול אחרת לעוות (טוויסט) או עיוות) הצוואר.

שיקול אחד מאוד מעניין (שכנראה עדיין כדאי לי לחשב) הוא מה שקורה בטמפרטורה. באופן כללי עבור עץ, במקביל לתבואה, מקדם ההתרחבות התרמי הוא בערך 3 x 10^-6/K, ול FR4 הוא 14 × 10^−6/K. אז, יש הבדל די משמעותי. החשש הוא שמתח נוצר בצוואר כשהטמפרטורה משתנה, מה שבתורו מנתק את המיתרים. זה משהו שניתן לפצות על ידי החלת שכבה דומה בצד הנגדי של הציר הנייטרלי או על ידי קירוב ה- FR4 ככל האפשר לציר הניטרלי. אבל זה יישאר עבור 2.0 … משהו לדגמן ולהעריך.

האלקטרוניקה שוכנת בגוף האקדח. חורים נחתכים בקיר הצדדי (לא בלוח הקול!) של UKE כדי לפנות מקום לתצוגה ולמקודד הסיבוב, בתוספת לוחית לאחסון ה- Arduino Micro ולספק גישה לממשק ה- USB. סביר להניח שניתן יהיה לשפר את עיצוב לוחית/הרכבה ואת המיקום כדי לגרום לחיבור ה- USB לצאת במיקום נוח יותר, אך כפי שהוא נראה, זה לא כל כך גרוע, מכיוון שזה לא מפריע כשאתה משחק.

מתווה השלבים הוא כדלקמן:

  1. אסוף חומרים
  2. קבל את הכלים שאתה צריך
  3. טוחנים את הצוואר כדי להתאים את לוח הלוח העבה יותר
  4. טוחנים את הלוח כדי ליצור חורים במיקומים הנדרשים וליצור כיסים ללוח ולנורות
  5. להשיג ולבנות את ה- PCB המחזיק את הנורות
  6. חורי גישה לטחנה בגוף Ukulele לתצוגת OLED, מקודד רוטרי ולוח גישה
  7. הכינו צלחות כיסוי
  8. חבר חוטים ל- PCB; לחבר ולבדוק את האלקטרוניקה
  9. חבר את הצוואר לגוף האוקוללה
  10. מקדחים אחיזת גישה כדי להעביר את חוטי ה- PCB לגוף
  11. יישר והדבק את הלוח והלוח הצוואר
  12. יישר את קצוות הלוח לצוואר (הסר את החומר העודף)
  13. התקן את חוטי החשש
  14. החל מסכה והחל גימור על האוקוללה
  15. יישר וצרף את הגשר
  16. התקן אלקטרוניקה ובדוק.
  17. התקן מקלטים והדק את הכלי
  18. תכנות את בקר Uke
  19. להדהים את העולם עם המדהימות Ukulele שלך!

שלב 2: אסוף חומרים

רשימת החומרים שלנו נראית כך:

  1. ערכת Ukulele - השתמשתי בערכה של Grizzly Concert Ukulele (ערכת Grizzly Uke באמזון), אך נראה כי היא תיפסק. זימו מייצר דגם דומה (Zimo Uke Kit @ Amazon) שנראה שהוא יעשה את העבודה
  2. לוח לוח Ukulele, מחורץ מראש (LMII Uke Fingerboards). הם יחריצו את לוח הלוח בקנה מידה שלך, מה שחוסך בלאגן של בעיות
  3. אפוקסי - להדבקת הלוח אל הצוואר. בחרתי באפוקסי מכיוון שהוא תואם את החומר PCB. חפש משהו עם לפחות 60 דקות של חיי עבודה. אין להשתמש בסוגים של 5 דקות, אתה צריך זמן לבצע התאמות
  4. חוטי דאגה - זמינים גם ב- LMII
  5. PCB מותאם אישית - קבצי אלטיום נמצאים כאן. בחרתי בחומר מסוג FR4 רגיל. לוחות פלקס (פוליאמיד) יהיו אלטרנטיבה מעניינת (אם יותר יקרה), מכיוון שהם יכולים להיות דקים בהרבה
  6. נוריות 48x Neopixel (SK6812). להשיג ב- Adafruit ו- Digikey
  7. 48x 0.1uF 0402 כובעים - גדול יותר מקובל, אך עליך לצפות במיקום
  8. חוט חיבור - לפחות 4 עד 6 צבעים כדי למנוע בלבול, השתמשתי בעיקר בחוט של 28 מד. צפה בירידת DC בחיבורי החשמל LED (הן VCC והן GROUND … הזרם צריך לחזור למקור!)
  9. מקודד רוטרי-PEC16-4220F-S0024
  10. ידית עץ מפוארת - למקודד הסיבוב (קיבלתי את שלי מ- LMII)
  11. תצוגת OLED - ממערכות 4D מציגות OLED
  12. סוללת USB חיצונית - זולה יותר כל הזמן, בנוסף ניתן לשאת חלפים!
  13. Arduino מיקרו
  14. פליז גיליון - כדי להפוך את הצלחת להכיל את הארדואינו ואת המסגרת לתצוגה
  15. חומרים מתכלים שונים הכוללים: נייר זכוכית, גימור אורתאן, מקלות ארטיק, גומיות, הלחמה, שטף, מברשות, קלטת דו צדדית (אני אוהב את סרט UHC בגודל 3M) ומברגי עץ מפליז קטנים (לצלחת)
  16. שיפורי Ukulele אופציונליים - מקלטים טובים יותר, מיתרים טובים יותר, אגוז ואוכף טובים יותר, שיבוץ אם ברצונך להשוויץ ביכולותיך הנאמנות יותר)

שלב 3: קבל את הכלים הדרושים לך

במוקדם או במאוחר תצטרך להשיג או לקבל גישה לאלה:

רשימת הכלים שלנו כוללת:

  1. מכונת כרסום - עדיף CNC, אבל אולי אפילו תסתדר עם נתב והרבה מזל. השתמשתי בטחנת CNC/נתב משולבת
  2. נתבי נתב - עדיף קרביד. נתבי נתב שנבחרו על פני טחנות סוף מכיוון שאנו מעבדים עץ, לא מתכת
  3. מהדקים - הרבה מהם. בעיקר צריך להחזיק חלקים בזמן הדבקה
  4. מלחם - קצה קטן להלחמה על פני השטח
  5. מיקרוסקופ או זכוכית מגדלת - אתה יכול לנסות להלחם רק בעיניים שלך, אבל לא הייתי ממליץ על זה, מינימום 10x
  6. פינצטה (להנחת חלקים במקומם)
  7. כלי פריטה (ראה כלים מתאימים ב- LMII כאן, אך השתמשתי במה שהיה לי בבית והסתפקתי בפטישים, קבצים וחותכים)
  8. כלי יד מגוונים כגון אזמלים מעץ, מברגים, מכה רכה או פטיש עור גולמי (לדאגה) וכו '.
  9. חומרי שחיקה - גריסים שונים של נייר זכוכית

כלי התוכנה שלנו כוללים (חלקם אופציונליים בהתאם לתקציב/כושר המצאה שלך):

  1. תוכנת ארדואינו
  2. קוד המקור של Ukulele (https://github.com/conrad26/Ukulele)
  3. חבילת פריסת PCB - השתמשתי באלטיום מכיוון שהגרסה החינמית של איגל לא תומכת בגודל הלוח שרציתי. אלטיום היא חבילת פריסה מלאה וממש לא ממש בטווח מחירים חובבני. צירפתי את קבצי הגרבר באתר שלי לאב טיפוס, אך אלה בהחלט זקוקים לעדכון
  4. תוכנת דוגמנות תלת מימד - השתמשתי ב- SolidWorks, אך חלופה אחת חינמית היא FreeCAD (https://www.freecadweb.org/)
  5. תוכנת CAM - כמו FeatureCAM מאוטודסק ליצירת קובץ טחנת NC.

השילוב של ייצוא קבצים תלת -ממדיים מאלטיום יחד עם דגם תלת -ממדי של הלוח מבטל הרבה מהקושי לוודא שהכל מסתדר, אך אין זו דרישה. פריסה זהירה תשיג את אותה התוצאה.

עכשיו, כשאנחנו יודעים מה אנחנו רוצים לעשות, ומה אנחנו צריכים לעשות את זה, בואו נבנה Ukulele.

שלב 4: טוחנים את הצוואר כדי להתאים את הלוח העבה יותר

טוחנים את הצוואר כדי להתאים את הלוח העבה יותר
טוחנים את הצוואר כדי להתאים את הלוח העבה יותר

לפני הטחינה, שים לב שחייבים לשמור על מישור משטח ההרכבה המקורי של הלוח הלוח, או שתקבל לוח לוח מעוות, מה שמוביל לכל מיני בעיות עם פילוס דאגות.

רק אל תלך לשם, קח את הזמן והדק את הצוואר בזהירות ובקשיחות ובדוק את היישור לנתב הנתח על כל הצוואר לפני החיתוך. הזמן המושקע כאן יחסוך לך הרבה צער בהמשך.

אחת הסיבות שבחרתי בלוח לוח עבה יותר על גבי שיבוץ בצוואר הייתה שטח הפנים המורכב (הדבק). סיבה נוספת היא שזה מפשט את כרסום הצוואר. אתה פשוט מזמזם את כל המשטח לגובה הנדרש.

שלב 5: להשיג ולבנות את ה- PCB המחזיק את הנורות

להשיג ולבנות את ה- PCB המחזיק את הנורות
להשיג ולבנות את ה- PCB המחזיק את הנורות
להשיג ולבנות את ה- PCB המחזיק את הנורות
להשיג ולבנות את ה- PCB המחזיק את הנורות

הלחמתי ביד את כל ההרכבה. אריזות ה- LED קלות במיוחד להמיס, לכן הקפד להימנע מפגיעה בהן. אני מציע ללבוש רצועה סטטית מכיוון שהמחרוזת תלויה בכל עבודה של LED.

עיצוב הלוח מבוסס סביב נוריות ה- WS2812B. החלטתי לעשות רק את האוקטבה הראשונה של לוח הלוח (48 נוריות !!). כל LED יכול להיחשב כסיביות אחת במרשם המשמרות. מרשם המשמרות נעון על 800 קילוהרץ. השתמשתי בספריית Adafruit (ראה סעיף התכנות) כדי להפעיל דברים במהירות.

התחלתי את העיצוב ב- Eagle, אך גודל הלוח מוגבל ל 4 x 5 אינץ ', כך שהייתי צריך (או יותר נכון, בחרתי) לעבור לאלטיום. אני משתמש באלטיום בעבודה, כך שבמציאות זה עשה לי דברים מהירים יותר. פרויקט Altium, קבצים סכמטיים ו- pcb (וחלקי הספרייה) נמצאים באתר שלי. הלוח בצורת טרפז ואורכו כעשרה סנטימטרים. אני חושב שהייתי צריך לנסות לדחוס את המתאר עוד קצת (הסבב הבא!) ההרכבה לא הייתה רעה, אבל אם אתה יכול להרשות לעצמך, אני באמת באמת ממליץ על ברזל הלחמה הגון (JBC הלחמות) ומיקרוסקופ טוב. כן, אני מפונק ולא, אין לי דברים כאלה במעבדה הביתית שלי. אני זול.

הכנתי את הלוחות בסאנסטון. 129 $ לשני לוחות. מובטח סיבוב של שבוע. עם זאת, אל תתקמצן על המשלוח. לא שמתי לב שהשתמשתי ב- UPS ground ובסופו של דבר חיכיתי שבוע נוסף עד שהלוחות שלי יגיעו. זמן ההרכבה הכולל היה כשעתיים (98 חלקים).

שלב 6: טוחנים את לוח הלוח

Image
Image
חורי גישה לטחנה בגוף Ukulele
חורי גישה לטחנה בגוף Ukulele

עלינו לטחון את הלוח כדי ליצור חורים במיקומים הנדרשים וליצור כיסים ללוח ולנורות.

יצרתי דגם תלת מימד של לוח הלוח שהושלם ב- Solidworks ויצרתי את שגרת הטחינה של CNC באמצעות FeatureCAM.

יהיה צורך להפוך את החלק התחתון של הלוח (הקרוב ביותר לחור הסאונד) דק יותר כדי להסביר את שינוי הצעד בגובה בין הצוואר לגוף. בהחלט שווה לבדוק התאמה מספר פעמים בכדי להיות בטוחה שהתאמה צמודה למדי.

בדיעבד, הייתי צריך לנתק את החלקים הבלתי מנוצלים של לוח הלוח כדי להתאים את הטחנה טוב יותר (לטחנה הזולה שלי הייתה רק נסיעה 12 ציר X). יש להגדיר את סדר הפעולות עד להתאמות עובי הטחנה הראשונות לפני כיסי כרסום, מה שאמור להוביל לפחות התפרצויות בין הכיסים.

בצע התאמות ידניות לפי הצורך כדי להוסיף מקום לחיווט. דבר אחד חשוב לציין הוא שבחלק מהכיסים פרצתי לחריץ שאליו יעבור חוט הדאגה. בהתחשב בכך שמנצח, וודא שזה לא יקצר דבר חשוב. זה גם מקטין את חוזק החומר שמחזיק את הדאגה במקומה. יש לשנות את העיצוב כך שלא יצטלבו עם חריץ דאגה.

שלב 7: חורי גישה לטחנה בגוף Ukulele

חורי גישה לטחנה בגוף Ukulele
חורי גישה לטחנה בגוף Ukulele

טחנתי ידנית את חורי הגישה בגוף. החלק הקשה ביותר הוא למצוא את האזור ה"שטוח ביותר "של מה שהוא משטח מעוקל מאוד. סמן את המתאר בעיפרון וטוחן חומר בהדרגה עד שתתאים להתאמה הדוקה לתצוגת OLED. השגתי מסגרת פליז מעובדת והצמדתי אותה באמצעות סרט הדבקה 3M VHB.

מכיוון שאף אחד מהם אינו דורש דיוק רב, הרבה יותר קל ליצור את המקודד הסיבובי וחורי לוח הגישה.

שלב 8: הכינו לוחות כיסוי

הכינו צלחות כיסוי
הכינו צלחות כיסוי
הכינו צלחות כיסוי
הכינו צלחות כיסוי
הכינו צלחות כיסוי
הכינו צלחות כיסוי

כמו כן, עליך לייצר את לוחות המכסה של לוח התצוגה ולוח הגישה. לוח הגישה זקוק לחור (מלבני) עבור מחבר ה- USB (מיקרו). פשוט השתמש במחבר הקיים ב- Arduino, מכיוון שאין הרבה אפשרויות הרכבה על לוח עבור מיקרו USB. (אם כי אם הייתי מתכנן מאפס, הייתי נותן מבט לאחד מאלה)

כדי להחזיק את הלוח במקומו, הפוך את סוגרי L מתוך פליז והלחם אותם בחלק האחורי של צלחת הגישה. זה מאפשר לך קו רוחב במיקום. כדי לקבל את המיקום הנכון, צור תחילה לוח הרכבה פרבורד (עם חורי הרכבה) עבור ה- Arduino MICRO והצמד אליו את סוגרי L באמצעות 2-56 ברגי מכונה. לאחר מכן תוכל לשנות את המיקום כדי ליישר את יציאת ה- USB ולסמן במדויק את המיקומים עבור הסוגריים בצלחת. הסר את הסוגריים מלוח הבישול והלחם אותם במקומם. לבסוף הרכיבו את מכלול ה- perfboard.

השתמשתי בארבעה ברגי עץ מפליז קטנים כדי להחזיק את לוח הגישה מפליז במקומו.

בשלב זה אני ממליץ להתאים בדיקה לפני תחילת ההרכבה הסופית. שלב זה הוא אופציונלי אך מומלץ. הרבה יותר קל לבצע התאמות לפני ההדבקה.

שלב 9: חבר חוטים ללוח הלוח; חבר ובדוק את האלקטרוניקה

Image
Image
חבר את הצוואר לגוף האוקוללה
חבר את הצוואר לגוף האוקוללה

עדיין אל תצרף את האלקטרוניקה לצמיתות. חבר חוטים ללוח המודרני, וודא שאתה משאיר מספיק רפיון כדי לנתב את חור הגישה. אלה בסופו של דבר צריכים להיות מחוברים לצמיתות ללוח ה- Arduino MICRO (התמונות מראות UNO של Arduino, שהשתמשתי בו לפיתוח קוד)

שלב 10: חבר את הצוואר לגוף האוקוללה

חבר את הצוואר לגוף האוקוללה בהתאם להוראות המצורפות לערכת האוקוללה. צפה במיוחד ביישור משטח הלוח לגוף האוקט.

שלב 11: לקדוח חור גישה כדי להעביר את חוטי ה- PCB לגוף

לקדוח חור גישה כדי להעביר את חוטי ה- PCB לגוף
לקדוח חור גישה כדי להעביר את חוטי ה- PCB לגוף

לאחר שהדבק יתייבש, יש לקדוח חור בגודל של כ -1/4 "(10 מ"מ) בזווית כדי לאפשר לחוטי הלוח מהמעגל הלוח להיכנס לגוף האוקוללה. הקפד לא לפגוע בלוח הקול.

ייתכן שיהיה עליך ליצור גם כיס קטן כדי לאפשר את עובי החוטים מתחת ללוח (או אופציונלי לשים את החיבורים בחלקו העליון ולכלול הקלה בלוח הלוח.)

התאמה נוספת למבחן לא תזיק בשלב זה.

שלב 12: יישר והדבק את הלוח והלוח הצוואר

יישר והדבק את הלוח והלוח הצוואר
יישר והדבק את הלוח והלוח הצוואר

אני מציע לחשוב דרך ההידוק (ולנסות את זה!) לפני ההדבקה. ייתכן שתרצה לעצב בלוק המעוצב בחלק התחתון של הצוואר כדי לתת לך משטח הידוק שטוח. הלוח גדול מהצוואר בשלב זה, כך שעליך לאפשר זאת.

היזהר מאוד לא לקבל אפוקסי על כל משטח שתרצה לסיים מאוחר יותר. עדיף למרוח מיסוך על כל המשטחים הלא מודבקים לפני שאתה מדביק כדי לוודא שהוא מגיע רק לאן שהתכוונת.

השתמש באפוקסי עם מינימום 60 דקות חיי עבודה … תצטרך את כל זה.

הדבק את ה- PCB במקומו תחילה, וודא כי עודף דבק לא ייכנס לתוך משטח ההדבקה של לוח הלוח. זה מספק שיטה ליישר את לוח הלוח לצוואר. ל- PCB יש גימור של מסכת הלחמה חלקה, אז חיספתי אותו עם מעט נייר זכוכית כדי לתת לאפוקסי גימור משטח מעט משופר.

יישר והדבק את לוח הלוח לצוואר. היזהר לא להשאיר כיסים שעשויים להפוך לתהודה (באז!). כמו כן היזהר שלא לקבל דבק על משטחי הלד.

לאחר שהדבק יבש יתכן שתרצה לחוט ולבדוק את האלקטרוניקה פעם נוספת. נורית אחת גרועה תגרום לך לשנוא את החיים. היה לי נורית אחת גרועה (הראשונה!) על אב הטיפוס והייתי צריך לעשות עבודות עץ יצירתיות כדי לגשת לנורית הפגומה ולתקן אותה בצורה נקייה.

שלב 13: יישר את קצוות הלוח לצוואר והוסף חוטי דאגה

לאחר שהדבק יבש, אתה יכול להתחיל לסיים את הקצוות. חתכתי בזהירות את חומר הלוח העודף (בעזרת טחנה) וסיימתי את המילימטר האחרון בשיוף ידני.

הוספת חוטי הדאגה יכולה להתבצע בפטיש (עם פנים מפלסטיק למניעת נפילה). רק אל תפטיש חזק מדי. אם התאמת את חוט הדאגה לחריצים, הם צריכים להיכנס ללא קושי רב.

הדבר שעליכם לצפות הוא לשבור את המשטח הדק של כיס ה- LED. על אב הטיפוס, אפשרתי לכמה כיסי LED (ליד הדאגה ה -12, שם החלל מתמעט) להתרחב לתוך חריץ הדאגה. זה רעיון גרוע, מכיוון שזה יוצר נקודה חלשה שעלולה (ואכן) להיסדק לאחר הכנסת חוט הדאגה.

שלב 14: החל מסכה והחל סיום על האוקוללה

מסכו את לוח הלוח (הוא לא מקבל גימור) ואת אזור הדבקת הגשר והתחילו ליישם גימור.

בעת מסכת אזור הגשר, קרא את ההוראות עם הערכה שלך, ולאחר מכן בדוק שוב את אורך הסולם רק כדי להיות בטוח.הערכה שבה השתמשתי לאב טיפוס השתמשה באורך המידה הלא נכון ולכן סיפקה את המידות הלא נכונות לאיתור הגשר (אך הייתה לה הערה לבדיקת ההוראות העדכניות באתר). הבטן שלי אמרה לי שזה לא בסדר, אבל קיבלתי סמכות בעיוורון.

תמיד עדיף להבין מדוע אתה עושה משהו, במקום לעקוב באופן עיוור אחר ההוראות.

לסיום, יש הרבה הדרכות של Luthiers שיודעות מה הן עושות באינטרנט, אז אני ממליץ להתייעץ איתן לפני שקופצים לתהליך הגמר.

אני, כמובן, לא עשיתי את זה, אז בסופו של דבר השתמשתי באיטום הלא נכון, וכתוצאה מכך משטח מגורען מאוד. אל תעשה זאת.

תעשה שיעורי בית.

שלב 15: יישר וחבר את הגשר

יישר וצרף את הגשר
יישר וצרף את הגשר

שלב זה די פשוט, אך שוב, תכנן את שיטת ההידוק שלך ונסה אותה מראש לפני ההדבקה. השתמשתי בדבק עץ רגיל לחיבור הגשר.

שלב 16: התקן אלקטרוניקה ובדוק

התקן אלקטרוניקה ובדוק
התקן אלקטרוניקה ובדוק

עכשיו זה הזמן להפוך את החיווט שלך ליפה. בנוסף אתה לא רוצה שזה יתנפנף בתוך הגוף ויעשה קולות זמזום או גרוע מכך שבכל זאת יישבר על הבמה.

ניתן לעדכן את קוד הארדואינו באמצעות יציאת ה- USB, כך שבאמת אין צורך לפרק אותו אלא אם כן אתה רוצה להתעסק.

שלב 17: התקן מקלטים ומחרוז את המכשיר

Image
Image
תכנות Uke
תכנות Uke

סביר להניח שגם תצטרכו ליישר את הדאגות ולשחק קצת עם ההתקנה, אבל למה לדאוג עכשיו, כשאתם כל כך קרובים לסוף?

שדרגתי את המכוונים והשתמשתי במיתרי Aquila נחמדים, מה שלא עזר לצליל כלשהו. אז קח את זה בחשבון בזמן שאתה מפגיז כסף לפרויקט יוקלילה …

שלב 18: תכנות Uke

הקוד הסופי של Arduino נמצא ב- Github. יש כמה שורות בקוד לתמיכה בשיפורים עתידיים (כמו פונקציית מטרונום ו"מחוונים "לתצוגה (רכיב ממשק משתמש שנראה כמו מחוון)

קוד זה משתמש בספריית מקודד Rotary (Rotary Encoder Arduino Library) לטיפול בקלט משתמשים מהמקודד הרוטרי.

הוא משתמש גם בספריית Adafruit Neopixel ובקוד לדוגמא הממוקם כאן. מצבי התיאטרון והקשת נגזרים מדוגמאות המסופקות עם הספרייה. (ראה strandtest.ino).

מנהל ההתקן לתצוגה מסופק על ידי מערכות 4D ונמצא כאן ב- Github.

ישנן שתי פונקציות ייחודיות המיושמות לפרויקט Ukulele. הראשון מיישם את ספריית האקורדים, והשני מציג הודעת טקסט גלילה באמצעות ערכת תווים מותאמת אישית.

התרשים המצורף מציג את מיקומי הלד הלוחיים וכיצד הם מחוברים. LED 0 ממוקם בפינה הימנית העליונה.

שלב 19: כיצד להציג אקורד

כיצד להציג אקורד
כיצד להציג אקורד

הפונקציה displayChord מציגה את מיקומי האצבע (המיקום הראשון לעת עתה) עבור כל אקורד. אקורדים שנבחרו על ידי המשתמש (הערת שורש ואיכות) נשמרים כצמד מדדים. אלה בתורם משמשים לחיפוש אצבעות לכל אקורד.

השתמשתי בסימון "GCEA" לאחסון אקורדים (למשל "A" הוא "2100"). האקורדים מחושבים מראש לכל תו שורש ומאוחסנים במשתנה המתאים לאיכות האקורד. (כך, א -מז'ור, מאוחסן במיקום הראשון של המערך "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 "};

שים לב שמכיוון שמדובר במחרוזת טקסט כל ספרה יכולה גם לייצג ערך hex כדי להסביר מיקומי דאגה גדולים מ 9. כלומר, A ו- B ייצגו נוריות 10 ו- 11. עבור אקורדי מיקום ראשון, זו לא הייתה בעיה).

מחרוזת ה- LED מחווקת לאורך לאורך שורות של 12 (אוקטבה) לאורך כל מחרוזת (מתחילה במחרוזת A), הריצה הבאה של 12 מתחילה בדאגה הראשונה של המחרוזת הבאה (ראה התרשים בשלב 18). זה חשוב לאלגוריתם כדי לקבוע אילו אורות להדליק עבור אקורד נתון. זה אומר שפיקסלים 0 עד 11 הם נוריות ה- A מחרוזת A, 12 עד 23 הם נוריות ה- E מחרוזת וכו '. כאשר מנתחים A = "2100" (מאוחסן כמחרוזת, יש גם מסוף null "\ n" בקוד), אנו מפרשים אותו כך: אין פיקסלים במחרוזת A מוארים, וגם לא במחרוזת E, פיקסל 0 (דאגה 1) במחרוזת C מוארת ופיקסל 1 (דאגה 2) על מחרוזת G. שים לב ש- "0" כבוי, לא הנורית הראשונה. בהתבסס על החיווט, אנו רוצים להדליק נוריות 24 ו -37. הקוד להצגת אקורד מוצג להלן.

עבור (int i = 0; i <4; i ++) {if (int (אקורד - '0')) {// אלגוריתם לנתח את מחרוזת האקורד int ledNumber = int (אקורד - '0') + (3 - i) * 12 - 1; // ראה דיון לעיל, ה- (3-i) הוא להפוך את פס האינדקס. setPixelColor (ledNumber, 0, 125, 125); // setPixelColor (ledNumber, ערך אדום, ערך ירוק, ערך כחול)}}

הצהרת ה- if בודקת אם ה- LED כבוי. אם זה לא זה, זה לוקח את הערך ascii של הדמות, אקורד , ומחסר את ערך ascii עבור '0' כדי לגרום ל- LEDNumber להאיר.

רצועה היא מופע של המחלקה Adafruit_NeoPixel. הפונקציה setPixelColor קובעת את הצבע של הפיקסל המחושב (קבוע ב (0, 125, 125) במקרה זה.

שלב 20: כיצד להציג הודעת גלילה

כיצד להציג הודעת גלילה
כיצד להציג הודעת גלילה

אז יש לנו מערך 12 x 4 של נוריות LED … למה לא לגרום לו להציג משהו אחר מאשר דפוסי אור אקראיים למדי!

הבעיה הראשונה היא שגובה התצוגה (4) מוגבל למדי בשל מספר המיתרים ב- Uke. גלילה אופקית תהיה לרוב בלתי קריאה, אך בכיוון אנכי, אנו יכולים לתמוך 4 x 5 תווים הפועלים אנכית.

ארגון תווים כחמש שורות "אנכיות" פירושו שניתן להציג שתי תווים בו זמנית ומאפשר מרווח של שורה אחת בין כל תו.

הקושי היה שלא הייתה מערכת סטנדרטית של 4 x 5 תווים. הכנתי לבד בעזרת הגיליון האלקטרוני המצורף. הקצתי לכל שורה ערך hex יחיד (4 סיביות המייצגות איזה פיקסל מופעל או כבוי). הצירוף של חמשת ערכי ה- hex מהווים תו (למשל "0" הוא 0x69996).

הערכים עבור כל תו מאוחסנים במערך בסדר ASCII. מערך התווים מבצע כמה פשרות עם אותיות מסוימות, אך הרוב ברור למדי. (השרבוט בתחתית הגיליון האלקטרוני הוא רעיונות ששיחקתי איתם מכיוון שיש לנו צבע כאופציה, נוכל להוסיף "עומק" לדמות ואולי לקבל קצת רזולוציה נוספת.

המחרוזת המוצגת כלולה במשתנה המחרוזת, message.

נוצר מאגר המייצג את תצוגת התווים. אני מניח שיכולתי פשוט ליצור חיץ גדול עם כל רצף ההודעות המתורגמות, במיוחד מכיוון שרוב ההודעות יהיו פחות מ -20 תווים בערך. עם זאת, בחרתי ליצור מאגר קבוע בן שלושה תווים (18 בתים). רק שתיים מהדמויות מוצגות באופן פעיל, והשלישית היא מבט קדימה, שבו הטעינה הבאה נטענת. מחרוזת ה- LED (תחשוב על זה כעל מרשם שינויים גדול) נטענת עם 48 סיביות למחרוזת. בזבזתי קצת שטח זיכרון כדי שיהיה קל יותר להבין את זה. כל נשנוש מקבל את מיקום הזיכרון שלו, מכפיל את דרישת הזיכרון, אך זה לא הרבה בהתחשב בגודל המאגר.

המאגר נטען עם התו הבא כאשר אינדקס הפלט (מצביע) מגיע לגבול תווים (outputPointer ב -5, 11 או 17).

כדי לטעון את המאגר, אנו תופסים את התו הראשון ב"הודעה "כערך ASCII ומחסר 48 כדי לקבל את האינדקס במערך asciiFont. הערך באינדקס זה מאוחסן ב- codedChar.

החלק הראשון של ההודעה שהוצא החוצה תואם לנורות 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); // לתפוס את התו הראשון של ההודעה codedChar = asciiFont [displayChar - 48] ארוך; אם (displayChar == 32) codedChar = 0x000000; messageBuffer [bytePointer+5] = byte ((codedChar & 0xF00000) >> 20); // להסוות את כולם חוץ מהנשנש האחרון ולהעביר אותה ב 20 (וכן הלאה) messageBuffer [bytePointer+4] = byte ((codedChar & 0x0F0000) >> 16); // זה צריך להכניס נגיסה אחת לכל זיכרון messageBuffer [bytePointer+3] = byte ((codedChar & 0x00F000) >> 12); // כל השישה מייצגים on message messageBuffer [bytePointer+2] = byte ((codedChar & 0x000F00) >> 8); messageBuffer [bytePointer+1] = byte ((codedChar & 0x0000F0) >> 4); messageBuffer [bytePointer] = byte ((codedChar & 0x00000F)); אם (bytePointer == 0) {// לטפל בלולאה מסביב ב- bytePointer bytePointer = 12; } אחר {bytePointer -= 6; // אנחנו ממלאים מלמטה למעלה; הערה: צריך להסתכל על זה כדי לראות אם זה מקל} אם (messagePointer == message.length ()-1) {// לטפל בלולאה בהודעת messagePointer = 0; } אחר {messagePointer += 1; // לעבור לתו הבא}}

לאחר הטעינה של המאגר, זה הופך להיות עניין של מעקב היכן נמצא מצביע הפלט וטעינת מחרוזת ה- LED עם 48 הסיביות הנכונות (4 הנוכחי ו- 44 הקודמות). כפי שצוין קודם לכן, רצועה היא מופע של מחלקת NeoPixel ו- setPixelColor קובע את הצבע (RGB) של כל פיקסל. הפונקציה show () מעבירה את ערכי התצוגה למחרוזת LED.

// לולאה כדי להחליף את המאגר ללא הרף

// רוצים לכתוב את כל הרצועה בכל מעבר דרך הלולאה, רק מיקום ההתחלה משתנה עבור (int שורה = 12; שורה> 0; שורה--) {index = outputPointer + (12 שורות); אם (אינדקס> 17) index = outputPointer+(12 שורות) -18; // לולאה אם גדולה מ -17 עבור (int column = 4; column> 0; column--) {strip.setPixelColor (uint16_t (12*(עמודה -1)+(שורה -1)), uint8_t (RedLED*(bitRead) (messageBuffer [אינדקס], עמודה -1))), uint8_t (GreenLED*(bitRead (messageBuffer [אינדקס], עמודה -1))), uint8_t (BlueLED*(bitRead (messageBuffer [אינדקס], עמודה -1)))); // בכל מיקום הדליקו את ה- LED אם הסיבית היא אחת}} // outputPointer מצביע על הבייט הנמוך ביותר הנוכחי במחרוזת התצוגה אם (outputPointer == 0) outputPointer = 17; else outputPointer -= 1; strip.show (); }

שלב 21: להדהים את העולם עם המדהימות של Ukulele שלך

Image
Image

אב הטיפוס הסופי של Ukulele לקח בערך 6 חודשים של התחלות ועצירות להתנתק.

הרבה טכנולוגיה חדשה ללמוד ואולי קצת עבודות עץ ותיאוריה מוזיקלית לאתחול!

מה לעשות לגרסה הבאה?

  1. היפטר מהתצוגה ומהמקודד הסיבובי. החלף אותם במודול Bluetooth המחובר לארדואינו. שלוט בו מרחוק באמצעות טלפון או טאבלט. הכל טוב יותר עם בלוטות '.
  2. עדכן מרחוק את דפוסי האקורד בזמן אמת. משהו הכי טוב נשאר לאפליקציה.
  3. כיסויי לד. הגרסה הנוכחית אינה עושה דבר כדי למנוע מהאשכול להיכנס לחורי הלד. חבר הכין חבורה של עדשות קטנות, אך מעולם לא הצלחתי להבין כיצד לגרום להן להישאר במקום כהלכה.
  4. חומרי לוח לוח חלופיים, אולי משהו ברור כל עוד הסריגים מחזיקים.
  5. עוד אורות! סלק את האילוץ על הטקסט על ידי הוספת "שורות" נוספות. זוהי למעשה מגבלה הנגרמת על ידי גודל הלוח והגופי LED.

שוב, עיין במלווה Instructable המתאר את ערכת התווים שהייתי צריך ליצור כדי לאפשר טקסט גלילה.

תודה רבה שהצלחת להגיע עד כאן! מאאלו!

מוּמלָץ: