html текст
All interests
  • All interests
  • Design
  • Food
  • Gadgets
  • Humor
  • News
  • Photo
  • Travel
  • Video
Click to see the next recommended page
Like it
Don't like
Add to Favorites

Светомузыкальный подарок любимой своими руками



Речь пойдет об устройстве очень простом в изготовлении (даже для начинающего электронщика-любителя), но при этом крайне интересном и полезном — электронной «музыкальной шкатулке». Также, в качестве примера, я покажу и расскажу об одном из возможных воплощений и применений этого девайса — про последний сделанный на его основе подарок своей девушке.

История создания


Тут будет много букв, относящихся к делу достаточно косвенно, и если хотите, можете перейти сразу к описанию устройства.

Началось все очень давно, несколько лет назад, когда я захотел сделать девушке какой-нибудь интересный, оригинальный и запоминающийся подарок на день рождения. И обязательно своими руками. Времени до праздника оставалось совсем немного, два дня, за которые надо было что-то придумать и, собственно, реализовать. День ушел на раздумья — в голове крутились сотни разнообразных вариантов, от всевозможных светодиодных «мигалок»-сердечек, до разных электро-механических поделок. Но все это было не то: или слишком просто и избито, или наоборот, достаточно сложно (а времени-то уже совсем-совсем не остается!). Внезапно мне пришла в голову простая, но замечательная, как потом выяснилось, идея: почему бы не сделать музыкальную открытку? Причем не простую, а с «фишкой», с оригинальной мелодией. Тем более, у нас была «своя песня», под которую мы познакомились и которая вызывала у нас всевозможные приятные романтические воспоминания и переживания.
Так появился на свет самый первый вариант «музыкальной шкатулки», прародитель, так сказать. Очень простой, собранный на скорую руку навесным монтажом из PIC12F675, пьезодинамика, фотодиода, пары резисторов, трехвольтового элемента 2016 и упакованный в нарисованную в фотошопе открытку. Открытка эта в результате умела при раскрывании (и попадании света на фотодиод) пропискивать прямоугольником ту самую мелодию. Вот так вот незатейливо и просто.
Но идея оказалась архиуспешна, во много раз больше, чем я ожидал. В последствии я сделал еще несколько таких простых открыток по просьбе своих знакомых, для их вторых половинок. И в каждом случае такой подарок вызывал массу эмоций как у самих одаряемых, так и у их родителей, подруг и знакомых :)
Прошло достаточно много времени, все закрутилось, проект подзабылся. Но так получилось, что я снова вспомнил про музыкальную шкатулку. На сей раз это должен был быть подарок на 8 марта. В то время я активно изучал микроконтроллеры Atmel, в частности игрался с ATtiny45, и под это дело решил музыкальный модуль усовершенствовать. Тем более, на этот раз времени было много. Тут то все и началось.
Выискивая разную информацию на просторах интернета я наткнулся на широко известный в узких кругах сайт мистера Чана. А конкретнее, на одну из его конструкций, миниатюрный синтезатор, как раз на любимом МК :) Некоторое время назад я уже почти закончил четырехканальный синтезатор на PIC18, но, увы, наработки в сердцах уничтожил (о чем еще не раз потом пожалел). А конструкция Чана была вполне самодостаточной и законченной. Оставалось добавить к ней только «спусковой механизм» и вперед!
Я немного допилил код, и спусковой механизм был готов. Но дальше все оказалось несколько менее радужно. Основная проблема конструкции была в том, что она слишком тихо звучала. Как я ни пытался, при прямом приводе динамика от пинов МК получалось тихо и все тут! В результате, было принято волевое решение добавить усилитель мощности. Выбор пал на наличествующий тогда в Терраэлектронике LM4900. Опять же, пришлось внести еще некоторые изменения в код мистера Чана, чтобы синтезатор правильно работал с внешним усилителем — сделать управление ногой энергосбережения, чтобы усилок не кушал батарейку при простое и перенастроить ШИМ для правильного вывода сигнала с одного пина. После этих изменений прототип заработал просто идеально. Тогда же я нарисовал первый вариант платы (в который, как потом выяснилось, закрался косяк :) и собрал музыкальную шкатулку по-человечески. Далее, все по проторенной дорожке — самодельная открытка, установка модуля и дарение-вручение.
Конечно, это устройство было на несколько голов выше предыдущих — очень реалистичное звучание «настоящей» шкатулки и полифония давали о себе знать :) Подарок, как и в прошлые разы, еще давно, вызвал фурор. И я также собрал друзьям около десятка таких модулей.

Теперь о самом устройстве


Текущая версия модуля, третья по счету, содержит в себе еще несколько изменений и одно интересное нововведение — светомузыкальный канал, к которому можно подключить, например, светодиод. Но обо всем по порядку.

Начнем со схемы, она очень простая:


Сердце ее — микроконтроллер ATtiny45/85. Он занимается, собственно, синтезом музыки, управляет светомузыкальным каналом и энергосбережением усилителя. Второй по значимости элемент — звуковой усилитель мощности TPA301D. К усилителю подключен динамик, который находится за пределами модуля. Еще есть транзистор BC847, управляющий светомузыкальным каналом и несколько пассивных элементов — резисторов и конденсаторов. Питается все это от 2-3 щелочных элементов (например, AAA), находящихся во внешнем батарейном блоке (самом обычном, китайском). Как видите, схема действительно элементарна.

Принцип работы схемы

Большинство времени устройство находится в «спящем режиме». МК засыпает по команде прошивки сразу после включения, предварительно «усыпляя» и усилитель, устанавливая на его ноге «SHUTDOWN» высокий уровень (путем подключения слабой подтяжки ноги «PB0» к «+» питания внутри МК). Просыпается МК по прерыванию c ноги «PB2/INT0». Изначально нога тоже подтянута к «+» питания внутри МК и ее надо замкнуть на землю.
С ножки «PB1/OC1A» МК звуковой ШИМ сигнал, дабы отфильтровать его от несущей, проходит через простейший RC-фильтр второго порядка (R2-C3), который должен быть рассчитан (а в нашем случае может быть и просто «прикинут») на частоту среза, много меньшую (раз в десять) несущей частоты. А отфильтрованный сигнал, через блокировочный конденсатор C2, уже поступает на вход усилителя.
МК управляет и дополнительным, светомузыкальным каналом. Для этого используется npn-транзистор Q1 в ключевом режиме, база которого подключена к ноге МК «PB4/OC1B» через токоограничивающий резистор R1. В цепи коллектора тоже может стоять ограничивающий резистор (R3) — не будет лишним. Транзистор также управляется ШИМ сигналом. Все выполнено очень просто — в лучших традициях «мигания» светодиодами с «ардуины» :)
По питанию стоит развязочный тантал (С1), простейший обвес усилителя, выполняющий как роль развязки (С4), так и регулировки коэфициента усиления (громкости), в общем-то, подсмотрен в даташите на усилитель. При необходимости, КУ может быть достаточно точно рассчитан по самой обыкновенной для ОУ методике соотношения сопротивлений входного резистора R4 и резистора обратной связи R5, так как громкость бывает полезно подкорректировать под конкретно взятый динамик или конструкцию.

Печатная плата

Проста до безобразия, нарисована в DipTrace:

Это уже третья версия, в которой учтены все предыдущие недочеты.
Плата рассчитана под поверхностный монтаж и односторонняя, что сильно упрощает процесс ее домашнего изготовления. Можно применить любой способ: лазерно-утюжный, фотоспособ или даже нарисовать дорожки маркером (на любителя, конечно).
Все элементы — 0805 (включая «нулевые» перемычки), тантал — A или B, транзистор в SOT23 и МК с усилителем в SO-8. Все «периферийные» компоненты — батарейный блок, динамик, светодиоды и кнопка (фоторезистор, геркон) подпаиваются к соответствующим «кружочкам» на плате. Вот и все.

Программная часть

Немного о синтезе звука
О способе синтеза, используемом в девайсе, доходчиво можно почитать в оригинале у мистера Чана вот тут. Можно еще загуглить «wavetable synthesis». Если же вы не владеете языком, то вкратце, в памяти МК хранится звуковой сэмпл (отдельно взятый звук), т.н. «wavetable», который в нашем простейшем случае условно делится на две логические части, в целом образующие «envelope»«attack», начало каждого нового звука, и «sustain», выдержку, постоянно зацикленный на протяжении звучания ноты фрагмент. Есть еще «decay», «дозвучка», часть, которая звучит после снятия ноты. У нас она реализована просто путем постепенного затухания звучания «sustain'а». В МК работает таймер, который с определенной частотой вызывает прерывание, где в соответствии с текущим положением по «envelope» и высотой звучания ноты выбирается нужное значение из памяти сэмпла. Причем, таким образом можно синтезировать сразу несколько каналов (то есть нот) одновременно, все зависит только от вычислительной мощности МК и частоты дискретизации (качества звучания). Дальше эти значения смешиваются и отправляются «на выход» (у нас — в регистр управления ШИМ). Все это безобразие, как я уже упоминал выше, называется «Wavetable synthesis» или «таблично-волновой синтез».

Ядро синтеза мистера Чана осталось практически неизменным. Немного поменял только метод вывода ШИМ, ввиду отказа от «прямого привода» динамика с МК. Добавил «спусковой механизм», управление энергосбережением МК и усилителя, а также написал код управления светомузыкальным каналом, который работает таким образом: по специальному событию из партитуры в нужных местах «зажигает» светодиод, и затем плавно его «гасит». Ну и «портировал» (сильно, конечно, сказано) код в Студию, для удобства.
Код написан на AVR ассемблере и состоит из нескольких файлов: «mbox.asm» — собственно, сама программа; «notes_pitch.inc» — указание соответствий мнемонических названий нот, используемых в партитуре, коэффициентам приращения позиции указателя в сэмпле (то бишь, в результате, высоте тона); «wavetable.inc» — данные сэмпла («таблицу») и кривую затухания «decay»; а «score.inc», как вы уже наверное догадались по названию, содержит партитуру исполняемого произведения, «ноты».
Изначально, в «wavetable.inc» самим Чаном «забит» звук шкатулки. Но при необходимости и желании его можно изменить на любой другой, используя вспомогательный скрипт «wav2asm.pl», или же просто руками.
Сложнее же дело обстояло с партитурой. Изначально предполагалось писать их вручную, что, несомненно, доставит массу удовольствия человекам-мазохистам, особенно если партитура совсем непростая.
Для человека, собирающегося использовать свою партитуру и, предположительно, по этому поводу хоть сколь-нибудь знакомому с музыкой и нотной грамотой, проще было бы нарисовать партитуру в любом доступном нотном редакторе и каким-то образом использовать ее. Для этого я написал специальную программку-конвертер, которая принимает «на вход» миди-файл формата 0, а «на выходе» отдает готовый файл «score.inc». Она же может самостоятельно расставлять события зажигания светодиода для всех встречающихся в первом канале нот, то есть, если мелодию изначально логически отделить от аккомпанемента и вынести в первый канал миди-файла, то мы получим партитуру, которая будет зажигать светодиод в такт с мелодией, если захотим и поставим галку. На самом деле, это, пожалуй, один из самых красивых вариантов работы дополнительного канала.
Еще программа умеет транспонировать результирующую партитуру на одну или две октавы вверх/вниз, что в определенных случаях может сильно облегчить работу по написанию партитуры.
Интерфейс программки выглядит просто, понятно и незатейливо, а исходники на Delphi прилагаются в комплекте:



К стати, как мне подсказали в свое время (почему-то я об этом совсем не подумал), в интернете есть куча ресурсов, откуда можно взять уже готовые мидишки с желаемыми мелодиями. Их нужно будет лишь немного доработать для использования в моем конвертере. А некоторые, возможно, даже и не придется дорабатывать.

Что еще может понадобиться?

Допустим, вы купили/достали все необходимые компоненты, тем или иным образом изготовили плату или, как вариант, просто спаяли все навесным монтажом. Что понадобится еще? Понадобится программатор. Если вы уже имели или имеете дело с AVR, то у вас он, скорее всего, уже есть. А так, подойдет, например, «USBasp» в сотнях воплощений или любой другой. Здесь нет ничего сверхъестественного. В архиве со всем-всем есть уже скомпилированный бинарник, который можно сразу заливать в контроллер и использовать, если нет намерений что-то править и пересобирать.

Применение


А теперь, как и обещал, расскажу и покажу одно из сотни возможных применений модуля, музыкальную розу Кавасаки.
Роза Кавасаки, один из шедевров оригами, вообще отдельная большая тема, ознакомиться с которой в полной мере можно на просторах интернета.
Конструктивно же, сама вещица выполнена из двух частей:
Первая, роза, сложена из цветного листа бумаги и приклеена на скрученный стебелек с листиками (тоже сложенными из цветной бумажки). Внутри стебля проходит толстая медная проволока (для прочности) а в самом низу спрятан небольшой неодимовый магнитик.
Вторая часть, ваза, выкроена и склеена из толстого белого картона. Внутри нее установлен сам модуль, динамик (приклеенный на резонирующий объем, заполненный ватой), сверхъяркие белые широкоугольные светодиоды, заматованные мелкой наждачкой и батарейный блок, закрепленный снизу вазы для удобства доступа к батарейкам. Ну и, конечно же, геркон — «спусковой механизм», работающий в паре с магнитиком в стебле. Он установлен таким образом, что модуль активируется при вынимании розы из вазы.
Схематично это выглядит примерно так:



А вот пара фотографий прототипа:





И видео работы. На видео играет композиция «Нежность», которую я переложил для шкатулки, и которая включена в архив как исходником (набирал в Sibelius) и мидишкой, так и готовой сгенерированной партитурой:



Как водится, дает о себе знать вечная моя проблема с нормальным звуком в видео. Тысяча извинений. Если интересно послушать в нормальном качестве как звучит конструкция, то можете скачать эмпэтришку вот отсюда.
Это — лишь одно из возможных применений конструкции. Как вы используете свой модуль будет зависеть от вашей фантазии ;)
Мне остается только пожелать вам успехов в этом нелегком творческом деле.
Дарите радость своим близким и любимым!

Скачать архив с исходниками и бинарниками прошивки, программы, чертежом схемы и платы, партитурой и прочими материалами можно вот здесь.

Дисклеймер и благодарности :)
P.S. Это мой первый пост здесь, так что, пожалуйста, сильно не пинайте, если в чем-то или как-то я оказался не прав.
P.P.S. Данный материал частично и в разрозненном виде я уже публиковал у себя в ЖЖ, более для себя, подметить какие-то моменты и оставить памятку, но так как устройство оказалось очень интересным и успешным, и уже несколько модификаций этого девайса в почти паре десятков воплощений с лихвой выполнили (и продолжают выполнять) свое предназначение — радуют слух и глаз девушек — то я решил рассказать о нем и вам.
P.P.P.S. Также на рассказ о нижеследующем девайсе тут, на Хабре, меня уже давно сподвигал товарищ dlinyj, и вот, наконец, я собрался с силами, подбил материал и решил-таки написать этот пост, за что Длинному огромное спасибо!
Читать дальше
Twitter
Одноклассники
Мой Мир

материал с habrahabr.ru

5

      Add

      You can create thematic collections and keep, for instance, all recipes in one place so you will never lose them.

      No images found
      Previous Next 0 / 0
      500
      • Advertisement
      • Animals
      • Architecture
      • Art
      • Auto
      • Aviation
      • Books
      • Cartoons
      • Celebrities
      • Children
      • Culture
      • Design
      • Economics
      • Education
      • Entertainment
      • Fashion
      • Fitness
      • Food
      • Gadgets
      • Games
      • Health
      • History
      • Hobby
      • Humor
      • Interior
      • Moto
      • Movies
      • Music
      • Nature
      • News
      • Photo
      • Pictures
      • Politics
      • Psychology
      • Science
      • Society
      • Sport
      • Technology
      • Travel
      • Video
      • Weapons
      • Web
      • Work
        Submit
        Valid formats are JPG, PNG, GIF.
        Not more than 5 Мb, please.
        30
        surfingbird.ru/site/
        RSS format guidelines
        500
        • Advertisement
        • Animals
        • Architecture
        • Art
        • Auto
        • Aviation
        • Books
        • Cartoons
        • Celebrities
        • Children
        • Culture
        • Design
        • Economics
        • Education
        • Entertainment
        • Fashion
        • Fitness
        • Food
        • Gadgets
        • Games
        • Health
        • History
        • Hobby
        • Humor
        • Interior
        • Moto
        • Movies
        • Music
        • Nature
        • News
        • Photo
        • Pictures
        • Politics
        • Psychology
        • Science
        • Society
        • Sport
        • Technology
        • Travel
        • Video
        • Weapons
        • Web
        • Work

          Submit

          Thank you! Wait for moderation.

          Тебе это не нравится?

          You can block the domain, tag, user or channel, and we'll stop recommend it to you. You can always unblock them in your settings.

          • habrahabr.ru
          • домен habrahabr.ru

          Get a link

          Спасибо, твоя жалоба принята.

          Log on to Surfingbird

          Recover
          Sign up

          or

          Welcome to Surfingbird.com!

          You'll find thousands of interesting pages, photos, and videos inside.
          Join!

          • Personal
            recommendations

          • Stash
            interesting and useful stuff

          • Anywhere,
            anytime

          Do we already know you? Login or restore the password.

          Close

          Add to collection

             

            Facebook

            Ваш профиль на рассмотрении, обновите страницу через несколько секунд

            Facebook

            К сожалению, вы не попадаете под условия акции