Для питомцев

Собачья клавиатура для озвучки команд человеку

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

Нужны:
1. 2 пластмассовые коробки 19х11х6 см (можно собрать полностью из дерева, фанеры или осб).
2. Кусок OSB 38х11 см толщиной 9мм.
3. 4 пластиковых крышки от баллонов со строительной пеной. Желательно разных цветов.
4. Пенополиэтилен сшитый, 55х35х35мм, 4шт..
5. 4 кнопки.
6. USB аудиоколонки.
7. Arduino nano.
8. Разъем для SD карт (или готовый модуль для чтения SD карт).
9. SD карта 2GB или 4GB.
9. Резисторы: 10 кОм = 4шт., 3.3 кОм = 3 шт., 1.8 кОм = 3 шт..
10. Провода.
11. Блок питания на 5В.
12. Разъем для блока питания.
13. Саморезы 15мм = 8шт..

Помогут все это собрать:
1. Электролобзик.
2. Нож.
3. Паяльник.
4. Отвертка.
5. Клеевой пистолет.
6. Двусторонний скотч.

Процесс сборки:
Одной длинной коробки не нашел, поэтому за основу взял две коротких.

С одной из узких сторон на обеих коробках вырезал край на глубину равную толщине OSB листа. В моем случае это 9мм.

Совместил коробки обрезанными краями вместе.

Отмерил и вырезал лист OSB.

Так, чтобы он целиком весь входил внутрь.

Расположил на поверхности OSB и обвел карандашом контуры четырех крышек от баллонов с пеной. Поскольку крышки имеют конусовидную форму (совсем чуть-чуть, но факт), то обводить нужно поставив их вверх дном. Иначе будут сильно болтаться в последствии.

Вырезаем отверстия электролобзиком.

Проверяем, что крышки свободно входят и могут двигаться внутри отверстий.

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

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

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

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

Далее, продел два провода через основание, припаял их к кнопке и зафиксировал все с помощью клея.

Так же поступил с остальными тремя клавишами.

Проверка работоспособности кнопок:

Из небольших USB колонок извлекаю усилитель .

Примеряю его расположение на дне коробки и проделываю 2 отверстия: под ручку громкости и под индикатор питания.

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

Затем сделал еще одно отверстие для вывода разъема питания.

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

SD модуль для карты памяти я собирал сам, по следующей схеме, изъяв SD разъем из нерабочего радиоприемника:

Но можно его купить уже готовый.
Звуковые файлы я записывал на диктофон смартфона. В моем случае это были простые слова:
«есть», «пить», «играть», «гулять».
После озвучки я обрезал файлы с помощью бесплатного аудиоредактора Audacity, удаляя лишние шумы и пустоты в начале и в конце файлов. Но, прежде чем записать их на SD карту, эти файлы необходимо привести к формату понятному Arduino. Сделать это можно в онлайн конвертере, например, https://audio.online-convert.com/ru/convert-to-wav.
Конвертировать нужно в формат WAV, с битрейтом «8 Бит», частоту выбрать «32000 Гц» или «22050 Гц», аудио-каналы — «моно».

Сохранять файлы надо прямо в корень SD карты, без папок, назвав их, соответственно:
«eat.wav», «drink.wav», «play.wav», «walk.wav».
Скетч для Arduino элементарный, его задача считывать состояния 4-х кнопок и запускать нужный звуковой файл с SD сразу после нажатия. Требуется только подключение библиотек для работы с SD картой и воспроизведения WAV файлов:

 Скетч #include #include #define SD_ChipSelectPin 10 #include //библиотека для воспроизведения WAV файлов с SD TMRpcm tmrpcm; byte const pinEat = 2; // pin button 1 byte const pinDrink = 3; // pin button 2 byte const pinWalk = 4; // pin button 4 byte const pinPlay = 5; // pin button 3 byte const pinSpeaker = 9; // pin audio int pauseTime=1000; // продолжительность паузы между словами void setup() { Serial.begin(9600); pinMode(pinEat, INPUT); pinMode(pinDrink, INPUT); pinMode(pinPlay, INPUT); pinMode(pinWalk, INPUT); tmrpcm.speakerPin = pinSpeaker; //пин динамика if ( !SD.begin( SD_ChipSelectPin )){ // проверить SD карту Serial.println(F("SD bad!!!")); return; } else{ Serial.println(F("SD OK.")); } tmrpcm.volume(1); } void loop() { if( digitalRead(pinEat)) { tmrpcm.play("eat.wav"); // сказать "кушать" delay(pauseTime); } else if( digitalRead(pinDrink)) { tmrpcm.play("drink.wav"); // сказать "пить" delay(pauseTime); } else if( digitalRead(pinPlay)) { tmrpcm.play("play.wav"); // сказать "играть" delay(pauseTime); } else if( digitalRead(pinWalk)) { tmrpcm.play("walk.wav"); // сказать "гулять" delay(pauseTime); } }
Собираю всю электронику, заливаю программу в контроллер и окончательно устанавливаю и закрепляю кнопки с помощью двустороннего скотча на их рабочие места.

Фиксирую OSB-крышку саморезами.

Итоговый вариант на рабочем месте:

Проверка работы:

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

Удачной всем дрессировки.

Источник

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

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

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

Кнопка «Наверх»


Яндекс.Метрика
Закрыть
Закрыть