Обратите внимание, что нужно изолировать радиаторы. — КиберПедия 

Автоматическое растормаживание колес: Тормозные устройства колес предназначены для уменьше­ния длины пробега и улучшения маневрирования ВС при...

Архитектура электронного правительства: Единая архитектура – это методологический подход при создании системы управления государства, который строится...

Обратите внимание, что нужно изолировать радиаторы.

2019-12-27 224
Обратите внимание, что нужно изолировать радиаторы. 0.00 из 5.00 0 оценок
Заказать работу

Использование датчиков звука в режиме шума

Изначально реле реагирует на команды, которые подает человек. В нашем случае – это хлопок. Но в некоторых ситуациях, нам нужна реакция на шум, для этого, нужно немного переделать реле. И самое интересное, что не нужно ничего усложнять. Схема требует небольших изменений.

К транзистору VT3 нужно подключить выход первого триггера(То-есть вывод 13 микросхемы соединяем с R7) и выходит так, что вторая часть микросхемы теряет свою необходимость.

Теперь одновибратор создает импульс всего на 0.5 секунды(на этот промежуток времени включается свет) Его будет недостаточно. Чтобы решить эту проблему, мы повышаем емкость конденсатора C4 и резистора R6. И смотрим на отклик, пока она не будет нас устраивать.

Вы можете долго и нудно настраивать нужную задержку, то увеличивая, то уменьшая емкости. Но желательно воспользоваться простой формулой T=CxR

Преимущества и недостатки

Все в нашем мире имеет свои плюсы и минусы, и датчики имеют свои преимущества и недостатки. К положительным качествам можно отнести:

  • Небольшая стоимость позволяет использовать их любой категории людей.
  • Радиус действия достаточно велик, что позволяет услышать появление человека и включить свет в нужное время.
  • Датчик окупается тем, что уменьшает затраты на электроэнергию и покупку новых ламп.

Также свет выключается не сразу, а через определенный промежуток времени. Это позволяет пройти нужные комнаты и не оказаться в полной темноте.

Но и недостатки у этого устройства тоже есть. К ним относится невозможность монтажа в шумных местах и постоянные срабатывания дешевых моделей. Поэтому, китайские бюджетные датчики не рекомендуется использовать

Тема распознавания голоса микроконтроллером довольно интересна и нова, поэтому я решил представить вам схему устройства распознавания голоса на микроконтроллере, а точнее на Arduino. Распознавание голоса довольно непростая задача, а реализовать это на микроконтроллере еще сложнее, в силу ограниченности его ресурсов. В нашем случае реализация распознавания голоса будет на микроконтроллере ATmega328P, работающего на частоте 16МГц.

<img class=" size-full wp- В данном устройстве была использована библиотека uSpeech, которая полностью автономна и не требует передачи голосовых команд на компьютер для дальнейшего распознавания, как того требуют другие библиотеки и модули, например, такие как BitVoicer.

В моей схеме распознавания голоса на микроконтроллере была использована uSpeech в силу своей автономности и малых размеров. Хотя у неё есть недостаток, такой как ограниченность распознавания. Эта библиотека позволяет распознавать только фонемы, т.е. отдельные звуки, но для многих схем и устройств этого более чем достаточно. Ниже приведен список используемых фонем (звуков):

Фонема (звук) Соответствующая ей буква (может быть несколько)
“е” е
“х” х, ш, щ, дж, ж, з
“в” в, может срабатывать на з
“ф” ф
“с” с
“о” о, а, ш, л, м, н, у, ю
” “ слишком тихий звук

В качестве микрофона используется электретный микрофон (ссылка на статью на Wikipedia), обычно он выглядит так:

<img class=" size-full wp-image-566" src="https://radioded.ru/wp-content/uploads/2017/03/microphone.jpg" alt="Электретный микрофон" height="319" srcset="https://radioded.ru/wp-content/uploads/2017/03/microphone.jpg 425w, https://radioded.ru/wp-content/uploads/2017/03/microphone-300x225.jpg 300w" sizes="(max-width: 425px) 100vw, 425px" />

Сигнал с него достаточно слабый, поэтому его необходимо усилить. Усилитель для микрофона можно сделать из пары транзисторов, как было в схеме микрофонного усилителя на Радиодеде, так и на операционном усилителе, например, так:

<img class=" size-full wp-image-567" src="https://radioded.ru/wp-content/uploads/2017/03/mic_amplifier_lm358.png" alt="Микрофонный усилитель на операционном усилителе (ОУ) LM358" height="377" srcset="https://radioded.ru/wp-content/uploads/2017/03/mic_amplifier_lm358.png 640w, https://radioded.ru/wp-content/uploads/2017/03/mic_amplifier_lm358-300x177.png 300w" sizes="(max-width: 640px) 100vw, 640px" />

Либо можно купить готовый микрофон с усилителем на eBay или AliExpress, найти можно по запросу «Mic amplifier arduino» или «Микрофонный усилитель Arduino». Выглядит он так:

<img class=" wp-image-568" src="https://radioded.ru/wp-content/uploads/2017/03/mic_amplifier.jpg" alt="Микрофонный усилитель (готовый модуль)" height="319" srcset="https://radioded.ru/wp-content/uploads/2017/03/mic_amplifier.jpg 538w, https://radioded.ru/wp-content/uploads/2017/03/mic_amplifier-150x150.jpg 150w, https://radioded.ru/wp-content/uploads/2017/03/mic_amplifier-300x300.jpg 300w" sizes="(max-width: 319px) 100vw, 319px" />

Микрофон с микрофонным усилителем желательно подключить к микроконтроллеру через резистор 470…2К и разделительный конденсатор (он уже есть в самих схемах усилителей, а также на готовых платах), который убирает постоянную составляющую.

Схема подключения микрофона и усилителя к Arduino следующая: микрофон через усилитель подключается к аналоговому порту Ардуино A0, три светодиода через резисторы подключаются к цифровым выходам 5,6,7 (схему можно изменить, внеся соответствующие, небольшие правки в исходный код программы).

<img class=" size-full wp-image-569" src="https://radioded.ru/wp-content/uploads/2017/03/voice-recognition_arduino_scheme.jpg" alt="Схема подключения микрофона к Arduino для распознавания голоса" height="669" srcset="https://radioded.ru/wp-content/uploads/2017/03/voice-recognition_arduino_scheme.jpg 600w, https://radioded.ru/wp-content/uploads/2017/03/voice-recognition_arduino_scheme-269x300.jpg 269w" sizes="(max-width: 600px) 100vw, 600px" />

В качестве индикаторов распознанных команд были использованы три светодиода разных цветов.

В исходном примере библиотеки uSpeech сравнивались одиночные фонемы (звуки). Пример позволял распознать 6 фонем (звуков): «ф», «е», «о», «в», «с», «х» (f, e, o, v, s, h). Мной был использован массив байт, который содержал паттерны, распознаваемых слов, что позволило в конечном итоге распознавать не отдельные фонемы (звуки), а целые слова, состоящие из распознаваемых фонем. Массив полученных звуков сравнивается с заранее прописанным массивом байт (паттерном слова), и в случае совпадения, с учетом заданного порога чувствительности, делается вывод о том, какое слово было произнесено.

Например, заранее прописанные паттерны для английских слов green,orange и white были следующие “vvvoeeeeeeeofff”, “hhhhhvoovvvvf”, “hooooooffffffff”. Для нахождения наиболее ближайшего эквивалента произносимом слову необходимо находить минимальное редакционное расстояние (расстояние Левенштейна). Для повышения точности и игнорирования нерелевантных паттернов при распозновании использовалась константа LOWEST_COST_MAX_THREASHOLD, определяющая уровень достоверности. Подбирая её значение можно добиться высокой точности распознавания.

Скомпилированный скетч занимает около 20% FLASH-памяти микроконтроллера и около 500 байт, т.е. 25% ОЗУ. Библиотеку для распознавания голосовых команд на Ардуино – uSpeech можно скачать здесь (необходимо нажать зеленую кнопку “Clone or download”). Установка библиотеки стандартная – необходимо распаковать архив и поместить папку в “C:/Users/<Имя пользователя>/Documents/Arduino/libraries”

Было бы здорово просто включить вентиляторы и свет в доме, просто хлопнув в ладоши, вместо того, чтобы идти переключателю. Но такое устройство часто будет работать со сбоями, так как эта схема будет реагировать на любые громкие шумы в окружающей среде, такие как громкое радио или газонокосилка во дворе.

 

 

Но можно использовать более редкий вид звука, например, свист. Свист в отличие от других звуков будет иметь одинаковую частоту для определенной продолжительности и, следовательно, может отличаться от речи или музыки. Таким образом, в этом примере мы узнаем, как определять звук свистка, при этом связав датчик звука с Arduino, и, когда свист будет обнаружен, мы будем переключать лампу переменного тока через реле. Также мы также узнаем, как звуковые сигналы принимаются микрофоном и как измерять частоту с помощью Arduino. Звучит интересно, так что давайте начнем с основанного на Arduino проекта домашней автоматизации.

 

Прежде чем мы углубимся в аппаратное обеспечение и код для этого проекта домашней автоматизации, давайте взглянем на звуковой датчик. Звуковой датчик, используемый в этом модуле, показан далее. Принцип работы большинства доступных на рынке звуковых датчиков аналогичен этому, хотя внешний вид может немного отличаться.

 

 

Как известно, примитивным компонентом в звуковом датчике является микрофон. Микрофон – это тип преобразователя, который преобразует звуковые волны (акустическую энергию) в электрическую энергию. В основном диафрагма внутри микрофона вибрирует на звуковые волны в атмосфере, которая производит электрический сигнал на своем выходном выводе. Но эти сигналы будут иметь очень низкую величину (мВ) и, следовательно, не могут быть обработаны напрямую микроконтроллером, таким как Arduino. Также по умолчанию звуковые сигналы являются аналоговыми по природе, следовательно, выходной сигнал от микрофона будет синусоидальным с переменной частотой, но микроконтроллеры являются цифровыми устройствами и, следовательно, лучше работают с прямоугольными сигналами.

 

 

Для усиления этих синусоидальных сигналов с низким уровнем напряжения и преобразования их в прямоугольные сигналы модуль использует встроенный компаратор LM393, как показано выше. Выход низкого напряжения аудио от микрофона подается на один из контактов разъема компаратора через усилитель транзистор, а опорное напряжение устанавливается на другом выводе, используя схему делителя напряжения с участием потенциометра. Когда выходное напряжение звука с микрофона превышает заданное напряжение, напряжение компаратора поднимается до 5 В (рабочее напряжение), в противном случае напряжение компаратора остается низким при 0 В. Таким образом, синусоидальная волна низкого сигнала может быть преобразована в прямоугольный сигнал высокого напряжения (5 В). Осциллограмма ниже показывает то же самое, где желтая волна представляет синусоидальную волну слабого сигнала, а синяя – выходной прямоугольный сигнал. Чувствительность можно контролировать, изменяя сопротивление потенциометра на модуле.

 

Этот модуль звукового датчика преобразует звуковые волны в атмосфере в прямоугольные сигналы, частота которых будет равна частоте звуковых волн. Таким образом, измеряя частоту прямоугольного сигнала, мы можем найти частоту звуковых сигналов в атмосфере.

 

Полная принципиальная схема цепи переключателя на основе детектора свиста с Arduino с использованием звукового датчика показана ниже.

 

 

Датчик звука и релейный модуль питаются от 5-вольтового контакта Arduino. Выходной вывод датчика звука подключен к цифровому выводу 8 Arduino, это связано со свойством таймера этого вывода. Модуль реле запускается контактом 13, который также подключен к встроенному светодиоду на плате Arduino UNO.

 

На стороне источника переменного тока нейтральный провод напрямую подключен к общему (C) выводу модуля реле, а фаза подключена к нормально разомкнутому (NO) выводу реле через нагрузку переменного тока (лампочка). Таким образом, при срабатывании реле контакт NO будет соединен с контактом C и, таким образом, лампочка будет светиться. В противном случае лампа останется выключенной. Все это может выглядеть следующим образом.

 

 

Помните, что работа с цепью переменного тока может быть опасной, будьте осторожны при работе с проводами под напряжением и избегайте коротких замыканий. Людям, не имеющим опыта работы с электроникой, рекомендуется использовать автоматический выключатель или помощь других более опытных людей.

 

Подобно тому, как мы считываем частоту входящих прямоугольных сигналов, мы должны запрограммировать Arduino для вычисления частоты. В этом уроке мы будем использовать библиотеку Freqmeasure (https://github.com/PaulStoffregen/FreqMeasure/archive/master.zip) для измерения частоты, чтобы получить точные результаты. Эта библиотека использует прерывание внутреннего таймера на выводе 8, чтобы измерить, как долго импульс остается включенным. Как только время измерено, мы можем вычислить частоту, используя формулу F = 1 / T. Однако, поскольку мы используем библиотеку напрямую, нам не нужно вдаваться в подробности регистров и математических данных о том, как измеряется частота. Следует заметить, что использование библиотеки отключит функцию analogWrite на контактах 9 и 10 на Arduino UNO, поскольку таймер будет занят этой библиотекой.

 

Полный код программы коммутатора на основе детектора свиста довольно прост и представлен далее.

 

 

#include <FreqMeasure.h> //https://github.com/PaulStoffregen/FreqMeasure

void setup() {

Serial.begin(9600);

FreqMeasure.begin(); // Измерение на контакте 8 по умолчанию

pinMode(LED_BUILTIN, OUTPUT);

}

double sum=0;

int count=0;

bool state = false;

float frequency;

int continuity =0;

void loop() {

if (FreqMeasure.available()) {

// усреднение считываний

 

Сверхбыстрое распознавание речи без серверов на реальном примере

  • Разработка под Android
  • Tutorial


В этой статье я подробно расскажу и покажу, как правильно и быстро прикрутить распознавание русской речи на движке Pocketsphinx (для iOS порт OpenEars) на реальном Hello World примере управления домашней техникой.
Почему именно домашней техникой? Да потому что благодаря такому примеру можно оценить ту скорость и точность, которой можно добиться при использовании полностью локального распознавания речи без серверов типа Google ASR или Яндекс SpeechKit.
К статье я также прилагаю все исходники программы и саму сборку под Android.


С чего вдруг?


Наткнувшись недавно на статью о прикручивании Яндекс SpeechKit-а к iOS приложению, я задал вопрос автору, почему для своей программы он захотел использовать именно серверное распознавание речи (по моему мнению, это было излишним и приводило к некоторым проблемам). На что получил встречный вопрос о том, не мог бы я поподробней описать применение альтернативных способов для проектов, где нет необходимости распознавать что угодно, а словарь состоит из конечного набора слов. Да еще и с примером практического применения…


Поделиться с друзьями:

Наброски и зарисовки растений, плодов, цветов: Освоить конструктивное построение структуры дерева через зарисовки отдельных деревьев, группы деревьев...

Эмиссия газов от очистных сооружений канализации: В последние годы внимание мирового сообщества сосредоточено на экологических проблемах...

Биохимия спиртового брожения: Основу технологии получения пива составляет спиртовое брожение, - при котором сахар превращается...

Особенности сооружения опор в сложных условиях: Сооружение ВЛ в районах с суровыми климатическими и тяжелыми геологическими условиями...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.011 с.