Регистрация | Вход

[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 2 из 3
  • «
  • 1
  • 2
  • 3
  • »
Модератор форума: ivan_fd  
Форум Picbasic.ru » Программирование МК » PicBasicPro » помогите пожалуйста новичку со звуком (DTMF сигнал)
помогите пожалуйста новичку со звуком
viktorino Дата: Пн, 17.08.2009, 15:02  |                                                                                                                Сообщение # 16
Группа: Пользователи
Ранг:  Начал соображать
Сообщений: 19
Репутация: 0   ±
Замечания:   ±
На сайте с 27.12.2007

Статус: Offline

Очень важно сделать прием DTFM на пике возможно есть какой то выход, не может быть чтоб такие серьезние процесоры и не могли принять какойто сигнал,возможно можна использывать ацп, или например подсчитать количество переходов через 0 за 1 сек или какойто другой способ,может кто подскажет
Сообщение отредактировал viktorino - Пн, 17.08.2009, 15:04
Холод1 Дата: Пн, 17.08.2009, 15:45  |                                                                                                                Сообщение # 17
Группа: Пользователи
Ранг:  Начал соображать
Сообщений: 35
Репутация: 0   ±
Замечания:   ±
На сайте с 19.10.2008

Статус: Offline

там смешиваются две частоты и плюс помехи, врятли получится на пике. почему так кретично на пике?

Добавлено (17.08.2009, 15.45.07)
---------------------------------------------
я как то делал упровление двирным замком для мини атс в принципе что то подобное,
без дополнительной микрухи у меня не получилось считать ДТМФ

Dmitry Дата: Пн, 17.08.2009, 22:19  |                                                                                                                Сообщение # 18
Группа: Пользователи
Ранг:  Могу и подсказать
Сообщений: 157
Репутация: 6   ±
Замечания:   ±
На сайте с 12.05.2009

Статус: Offline

Quote (viktorino)
Очень важно сделать прием DTFM на пике возможно есть какой то выход

Дискретное преобразование Фурье. Еще он называется БПФ (быстрое преобразование Фурье) или по английски FFT. Позволяет выделить в оцифрованном аналоговом сигнале "вес" нужных частот. Честно говоря, даже в Дельфи (т.е. с нормальной математикой) так и не хватило мозгов/терпения разобраться, а сделать это на PIC BASIC, с его потолком в виде двухбайтных целых чисел... Бр-р...
viktorino Дата: Вт, 18.08.2009, 10:08  |                                                                                                                Сообщение # 19
Группа: Пользователи
Ранг:  Начал соображать
Сообщений: 19
Репутация: 0   ±
Замечания:   ±
На сайте с 27.12.2007

Статус: Offline

дело в том что в будущем возможно придется работать с частотами отличительными от DTMF , например 750,600 и тогда декодеры DTMF просто не подойдут
narzan Дата: Ср, 26.08.2009, 00:13  |                                                                                                                Сообщение # 20
Группа: Проверенные
Ранг:  Новенький
Сообщений: 3
Репутация: 0   ±
Замечания:   ±
На сайте с 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
Репутация: 17   ±
Замечания:   ±
На сайте с 21.08.2008

Статус: Offline

Мне когда-то, очень давно нужно было построить 20 канальный фильтр для системы управления многокоординатным станком. Сигналы в диапазонах частот от 100 гЦ до 15 кГц поступающие со считывающей магнитофонной головки и их нужно было разделять. Я тогда применил двойной Т-образный фильтр в цепи обратной связи операционного услилителя и получил полосы пропускания каналов около 40 гц, а ославление вне полосы пропускания около 40 децибел. Может быть Вам нужно пойти по такому пути?

Если у в Вас что-то не получается, подумай, не стоит ли прочитать инструкцию...!
ЯНДЕКС Дата: 26.08.2009
viktorino Дата: Ср, 26.08.2009, 14:04  |                                                                                                                Сообщение # 22
Группа: Пользователи
Ранг:  Начал соображать
Сообщений: 19
Репутация: 0   ±
Замечания:   ±
На сайте с 27.12.2007

Статус: Offline

Пока поставлю декодер dtmf а дальше по мере надобности буду разбиратся со всем остальным
emilhs Дата: Вс, 30.08.2009, 02:22  |                                                                                                                Сообщение # 23
Группа: Проверенные
Ранг:  Новенький
Сообщений: 3
Репутация: 0   ±
Замечания:   ±
На сайте с 28.03.2009

Статус: Offline

ребята я с этим разобрался. если кому нужно звуки типа кряколки помогу

Добавлено (30.08.2009, 02.22.02)
---------------------------------------------
кстати резонатора 4мгц вполне достаточно для этих звуков

Aleks_ey Дата: Чт, 03.09.2009, 10:57  |                                                                                                                Сообщение # 24
Группа: Пользователи
Ранг:  Начал соображать
Сообщений: 31
Репутация: 1   ±
Замечания:   ±
На сайте с 15.11.2007

Статус: Offline

Для декодирования DTMF лучше использовать специализированые микросхемы: MT3270, MT3271 с последовательным выходом или MT8870D с параллельным выходом. Но если есть желание по извращаться с пиком то смотрите прикреплённый файл, но он написан на ASM, так как на бейсике это вряд ли возможно... Это файл я нашёл в инете и сам не проверял, так что за работоспособность его не отвечаю...
Прикрепления: asm_dtmf.zip (7.3 Kb)
stanoknet Дата: Сб, 03.10.2009, 06:26  |                                                                                                                Сообщение # 25
Группа: Проверенные
Ранг:  Новенький
Сообщений: 6
Репутация: 0   ±
Замечания:   ±
На сайте с 03.10.2009

Статус: Offline

emilhs, не откажусь от помощи
stanoknet Дата: Вс, 01.11.2009, 18:44  |                                                                                                                Сообщение # 26
Группа: Проверенные
Ранг:  Новенький
Сообщений: 6
Репутация: 0   ±
Замечания:   ±
На сайте с 03.10.2009

Статус: Offline

Про синтез звука....
есть схема на 12C509A (прилагается), но микроконтроллер как-то странно включён (4 вывод MCLR включен на землю)
может кто подскажет, как на basik синтезировать сирену и горн для 12C509A
Прикрепления: 4125416.jpg (65.8 Kb)
terrarus Дата: Пн, 02.11.2009, 19:10  |                                                                                                                Сообщение # 27
Группа: Пользователи
Ранг:  Помогаю всем
Сообщений: 451
Репутация: 17   ±
Замечания:   ±
На сайте с 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
Репутация: 0   ±
Замечания:   ±
На сайте с 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 невозможно реализовать
может у кого есть более изящное решение по синтезу сложных периодических сиглалов

Прикрепления: wail.wav (477.0 Kb)
terrarus Дата: Сб, 07.11.2009, 10:37  |                                                                                                                Сообщение # 29
Группа: Пользователи
Ранг:  Помогаю всем
Сообщений: 451
Репутация: 17   ±
Замечания:   ±
На сайте с 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

Здесь модель в протеусе
Прикрепления: airn_horn.rar (34.9 Kb)


Если у в Вас что-то не получается, подумай, не стоит ли прочитать инструкцию...!
Сообщение отредактировал terrarus - Сб, 07.11.2009, 14:42
stanoknet Дата: Вс, 08.11.2009, 13:59  |                                                                                                                Сообщение # 30
Группа: Проверенные
Ранг:  Новенький
Сообщений: 6
Репутация: 0   ±
Замечания:   ±
На сайте с 03.10.2009

Статус: Offline

terrarus, спасибо за изящное решение dry
но при попытке компиляции команды FreqOut, Protion IDE ругается и говорит, что не поддерживает 12-ти разрядные девайсы (для Device = 12C509A)
согласен что для синтеза звука необходим другой девайс, но ведь до меня кто-то уже реализовал синтез псевдо сложных периодических сигналов, часть схемы работающего устройства я приводил выше
так всё таки не вожможно реализовать FreqOut на 12C509A, или я что-то неправильно делаю?

Сообщение отредактировал stanoknet - Вс, 08.11.2009, 14:09
Форум Picbasic.ru » Программирование МК » PicBasicPro » помогите пожалуйста новичку со звуком (DTMF сигнал)
  • Страница 2 из 3
  • «
  • 1
  • 2
  • 3
  • »
Поиск: