Программирование BASCOM
Меню сайта
Категории каталога
Мои статьи [114]
Наш опрос
Оцените мой сайт
Всего ответов: 1181
Главная » Статьи » Мои статьи

Пошарманим?

Это не то, о чём сразу подумали радиолюбители с приличным стажем. Это просто предложение повторить удивительное по своей простоте и производимому эффекту устройство от нашего друга Евгения (Ev3658) с форума http://bascomavr.3bb.ru/. Повторить, вспомнить прекрасное детство, успокоиться и вновь окунутся в текущую рутину...

Вот и осень наступила, холода, .........
Чтоб не упасть в отчаянную депрессию, так как на работе задерживают зарплату, и если её выдадут, то вместе с зарплатой...вообщем созрело одно устройство.
Помните, барабанчик шарманку времён СССР?

Два дня не мог вспомнить название мелодии и кажись вспомнил!!! Но скажу позже.
Спасибо за чудную статью - Синтезатор речи RC2 на AVR (говорилка), опять выручила. 
Нашел в VK звук ноты, отрезал кусок и получил блок DATA, длиной 22кБ. Впихнул его в контроллер, приправил RND функцией, изменяя тональность скоростью воспроизведения и получил ожидаемое:

 

Чудно, но в СССР была калинка малинка, точно помню.

Отказался от прерывания и даже подпрограммы не нужны стали, Lookup упростил всё в разы.
Угощайтесь, рабочее  :glasses:

Записал звук в формате WAV 11кГц 8bit, после воспользовался программой из проекта Синтезатор речи RC2 на AVR (говорилка), которая перевела этот WAV в текст (блок) DATA, вышло 21кб. 
Ещё для плавности в конце можно ШИМ уменьшить циклом.  Тональность(ноты) регулировал, меняя скорость воспроизведения блока DATA. Если нужно сделать паузу между нотами, то ставится нужное количество нулей. Каждое значение в блоке дата, это такт импульса крутилки/энкодера. По этому тут пауза делается пропуском тактов. У меня WAV один, это 1 нота. Паузой между выведением ШИМ (скорость воспроизведения) меняется его тональность, так и получается разный звук ноты. Звук большой, увесистый, все ноты не запихнуть, одну то еле-еле. 
Сам звук имеет минимальное время звучания (если быстро крутить) и максимальное (если остановить). 
Так-же при пропусках тактов крутилки, звук обязан доигрываться, от сюда и сложность кода.

Два блока DATA.
Блок Muzik: - ноты мелодии, где 0 пропуск такта и 255 - конец блока.
Блок Blok: - сам звук 1 эталонной ноты, из него и делается все ноты.

1 клетка - одна шестнадцатая такта. Цифра 1-7 до--си 
это чисто мелодия "калинка" не полная, упрощенная и зацикленная 
без припева "Ах под сосною под зелёную..."

 

Исходник - https://yadi.sk/d/653fwzmCvY6g3 или на сайте.

На Алиэкспрессе есть куча всяких дешёвых механических шарманок с разными мелодиями. Добавляем двигатель с редуктором - и готов винтажный будильник к часам!

Вот здесь ещё один хороший человек демонстрирует возможности таких механизмов. На видео механизм сразу с моторчиком, но на данный момент они сняты продавцом.

 

Категория: Мои статьи | Добавил: bascom (24.11.2016)
Просмотров: 1208
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа
Поиск
Друзья сайта
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Copyright Radan Studio © 2017