помогите пожалуйста новичку со звуком
|
|
viktorino |
Дата: Пн, 17.08.2009, 15:02 | Сообщение # 16 |
Группа:
Пользователи
Ранг:
Начал соображать
Сообщений:
19
Замечания:
±
На сайте с 27.12.2007
Статус:
Offline
|
Очень важно сделать прием DTFM на пике возможно есть какой то выход, не может быть чтоб такие серьезние процесоры и не могли принять какойто сигнал,возможно можна использывать ацп, или например подсчитать количество переходов через 0 за 1 сек или какойто другой способ,может кто подскажет
Сообщение отредактировал
viktorino - Пн, 17.08.2009, 15:04
|
|
|
|
Холод1 |
Дата: Пн, 17.08.2009, 15:45 | Сообщение # 17 |
Группа:
Пользователи
Ранг:
Начал соображать
Сообщений:
35
Замечания:
±
На сайте с 19.10.2008
Статус:
Offline
|
там смешиваются две частоты и плюс помехи, врятли получится на пике. почему так кретично на пике? Добавлено (17.08.2009, 15.45.07) --------------------------------------------- я как то делал упровление двирным замком для мини атс в принципе что то подобное, без дополнительной микрухи у меня не получилось считать ДТМФ
|
|
|
|
Dmitry |
Дата: Пн, 17.08.2009, 22:19 | Сообщение # 18 |
Группа:
Пользователи
Ранг:
Могу и подсказать
Сообщений:
157
Замечания:
±
На сайте с 12.05.2009
Статус:
Offline
|
Quote (viktorino) Очень важно сделать прием DTFM на пике возможно есть какой то выход Дискретное преобразование Фурье. Еще он называется БПФ (быстрое преобразование Фурье) или по английски FFT. Позволяет выделить в оцифрованном аналоговом сигнале "вес" нужных частот. Честно говоря, даже в Дельфи (т.е. с нормальной математикой) так и не хватило мозгов/терпения разобраться, а сделать это на PIC BASIC, с его потолком в виде двухбайтных целых чисел... Бр-р...
|
|
|
|
viktorino |
Дата: Вт, 18.08.2009, 10:08 | Сообщение # 19 |
Группа:
Пользователи
Ранг:
Начал соображать
Сообщений:
19
Замечания:
±
На сайте с 27.12.2007
Статус:
Offline
|
дело в том что в будущем возможно придется работать с частотами отличительными от DTMF , например 750,600 и тогда декодеры DTMF просто не подойдут
|
|
|
|
narzan |
Дата: Ср, 26.08.2009, 00:13 | Сообщение # 20 |
Группа:
Проверенные
Ранг:
Новенький
Сообщений:
3
Замечания:
±
На сайте с 25.08.2009
Статус:
Offline
|
Quote (viktorino) дело в том что в будущем возможно придется работать с частотами отличительными от DTMF , например 750,600 и тогда декодеры DTMF просто не подойдут Надо поискать в интернете, есть библиотеки для быстрого FFT с реализацией на PIC. Где-то находил сайт японца, он на Attiny делал аудио спектроанализатор на дисплее 122х32 по такому принципу. Когда мне надо было музыку играть на Pic, я выводил через матрицу R-2R данные из MIDI.
|
|
|
|
terrarus |
Дата: Ср, 26.08.2009, 09:02 | Сообщение # 21 |
Группа:
Пользователи
Ранг:
Помогаю всем
Сообщений:
451
Замечания:
±
На сайте с 21.08.2008
Статус:
Offline
|
Мне когда-то, очень давно нужно было построить 20 канальный фильтр для системы управления многокоординатным станком. Сигналы в диапазонах частот от 100 гЦ до 15 кГц поступающие со считывающей магнитофонной головки и их нужно было разделять. Я тогда применил двойной Т-образный фильтр в цепи обратной связи операционного услилителя и получил полосы пропускания каналов около 40 гц, а ославление вне полосы пропускания около 40 децибел. Может быть Вам нужно пойти по такому пути?
Если у в Вас что-то не получается, подумай, не стоит ли прочитать инструкцию...!
|
|
|
|
viktorino |
Дата: Ср, 26.08.2009, 14:04 | Сообщение # 22 |
Группа:
Пользователи
Ранг:
Начал соображать
Сообщений:
19
Замечания:
±
На сайте с 27.12.2007
Статус:
Offline
|
Пока поставлю декодер dtmf а дальше по мере надобности буду разбиратся со всем остальным
|
|
|
|
emilhs |
Дата: Вс, 30.08.2009, 02:22 | Сообщение # 23 |
Группа:
Проверенные
Ранг:
Новенький
Сообщений:
3
Замечания:
±
На сайте с 28.03.2009
Статус:
Offline
|
ребята я с этим разобрался. если кому нужно звуки типа кряколки помогу Добавлено (30.08.2009, 02.22.02) --------------------------------------------- кстати резонатора 4мгц вполне достаточно для этих звуков
|
|
|
|
Aleks_ey |
Дата: Чт, 03.09.2009, 10:57 | Сообщение # 24 |
Группа:
Пользователи
Ранг:
Начал соображать
Сообщений:
31
Замечания:
±
На сайте с 15.11.2007
Статус:
Offline
|
Для декодирования DTMF лучше использовать специализированые микросхемы: MT3270, MT3271 с последовательным выходом или MT8870D с параллельным выходом. Но если есть желание по извращаться с пиком то смотрите прикреплённый файл, но он написан на ASM, так как на бейсике это вряд ли возможно... Это файл я нашёл в инете и сам не проверял, так что за работоспособность его не отвечаю...
|
|
|
|
stanoknet |
Дата: Сб, 03.10.2009, 06:26 | Сообщение # 25 |
Группа:
Проверенные
Ранг:
Новенький
Сообщений:
6
Замечания:
±
На сайте с 03.10.2009
Статус:
Offline
|
emilhs, не откажусь от помощи
|
|
|
|
stanoknet |
Дата: Вс, 01.11.2009, 18:44 | Сообщение # 26 |
Группа:
Проверенные
Ранг:
Новенький
Сообщений:
6
Замечания:
±
На сайте с 03.10.2009
Статус:
Offline
|
Про синтез звука.... есть схема на 12C509A (прилагается), но микроконтроллер как-то странно включён (4 вывод MCLR включен на землю) может кто подскажет, как на basik синтезировать сирену и горн для 12C509A
|
|
|
|
terrarus |
Дата: Пн, 02.11.2009, 19:10 | Сообщение # 27 |
Группа:
Пользователи
Ранг:
Помогаю всем
Сообщений:
451
Замечания:
±
На сайте с 21.08.2008
Статус:
Offline
|
Используйте любую из команд Протона Sound или Sound2 и любой микроконтроллер. Подробнее о Sound и Sound2 смотрите на http://www.terrarus.ucoz.ru/proton_plus_ide/index.html
Если у в Вас что-то не получается, подумай, не стоит ли прочитать инструкцию...!
Сообщение отредактировал
terrarus - Пн, 02.11.2009, 19:13
|
|
|
|
stanoknet |
Дата: Сб, 07.11.2009, 07:39 | Сообщение # 28 |
Группа:
Проверенные
Ранг:
Новенький
Сообщений:
6
Замечания:
±
На сайте с 03.10.2009
Статус:
Offline
|
Sound или Sound2 не подойдут, сигнал сложный air_horn удалось синтезировать просто: Code Device = 12C509A '------------------- Определение переменных ------------------- Symbol PIN = GPIO.0 TRISB=%00000000 '--------Air-horn -------- HORN: PIN=1 PAUSEUS 1000 PIN=0 PAUSEUS 600 PIN=1 PAUSEUS 600 PIN=0 PAUSEUS 440 PIN=1 PAUSEUS 440 PIN=0 PAUSEUS 400 PIN=1 PAUSEUS 400 PIN=0 PAUSEUS 360 PIN=1 PAUSEUS 360 PIN=0 PAUSEUS 320 PIN=1 PAUSEUS 320 PIN=0 PAUSEUS 300 PIN=1 PAUSEUS 300 PIN=0 PAUSEUS 280 PIN=1 PAUSEUS 280 PIN=0 PAUSEUS 300 PIN=1 PAUSEUS 300 PIN=0 PAUSEUS 320 PIN=1 PAUSEUS 320 PIN=0 PAUSEUS 360 PIN=1 PAUSEUS 360 PIN=0 PAUSEUS 400 PIN=1 PAUSEUS 400 PIN=0 PAUSEUS 440 PIN=1 PAUSEUS 440 PIN=0 PAUSEUS 600 PIN=1 PAUSEUS 600 PIN=0 PAUSEUS 1000 GoTo HORN М wailнемного сложнее, сигнал имеет сложную структуру, трёхуровневый, с изменяемой длительностью импульсов и периодом повторения к сожалению freqout на 8-ми разрядный pic невозможно реализовать может у кого есть более изящное решение по синтезу сложных периодических сиглалов
|
|
|
|
terrarus |
Дата: Сб, 07.11.2009, 10:37 | Сообщение # 29 |
Группа:
Пользователи
Ранг:
Помогаю всем
Сообщений:
451
Замечания:
±
На сайте с 21.08.2008
Статус:
Offline
|
Ваш wall действительно сложный, и даже больше скажу - это целый шлягер с человеским голосом. Такую музыку 8 разрядным процессором не синтезировать. Нужно применять 16-ти или 32-разрядный, процессор. Нужно всегда помнить, что 8-разрядные процессоры разработаны для решения определенного класса задач, и если уровень вашей задачи выше, то нужно применять соответсвующие средства разработанные для решения задач более высокого уровня. А вот ваше утверждение, что "freqout" на 8-ми разрядный pic невозможно реализовать неверно, если вы, конечно же , под названием "freqout" не имеете в виду какой-то конкретный музыкальный шлягер. В Proton+IDE есть оператор FreqOut Pin , Period , Freq1 {, Freq2}. Эта команда генерирует частоту, либо комбинацию двух частот на выводе Pin. Pin - один из выводов любого порта PIC-микроконтроллера. Параметр Period определяет время генерации, которое задается в миллисекундах. Period может быть задан переменной, константой, или выражением, все они могут принимать значения в дипаапзоне от 0 до 65535 мсек. Параметр Freq1 определяет первую частоту и задается в герцах, он может быть переменной, константой, или выражением, которые могут быть заданы в диапазоне от 0 и до 32767 Гц. Параметр Freq2 определяет вторую частоту и тоже задается в герцах, он также может быть переменной, константой, или выражением, которые могут быть заданы в диапазоне от 0 и до 32767 Гц. Полное описание оператора FreqOut и примеры его применения смотрите на http://www.terrarus.ucoz.ru/proton_plus_ide/index.html . Конечно же этим оператором Вы не сможете синтезировать музыкальные фрагменты уровня классической музыки или вокала. P.S. Например так: Code Device = 12C509 XTAL = 4 TRISB = %00000000 Symbol PIN = GPIO.0 Dim INDEX As Byte Dim Assign1 As Word Dim Assign2 As Word
main: INDEX = 0
HORN: Assign1 = LookUpL INDEX, [ 1000, 600, 440, 400, 360, 320, 300, 280, 300, 320, 360, 400, 440, 600 ] Assign2 = LookUpL INDEX, [ 600, 440, 400, 360, 320, 300, 280, 300, 320, 360, 400, 440, 600, 1000 ] PIN=1 PAUSEUS Assign1 PIN=0 PAUSEUS Assign2 INDEX = INDEX + 1 If INDEX = 13 Then GoTo main GoTo HORN Здесь модель в протеусе
Если у в Вас что-то не получается, подумай, не стоит ли прочитать инструкцию...!
Сообщение отредактировал
terrarus - Сб, 07.11.2009, 14:42
|
|
|
|
stanoknet |
Дата: Вс, 08.11.2009, 13:59 | Сообщение # 30 |
Группа:
Проверенные
Ранг:
Новенький
Сообщений:
6
Замечания:
±
На сайте с 03.10.2009
Статус:
Offline
|
terrarus, спасибо за изящное решение но при попытке компиляции команды FreqOut, Protion IDE ругается и говорит, что не поддерживает 12-ти разрядные девайсы (для Device = 12C509A) согласен что для синтеза звука необходим другой девайс, но ведь до меня кто-то уже реализовал синтез псевдо сложных периодических сигналов, часть схемы работающего устройства я приводил выше так всё таки не вожможно реализовать FreqOut на 12C509A, или я что-то неправильно делаю?
Сообщение отредактировал
stanoknet - Вс, 08.11.2009, 14:09
|
|
|
|