Обнаружитель объектов и препятствий с голосовым оповещением

Предлагаю схему устройства для обнаружения препятствий, а также для обнаружения «биомассы», то есть людей животных или чего-то ещё такого. Устройство построено с применением 2-х датчиков: инфракрасный датчик на PIR элементе (HC-SR501) и ультразвуковой датчик сонар (US-100), определяющий расстояние до объекта. Микроконтроллер ATmega8 обрабатывает сигналы от этих датчиков и выводит сигналы о том, что датчик что-то обнаружил на светодиоды, а также выводит на динамик голосовые сообщения о характере препятствия. Ультразвуковой датчик обнаруживает любые живые и не живые препятствия на пути робота, а инфракрасный датчик определяет присутствие живых организмов, обладающих теплом (эффект ИК датчика основан на изменении теплового поля в инфракрасном диапазоне). Данное устройство рассматривается как модуль поиска препятствий для применения в робототехнике. А раз робот будет способен отыскать предметы, то посчиталось необходимым оснастить его и соответствующим голосом — об этом чуть ниже.

Устройство получило ниже представленную схему:

Сразу про питание. 3,3 вольта по схеме необходимы лишь для карты памяти micro SD. Остальная схема питается от 5 вольт, усилитель можно питать от более высоковольтного источника. 5 вольтовый стабилизатор выполнен на линейном стабилизаторе L7805. Его ближайшей заменой может быть отечественный аналог КР142ЕН5А, однако можно использовать и другие микросхемы стабилизаторов напряжения, слегка подправив схему в соответствии с подключением. Если усилитель планируется запитывать от 5 вольт стабилизатора L7805, возможно в этом случае этот линейный стабилизатор нужно будет заменить на более мощный, потому что будет возможен нагрев при длительном воспроизведении звука. Так как микроконтроллер подключен к питанию 5 вольт, а карта памяти к питанию 3,3 вольта, между ними необходимо согласование уровней. По схеме согласование уровней выполняют делители напряжения на резисторах R7, R9, R10, R11, R13 и R14. Благодаря им уровни сигналов SPI на выводах микроконтроллера и карты памяти остаются примерно 2,7 — 3,3 вольта. Если пренебречь согласованием уровней и подключить напрямую выводы микроконтроллера и карты памяти, то будет сказываться паразитное питание через сигнальные линии (если отключить питание от карты памяти, она все равно будет работать), и это в лучшем случае, в худшем случае мы рискуем сохранностью карты. Ранние карточки в основном не боялись такого, вероятно имея на борту защиту от такого подключения, новые же карты памяти в погоне за низкой ценой не всегда могут выдержать подобного подключения. Потребление карты памяти от источника питания 3,3 вольта составляет мизер, точно не замерял, поэтому для экономии такой источник 3,3 вольта на схеме собран на параметрическом стабилизаторе на стабилитроне VD1. Резистор R5 в этом случае ограничивает ток, протекающий через стабилитрон и гарантирует его исправность при работе. Конденсаторы в обвязке линейного стабилизатора и стабилитрона гарантируют правильную работу стабилизаторов, а также фильтрацию помех. Так как в микроконтроллере используется АЦП (аналого цифровой преобразователь), питание АЦП берется от 5 вольтового источника через дроссель L1 для максимально стабильной работы.

Одной из причин того, что вся схема питается от 5 вольт является то, что датчики HC-SR501 и US-100 требуют напряжения питания 5 вольт по паспортным данным. Хотя они работают и при питании 3,3 вольта, стабильной их работу не всегда можно назвать. Вращением переменного или подстроечного резистора R12 происходит регулировка первого порога срабатывания ультразвукового датчика (об этом чуть ниже), и по причине, что минимальный порог задан программно, резистор R8 убирает этот минимальный диапазон из возможности регулировать переменным резистором. Дело в том, что R12 представляет собой делитель напряжения, а R8 не позволит вращением ручки добиться нулевого значения на делителе — всегда будет минимальный потенциал на входе АЦП при крайнем положении ручки переменного резистора. Также это предотвращает «пустое» вращение ручки резистора. R6 ограничивает ток на выводе АЦП микроконтроллера. Сработка датчиков, помимо звукового сигнала, имеет индикацию на светодиодах, при подключении светодиодов к микроконтроллеру используются токоограничительные резисторы R1, R3, R4 для предотвращения порчи контроллера или светодиодов. Резистор R2, подключенный к выводу reset микроконтроллера предотвращает самопроизвольный перезапуск микроконтроллера в случаях наводок или других помех. Звуковой сигнал формируется ШИМом в контроллере, однако уровень громкости не всегда годится, поэтому используется усилитель на 2-х транзисторах Т1 и Т2. L2 и C13 образуют высокочастотный фильтр, чтобы убрать помехи, конденсатор C12 ограничивает ток, проходящий через динамик. Динамик можно использовать любой, подходящий по размеру и мощности. Транзисторы усилителя можно также использовать любые в зависимости от мощности динамика — на маленькие динамики можно брать транзисторы малой мощности, динамики от нескольких ватт нужно использовать с транзисторами средней мощности или больше. Все резисторы постоянного сопротивления мощность 0,25 Вт.

Со схемой разобрались, перейдем к устройству, собран обнаружитель на макетной плате, там же и обкатан, полет нормальный:

Логика работы устройства следующая: вначале ультразвуковой датчик — программно датчик имеет два порога срабатывания, индикация на светодиодах LED2 (первый порог) и LED3 (второй порог). Первый порог может регулироваться от 1 метра до 5,5 — 6 сантиметров. Регулировка осуществляется переменным или подстроечным резистором (R12 по схеме). Второй порог остается всегда фиксированным и составляет 5,5 сантиметров. Как лишь порог превысит второй лимит устройство даст разрешение на воспроизведение сигнала об обнаружении препятствия — то есть фактически мы наткнулись на препятствие. Инфракрасный датчик реагирует на изменение теплового фона, это значит он будет видеть в основном живые предметы, то есть людей или животных. Индикация об обнаружении на светодиоде LED1. Сам датчик HC-SR501 имеет на борту два подстроечных резистора — один для регулировки чувствительности, другой для регулировки времени в течении которого после обнаружения на выводе OUT будет логическая единица (грубо говоря логическая единица, на этом выводе TTL сигнал 3,3 вольта). Дальность приема инфракрасного датчика составляет 3 — 7 метров.

(правый переменный резистор регулирует время, левый — чувствительность)

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

Для мониторинга ИК датчика, вывод PD5 сконфигурирован в состояния хай Z. Если на выходе OUT есть положительный сигнал — это логическая единица и сигнал об обнаружении, если сигнал отсутствует, то на выходе OUT просто ноль, соответственно и вывод МК прижат к нулю. Вывод PD5 не будет находится в подвешенном состоянии (в протеусе ИК датчик заменен на кнопку и резистор для имитации логической единицы и нуля). Ультразвуковой датчик общается с микроконтроллером по UART и передает значения о расстоянии до препятствия. Переменная lim берет свое значение от состояния АЦП.

Для программирования микроконтроллера Atmega8 необходимо знать конфигурацию фьюз битов:

Теперь несколько слов об аудио файлах. Устройство воспроизводит файлы аудио с разрешением *.WAV. Параметры аудио — 8 bit, mono, 44 khz. Названия файлов должны быть такими: «ob.WAV» для ИК датчика и «pre.WAV» для ультразвукового датчика. Путь записи файлов на карту памяти — прямо в корень флешки. Каждый по желанию может создать свой собственный трек для этого устройства. Как? сейчас расскажу как делал это я. В первую очередь нам необходимо получить какой-то голос, была использована Алена (лишь это не девушка,а просто компьютерный голос). Для синтезирования речи из «рукописных» слов можно использовать программу «Балаболка», например. Если же Вы хотите сконвертировать уже имеющиеся у Вас аудио. но не того формата, то можно использовать программу «Weeny Free Audio Converter» — быстренькая и простенькая программка. Ну а самое интересное, мне все же захотелось иметь голос не просто девушки в устройстве, а голос девушки — робота, раз это все же часть бездушной железяки. Немного погуглив наткнулся на интересную программку — «АудиоМАСТЕР». 

Эта программа позволяет изменять как вручную, так и по нескольким готовым профилям свое аудио. Можно напрямую из микрофона записать свой голос и подкорректировав его использовать в своих электронных проектах. Правда свой голос мне было стеснительно использовать. Потому используя все ту же Алену, записал несколько треков для обнаружителя, и, следую плану, сделал голос девушки — робота (оценить можно скачав архив с фалами аудио или просмотрев видео к статье).

Одной из проблем WAV иногда являются некоторые шумы или щелчки. Использую все эту же программу можно просматривать спектр аудио и редактировать его путем вырезания или вставок. Так вот после редактирования WAV у меня всегда в звуке присутствовали щелчки. Заглянув в «волну» спектра обнаружил следующее:

Быстренько вырезать этот скачок! Звук стал намного приятнее, без щелчков. Между прочим, картинка звукового спектра в программе масштабируется (настройки в правом нижнем углу окна программы) и легко искать вот такие выбросы и устранять их (выделить ненавистный выброс мышкой и правой кнопкой мышки вызвать диалоговое окно, где необходимо выбрать пункт «вырезать»).

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

К статье прилагается прошивка для микроконтроллера, архив с аудио файлами для проекта, проект протеус (корректное воспроизведение в протеусе может потребовать больших ресурсов компьютера), а также небольшое демонстрационное видео.


Список радиоэлементовОбозначение
Тип
Номинал
Количество
ПримечаниеМагазинМой блокнот

IC1
МК AVR 8-битATmega81
VR1
Линейный регуляторL7805AB1
T1
Биполярный транзисторBD1391
Или др. npnT2
Биполярный транзисторBD1401
Или др. pnpVD1
СтабилитронBZX55C3V31
U1
ИК датчикHC-SR5011
U2
Ультразвуковой датчикUS-1001
L1
Катушка индуктивности100 мкГн1
L2
Катушка индуктивности20 мкГн1
R1, R3-R6, R15
Резистор390 Ом6
R2
Резистор10 кОм1
R7, R9, R10
Резистор1.8 кОм3
R8
Резистор510 Ом1
R11, R13, R14
Резистор3.3 кОм3
R12
Переменный резистор10 кОм1
C1, C6, C9
Электролитический конденсатор220 мкФ3
С2
Электролитический конденсатор10 мкФ1
C3-C5, C7, C8, C10, C11
Конденсатор100 нФ7
C12, C13
Электролитический конденсатор47 мкФ1
LED1-LED3
Светодиод3
Speaker
Динамик1

Карта памятиmicro SD1
Добавить все

Скачать список элементов (PDF)

Прикрепленные файлы:

Добавить комментарий

Ваш адрес email не будет опубликован.