Форум обсуждения систем  

Вернуться   Форум обсуждения систем "Умный дом", проектов Ардуино, OpenWRT и других DIY устройств > Форум умного дома > Сделай сам

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 15.03.2012, 20:09   #1
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9823
Admin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant future
По умолчанию Arduino и воспроизведение Wav

В этом проекте я использовал Arduino Nano
В этой версии контроллера уже есть встроенный усилитель, и динамик можно подключать на пин SPK
Файлы для воспроизведения должны быть с частотой 12000Гц или 11000Гц. Для улучшения их качества звучания они программно интерполируются до частоты 62000Гц

Отличительные особенности этой библиотеки:
1-Воспроизведение звука производится на частоте 62000Гц, что дает кучу преимуществ .
2-Не требуется фильтр, для фильтрации частоты семплинга.
3-Производится программная интерполяция звука что улучшает качество звука
4-Используется только один таймер контроллера
5-Производится программная обработка и удаление щелчка при включении и выключении воспроизведения
6-Воспроизведение звука производится в фоновом режиме и не влияет на ход выполнения основных программ в цикле Loop
_delay_ms используется как раз для того что бы выдерживалась пауза пока воспроизводится звук

Нажмите на изображение для увеличения
Название: NANO_WAV.PNG
Просмотров: 15362
Размер:	29.1 Кб
ID:	372
PHP код:
#include <util/delay.h>
#include <PlaySound.h>

#include "test.h" //проконвертированый wave

void setup(){}

void loop()
{  
   
PlaySound::startPlayback((uint8_t *)test,  test_length); //Воспроизвести Wave c именем test
  
_delay_ms(2500); //пауза, так как звук выполнятся в фоновом режиме

Скачать библиотеку PlaySound с большим количеством проконвертированных звуковых эффектов
Билиотеку нужно скачать, распаковать и поместить в папку ..\arduino-0023\libraries\PlaySound

Библиотека PlaySoundSD- для воспроизведения звуков с карты памяти
Обладатели Arduino Nano V.7, могут получить программу конвертера Wav2Hex файлов для личного использования.
Программа конвертирует из звукового файла *.wav, в формат понятный компилятору *.h
Для получения программы пишите мне в личку

Собираю прикольные wave звуки для Arduino
Присылайте свои варианты wave, тем самым Вы пополните банк звуков
Онлайн конвертер bin - hex
Вложения
Тип файла: zip PlaySoundSD.zip (1.81 Мб, 548 просмотров)
Admin вне форума   Ответить с цитированием
Старый 20.10.2012, 14:54   #2
killer
Junior Member
 
Регистрация: 20.10.2012
Сообщений: 12
Вес репутации: 0
killer is an unknown quantity at this point
По умолчанию

Глупый вопрос можно? У вас код на PHP я так понял. Там у вас переменная speakerpin2 - объявлена, а pseakerpin - не объявлена - это ошибка? И среда arduino понимает php? Просто я искал мануал по Carduino v7.0? не могу понять как из среды Arduino обратится к выводу (новому) - SPK.
killer вне форума   Ответить с цитированием
Старый 20.10.2012, 16:23   #3
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9823
Admin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant future
По умолчанию

Нет, этот код не на PHP
Это тег PHP, я его использую для лучшей читаемости кода
Сегодня выложу библиотеку для воспроизведения файлов на Arduino Nano V7
Вам будет проще ее использовать, хотя код тоже рабочий
Admin вне форума   Ответить с цитированием
Старый 21.10.2012, 00:16   #4
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9823
Admin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant future
По умолчанию

Выкладываю библиотеку PlaySound и пример скетча
для Arduino Nano V.7
В примере воспроизводится голосовая реклама
Код:
#include <util/delay.h>
#include <PlaySound.h>

#include "test.h"

void setup(){}

void loop()
{  
   PlaySound::startPlayback((uint8_t *)test,  test_length);
  _delay_ms(2500); //пауза, так как звук выполнятся в фоновом режиме
}
В комплекте с библиотекой PlaySound в папке Examples приложил много разных звуковых эффектов
Вложения
Тип файла: zip PlaySound.zip (320.2 Кб, 193 просмотров)
Admin вне форума   Ответить с цитированием
Старый 21.10.2012, 00:48   #5
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9823
Admin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant future
По умолчанию

Пользователи форума с весом репутации 200 и выше, также обладатели Arduino Nano V.7, могут получить программу конвертера
из *.wav в формат *.h
Admin вне форума   Ответить с цитированием
Старый 21.10.2012, 14:18   #6
killer
Junior Member
 
Регистрация: 20.10.2012
Сообщений: 12
Вес репутации: 0
killer is an unknown quantity at this point
По умолчанию

А вы в чем компилите? Я попытался запустить код в среде Arduino (родная, которая на языке processing основана) ругается на библиотеку PlaySound.cpp конкретно на строку PORTB &= B11110111; - говорит - 'd1111011' - was not declared in this scope.
Я так понял что вы на Си компилите. А чем компилите, в чем работаете?
killer вне форума   Ответить с цитированием
Старый 21.10.2012, 14:23   #7
killer
Junior Member
 
Регистрация: 20.10.2012
Сообщений: 12
Вес репутации: 0
killer is an unknown quantity at this point
По умолчанию

И где можно взять синтаксис языка, не пойму как обращаться к пинам контроллера, с цифровыми и аналоговыми - все понятно, digitalWrite -Read, analogWrite-Read - операторы а дальше номер пина. Т.е.
int pin=2;
дальше в теле проги digitalWrite(pin,High);
и усе... номера пинов нанесены на плату. А вот как обратится к пину SPK? Не пойму..
killer вне форума   Ответить с цитированием
Старый 21.10.2012, 17:33   #8
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9823
Admin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant future
По умолчанию

Я компилирую в arduino-0023
Вы библиотеку положили в папку ..\arduino-0023\libraries\PlaySound ?
В этой папке должно находится 2 файла PlaySound.cpp и PlaySound.h

Простой пример использования выхода Spk или он же D11
PHP код:
#include <avr/delay.h>
#define speaker 11

void setup() 
{                
  
pinMode(speakerOUTPUT); 
}

void loop() 
{
     
beep(10,300);
     
beep(10,400); 
     
beep(10,500);
     
beep(100,400);
     
beep(100,300);
}

void beep(byte durword frq)
{
  
dur=(1000/frq)*dur;  //расчет длительности бипа
  
for(byte i=0i<duri++)
  {
   
digitalWrite(speakerHIGH); 
   
_delay_us(frq); 
   
digitalWrite(speakerLOW);
   
_delay_us(frq);
  } 

Admin вне форума   Ответить с цитированием
Старый 21.10.2012, 23:24   #9
killer
Junior Member
 
Регистрация: 20.10.2012
Сообщений: 12
Вес репутации: 0
killer is an unknown quantity at this point
По умолчанию

А ну да, библиотеки не туда вложил, я их вложил в папку со скетчем. Попробую завтра заново. А spk и D11 - разве не разные пины? Я чего то не понимаю тогда с нумерацией, я фотку прикрепил там. И на плате четко отмаркированно d11 и spk отдельно... Или они параллельные? Только SPK с большей пропускной способностью по току?
Миниатюры
Нажмите на изображение для увеличения
Название: DSC_0930.jpg
Просмотров: 1002
Размер:	379.3 Кб
ID:	560  
killer вне форума   Ответить с цитированием
Старый 22.10.2012, 00:15   #10
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9823
Admin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant future
По умолчанию

Пин Spk имеет выход с открытым коллектором, на транзисторном ключе с максимальной нагрузкой до 500мА и напряжением питания до 20в
К нему можно подключать не только динамик, но и любую другую нагрузку с током не более 500мА и напряжением до 20в
Как SPK подключен к пину D11, смотрите на изображении
Название: spk.gif
Просмотров: 14424

Размер: 1.9 Кб
Admin вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 4 (пользователей: 0 , гостей: 4)
 

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 02:34. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Яндекс.Метрика