Pull to refresh

Comments 41

UFO just landed and posted this here
Так еще не окончено. Еще на пост материала есть :)
ПЗУ с мелодией. Хо-хо, настоящий душераздирающий звонок собирался на 155ИД3 с подстроечниками и играл аж 14 нот.

image
Как-то сложно все тут. Счетчик, потом дешифратор… Интересно, почему они просто сдвиговый типа ИР8 не воткнули? Или просто на той же «рассыпухе» не собрали. Наверное, что было у автора под рукой, то и собрал. Прям как у меня.
ИД3 тут, потому что выходов много, аж 16 штук. Со 2 по 14 «генерят» по одной ноте, задаваемой подстроечником.
Полагаю, что элементная база была недефицитная на момент разработки.
С детства помню хтоническое звучание темы из «Крестного отца» на этом девайсе.
Ну да. Но все равно — эта схема плохо именно своей «неповторяемостью», ибо правильно накрутить подстроечники мало кто из радиолюбителей сможет. С ПЗУшкой в этом отношении лучше — на каждом приличном предприятии были свои АСУ с программаторами.
Ну, да, здесь мелодию нужно было «накручивать» на слух. Зато любую, свою. И без доступа к сложному оборудованию, достаточно горстку распространенной логики добыть.

Хотя, при особом упоротом желании можно было все промерить и рассчитать.
Ну у меня чего-то чешется сразу после машинки (всего один пост остался, если не размахнусь) все-таки собрать звонок, но хардкорный, с «почти синусоидой» на выходе. Правда, я пока не придумал ответа на главный вопрос «зачем?», потому что дома у меня звонок отключен: кому надо, в телефон позвонят, а остальные пусть долбятся…
Предложу более жестокую идею — AY-3-8910.
Я хочу на ней не звонок, но будильник делать.
А они еще разве производятся? Надо будет посмотреть…
Я после этого поста загорелся.
Наибеить не проблема (цены, правда, всякие разные), я нашел AY-3-8912 за 800 рублей за 5 штук. Дороговато, но уж очень захотелось.
Хм (полез искать даташиты) может, проще сымитировать звук…

Опять проблема — мелодии надо под него искать :)
С мелодиями проблем нет, скорее есть проблема с их выбором, ибо много. zxtunes.com/
Имитация — без проблем, я на малинке развлекался, наверняка есть варианты и для более простых железок.
Но хочется именно «железный» хардкор устроить.
(ушел в нирвану. не беспокоить) Эта, так это же… Ва-а-аще!

Тоже захотел будильник, но согласен на софтверную эмуляцию.
Эмуляция есть, но на atmeg'е: www.avray.ru/RU/. Плюс исходники в каком-то Algorithm Builder, это типа программируешь рисуя алгоритм на экране. ASM-же версия похоже результат работы компилятора с этого языка(?), просто откоментированный местами. Короче я в такой наркомании не особо силен, но единственное что я понял — автор использует 3 аппаратных PWM у AVR.

Я думал о возможности переноса на PIC, но не многие из дешевых старинных PIC (типа PIC16...) имеют более 2 PWM, а чаще — один или ноль. Поэтому если делать 3 канальную эмуляцию, как в оригинальной AY, то использовать нужно программный PWM. А для этого нужно посчитать, хватит ли 20 МГц на все про все — прием данных по паралельному интерфейсу и программная генерация трех канального звука. То есть нужно думать и считать, считать и думать, а мне лень -)

Но ваще, я на PIC16 видел 8-ми канальное пианино с вменяемым звуком: www.pic24.ru/doku.php/osa/articles/pk2_osa_piano, можно видео заценить. Вполне себе, ящетаю. Так что в теории — можно. Но нужно подумать как.

Плюс, совершенно недавно узнал о существовании такой дивной микросхемы, как Philips SAA 1099. Появилась на PC сцене как Creative Music System Затем ставилась в первые Sound Blaster вместе с Adlib, но была жестоко вытеснена последним. А ваще, в одной этой микросхеме 6 каналов (вместо 3 у AY), стерео выход. В Creative Music System и Sound Blaster ставились сразу две таких микросхемы, что давало 12 каналов. Увы, с музычкой для данных чипов плохо — только древние игры под DOS, ни трекеров, ни треков. Только разве что для Sam Coupe, в котором стояла одна SAA 1099 есть десяток-другой треков. Кстати послушать можно тут: velesoft.speccy.cz/saa1099-cz.htm, там в конце страницы MP3-шники. На мой взгляд ничуть не хуже AY, а за счет бОльшего числа каналов порой и гораздо интереснее…
хватит ли 20 МГц на все про все


5 MIPS и не хватит? ой вэй! :)
«мы взяли и тормознули pentium III». мипсов всегда мало, даже если их число выражается трех- и четырех- значными числами :)
Значит железо не под задачу выбрано :)
А как на счет попользовать внутренние ништяки типа NCO+CLC=16bit PWM и так далее?
Скажу честно, я долго колебался, что бы их не заиспользовать (как и dac тот же), но потом решил, что лучше в общем описать, что бы сами принципы были описаны. Ибо тогда проще повторить что на пике, что на тиньке или 8051…
Пауза в 5 раз больше стала, скорее всего, из-за обработчиков прерываний. Вообще, эти макросы _delay_ms() и прочие подобные создают цикл задержки, учитывая только тактовую частоту контроллера, но по очевидным причинам не принимают во внимание время на обработку прерываний.
Совершенно правильно!
А можно по-подробнее, зачем общую ногу светодиода вешать на ногу контроллера?
Что бы каждым светодиодом можно было управлять индивидуально и в то же время сэкономить на выводах контроллера.
Типовая схема матрицы получается, где можно перебирать на большой скорости столбики-колонки и зажигать нужные светодиоды разностью потенциалов.
Динамическая индикация?
Все, спасибо, понял. Мне почему-то померещилось, что RGB ноги всех диодов разведены по разным ногам контроллера, а не сгруппированы. Теперь вопросов нету.
Я фигею от попытки Меня, мягко говоря, удивляет попытка реализовать что-то, о природе чего реализатор не имеет даже мало-мальского теоретического представления (имеется в виду часть I).

Практика, она, конечно, основа познания, но, например, прочитать о том, что октава означает изменение частоты тона в 2 раза и состоит из 12 равномерно отстоящих интервалов (каждый из которых соответственно, отличается от соседнего в корень 12-й степени из двух), а счетчик в режиме делителя частоты всегда дает 1/x, и следовательно сугубо нелинеен, было бы крайне полезно до, а не после — сэкономило бы при отладке много времени, и позволило бы отлаживаться не методом тыка, а более осмысленно. Тогда бы автор просчитал в Экселе заранее коэффициенты деления счетчика для пары октав, написал бы простенький генератор табличных констант для этого — и все бы получилось сразу
Ну можно было бы представить, что я знал все, о чем пишу. Но раз стоит галочка tutorial, то по-моему лучше показать, как это достигается. Со всеми заморочками, траблами и прочим. Иначе, по-моему, все превратится в занудное «делайте так и так» без какого-либо «а почему именно так»…
Надо же, мигалки на микроконтроллере :) А у меня есть решение, которое могу назвать инженерно красивым, т.к. оно решает аналогичную задачу с гораздо более меньшими ресурсами.
Я в своем детстве делал такую штуку: надо взять кусок провода, частично очистить от изоляции, и свернуть из него кружок диаметром в 1 см, чтобы половина окружности была в излояции, а половина без и прикрепить с внутренней стороны от колеса. Ответной частью будет кусок провода, прикрепленный к колесу таким образом, чтобы он скользил по этой окружности и одновременно касался металлической оси. Ну и, соответственно, к металлической оси подводим плюс от батарейки.
Получается, если катить машинку, то огрызок провода на колесе сначала двигается по полуокружности с изоляцией, а потом по оголенному, и мигалки мигают. Да, частота зависит от скорости, но так было даже интересно. И все это на удивление стабильно работало и вызывало дикий восторг у друзей :)
Идея хорошая, но, к сожалению, механические узлы подвержены слишком большому износу и провод может быстро начать терять контакт. Хотя, в случае с детскими игрушками есть шанс, что сама игрушка надоест быстрее.
Надо еще сервы прикрутить, чтобы низкий таз радовал глаз
Гидравлику, ага. Чтобы лоурайдер.
В соседнем топике мелкую пневматику используют
за 180 микросекунд (3мс/16) светодиод не успевает «разгореться».

Простите? Вас сейчас на цитаты разберут)
Так, между прочим, у вас схема включения светодиодов неправильная. На резисторах в этом деле (и в этом включении) не экономят.
Пусть разбирают. Если про то, что один резистор на 3 «светодиода», так это специально. В финальной версии они никогда вместе не горят, поэтому нет смысл ставить их в 3 раза больше.
На них совершенно разное падение напряжения, поэтому резисторы тоже разные нужны. Либо яркость каждого диода корректировать программно. Иначе белого так и не получится.
Ну а за частоту работы не беспокойтесь, они способны вытянуть гораздо больше. Например, один из способов сливания прошивки с некоторых мыльниц кэнон — заливка на него программы, которая считывает ПЗУ бит за битом и моргает в такт красным светодиодом. Сигнал от этого диода и представляет собой дамп.
Да чего далеко ходить, в некоторых ИК-пультах частота модуляции составляет 400 кГц. Не помню какая фирма этим промышляет, у большинства 40 кГц.
Ну видимо, у меня какие-то неправильные RGB светодиоды. И горят с одинаковой яркостью (и именно поэтому их взял) и «разгореться не успевают/успевают погаснуть».

Надо будет на досуге сравнить их ттх с обычными…
вроде почему есть до-диез, но нет ре-диез, а вместо него ми-бемоль?

На самом деле есть и диезы на все ноты, и бемоли:

до# = реb
ре# = миb
ми# = фа
ми = фаb
фа# = сольb
соль# = ляb
ля# = сиb
си# = до
си = доb

Просто знаки при ключе идут в определенном порядке (отсортированы по частоте встречаемости в тональностях): диезы в порядке фа, до, соль, ре, ля, ми, си (т.е. например в тональности с двумя диезами будут фа и до, с пятью — фа, до, соль, ре, ля); бемоли в обратном порядке — си, ми, ля, ре, соль, до, фа. Потому вероятность встретить ми-бемоль гораздо выше, чем ре-диез (первая встречается в 6 тональностях, вторая только в четырех). Этим и обусловлен выбор названий нот в таблице.
То есть просто «так все привыкли»? И если кто-то написал ми-диез, а кто-то фа-бемоль, то на самом деле они имели в виду одно и тоже, только подошли с разных сторон?
ми# != фаb (см. таблицу выше)
Однако да, если кто-то написал например ре#, а кто-то миb — то они имели ввиду одну и ту же ноту.
Хотя, раньше это были разные ноты, и отличались на какую-то часть тона (то ли 1/8, то ли 1/16), и эту разницу не каждый мог услышать. Но потом все упростили, и в результате мы имеем то что имеем.
Ага, я как обычно ошибся, но суть уловил. Спасибо!
Only those users with full accounts are able to leave comments. Log in, please.