Говорящая бутылка.

Говорящая бутылка.

Опять проект шуточного устройства – говорящей бутылки. Когда бутылку ставят на стол, она говорит пожелания, тосты, может спеть или сыграть что-нибудь. Стоимость электронных комплектующих для изготовления такого чуда всего 250 – 300 руб.

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

 

Но у директора нашей фирмы, он же и мой друг, был День Рождения. Он армянин. Как следствие - любит многолюдные застолья. Решили удивить, сделать приятное для него, а также его друзей и родственников.

Подарок оказался очень забавным. Гости были в восторге. Проверено на значительной части армян Ростова-на-Дону и близ лежащих городов.

 

Общее описание чудо-бутылки.

С виду это довольно объемная стеклянная бутылка оплетенная лозой. В нее наливается вино, водка или коньяк и бутылка используется по прямому назначению. Т.е. с нее наливают в бокалы. Но каждый раз после того, как бутылку ставят на стол, она говорит что-нибудь. Это может быть тост, пожелание, анекдот. Удивительная бутылка может спеть, сыграть, издавать любые звуки.

Вот как это выглядит.

Внизу стеклянной бутылки установлен электронный блок. В нем есть датчик вибраций. Когда бутылку ставят на стол, датчик срабатывает, будит микроконтроллер, он в свою очередь включает mp3-модуль и проигрывается звуковой файл с микро SD карточки. И микроконтроллер опять засыпает, потребляя ток всего 80-100 мкА. Выключателя у устройства нет.

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

Если звук не закончился, а бутылку опять поставили, то проигрывается новый mp3-файл. Это позволяет имитировать у бутылки примитивный интеллект. Можно записать длинный звуковой файл. И при проигрывании прервать его, например, со словами:  ”А ну заткнись!” и стукнуть бутылкой. Если следующий звуковой файл будет вроде ”Могу и заткнуться”, то получится диалог с бутылкой.

 

Конструкция чудо-бутылки.

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

  • Нашли невысокую бутылку квадратного сечения.
  • На3D-принтере распечатали отсек для электроники.
  • Оплели все это газетными трубочками.

оплести бутылку газетными трубочками

оплести бутылку газетными трубочками

оплести бутылку газетными трубочками

  • Вскрыли лаком. Приклеили зеленые листочки.

Окончательный внешний вид

Откуда их взяли не знаю. Наверное, тоже на принтере напечатали.

  • Установили электронную плату, динамик, батарейный отсек, датчик вибраций.

Отсек электроники

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

 

Электронная часть устройства.

Основные элементы это плата Arduino PRO Mini и модуль MP3 плейера DFPLayer Mini module.

Про модуль я напишу урок. Достаточный объем информации о нем можно получить из статьи о предыдущем проекте – сканере головы.

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

Вот принципиальная схема говорящей бутылки.

Принципиальная схема говорящей бутылки

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

Но есть 2 серьезные проблемы.

  • MP3-модуль потребляет приличный ток в режиме ожидания.

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

  • При подаче питания на модуль он издает громкий щелкающий звук.

У усилителя звуковой частоты модуля микросхемы 8002 есть сигнал разрешения (вывод 1), который подключен к земле через резистор с нулевым сопротивлением.

Вот он справа, внизу платы.

Модуль mp3-плейера

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

Кроме того с платы Arduino PRO Mini необходимо выпаять светодиод питания и стабилизатор 5 В. Эти элементы также потребляют значительный ток.

Выпаиваемые элементы

В качестве датчика вибраций используется SW-18015P (SW-180xx.pdf). По моей партнерской ссылке он стоит всего 10 руб.

Датчик вибраций SW-18015P

Опытным путем пришел к тому, что датчик надо устанавливать горизонтально, параллельно дну бутылки.

Питается устройство от 3х батареек суммарным напряжением 4,5 В. Перестает работать при напряжении питания 3,5 В.

Это не очень хорошо. Но проблема в том, что MP3-модуль допускает напряжение питания от 3,5 до 5 В. Если подключить к 4 батарейкам, то напряжение питания может достигать 6 В, что недопустимо.

Хороший вариант стабилизировать напряжение низко-потребляющим стабилизатором, например, MAX603CSA. Тогда можно использовать 4 и более батареек, соединенных последовательно.

 

Еще одна особенность.

Когда бутылку ставят на стол, она должна сказать что-то с минимальной задержкой. А задержек там хватает. Только после подачи питания на mp3-модуль необходима пауза 0,5 сек. Если ко всем задержкам добавить время, которое плата Ардуино ожидает загрузки с UART после каждого сброса, то будет совсем длинная пауза.

Выход один - загрузить в плату программу без бутлоадера. Это можно сделать только с помощью ISP программатора. В ближайшее время напишу урок об этом.

Сейчас дам минимум информации для тех, кто знает, как пользоваться ISP программатором.

Программу необходимо компилировать через путь Скетч -> Экспорт бинарного файла.

В результате в папке скетча будут созданы еще 2 дополнительных файла.

Бинарные файлы

Надо использовать файл без бутлоадера.

Фьюзы я установил такие.

Фьюзы

Для тех, кто не знает, что это такое, я напишу в уроке об ISP программировании.

 

Подготовка SD карты.

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

  • Подготовить mp3-файлы. Переименовать их с именами 0001.mp3, 0002.mp3 и т.д.
  • Отформатировать карту памяти.
  • Создать папку mp3.
  • Загрузить в эту папку файлы по очереди начиная с 0001.mp3.

Файлы проигрываются по очереди, начиная с 0001.mp3.

Когда воспроизводится последний файл, счетчик устанавливается на следующий, т.е. на несуществующий. Микроконтроллер определяет момент, когда заканчивается проигрывание mp3-файла по высокому уровню сигнала модуля BUSY. Если файла не существует, то этот сигнал формируется практически мгновенно. Программа вычисляет такую ситуацию и начинает проигрывание файлов с нулевого.

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

Допустимо использовать до 256 звуковых файлов. Ограничение определяется тем, что для хранения номера файла в EEROM используется один байт. Если увеличить разрядность счетчика файлов, то можно будет загружать до 3000 файлов.

Ссылки на скетч и бинарный файл:

 

Зарегистрируйтесь и оплатитеВсего 60 руб. в месяц за доступ ко всем ресурсам сайта!
 

Библиотеки:

DFPlayer_Mini_Mp3.h

Библиотеки EEPROM.h и avr/sleep.h устанавливать не надо. Впрочем можно вообще не компилировать скетч, использовать бинарный файл.

Электронная часть устройства у меня выглядит так.

Электронная часть устройства

Плата Ардуино и mp3-модуль жестко спаяны через кусок макетной платы.

Девушка на работе наговорила 100 файлов. Наверное, она мечтала стать актрисой. Вкладывала всю душу. Получилось неплохо, но немного однообразно. Думаю, лучше было использовать разные голоса.

 

Но устройство получилось забавным.

 

0

Автор публикации

не в сети 2 недели

Эдуард

280
Комментарии: 1936Публикации: 197Регистрация: 13-12-2015

8 комментариев на «Говорящая бутылка.»

  1. Спасибо Вам за объяснение что можно уменьшить потребляющий ток, хотел попробовать что-то сделать на ардуино, но не знал что они усыпляются для использования батарейками (ещё не работал с ними)

    0
    • Здравствуйте!
      Нет. Только несколько штук сделали в качестве подарков. Достаточно трудоемкое изготовление. Для серийного выпуска надо печатную плату разработать, корпус, бутылки боле менее одинаковые найти.

      0
    • Здравствуйте!
      Нет. На Arduino Nano есть конвертер интерфейсов CH340. Он подключен к питанию 5 В и потребляет несколько мА. Батарейка будет быстро разряжаться.

      0
    • Здравствуйте!
      Они не мои. Были созданы на фирме. Сделали с ними несколько бутылок в качестве подарков. Я спрошу но скорее, откажут.

      0

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Нажимая кнопку "Отправить" Вы даёте свое согласие на обработку введенной персональной информации в соответствии с Федеральным Законом №152-ФЗ от 27.07.2006 "О персональных данных".