Говорящий автомобиль своими руками

Говорящая сигнализация с голосом своими руками

Возможно вы уже видели ролики с демонстрацией подобной системы. В разных местах ее называют по-разному: smart sirena, говорящий колокол, умная сигнализация и т.д. Сегодня мы поделимся с Вами информацией, о том как самостоятельно можно сделать говорящую сигнализацию, которая будет разговаривать любым голосом, например голосом трансформера, Жириновского, или любым другим.

Стоимость деталей для самостоятельной разработки вам обойдется примерно в 1000-1500 рублей.

Видео с демонстрацией умной сигнализации

Автомобильная сигнализация, как сделать самому

Для реализации данного проекта нам потребуется громкоговоритель (рупор), arduino nano, модуль mp3 плеера для ардуино («dfplayer mini»), несколько резисторов и преобразователь напряжения 12-5 вольт. Звуки необходимо записать на sd-карту. Файлы должны иметь имена 0001.mp3, 0002.mp3, 0003.mp3.

Схема для сборки

Очень простая и выглядит следующим образом:

Управляющий поступает в плюсового провода штатной сигнализации и подключается к 7 пину ардуины.

Для прошивки ардуино потребуется установить библиотеку mp3TF.h (скачать библиотеку)

Cкетч для контроллера:

#include
mp3TF mp3tf = mp3TF ();
int buttonPin1 = 7;
int buttonState1 = 0;
const int ledPin = 13;
int count = 0;
unsigned long myTimer1 = 0;
int F1 = 0;
int S1 = 1;
void setup () <
mp3tf.init (&Serial);
pinMode(ledPin, OUTPUT);
pinMode(buttonPin1, INPUT);
delay (5000);
myTimer1 = millis();
>
void loop () <
buttonState1 = digitalRead(buttonPin1);
if (buttonState1 == HIGH) <
F1 = 1;
digitalWrite(ledPin, HIGH);
>
else<
digitalWrite(ledPin, LOW);
>
if (F1 == 1 && S1 == 1) <
myTimer1 = millis();
S1 = 0;
>
if (millis() — myTimer1 >= 1000) <
F1 = 0;
S1 = 1;
if (count == 1) <
mp3tf.play (1);
delay (3000);
>
if (count == 2) <
mp3tf.play (2);
delay (3000);
>
if (count >= 5) <
mp3tf.play (3);
delay (3000);
>
count = 0;
>
else <
if (buttonState1 == HIGH) <
count = count + 1;
delay (80);
>
>
>

Купить говорящую сигнализацию

Если по каким-либо причинам не можете самостоятельно собрать, но хотите ее установить на свой автомобиль, то можете приобрести уже собранное устройство за 2999 рублей.

Источник статьи: http://autofeel.ru/poleznoe/eksperimenty/2020/01/25/govoryashhaya-signalizatsiya-s-golosom-svoimi-rukami.html

Говорящий СТОП 2в1 на автомобиль

Собрал продвинутый СТОП , машина сама меняет надписи получив сигнал от стопов, поворотов и назад (проводов автомобиля).

Видео как это работает

При нажатии на тормоз загорается надпись «СТОП» , через секунду знак /!\ , снова СТОП, снова /!\ ,СТОП
Это необходимо для увеличения внимания к процессу торможения. Количество таких «инверсий» можно задавать
самому от 0 до 9. После отработки заданного числа инверсий СТОП горит постоянно не инвертируется.
Повороты получились как динамические в виде бегущих стрелок вправо и влево .

Если нажать кратковременно аварийку на авто, то появляется надпись «СПАСИБО».
Если же аварийка горит постоянно, то после 8 секунд надпись «СПАСИБО» меняется на два треугольника /!\ /!\

Кроме того СТОПом можно управлять с помощью андроида.

Работает это все на популярном ардуино. Я использовал ардуино нано328, он прекрасно подходит
для этих целей. Размеры малы и имеет юсб для прошивки. Это удобно и недорого.

Кто первый раз сталкивается с ардуино ниже приведу ссылку как залить скетч начиная с нуля.

Схема подключения довольно простая. Пины ардуино нужно соединить с разъемом табло.
Питание осуществляется от БП на 5V 2А.
Для управления СТОПом мы используем блютуз модуль HC-06 или HC-05.

Схемку набросал с картинками.


Тогда останется только 8 резисторов. Резисторы понижают напряжение бортовой сети до уровня питания ардуино,
защищая нашу ардуинку от перенапряжения на входах.

Управление с телефона осуществляется программкой СТОП2в1_HUB08 (прилагается в «скачать» ниже).
Программа не требует никаких разрешений , кроме блютуз. Написана в app inventor 2 . Кому интересно выкладываю и исходники программки для app inventor 2 .

Вся программа на телефон разместилась на одном экране. На картинках есть описание.


Как видим тут можно менять скорость прокрутки бегущей строки, яркость и инверсии. Когда мы отправляем фразу с телефона , то она должна отработать заданное нами время , после чего снова загорится треугольник /!\ .

Короткие фразы умещающиеся на табло будут статичны. Длинные фразы (предложения например) будут пробегать.

Работа скетча построена так , что СТОП имеет преимущество над НАЗАД и поворотами, а отправляемая фраза имеет преимущество над СТОП. В первых работах СТОП имел преимущество над фразами, но по просьбам тех кто собрал и начал пользоваться приоритеты поменялись. Мотивация такая в пробке постоянно нажат тормоз и это мешает писать ( а, что еще в пробке делать ).

В программе на телефоне мы можем менять фразу по умолчанию, когда ничего не нажато. Это знак внимание /!\ или буква «Ш» .
Знаки можно поменять на другие надписи, но только в прошивке ардуино. Скетч изобилует комментариями.
Внешний вид табло на столе.


Для подключения к машине нужно протянуть 6 проводов .
Плюс 14в, минус, на тормоз, на задний фонарь и на повороты. Для включения я делал себе выключатель ,
но можно запитать и от габаритов например, если нет возможности протянуть по салону провод на торпеду.

ВОТ ССЫЛКИ НА КОМПЛЕКТУЮЩИЕ.
По табло ограничения, скетч рассчитан на табло 16×64 НUB08 1/16 сканирования
Блок питания
Ардуино нано 328
Блютуз HС-06 или HС-05

СКАЧАТЬ схему, печатную плату, скетч, программу на андроид, рисунки.

Это не первая работа боле подробно публиковал на сайте Драйв 2.
Имеется там калькулятор шрифта, и другое табло на МАХ7219.

Видео как залить скетч с нуля:

Видео о табло МАХ7219, разница только в библиотеках

Источник статьи: http://usamodelkina.ru/10017-govoryaschiy-stop-2v1-na-avtomobil.html

Меняем “голос” автосигнализации.

Во дворе возле дома ночует несколько автомобилей и если у кого-то сработала сигналка все бросаются к окну и я в том числе… Все “колокола” на сигналках пищат одинаково, поэтому решил как-то изменить голос своей автоcигнализации.

Схема проигрывателя, усилитель стандартный набор на TDA2003 из радиомагазина.

звук проистекает из “тиньки” … 🙂 Файлы в формате WAV записаны на СДкарте которая подключена к контроллеру ATtiny “тиньке” который уже формирует сам звук…

вот как это реализовано в “железе”…

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

в связи с тем, что есть желающие приобрести данный девайс, ниже распишу затратную часть…

1 — УНЧ (набор для сборки) = 18 грн.
2 — контроллер “тинька” = 20 грн.
3 — деталюшки = 15 грн.
4 — плата монтажная универсальная = 7 грн.
5 — СДкарта с адаптером = 59 грн.
6 — “колокол” сигналки = 32 грн.

Общая стоимость девайса 260 грн.

Для России ситуация немного хуже…

по нынешнему курсу цена девайса получается 260 * 4 = 1040 руб.
НО (За морем телушка — полушка, да рубль перевоз) уточнял на почте, бандероль до 2 кг в Россию будет стоить 200 грн (800 руб) …

что бы были короткие сигналы при постановке/снятии, колокол подключил через вот такой блок из двух релюшек и конденсатора.

Ничего сложного в этой схеме нет, нужны два реле (называются универсальные) и один конденсатор.
Реле я использовал от старого блока центрального замка, они компактные и удобные по размеру. Конденсатор взял на 10000 мкФ х 25 Вольт, можно взять и меньшей ёмкости тогда сигнальный звук будет соответственно короче.

Ниже прикрепил видео демонстрации как это всё работает на автомобиле.

Автор; Волошин Юрий г.Днепропетровск

Источник статьи: http://xn—-7sbbil6bsrpx.xn--p1ai/menyaem-golos-avtosignalizacii.html

Автомобильная говорилка своими руками

Панель приборов как-то примелькивается, далеко не всегда кидаю на неё взгляд. Бывало как-то еду себе еду, а дверь оказывается неплотно закрыта — не обратил внимание на лампочку, проехал достаточно. А ещё бывает ручник не до конца отпустился, а я поехал. А ещё бывали случаи когда заглушил машину, а селектор в положение P забыл поставить… А ещё бывает багажник не закрыт до конца…

В общем, хотелось бы чтобы машинка издавала какой-нибудь звук при этих событиях, а она молчит, как рыба об лёд. Только истошно трынчать начинает, стоит отстегнуть ремень безопасности.

Ну тут я подумал: “а в чём, собственно, дело? Можно же сделать свой электронный бубенчик, благо опыт есть, повесить его на сигнал скорости и сигнал ручника, и чтобы он бзынкнул разок, когда есть скорость и ручник тоже есть?

А ещё чтобы за дверьми последил…
И за багажником…
И если рычаг забыл в P перевести, чтобы тоже…
И если давление масла упадёт, чтобы сказал…
И если аккумулятор не заряжается…
Топлива осталось мало — тоже пусть предупредит…
Ну и озвучит как-то срабатывание ABS и TCS…
И за напряжением в сети последит…
И за нагревом двигателя…

И… ” — так я мечтал и мечтал составляя список всех событий, которые бы мне хотелось озвучить в машине. Затем пришёл в себя, посмотрел внимательно, вычеркнул половину и побежал проектировать то, что в итоге станет вот такой штукой:

Решено было что события должны озвучиваться голосом. Все звуки сохраняются в формате wav на карте MicroSD, в файловой системе fat16, прямо в корневой папке. О том, как читать MicroSD, fat16 и wav я уже писал ранее

Питание

Схема полностью обесточивается при помощи мощного транзистора VT1 IRLML9301, который открывается тразистором VT2, который, в свою очередь, открывается появлением питания на проводе зажигания, через VD1, R1, и продолжает удерживаться открытым самим МК через VD2, R7.

Далее питание расходится на три цепи:

1) VD6 и C4 питают громкоговорители
2) независимо от них VD7 и C5 питают стабилизатор. Разделение цепей позволяет уменьшить всплески на одной сети, когда на другой сильно скачет ток.
3) и третья цепь — делитель, образованный R16 и R17 с фильтрующим конденсатором С6, которые нужны для измерения напряжения в сети. Делитель 16.5 к 1 позволяет измерять напряжение, используя в качестве референтного 1.1 Вольт.

Все компоненты выбирались так, чтобы работать в холодную погоду. В схеме присутствует SD карта, которая должна питаться не более чем 3.6 Вольтами. На момент разработки схемы у меня не было стабилизатора на 3.3 Вольта, поэтому его роль играет регулируемый стабилизатор LM217L, работающий при температуре до -40 (и все используемые конденсаторы поэтому, кстати, X7R).

У регулируемых стабилизаторов есть один неприятный момент — чтобы они работали как следует через них должен течь минимально некоторый ток, в частности для LM217 при разнице входного и выходного напряжения 13 Вольт, должно составлять около 0.8мА. Этот ток организуется при помощи делителя из резисторов R19 и R20, которые и задают выходное напряжение на уровне 3.33 Вольта.

Воспроизведение звука

С воспроизведением звука решил не заморачиваться, взял два 30мм динамика SG мощностью 1 Вт и сопротивлением 50 Ом, подключил их последовательно. Звук формируется при помощи ШИМ выхода, который подаётся на базу транзистора VT7 через резистор R21. R21 ограничивает ток на базе транзистора что, в свою очередь, ограничивает ток на его коллекторе. Выравнивание ШИМ сигнала происходит прямо параллельно динамикам при помощи конденсатора C8, который. Диоды VD8 и VD9 защищают линию от индуктивных всплесков.

Одним из недостатков такого вывода звука является постоянное потребление схемой тока при не-нулевой заполненности ШИМ. Как известно, запись звука представляет собой колебания значений вокруг некоего среднего, значит вывод звука нулевой громкости уже будет создавать половинную нагрузку на схему вывода. Чтобы этого избежать, форма сигнала изменяется программно, реализуется схема которую я назвал “электронный конденсатор”.

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

Карта MicroSD

Посколюку SD (но не SDHC) карты умеют работать по интерфейсу SPI, использовать её достаточно просто. Карта подключается к SPI порту микроконтроллера. Вывод CS карты подтянут резистором R23 200кОм к линии питания, дабы карта не реагировала на всплески на линии, пока МК находится в состоянии сброса. Нашёл несколько карт MicroSD у себя дома, но все они оказались на 2Гб. Несколько расточительно использовать карты такого объёма для 3 мегабайт звуков. Но зато есть запас на будущее 😉

Сигналы “по плюсу”

Все цепи сигналов развязаны с МК при помощи однотипных схем на транзисторах и отделены диодом. Конечно, их можно было бы упростить, например, используя простые делители. В этом случае, правда пришлось бы точно подбирать номинал резисторов, а ещё существует опасность что, пока схема неактивно, напряжение через делители будет нагружать защитные диоды микроконтроллера.

Сигналы, присутствие которых обозначается наличием положительного напряжения на линии, такие как “зажигание”, “ABS”, положения селектора АКПП (блок А), подключаются через полевые транзисторы VT3, который замыкает вход МК на “землю”. Вход МК внутренним резистором подтягивается к линии питания. Подавление дребезга на этих входах идёт программно

Входы импульсов от тахометра и спидометра подходят на входы внешних прерываний INT1 и INT0 (блок B). Для них дребезг уменьшается аппаратно, при помощи конденсаторов C2.

Сигнал тахометра

Сигнал от генератора (charge) считается активным, когда на нём низкий уровень. Но по факту между “общим” проводом и этой линией возникает разность потенциалов в этот момент более 1.5 Вольт. Поэтому на нём собрана схема “по плюсу”, единственное отличие — это делитель из резисторов R10/R14. Пороговое напряжение транзистора 1-3 Вольта. При таком делителе, чтобы транзистор открылся напряжение на линии должно составить минимум 3.5 Вольта (максимум 10.5), что вполне отвечает нуждам этого входа.

Сигналы “по минусу”

Сигналы от датчиков недостаточного уровня омывающей жидкости, недостаточного давления масла, непристёгнутого ремня, концевиков ручного тормоза, дверей и багажника, и сигнал “check engine” замыкаются на “землю” (блок C). Схема управляется при помощи биполярного PNP транзистора VT6, который замыкает вход МК на линию питания, в остальное время вход притянут к низкому уровню резистором R18.

Аналоговые сигналы

Сигналы от датчика уровня топлива и датчика температуры охлаждающей жидкости притягиваются к стабилизированному напряжению самой приборной панелью. В результате, на этих линиях образуются напряжения в диапазоне 1…8 Вольт . Чтобы снять эти напряжения, используется делитель из резисторов R12 и R15 (блок D), всплески и помехи фильтруются конденсатором С3.

Изготовление

Всё это дело я разместил на двусторонней плате 40х60мм.

Для подключения использовал разъёмы из серии CHU / CWF-R с шагом контактов 2.5мм. Контакты везде пропаяны с обеих сторон платы, дабы избежать проникновения влаги в отверстия с последующим обледенением и всем смежным.

Засунул внутрь коробки BOX-KA08 производства МастерКит.

При сверлении отверстий под динамики застряло сверло, в результате чего немного попортился дизайн. Но мне на него не глазеть, так что оставил как есть. Сами динамики к крышке приляпаны на “суперклей”. Плату покрыл прозрачным цапонлаком, дабы защитить от влаги и сырости.

Работа прошивки

Прошивка написана для ATmega168PA, но может быть без изменений залита в ATmega328P (что я и сделал, поскольку в нашем магазине почему-то 328P дешевле чем 168PA).

Тактируется от внутреннего RC-генератора на 8МГц.

Работает программа по принципу смешанной, вытесняюще-кооперативной многозадачности.

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

Для чтения sd карты используется аппаратная поддержка SPI, а процедуры чтения написаны таким образом, чтобы выполнять упреждающее чтение. В результате, пока значение последнего прочитанного байта обрабатывается, интерфейс SPI уже начитывает следующий байт.

Для воспроизведения файлов реализована очередь на 64 элемента, в которую помещаются номера файлов для дальнейшего воспроизведения.

Основное тело программы, после проведения необходимых процедур инициализации, передаёт управление циклу воспроизведения wav-файлов. Этот цикл ждёт появления чего-нибудь в очереди воспроизведения. Если очередь пуста, МК отправляется в состояние idle, если же в очереди появился элемент на воспроизведение, то передаётся управление процедуре воспроизведения файла.

Процедура воспроизведения начитывает его структуру, параметры, и начинает читать, преобразуя формат в “моно, 8 бит”, при необходимости ресемплируя до частоты 32000. Полученный в итоге поток помещается в кольцевой буфер, размером 256 элементов. Если буфер заполнен, то ожидается его освобождение, а МК отправляется в idle. Скорости чтения и обработки хватает, чтобы без задержек читать файлы формата “16 бит, моно, 44100 sps”, однако на стерео файлы этой частоты уже не хватает скорости. Для упрощения воспроизведения рекомендуется все файлы сохранять сразу в формате 8 бит, моно, 32000 или 16000 сэмплов в секунду.

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

В прерывании таймера 0, который используется для формирования ШИМ и воспроизведения, извлекается очередное значение из кольцевого буфера и передаётся в качестве значения заполнения ШИМ. Если буфер опустошён, но воспроизведение идёт, то ожидается его заполнения — в этом случае ШИМ несколько раз подряд выдаёт одно и то же значение заполнения. Если же воспроизведение закончено, то выполняется плавное уменьшение значения ШИМ до нуля, затем таймер останавливается, ШИМ выход отключается. Такое уменьшение позволяет избежать щелчка в конце воспроизведения файла.

Компилятор gcc даёт не очень эффективный код для обработчика прерываний, поэтому этот обработчик написан на ассемблере и выполняется максимум 38 тактов.

Два вспомогательных прерывания по сигналам на входах INT0 и INT1 также написаны на ассемблере и призваны считать импульсы спидометра и тахометра.

Вся основная программа написана в прерывании Timer2, которое выполняется около 1000 раз в секунду. Прерывание запускает АЦП для замера значений на одном из трёх аналоговых входов (напряжение в сети, уровень топлива, температура двигателя). Значение складывается из 64 идущих подряд измерений, что дополнительно уменьшает шумы.

Каждый 16й вызов прерывания (т.е. около 30 раз в секунду) запускается основной цикл обработчика. В нём отключается прерывание Timer2, и разрешаются глобальные прерывания. В результате, пока он работает, прерывания воспроизведения звука и входов INT0 и INT1 будут работать нормально.
Далее анализируются значения на всех входах, выполняется функция подавления дребезга и запускается логика обработки, которая уже при необходимости помещает нужные звуки в очередь воспроизведения.

Обрабатываемые события

Система контролирует и предупреждает при следующих событиях:

— Напряжение сети меньше заданного уровня (отдельно при остановленном двигателе, отдельно при запущенном)
— Напряжение сети выше заданного уровня
— Уровень топлива ниже заданного уровня (чтобы компенсировать плескание топлива, полученные значения фильтруются, и низкий уровень должен присутствовать в течение длительного времени)
— Температура двигателя выше заданной границы (предупреждения будут повторяться, если температура будет повышаться дальше)
— Низкий уровень в бачке омывателя.
— Не пристёгнут ремень безопасности при движении машины.
— Поднят ручной тормоз при движении машины.
— Не закрыта дверь при начале движения машины.
— Не закрыт багажник при переводе рычага в положение D.
— Двигатель заглох, при включенном зажигании.
— При включении D селектора, температура двигателя ниже заданного уровня
— Зажигание ламп “генератора”, “проверить двигатель” при работающем более 3х секунд двигателе и включенном зажигании.
— Срабатывание ABS и TCS
— Спонтанное движение машины при остановленном двигателе.

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

Кроме того, если три раза поднять-опустить ручной тормоз, не более 2х секунд между подъёмами, то скажет текущее напряжение в бортовой сети.

Ещё было приветствие и прощание (мелодичные “блим”) после первого запуска двигателя, и после выключения зажигания, плюс “счастливого пути” после первого перевода селектора в D. Но я их отключил, удалив с флешки. Кстати любое “лишнее” сообщение можно просто удалить с флешки.

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

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

Демонстрацию некоторых сообщений и режима настройки можно посмотреть тут:

Прошивка, исходный код, разводка платы в Sprint Layout 6 тут: архив…
Набор звуковых файлов тут: архив.

Автор; Дмитрий Погребняк г.Самара, Россия

Источник статьи: http://xn—-7sbbil6bsrpx.xn--p1ai/avtomobilnaya-govorilka-svoimi-rukami.html

Читайте также:  Через сколько часов автомобили встретяться
Оцените статью