Мазмуну:

Жарык Ukulele кантип куруу керек !: 21 кадам
Жарык Ukulele кантип куруу керек !: 21 кадам

Video: Жарык Ukulele кантип куруу керек !: 21 кадам

Video: Жарык Ukulele кантип куруу керек !: 21 кадам
Video: Мына сага фигура. Айгерим Расул кызы🍑🍑🍑🔥🔥🔥🍆🍆🍆 #bulbul #кыргызчаырлар #бишкек #кыргызстан #хит 2024, Июль
Anonim
Image
Image
План түзүү
План түзүү

Мен укулеле ойнойм. Бир аз орточо (эгер бул сөз) болсо, мен ойлодум, "эгер сиз чындап эле айымдарды таң калтыргыңыз келсе, аларды сахнада ойноп жаткан кырсыктан алаксытуу үчүн каражат керек". Демек, "Жарыктык Үкүлеле" төрөлгөн.

Бул долбоор Концерт Уккулеле комплектин алат жана ар бир сапта жана аркада Arduino көзөмөлдөгөн LEDди кошот. Ал ошондой эле LED сабынын режимин жана интенсивдүүлүгүн тандоо үчүн кооз OLED дисплейди жана айлануучу коддогучка негизделген колдонуучу интерфейсин кошот.

Толтурулган uke аппараттык өзгөчөлүктөрү:

  1. Arduino MICRO LED сабына, дисплейге жана киргизүү түзмөгүнө интерфейс үчүн.
  2. 48 өзүнчө программалоочу толук түстүү светодиоддор
  3. OLED дисплей
  4. Колдонуучу киргизүү үчүн ротациялык кодер
  5. Тышкы кубат жана Arduino программалоо үчүн USB интерфейси

Uke программасында төмөнкүлөр бар:

  1. Негизги жарык башкаруу режимдери диоддорду алардын кадамдары аркылуу иштетет
  2. Театрдын маркировка режими (спектаклдер үчүн абдан ыңгайлуу!)
  3. LED интенсивдүүлүгүн көзөмөлдөө
  4. Бардык биринчи позициядагы Ukulele аккорддорунун аккорддорунун толук китепканасы (аккорддун мааниси жана мүнөзү)
  5. Уникалдуу 4 х 6 пикселдик белгилердин жардамы менен иштеп жаткан текстти (вертикалдуу) көрсөтүү мүмкүнчүлүгү

Бул көрсөтмө аяктаган прототипти сүрөттөйт. Толук өнүгүү дастаны БУЛ ЖЕРДЕ жеткиликтүү, анын ичинде кээ бир билим берүүчү (ооруткан) каталар жана баалуу сабак, эмне үчүн сиз биринчи дизайныңызды аягына чейин бүтүрүшүңүз керек (кандай гана жаман нерселер болбосун). Сиз аягына чейин (жана андан кийин дагы эле билбейсиз!) Чындап билбеген нерселериңизди эч качан билбейсиз, бирок сиз кийинки дизайн үчүн алда канча жакшыраак жана алда канча акылдуусуз.

Мен прототипти Grizzly Concert Ukulele комплектинин айланасында кургам. Комплект менен баштоо укенин денеси жөнүндө тынчсызданууну бошотот (негизинен), жана чыныгы лютиер тибиндеги жумуштун көбүн жок кылат. Бул комплекттер эң сонун схемада анча деле кымбат эмес (жана ката кетиргениңиз үчүн азыраак оорутат).

1 -кадам: План түзүңүз

План түзүү
План түзүү

Кээ бир комплекттерде камтылган такта (же манжа тактасы) буга чейин тиркелген. Бул жакшы/жаман. Бул убакытты үнөмдөөчүдөй жагымдуу, бирок бургулоо үлгүсүн түзүү жана тегирменди тегиз кармоо жагынан алганда, бул бир аз оору. Комплектте камтылганды жок кылгандан кийин, мен жаңы фитборд сатып алууну чечтим (жакшы, башка комплект сатып алгандан башка арга жок болчу).

Тактайдын дизайнын иштеп чыгууда биз ПХБ менен Светодиоддорду коюу үчүн керектүү калыңдыктын өсүшүн эсептеп чыгышыбыз керек (жана пассивдүү компоненттерди да унутпайлы), бирок анчалык деле эмес, LEDлар фрейтборддун бетинен өтө алыс.

LED басма схемасы (PCB) жөнөкөй 2 катмар тактасы катары иштелип чыккан. Бул LED жипти колго чогултууга көп жардам берет жана Ukulele моюнуна механикалык күч берет (стекловолокно жана эпоксидүү). Мен макетти Eagleде баштадым, бирок тактайдын өлчөмүнүн чектелишинен улам Altium Designer колдонуп бүттүм. Altium схемалык жана PCB файлдары бул жерде.

Комплект фрейтбордунун калыңдыгы 0,125 дюйм болчу. Ошентип, 0,062 дюймдук калың ПХБны кабыл алып, кошумча 0,062 дюймга диоддорго жол берсек, анда биз көп нерселерди (баарында болгондой) кесүү керектигин билдиребиз. Ордун толтуруу үчүн, биз PCB үчүн моюнуна тийиштүү чөнтөгү бар фреттодогу диоддордун чөнтөктөрүн жарым -жартылай кесе алабыз, же биз бүтүндөй панельди (мен барган вариантты) Luther Mercantile Internationalдын (LMII) жоон версиясына алмаштыра алабыз., баштоо үчүн 0,25 дюйм.

БИРОК, эсиңизде болсун, дагы эле борттогу калыңдыктын өсүшүнүн ордун толтуруу үчүн моюнуңузду иштетүүгө туура келет. Сиз алган дагы бир артыкчылык - бул косметикалык нерсе, анткени ПХБ азыр тактайдын ичине толугу менен киргизилген, бул анын четин бүтүрүүнү оңойлотот (жана алда канча жакшы көрүнөт!) Жана моюн тегирменди жөнөкөйлөтөт.

Инженердик нерселер (эгер кааласаңыз, көңүл бурбаңыз):

Баса, бул чындыгында моюндун катуулугун ушунчалык бузбайт. ПХБнын материалдары баштапкы жыгачтан алда канча катуураак (Maogany модулу: 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. Жоон fretboard жайгаштыруу үчүн моюн тегирмен
  4. Керектүү жерлерде тешиктерди жасоо жана такта менен LED үчүн чөнтөктөрдү түзүү үчүн фрейтбордду тегирменге салыңыз
  5. Жарык диоддорун кармап турган ПХБны алыңыз жана куруңуз
  6. OLED дисплей, Ротари коддоочу жана кирүү панели үчүн Ukulele денесиндеги тегирменге кирүүчү тешиктер
  7. Жабуу плиталарын жасаңыз
  8. ПХБга зымдарды бекитүү; туташуу жана электрониканы сыноо
  9. Моюну Укулеле денесине бекиңиз
  10. PCB зымдарын корпуска өткөрүү үчүн кирүү туткасын бургулаңыз
  11. Түздөө жана моюнга PCB жана fretboard клей
  12. Тактайдын четин моюнга чейин тегиздеңиз (ашыкча материалды алып салыңыз)
  13. Чатыр зымдарын орнотуңуз
  14. Уккулеле үчүн маскировка жана финишти колдонуңуз
  15. Түздөө жана көпүрөнү бекитүү
  16. Электрониканы орнотуп, сынап көрүңүз.
  17. Тюнерлерди орнотуңуз жана аспапты кылыңыз
  18. Uke контроллерин программалаңыз
  19. Уккулеле укмуштууң менен дүйнөнү таң калтыр!

2 -кадам: материалдарды чогултуу

Биздин материалдардын тизмеси мындай көрүнөт:

  1. Укулеле комплект - Мен Grizzly концерттик Ukulele комплектин колдондум (Amazonдо Grizzly Uke Kit), бирок ал токтотулгандай көрүнөт. Зимо окшош моделди (Zimo Uke Kit @ Amazon) жасайт, ал бул ишти аткарат окшойт
  2. Ukulele fretboard, алдын ала оюкчалуу (LMII Uke Fingerboards). Алар fretboardду сиздин масштабга салышат, бул көйгөйдүн баш аламандыгын сактайт
  3. Эпоксид - мойнуна fretboard жабыштыруу үчүн. Мен ПКБ материалына шайкеш келгендиктен, эпоксидин тандадым. Жок дегенде 60 мүнөттүк жумуш менен бир нерсе издеңиз. 5 мүнөттүк түрдү КОЛДОНБОГУЛА, жөнгө салуу үчүн убакыт керек
  4. Fret зымдары - LMIIден дагы бар
  5. Ыңгайлаштырылган PCB - Altium файлдары бул жерде. Мен кадимки FR4 түрүндөгү материалды тандадым. Flex (polyimide) такталары кызыктуу (эгер кымбат болсо) альтернатива болмок, анткени алар алда канча ичке болот
  6. 48x Neopixel (SK6812) светодиоддору. Adafruit жана Digikeyден жеткиликтүү
  7. 48x 0.1uF 0402 капкактары - чоңураак, алгылыктуу, бирок сиз жайгаштырууну көрүшүңүз керек
  8. Hookup зымы - чаташтырбоо үчүн жок дегенде 4төн 6га чейин түстөр, мен негизинен 28 калибрлүү зымды колдондум. Жарык диоддун туташуусундагы DC түшүүсүн көрүңүз (VCC да, GROUND да … булак булакка кайтып келиши керек!)
  9. Ротари коддоочу-PEC16-4220F-S0024
  10. Fancy жыгач баскычы - айлануучу коддогуч үчүн (меники LMIIден алынды)
  11. OLED дисплей - 4D системаларынан OLED дисплейлери
  12. Тышкы USB батарейкасы - дайыма арзан, плюс сиз запастарын көтөрө аласыз!
  13. Arduino MICRO
  14. Табак жез - дисплей үчүн ардуино менен капкакты кармап туруу үчүн табак жасоо
  15. Ар кандай чыгымдалуучу материалдар, анын ичинде: зымырак, уретан катмары, попсикул таякчалары, резина боолор, ширетүү, флюс, щеткалар, эки тараптуу лента (мага UHC тасмасы 3М) жана кичинекей жез жыгач бурамалары (табак үчүн)
  16. Кошумча Ukulele өркүндөтүүлөрү - жакшыраак тюнерлер, саптар, жакшыраак жаңгактар жана ээрлер, эгерде сиз лютиердик эрдигиңизди көрсөткүңүз келсе, инлей)

3 -кадам: Керектүү куралдарды алыңыз

Эртеби -кечпи буларга жетүү же алуу керек болот:

Биздин куралдар тизмесине төмөнкүлөр кирет:

  1. Фрезердик станок - CNC артык, бирок сиз роутер жана көптөгөн ийгиликке жетишиңиз мүмкүн. Мен комбинацияланган CNC тегирменин/роутерди колдондум
  2. Роутердик биттер - карбид артык. Биз металлды эмес, жыгачты иштетип жаткандыктан, роутердин биттери тегирмендердин үстүнөн тандалат
  3. Кыскычтар - көп. Негизинен жабыштыруу учурунда тетиктерди кармоо керек
  4. Паяльник - жер үстүндөгү монтаждоо үчүн кичинекей учу
  5. Микроскоп же лупа - сиз бир гана көзүңүз менен ширете аласыз, бирок мен муну сунуштабайм, минимум 10 эсе
  6. Пинцет (тетиктерди ордуна коюу үчүн)
  7. Кыйноочу шаймандар (бул жерде LMII боюнча тиешелүү шаймандарды караңыз, бирок мен үйдө болгон нерсемди колдондум жана жасадым; балкалар, файлдар жана кескичтер)
  8. Жыгач кескичтери, отверткалар, жумшак сокку же чийки балка (асмандатуу үчүн) ж.
  9. Абразивдер - ар түрдүү кумдактар

Биздин программалык куралдар төмөнкүлөрдү камтыйт (кээ бирлери бюджетиңизге/тапкычтыгыңызга жараша милдеттүү эмес):

  1. Arduino программалык камсыздоо
  2. Ukulele баштапкы коду (https://github.com/conrad26/Ukulele)
  3. PCB макети пакети - Мен Altium колдондум, анткени Eagleдин бекер версиясы мен каалаган тактайдын өлчөмүн колдобойт. Altium - бул толук кандуу макеттин пакети жана чындыгында хоббистердин баа диапазонунда эмес. Мен прототип үчүн сайтыма Gerber файлдарын коштум, бирок булар сөзсүз түрдө жаңыртылышы керек
  4. 3D моделдөө программасы - Мен SolidWorks колдончумун, бирок бир бекер альтернатива FreeCAD (https://www.freecadweb.org/)
  5. CAM программасы - NC тегирменинин файлын түзүү үчүн Autodeskтен FeatureCAM сыяктуу.

Алтиумдан 3D -файлды экспорттоонун айкалыштырылышы, фреттбордун 3D модели менен бирге, баардык нерселердин туура экенине ынануудагы көп кыйынчылыктарды жок кылат, бирок бул талап эмес. Кылдаттык менен жайгашуу ошол эле натыйжага жетет.

Эми биз эмне кылууну каалаарыбызды жана эмне кылышыбыз керек экенин билгенден кийин, келгиле, Укулеле куралы.

4 -кадам: Калыңыраак тактайчаны жайгаштыруу үчүн моюнду тегирмениз

Калыңыраак тактайчаны жайгаштыруу үчүн моюн тегирмен
Калыңыраак тактайчаны жайгаштыруу үчүн моюн тегирмен

Фрезерлөөдөн мурун, фрейтбордун баштапкы бетинин тегиздиги сакталышы КЕРЕК, же сиз бурмаланган тактага ээ болосуз, бул ар кандай деңгээлдеги көйгөйлөргө алып келет.

Жөн эле ал жакка барбаңыз, шашпаңыз жана моюнуңузду кылдаттык менен жана катуу кысыңыз жана кесүүдөн мурун роутердин битине бүтүндүгүн текшериңиз. Бул жерде өткөрүлгөн убакыт кийин көп кайгыдан куткарат.

Мойнундагы калыңыраак тактайчаны тандаганымдын бир себеби - бетинин аянтынын көбөйүшү. Дагы бир себеби, моюн тегирменди жөнөкөйлөштүрөт. Сиз жөн эле ызы -чуусуз, бүткүл бетин керектүү бийиктикке чейин кесип саласыз.

5 -кадам: Светодиоддорду кармап турган ПКБны алуу жана куруу

Светодиоддорду кармап турган ПКБны алуу жана куруу
Светодиоддорду кармап турган ПКБны алуу жана куруу
Светодиоддорду кармап турган ПКБны алуу жана куруу
Светодиоддорду кармап турган ПКБны алуу жана куруу

Мен бүт куралды кол менен ширеттим. LED пакеттери эрип кетиши өзгөчө оңой, андыктан аларга зыян келтирбөө үчүн кам көрүңүз. Мен статикалык боону тагууну сунуштайм, анткени жип ар бир LEDдин иштешине көз каранды.

Fretboard дизайны WS2812B LEDлеринин тегерегинде негизделген. Мен фреттборддун биринчи октавасын гана жасоону чечтим (48 LED !!). Ар бир светодиодду сменалык реестрде бир бит деп ойлоого болот. Сменалык регистр 800 кГцте иштейт. Мен тез иштөө үчүн Adafruit китепканасын (программалоо бөлүмүн караңыз) колдондум.

Мен дизайнды Бүркүттө баштадым, бирок тактайдын өлчөмү 4х5 дюймга чейин чектелген, андыктан мен Алтиумга өтүүгө туура келди (же туура айтканда, мен тандадым). Мен Алтиумду жумушта колдоном, ошондуктан чындыгында бул мен үчүн иштерди тездетти. Altium долбоору, схемалык жана pcb файлдары (жана китепкана бөлүктөрү) менин сайтымда. Такта трапеция формасында жана узундугу 10 дюймга жакын. Мен контурду бир аз көбүрөөк кыскартууга аракет кылышым керек болчу деп ойлойм (кийинки айлануу!) Ассамблея жаман болгон жок, бирок эгер сиз аны төлөй алсаңыз, мен чынында татыктуу ширетүүчү темирди (JBC Soldering Iron) жана жакшы микроскопту сунуштайм. Ооба, мен бузулганмын жана жок, менин үй лабораториямда андай нерселер жок. Мен арзанмын.

Менде Sunstone компаниясында тактайлар болгон. $ 129 эки такталар үчүн. Бир жумалык бурулушка кепилдик берилет. Жеткирүүнү кыскартпаңыз. Мен UPSти колдонгондугумду байкаган жокмун жана тактайларым келиши үчүн кошумча жума күтүп калдым. Жалпы чогултуу убактысы болжол менен 2 саат (98 бөлүк) болгон.

6 -кадам: Fretboard тегирмени

Image
Image
Укулеле тулкусунда тегирменге кирүүчү тешиктер
Укулеле тулкусунда тегирменге кирүүчү тешиктер

Керектүү жерлерде тешиктерди жасоо жана тактай менен светодиоддор үчүн чөнтөктөрдү түзүү үчүн фрейтбордду тегирмендешибиз керек.

Мен Solidworks -те бүтүрүлгөн фрейтбордун 3D моделин түздүм жана FeatureCAMдын жардамы менен CNC фрезерлөө тартибин түздүм.

Моюн менен дененин ортосундагы бийиктиктин баскычынын өзгөрүшүн эсепке алуу үчүн, панелдин астыңкы бөлүгүн (үн тешигине эң жакын) ичке кылуу керек. Албетте, татыктуу экенине ынануу үчүн бир нече жолу сыноо керек.

Артка кылчайып карасак, фрезанын тактайына жакшыраак болушу үчүн анын колдонулбаган бөлүктөрүн кесип салышым керек болчу (менин арзан тегирменде 12 дюймдук X огу бар болчу). Иштин тартиби биринчи тегирмендин жоондугу тууралоолоруна чейин орнотулушу керек. чөнтөктөрдү тегирмендөө, бул чөнтөктөрдүн ортосундагы ажырымдын аз болушуна алып келиши керек.

Электр өткөргүчтөрү үчүн мейкиндикти кошуу үчүн кол менен тууралоолорду жасаңыз. Белгилей кетчү бир маанилүү нерсе, кээ бир чөнтөктөрдө, мен зым зым кете турган оюкка кирип кеттим. Бул дирижёр экенин эске алып, анын маанилүү нерсени кыскартып албашын текшериңиз. Ал ошондой эле материалдык беттин бекемдигин төмөндөтөт. Дизайн эч качан капкак тешиги менен кесилишпеши үчүн өзгөртүлүшү керек.

7 -кадам: Ukulele денесиндеги тегирменге кирүү тешиктери

Укулеле тулкусунда тегирменге кирүүчү тешиктер
Укулеле тулкусунда тегирменге кирүүчү тешиктер

Мен денедеги кирүү тешиктерин кол менен тегирмендегем. Эң кыйын жери - эң ийри беттин "эң тегиз" аймагын табуу. Контурду карандаш менен белгилеп, OLED дисплейине ылайыктуу келгенге чейин акырындык менен материалды тегирменден бөлүп алыңыз. Мен жезден жасалган корпусту алдым жана аны 3M VHB скотч менен бекиттим.

Эч бири өтө тактыкты талап кылбагандыктан, айлануучу коддогуч менен кирүү панелинин тешиктерин түзүү алда канча оңой.

8 -кадам: Каптоо плиталарын жасаңыз

Каптоо плиталарын жасаңыз
Каптоо плиталарын жасаңыз
Каптоо плиталарын жасаңыз
Каптоо плиталарын жасаңыз
Каптоо плиталарын жасаңыз
Каптоо плиталарын жасаңыз

Сиз ошондой эле дисплейдин капкагын жана кирүү панелин жабуу керек. Кирүү панелине USB (микро) туташтыргычы үчүн тешик (тик бурчтуу) керек. Жөн гана Arduinoдогу учурдагы туташтыргычты колдонуңуз, анткени микро USB үчүн панелди орнотуу үчүн көптөгөн параметрлер жок. (эгер мен нөлдөн баштап долбоорлоп жүргөн болсом, анда булардын бирин карап көрмөкмүн)

Тактайды ордунда кармап туруу үчүн, жезден мода L кашаалар жана аларды кирүү плитасынын артына ширетүү. Бул сизге жайгашууда бир аз кеңдикке мүмкүнчүлүк берет. Туура позициялоону алуу үчүн, адегенде Arduino MICRO үчүн перфорборттун орнотуу тактасын (орнотуу тешиктери менен) түзүңүз жана ага L кашаанын 2-56 машинанын бурамаларын колдонуңуз. Сиз андан кийин USB портун тизип, тактадагы кашаанын жайгашуусун так белгилей аласыз. Перфортборддон кронштейндерди алып салыңыз жана аларды ордуна коюңуз. Акыры, перфборбордун монтажын орнотуңуз.

Мен жездин жетүү панелин кармап туруу үчүн төрт кичинекей жез жыгач бурамасын колдондум.

Бул жерде мен акыркы жыйын баштала электе тестирлөөнү сунуштайм. Бул кадам милдеттүү эмес, бирок сунушталат. Жабыштыруудан мурун тууралоо кылуу алда канча оңой.

9 -кадам: PCBге зымдарды тиркөө; Туташуу жана Электрониканы сыноо

Image
Image
Моюнун Укулеле Денесине бекиңиз
Моюнун Укулеле Денесине бекиңиз

Электрониканы биротоло туташтырбаңыз. ПКБга зымдарды тиркеңиз, кирүү тешигинен чыгуу үчүн жетишерлик боштукту калтырганыңызды текшериңиз. Булар акыры Arduino MICRO тактасына биротоло тиркелиши керек (сүрөттөр мен кодду иштеп чыгуу үчүн колдонгон Arduino UNOну көрсөтөт)

10 -кадам: Моюнун Укулеле Денесине бекит

Укулеле комплектине кирген көрсөтмөлөрдү аткарып моюнун укулеле денесине бекиңиз. Өзгөчө фреттборддун бетинин укенин денесине тегизделишине көңүл буруңуз.

11 -кадам: PCB зымдарын денеге өткөрүү үчүн жетүү тешигин бургулаңыз

PCB зымдарын денеге өткөрүү үчүн кирүү тешигин бургулаңыз
PCB зымдарын денеге өткөрүү үчүн кирүү тешигин бургулаңыз

Клей кургатылган соң, ПКБдан келген зымдардын Ukulele корпусуна өтүшүнө мүмкүнчүлүк берүү үчүн ~ 1/4 (10мм) тешик бургулаңыз. Үн тактасын бузуп албаңыз.

Тактанын астындагы зымдардын калыңдыгына уруксат берүү үчүн кичине чөнтөк жасоо керек болушу мүмкүн (же каалоосуз түрдө туташууларды үстүнө коюп, борттогу рельефти кошуңуз.)

Дагы бир сыноо бул учурда зыян бербейт.

12 -кадам: ПКБ менен Fretboardду моюнга тууралап, чаптаңыз

Түздөө жана ПХБ менен Fretboardду моюнга жабыштыруу
Түздөө жана ПХБ менен Fretboardду моюнга жабыштыруу

Мен чаптоо алдында кысуу аркылуу ойлонууну сунуштайм (жана аны сынап көр!). Сизге жалпак кысуу бетин берүү үчүн моюндун астына формадагы блокту мода кылгыңыз келиши мүмкүн. Fretboard бул учурда моюндан чоңураак, андыктан буга уруксат бериш керек.

Кийинчерээк бүтүрө турган бетиңизге эпоксидин түшпөөсү үчүн өтө этият болуңуз. Жакшыраак, жабыштырылганга чейин бардык жабыштырылбаган беттерге масканы колдонуңуз, ал сиз каалаган жерге гана жетет.

Эпоксиден 60 мүнөттөн кем эмес иштөө мөөнөтүн колдонуңуз … сизге баары керек болот.

ПХБны биринчи орунга чаптаңыз, ашыкча клей фрейтбордун чаптоочу бетине түшпөсүн текшериңиз. Бул мойнуна fretboard тегиздөө үчүн бир ыкмасын камсыз кылат. ПХБда жылмакай маска бар, ошондуктан мен эпоксидин бир аз жакшыртылган бети менен камсыз кылуу үчүн аны бир аз зумурка менен бүктөдүм.

Тегиздеп, мойнуна клейди чаптаңыз. Кийинчерээк резонанс жаратышы мүмкүн болгон чөнтөктөрдү калтыруудан этият болуңуз (ызы -чуу!). Ошондой эле LED беттерине клей тийбеши үчүн этият болуңуз.

Клей кургатылгандан кийин, электрониканы дагы бир жолу зым менен текшерип көргүңүз келиши мүмкүн. Бир жаман LED жашоону жек көрүүгө түрткү берет. Менде прототипте бир жаман LED (биринчи!) Бар болчу жана мен жараксыз LEDге жетүү жана аны таза жамоо үчүн кээ бир чыгармачыл жыгачтарды жасоого туура келди.

13 -кадам: Fretboard четин моюнга чейин тегиздеп, Fret зымдарын кошуңуз

Клей кургатылган соң, четтерин бүтүрө баштасаңыз болот. Мен ашыкча фрейтбордун материалын кылдаттык менен кесип алдым (тегирменди колдонуп) жана акыркы миллиметрди кол менен тегиздөө менен бүтүрдүм.

Зымдарды кошуу балка менен гана жасалышы мүмкүн (күйүп кетпөө үчүн пластикалык бети менен). Жөн эле катуу балка чаппаңыз. Эгерде сиз сымдарды слотторго туташтырсаңыз, алар эч кыйынчылыксыз кириши керек.

Сиз көрүшүңүз керек болгон нерсе - LED чөнтөгүнүн жука бетин сындыруу. Прототипте мен кээ бир LED чөнтөктөрүнө (боштуктун кысылып калган 12 -челинин жанында) решеткага кирүүгө уруксат бердим. Бул жаман идея, анткени бул алсыз жерди жаратат, ал (жана) сынган зым салынгандан кийин жарылып кетиши мүмкүн.

14 -кадам: Уккулелага масканы колдонуп, аяктоону колдонуңуз

Тактачаны (бүтпөйт) жана көпүрөнүн жабыштыруучу жерин маска кылып, аягына чыгара баштаңыз.

Көпүрөнүн аймагын маскировкалап жатканда, комплект менен көрсөтмөлөрдү окуп чыккандан кийин, масштабдын узундугун текшериңиз. Мен прототип үчүн колдонгон комплект туура эмес масштабдагы узундукту колдонгон, ошондуктан көпүрөнү табуу үчүн туура эмес өлчөмдөрдү берген (бирок анын акыркы нускамаларды алуу үчүн веб -сайтты текшерүү үчүн жазуусу болгон!). Ичегим мага бул туура эмес экенин айтты, бирок мен сокурдук менен бийликти кабыл алдым.

Көрсөтмөлөрдү сокурдук менен аткаргандан көрө, ЭМНЕГЕ бир нерсе кылып жатканыңды түшүнүү дайыма жакшы.

Аяктоо үчүн, Интернетте эмне кылып жатышканын билген Лутьерлердин көптөгөн үйрөткүчтөрү бар, ошондуктан мен бүтүрүү процессине өтүүдөн мурун алар менен кеңешүүнү сунуштайм.

Мен, албетте, андай кылган жокмун, андыктан туура эмес пломбаны колдонуп калдым, натыйжада абдан дандын бети пайда болду. Андай кылба.

Үй тапшырмаңызды аткарыңыз.

15 -кадам: Көпүрөнү тегиздөө жана бекитүү

Түздөө жана көпүрөнү бекитүү
Түздөө жана көпүрөнү бекитүү

Бул кадам абдан жөнөкөй, бирок дагы бир жолу, кысуу ыкмаңызды пландап, жабыштыруудан мурун аны алдын ала сынап көрүңүз. Мен көпүрөнү бекитүү үчүн стандарттуу жыгач желимин колдондум.

16 -кадам: Электрониканы орнотуу жана тестирлөө

Электрониканы орнотуу жана тестирлөө
Электрониканы орнотуу жана тестирлөө

Эми зымдарды сулуу кылууга убакыт келди. Мындан тышкары, анын дененин ичине кирип кетишин жана ызы -чуу чыгарууну же андан да жаманы сахнада бузулушун каалабайсыз.

Arduino кодун USB порту аркылуу жаңыртууга болот, андыктан, эгер сиз каалабасаңыз, аны бөлүп алуунун кажети жок.

17 -кадам: Тюнерлерди орнотуңуз жана аспапты кылыңыз

Image
Image
Uke программалоо
Uke программалоо

Ошондой эле, кыязы, капалантууларды түздөп, бир аз орнотуу менен ойношуңуз керек болот, бирок аягына жакындап калганда азыр эмне үчүн тынчсызданышыңыз керек?

Мен тюнерлерди жаңыртып, жакшы Акиланын кылдарын колдондум, бул эч кандай үнгө жардам берген жок. Ошентип, сиз акчаңызды долбоордун укулелесине салып жатканыңызда эсиңизде болсун …

18 -кадам: Укени программалоо

Акыркы Arduino коду Githubда. Коддо келечектеги өркүндөтүүлөрдү колдоо үчүн кээ бир саптар бар (мисалы, метроном функциясы жана дисплей үчүн "жылдыргычтар" (слайдерге окшош UI элементи)

Бул код Rotary Encoder китепканасын колдонот (Rotary Encoder Arduino Library), Rotary Encoderден колдонуучулардын киргизүүсүн иштетүү үчүн.

Ал ошондой эле бул жерде жайгашкан Adafruit Neopixel китепканасын жана мисал кодун колдонот. Театр жана асан -үсөн режимдери китепкана менен берилген мисалдардан алынган. (strandtest.ino караңыз).

Дисплейдин драйвери 4D системасы менен камсыздалган жана Githubдан бул жерден табылган.

Укулеле долбоору үчүн ишке ашырылган эки уникалдуу функция бар. Биринчиси аккорд китепканасын ишке ашырат, экинчиси ыңгайлаштырылган символдордун жардамы менен жылдыруучу текст билдирүүсүн көрсөтөт.

Тиркелген диаграмма fretboard LED жайгашуусун жана алар кантип туташканын көрсөтөт. LED 0 жогорку оң бурчунда жайгашкан.

19 -кадам: Аккордду кантип көрсөтүү керек

Аккордду кантип көрсөтүү керек
Аккордду кантип көрсөтүү керек

DisplayChord функциясы ар бир аккорд үчүн манжа позицияларын (азырынча биринчи позиция) көрсөтөт. Колдонуучу тарабынан тандалган аккорддор (тамыр нотасы жана сапаты) индекстердин жупу катары сакталат. Булар өз кезегинде ар бир аккорд үчүн манжаларды издөө үчүн колдонулат.

Мен аккорддорду сактоо үчүн "GCEA" белгисин колдондум (мисалы, "А" "2100"). Аккорддор ар бир тамыр нотасы үчүн алдын ала эсептелип, аккорддун сапатына туура келген өзгөрмөлөрдө сакталат. (Ошентип, майор "2100" ге туура келген "majorChords" массивинин биринчи жеринде сакталат).

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

Бул текст сабы болгондуктан, ар бир цифра 9дан чоң түйшүктүү позицияларды эсепке алуу үчүн алты бурчтуу маанини көрсөтө алат. Башкача айтканда, А жана В 10 жана 11 диоддорун билдирет, биринчи позициялардын аккорддору үчүн бул көйгөй эмес болчу).

LED жип узундугу боюнча 12 (октава) катарында ар бир сапта (А сапынан башталат) өткөрүлөт, кийинки 12 чуркоо кийинки саптын биринчи кырынан башталат (18 -кадамдагы диаграмманы караңыз). Бул алгоритмдин кайсы аккорд үчүн кайсы жарыктарды күйгүзүүнү аныктоо үчүн маанилүү. Бул 0дон 11ге чейинки пикселдер - A диоддуу LED, 12ден 23кө чейин - E диоддуу LED жана башка. A = "2100" талдоодо (сап катары сакталган, коддо "\ n" нөл терминатору дагы бар), биз аны мындай чечмелейбиз: A сабында пикселдер күйгүзүлгөн эмес, E сабында пиксел 0 (fret 1) C сабындагы жарык жана пиксел 1 (fret 2) G сабында. Белгилей кетсек, "0" өчүк, биринчи LED эмес. Кабелдин негизинде биз 24 жана 37 диоддорун күйгүзгүбүз келет. Аккордду көрсөтүү коду төмөндө көрсөтүлгөн.

for (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 оператору өчүрүлгөн болсо текшерет. Эгер андай эмес болсо, анда ал аккорд символдун ascii маанисин талап кылат жана ledNumberди жарыктандыруу үчүн '0' үчүн ascii маанисин алып салат.

strip - Adafruit_NeoPixel классынын мисалы. SetPixelColor функциясы эсептелген пикселдин түсүн белгилейт (бул учурда (0, 125, 125) белгиленген.

20 -кадам: Жылдыруучу билдирүүнү кантип көрсөтүү керек

Жылдыруучу билдирүүнү кантип көрсөтүү керек
Жылдыруучу билдирүүнү кантип көрсөтүү керек

Ошентип, бизде 12 x 4 диоддуу диоддор бар … эмне үчүн аны жаркыраган кокустуктан башка нерсени көрсөтүүгө болбосун!

Биринчи маселе, дисктин бийиктиги (4) Ukeдеги саптардын санына байланыштуу чектелген. Горизонталдуу жылдыруу негизинен окулбай калат, бирок вертикалдуу багытта биз 4 x 5 белгини тигинен иштете алабыз.

Белгилерди "вертикалдуу" беш катар катары уюштуруу, эки символдун бир убакта көрсөтүлүшүн жана ар бир белгинин ортосунда бир сап боштукту түзүүнү билдирет.

Кыйынчылык стандарттык 4 х 5 тамга топтому жок болчу. Мен тиркелген таблицаны колдонуп өзүмдүкүн жасадым. Мен ар бир сапты он алтылык мааниге дайындадым (кайсы пикселдин күйүк же өчүрүлгөнүн көрсөтүүчү 4 бит). Беш алты бурчтуктун айкалышы бир белгини түзөт (мис. "0" - 0x69996).

Ар бир символдун мааниси ASCII тартибинде массивде сакталат. Белгилер топтому кээ бир тамгалар менен кээ бир компромисске келет, бирок көпчүлүгү түшүнүктүү. (жадыбалдын түбүндөгү чийүү - бул мен ойноп жаткан идеялар, анткени бизде түс бар, биз мүнөзгө "тереңдикти" кошуп, балким кошумча чечимдерди алабыз.

Көрсөтүлө турган сап саптын өзгөрмөсүндө камтылган.

Буфер каармандардын көрсөтүлүшүн көрсөтүү үчүн түзүлөт. Мен ойлойм, мен жөн гана которулган билдирүүлөрдүн тизмеги менен чоң буфер түзө алмакмын, айрыкча, билдирүүлөрдүн көбү 20 белгиден ашпашы керек. Бирок, мен анын ордуна үч белгиден турган (18 байт) буферди түзүүнү чечтим. Каармандардын экөөсү гана активдүү түрдө көрсөтүлүүдө, үчүнчүсү - алдыга көз салуу, бул жерде кийинки символ жүктөлөт. LED сабы (муну чоң жылыш реестри деп ойлойсуз) сап үчүн 48 бит менен жүктөлөт. Мен түшүнүктү жеңилдетүү үчүн бир аз эс тутумду текке кетирдим. Ар бир nibble өзүнүн эс тутумун алат, эс тутум талабын эки эсе көбөйтөт, бирок буфердин өлчөмү анча деле көп эмес.

Чыгуу индекси (көрсөткүчү) символ чек арасына жеткенде буфер кийинки символ менен жүктөлөт (outputPointer 5, 11 же 17).

Буферди жүктөө үчүн, биз "билдирүүдөгү" биринчи белгини ASCII мааниси катары кармап, asciiFont массивиндеги индексти алуу үчүн 48ди алып салабыз. Бул индекстеги маани 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] билдирүүсүнүн биринчи белгисин кармаңыз; if (displayChar == 32) codedChar = 0x000000; messageBuffer [bytePointer+5] = байт ((codedChar & 0xF00000) >> 20); // акыркы ниблден башкасынын баарын маска кылып 20га жылдырыңыз (жана башкалар) messageBuffer [bytePointer+4] = байт ((codedChar & 0x0F0000) >> 16); // бул ар бир эстутумдун жайгашкан жерине бир нибл салышы керек messageBuffer [bytePointer+3] = байт ((codedChar & 0x00F000) >> 12); // бардык алтысы белгиде чагылдырылган 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) {// messagePointer = 0 кабарынын айланасындагы циклди иштетүү; } else {messagePointer += 1; // кийинки белгиге өтүү}}

Буфер жүктөлгөндөн кийин, бул көрсөткүч кайда экенин көзөмөлдөө жана туура 48 бит менен LED сабын жүктөө маселеси болуп калат (азыркы 4 жана мурунку 44). Буга чейин айтылгандай, тилке NeoPixel классынын мисалы болуп саналат жана setPixelColor ар бир пикселдин түсүн (RGB) белгилейт. Show () функциясы дисплейдин маанилерин LED сызыгына жылдырат.

// буферди тынымсыз жылдыруу үчүн цикл

// циклдин ар бир өтүүсүндө бүт тилкени жазгыңыз келет, башталыш орду гана өзгөрөт (int row = 12; row> 0; row--) {index = outputPointer + (12-катар); if (index> 17) index = outputPointer+(12-катар) -18; // цикл эгерде 17ден чоң болсо (int колонка = 4; мамыча> 0; мамыча--) {strip.setPixelColor (uint16_t (12*(мамыча-1)+(катар-1)), uint8_t (RedLED*(bitRead (messageBuffer [индекс], мамыча-1)))), uint8_t (GreenLED*(bitRead (messageBuffer [index], мамыча-1))), uint8_t (BlueLED*(bitRead (messageBuffer [индекс], мамыча-1)))); // ар бир жерде LED бирдей күйсө, анда бит}} // outputPointer дисплей сабындагы учурдагы эң төмөнкү байтты көрсөтөт, эгерде (outputPointer == 0) outputPointer = 17; else outputPointer -= 1; strip.show (); }

21 -кадам: Укулелеңиздин укмуштуулугу менен дүйнөнү таң калтырыңыз

Image
Image

Акыркы Ukulele прототиби 6 айга жакын созулуп, токтоп калды.

Үйрөнүү үчүн көптөгөн жаңы технологиялар жана балким жыгач иштетүү жана музыкалык теория жүктөлөт!

Кийинки версия үчүн эмне кылыш керек?

  1. Дисплейден жана айлануучу кодерден арылыңыз. Аларды arduino тиркелген Bluetooth модулу менен алмаштырыңыз. Телефон же планшет аркылуу алыстан башкарыңыз. Bluetooth менен баары жакшы.
  2. Аккорд моделдерин реалдуу убакытта жаңыртыңыз. Колдонмого эң жакшы нерсе калды.
  3. LED капкактары. Учурдагы версия LED тешиктерине кирип кетишине жол бербейт. Бир досум кичинекей линзаларды түздү, бирок мен аларды кантип туура ордунда калтырууну такыр түшүнө алган жокмун.
  4. Альтернативдүү фрейтборд материалдары, балким, кашектер кармалып турса, ачык -айкын нерсе.
  5. Дагы жарыктар! Дагы "катарларды" кошуу менен тексттеги чектөөнү жок кылыңыз. Бул чындыгында фреттборддун жана LED денелеринин өлчөмүнөн улам келип чыккан чектөө.

Дагы, текстти жылдырууга уруксат берүү үчүн мен жараткан белгилерди сүрөттөгөн Instructable шеригин караңыз.

Ушул убакка чейин жеткиргениңиз үчүн чоң рахмат! Mahalo!

Сунушталууда: