Попала ко мне в руки занятная вещица — устройство Talky от Lumicube. Это электронный блок, в который вставляют карточку и он озвучивает написанное на ней слово. Предполагается, что это «развивающая» игрушка — ребенок вставляет в него карточки и запоминает слова, как визуально, так и на слух, благо слова озвучены весьма неплохо.
Но триггернуло меня по другой причине — карточки содержат лишь двоичный код, сами звуки заранее записаны в устройство. В комплекте с Talky один набор карточек, остальные нужно приобретать отдельно, хотя они и так уже хранятся в памяти!
Мне это напомнило опцию у автомобиля Tesla Model S 70, покупая которую за 3250$ бортовая электроника просто разблокирует дополнительные 5 квтч емкости батареи. Когда техника уже физически(!) имеет встроенный потенциал, который нереализован только потому, что кто-то не заплатил, я считаю грехом. Это не только впустую расходуемые невозобновляемые ресурсы, потраченные на то, что не используется, но и разделение людей по уровню дохода, что негуманно. Поэтому я решил сделать свой аналог, с блекджеком и шл… [видеоверсия в конце]
Итак, представляю вашему вниманию Open-source реализацию озвучивалки карточек, я назвал ее «Электросказатель».
В чем преимущества моей версии, перед оригиналом:
Как оказалось, штука получилась полезная. Еще на стадии прототипа, ее увидели у меня на столе коллеги и началось «а сделай нам, ну пожаааалуйста». Пришлось изготовить некоторое количество, попутно выявляя и исправляя проблемные места.
Куда придумали применять мой Электросказатель?
Карточка содержит двоичный код, который кодирует ее порядковый номер (и номер аудиофрагмента). У оригинала китайцами, (я думаю не секрет, что у оригинала отечественного только звук и дизайн карточек, а железки клепает китайская фабрика) кодовые метки размещены по краям карты. У оригинала они размещены вдоль широкой стороны, для меньшей заметности. Я же наоборот эти метки разместил вдоль короткой стороны явно, и даже подписал позиции каждого бита. Если сложить стопку карточек по возрастающей, то видно логику в формировании двоичного кода:
У оригинала 10 датчиков — это 2^10=1024 возможных карт. У меня датчиков 8 — это 2^8=256 возможных карточек.
Наличие карточки определяется механически — вставленная карточка замыкает контакт. Это позволяет избежать заикания и ложного считывания, когда карточка движется в направляющих, и не все метки заняли свои места напротив датчиков. Если в оригинале контакт — сигнал для микроконтроллера, то в моем варианте это выключатель питания) Так я проигрываю в энергосбережении, но зато не использую дополнительных микроконтроллеров, только специализированный MP3 плеер :)
Сердцем Электросказателя является линейка китайских MP3 модулей-плееров. Они имеют 8 линий-входов для управления и могут работать в одном из трех режимов: Управление по UART,
аудиотриггер на 8 кнопок, и нужный нам — аудиотриггер управляемый 8 бит кодом. Да, просто подаем на параллельный вход 8 бит с порядковым номером файла и плеер начинает его играть в цикле.
Вот эти модули на картинке:
Правый DY-SV17F имеет на борту 4 МБ памяти под звуки, USB порт для подключения к компьютеру (опознается как флешка), 5 Вт усилитель мощности для динамика 4-8 Ом, и стоит всего около 150Р!
Левый DY-SV8F — то же самое, но имеет регулятор громкости, DIP переключатель для выбора режима и выход 3,5 мм джек.
Средний DY-SV5W — то же самое, что предыдущий, но вместо 4 МБ встроенной памяти слот под SD карточку, так что можно загружать хоть сказки по пол часа на каждую карточку.
Печатную плату, как и корпус, я сделал универсальными, припаивайте тот модуль, что больше нравится. Строго говоря, даже печатная плата не нужна, если вы готовы повозиться с макеткой.
В итоге схема работы такова — вставляем карточку до упора, чтобы ее край нажал на толкатель микровыключателя. Микровыключатель подключает питание к плате — зажигаются ИК светодиоды датчиков.
В зависимости от того, черное или белое поле карточки напротив датчика — формируется двоичный код на входах плеера, сообщающий какой файл воспроизводить. Плеер загружается и играет нужный нам звук)
Весь массив датчиков выглядит так:
Для бОльшей энергоэффективности целесообразно светодиоды оптопар собирать последовательно в цепочки по две.
Так как памяти всего 4 МБ, то файлы со звуками пришлось в Audacity нещадно жать — перегонял в моно, битрейд 32-64 кбит. В итоге в память устройства удалось засунуть два набора карточек («Мемы» и «Звуки олдскула» и даже 800 кБ осталось). Для расширения набора карточками «Твои первые blackmetal группы» и «Твои первые слова» пришлось использовать модуль с SD карточкой.
Когда устройство у меня заработало сразу, я насторожился, слишком все просто. Но оказалось, что некоторые экземпляры работали нестабильно, начиная во время воспроизведения заикаться или вообще неверно считывать код. Увы, разброс характеристик оптопар с алиэкспресса, разная белизна бумаги и чернота тонера — в итоге напряжения на входах плеера оказывались за пределами четких логических нулей и единиц, что и вызывало нестабильную работу. В таком случае алгоритм таков — вставляем карточку устройство до упора, и измеряем напряжение на входах плеера. Там где у нас черная метка, напряжение должно быть более 2В. Если оно ниже — то нужно увеличить сопротивление в цепи ИК светодиода. Там, где метка белая, напряжение входа должно быть менее 0,5В. Если оно больше — то уменьшаем сопротивление в цепи ИК светодиода.
Изначально я использовал оптопары KTIR0711S, и значения сопротивлений указано для этой модели оптопары. Если использовать KTIR0721DS или KTIR0821DS — то там составной фототранзистор, которому для открытия нужно меньше света, поэтому сопротивления в цепи ИК светодиода придется увеличить, чтобы уменьшить ток и количество света. Также рекомендую печатать корпус из черного пластика, пластик других цветов дает паразитную засветку и нестабильную работу, придется красить черной краской торца окошек, где располагаются оптопары. Также учитывайте, что длина волны светодиода 940 нм, и не все черные краски и маркеры являются черными при таком свете, поэтому подкрашивание блеклой метки маркером может не помочь.
Вам понадобится:
Печатаем карточки. Макет сделал для односторонней печати, просто карточка складывается пополам. На макете линии выреза как для использования карточки без ламинации, так и под ламинацию.
Затем вкладываем бумагу в конверт и прокатываем через ламинатор, если не пропеклось с первого раза — прокатываем еще.
На удивление процесс изготовления карточек занял у меня больше времени, чем само устройство.
Дальше берем печатную плату и припаиваем оптопары. Посадочные места подходят как для выводных, так и для SMD корпусов, в зависимости от того, что удалось добыть.
Если нет платы — можно сделать на макетной, просто это дольше:
Дальше припаиваем модуль mp3-плеера, припаиваем динамик. Питание припаиваем через микровыключатель. Можно вклеить магниты, которые будут держать крышку. Вот моя версия, модуль с SD карточкой. Плата крепится капелькой клея:
Микровыключатель вклеивается заподлицо с поверхностью:
На верхней крышке шлифуем ступеньки на направляющем упоре напротив лапки микровыключателя. Если этого не сделать — карточка будет упираться в ступеньки слоев, а не скользить по ним. Ну и все — закрепляем верхнюю крышку на 6 саморезов, саморезом клепим батарейный отсек и готово:
Если вы делали на макетке, как я первый прототип, то будет примерно так:
Если все сделано верно — работает сразу после загрузки файлов в память. Если подглючивает, заикается, неверно читает код — смотрите раздел «настройка оптопар».
Самое веселое в этом проекте — делать наборы карточек. Просто берем макет — там отрисованы все 256 карт. Помещаем на карточку картинку (я делал все в программе Inkscape), а номером, который на ней написан — называем .mp3 файл. Например на карточку с номером 00036 поместили рисунок с змеёй. Тогда файл с шипением называем 00036.mp3 и помещаем в корень файловой системы. Ну и учитывам лимит памяти, где-то в аудиоредакторе жертвуя качеством.
Я сделал наборы карт:
«Мемы» — с известными интернет-мемами. Знать мемы нынче так же важно, как знать персонажей анекдотов, фильмов и другого фольклора, иначе не поймете о чем речь.
«Звуки олдскула» — звуки, способные вызвать приступ ностальгии, от позывных радиостанций, до звуков из видеоигр. Поколение 30+ оценит.
«Твои первые black metal группы» — прививаем хороший музыкальный вкус :D Ну не с рэпом же знакомить детей.
«Твои первые слова» — фраза «пошел на....» на разных языках. Оказалось не так просто найти звучание от носителя, а не в озвучке ютуб-блогеров первый раз употребляющих слова на незнакомом языке. Плюс пришлось штудировать reddit в поисках тонкостей смысловой нагрузки фраз и их употребления.
На это у меня хватило сил. На что у меня не хватило сил, но может кто-нибудь подхватит идею, благо карточками спокойно можно делиться (можете присылать мне — выложу у себя на сайте):
«Пение птиц» — карточки с изображением птицы и звуком ее пения. Я даже нашел интересный ютуб-канал на тему птиц, где это пение можно услышать для птиц нашей местности. Потом подумал, что было бы весело сделать карточки со звуками экзотических птиц, про звуки которых вообще не подумаешь что это птица, как например казуар или Бурая шилоклювая райская птица.
«Звучание музыкальных инструментов» — качество используемого динамика вполне позволяет передать звучание разных музыкальных инструментов, не превращая его в «звуки из китайской детской игрушки».
«Звуки советской культуры» — нарезка известных фраз из мультфильмов, кино, песен, прочно вошедшая в наш народный фольклор.
«посторонние звуки» — карточки для развития словарного запаса персонала о посторонних звуках в технике — «звон», «дребезг», «посвистывание», «подвывание», «треск», «скрежет» и т.д.
Устройство распространяется под лицензией CC BY-NC-SA. Тоесть можно свободно распространять, переделывать, изготавливать, делиться, с тремя ограничениями: оставлять ссылку на первоисточник (меня), не извлекать прибыль и все производные работы распространять на тех же условиях.
STL файл корпуса, коробочек под карты можно скачать на Thingiverse: www.thingiverse.com/thing:6472113. Там же архив с gerber файлом печатной платы и макет для изготовления карточек. Макет с наборами карточек что делал я, выложу только у себя на сайте и в моем телеграм канале из-за копирайтных ограничений, черт его знает, кто пожалуется что у него права на мем.
Следить за обновлениями можно у меня в телеграм канале: t.me/s/serkov_me
Обещанная видеоверсия:
Но триггернуло меня по другой причине — карточки содержат лишь двоичный код, сами звуки заранее записаны в устройство. В комплекте с Talky один набор карточек, остальные нужно приобретать отдельно, хотя они и так уже хранятся в памяти!
Мне это напомнило опцию у автомобиля Tesla Model S 70, покупая которую за 3250$ бортовая электроника просто разблокирует дополнительные 5 квтч емкости батареи. Когда техника уже физически(!) имеет встроенный потенциал, который нереализован только потому, что кто-то не заплатил, я считаю грехом. Это не только впустую расходуемые невозобновляемые ресурсы, потраченные на то, что не используется, но и разделение людей по уровню дохода, что негуманно. Поэтому я решил сделать свой аналог, с блекджеком и шл… [видеоверсия в конце]
Итак, представляю вашему вниманию Open-source реализацию озвучивалки карточек, я назвал ее «Электросказатель».
В чем преимущества моей версии, перед оригиналом:
- Можно создавать СВОИ наборы карточек, для чего выкладываю макет. Файлы со звуками просто заливаются по USB в память.
- Устройство включается вставленной карточкой, нет нужды выключать устройство.
- Есть опциональный 3.5 джек, звук можно выводить хоть в наушники, хоть в стереосистему, причем в хорошем качестве.
- Используются обычные элементы питания 3*АА/ААА. Никаких «забыл зарядить» и «аккумулятор от старости вздулся».
- Ну и конечно же доступность для самостоятельной сборки и модификации. Электрическая схема, модель корпуса макеты карточек — всем делюсь.
Как оказалось, штука получилась полезная. Еще на стадии прототипа, ее увидели у меня на столе коллеги и началось «а сделай нам, ну пожаааалуйста». Пришлось изготовить некоторое количество, попутно выявляя и исправляя проблемные места.
Куда придумали применять мой Электросказатель?
- Подарок «мальчикам за 30» с набором карточек «Мемы» и «звуки олдскула». Если от карточек с мемами просто повышается настроение, то от звуков олдскула начинается приступ ностальгии. Причем набор карточек можно создать под конкретного человека, его увлечения и чувство юмора. Моей фантазии хватило на 4 набора карточек, но я надеюсь люди будут делиться своими наработками)
- Аудиооткрытка. Имениннику дарится устройство в котором заранее прошиты поздравления, а может просто звуки из важных моментов жизни. Каждый гость готовит пару «картинка-звук», и в итоге получается стопка карточек, которые просто интересно и неожиданно вставить и послушать.
- Оборудование для квестов и мероприятий. Участник использует карточку как ключ — если вставить в устройство, то оно проговорит индивидуальное задание. Для этих целей пришлось изготовить 8 комплектов Электросказателя, мероприятия прошли успешно, дети в восторге.
Как это работает
Карточка содержит двоичный код, который кодирует ее порядковый номер (и номер аудиофрагмента). У оригинала китайцами, (я думаю не секрет, что у оригинала отечественного только звук и дизайн карточек, а железки клепает китайская фабрика) кодовые метки размещены по краям карты. У оригинала они размещены вдоль широкой стороны, для меньшей заметности. Я же наоборот эти метки разместил вдоль короткой стороны явно, и даже подписал позиции каждого бита. Если сложить стопку карточек по возрастающей, то видно логику в формировании двоичного кода:
У оригинала 10 датчиков — это 2^10=1024 возможных карт. У меня датчиков 8 — это 2^8=256 возможных карточек.
Наличие карточки определяется механически — вставленная карточка замыкает контакт. Это позволяет избежать заикания и ложного считывания, когда карточка движется в направляющих, и не все метки заняли свои места напротив датчиков. Если в оригинале контакт — сигнал для микроконтроллера, то в моем варианте это выключатель питания) Так я проигрываю в энергосбережении, но зато не использую дополнительных микроконтроллеров, только специализированный MP3 плеер :)
Сердцем Электросказателя является линейка китайских MP3 модулей-плееров. Они имеют 8 линий-входов для управления и могут работать в одном из трех режимов: Управление по UART,
аудиотриггер на 8 кнопок, и нужный нам — аудиотриггер управляемый 8 бит кодом. Да, просто подаем на параллельный вход 8 бит с порядковым номером файла и плеер начинает его играть в цикле.
Вот эти модули на картинке:
Правый DY-SV17F имеет на борту 4 МБ памяти под звуки, USB порт для подключения к компьютеру (опознается как флешка), 5 Вт усилитель мощности для динамика 4-8 Ом, и стоит всего около 150Р!
Левый DY-SV8F — то же самое, но имеет регулятор громкости, DIP переключатель для выбора режима и выход 3,5 мм джек.
Средний DY-SV5W — то же самое, что предыдущий, но вместо 4 МБ встроенной памяти слот под SD карточку, так что можно загружать хоть сказки по пол часа на каждую карточку.
Печатную плату, как и корпус, я сделал универсальными, припаивайте тот модуль, что больше нравится. Строго говоря, даже печатная плата не нужна, если вы готовы повозиться с макеткой.
В итоге схема работы такова — вставляем карточку до упора, чтобы ее край нажал на толкатель микровыключателя. Микровыключатель подключает питание к плате — зажигаются ИК светодиоды датчиков.
В зависимости от того, черное или белое поле карточки напротив датчика — формируется двоичный код на входах плеера, сообщающий какой файл воспроизводить. Плеер загружается и играет нужный нам звук)
Весь массив датчиков выглядит так:
Для бОльшей энергоэффективности целесообразно светодиоды оптопар собирать последовательно в цепочки по две.
Так как памяти всего 4 МБ, то файлы со звуками пришлось в Audacity нещадно жать — перегонял в моно, битрейд 32-64 кбит. В итоге в память устройства удалось засунуть два набора карточек («Мемы» и «Звуки олдскула» и даже 800 кБ осталось). Для расширения набора карточками «Твои первые blackmetal группы» и «Твои первые слова» пришлось использовать модуль с SD карточкой.
Настройка оптопар
Когда устройство у меня заработало сразу, я насторожился, слишком все просто. Но оказалось, что некоторые экземпляры работали нестабильно, начиная во время воспроизведения заикаться или вообще неверно считывать код. Увы, разброс характеристик оптопар с алиэкспресса, разная белизна бумаги и чернота тонера — в итоге напряжения на входах плеера оказывались за пределами четких логических нулей и единиц, что и вызывало нестабильную работу. В таком случае алгоритм таков — вставляем карточку устройство до упора, и измеряем напряжение на входах плеера. Там где у нас черная метка, напряжение должно быть более 2В. Если оно ниже — то нужно увеличить сопротивление в цепи ИК светодиода. Там, где метка белая, напряжение входа должно быть менее 0,5В. Если оно больше — то уменьшаем сопротивление в цепи ИК светодиода.
Изначально я использовал оптопары KTIR0711S, и значения сопротивлений указано для этой модели оптопары. Если использовать KTIR0721DS или KTIR0821DS — то там составной фототранзистор, которому для открытия нужно меньше света, поэтому сопротивления в цепи ИК светодиода придется увеличить, чтобы уменьшить ток и количество света. Также рекомендую печатать корпус из черного пластика, пластик других цветов дает паразитную засветку и нестабильную работу, придется красить черной краской торца окошек, где располагаются оптопары. Также учитывайте, что длина волны светодиода 940 нм, и не все черные краски и маркеры являются черными при таком свете, поэтому подкрашивание блеклой метки маркером может не помочь.
Процесс изготовления
Вам понадобится:
- 3Д принтер для печати 3х деталей корпуса,
- 8 оптопар на отражение, например KTIR0711S, но можно заказать ITR8307 с алиэкспресса,
- модуль мп3 плеера, хотя бы DY-SV17F,
- микровыключатель с лапкой, например D2F-01-L
- Готовая печатная плата (герберы я выложил), либо макетная плата и немного тонкого провода
- 4 SMD резистора 140 Ом, если используется модуль DY-SV17F, то еще 3 резистора на 1-10К для подтяжек. размер 1206.
- Держатель батареек 3*АА или 3*ААА
- Динамик 4Ом диаметром 50 мм. Динамики на 8 Ом играют слишком тихо, а динамики меньшего диаметра — совсем паршиво передают низкочастотную часть звучания.
- Клей двухкомпонентный, либо клей-пистолет.
- Круглые магниты диаметром 5 мм и высотой 5 мм — 8 шт, хотя новая задняя крышка держится и без них, но пока ребристость от слоев не износилась.
- 6 тоненьких саморезов для крепления верхней крышки, я использовал нержавеющие с головкой TORX чисто из эстетических соображений
- ламинатор, принтер и конверты для ламинирования размером 65*95 мм. Толщина пленки 200 микрон самое то, карточка получается «пластиковой» и жесткой.
Печатаем карточки. Макет сделал для односторонней печати, просто карточка складывается пополам. На макете линии выреза как для использования карточки без ламинации, так и под ламинацию.
Затем вкладываем бумагу в конверт и прокатываем через ламинатор, если не пропеклось с первого раза — прокатываем еще.
На удивление процесс изготовления карточек занял у меня больше времени, чем само устройство.
Дальше берем печатную плату и припаиваем оптопары. Посадочные места подходят как для выводных, так и для SMD корпусов, в зависимости от того, что удалось добыть.
Если нет платы — можно сделать на макетной, просто это дольше:
Дальше припаиваем модуль mp3-плеера, припаиваем динамик. Питание припаиваем через микровыключатель. Можно вклеить магниты, которые будут держать крышку. Вот моя версия, модуль с SD карточкой. Плата крепится капелькой клея:
Микровыключатель вклеивается заподлицо с поверхностью:
На верхней крышке шлифуем ступеньки на направляющем упоре напротив лапки микровыключателя. Если этого не сделать — карточка будет упираться в ступеньки слоев, а не скользить по ним. Ну и все — закрепляем верхнюю крышку на 6 саморезов, саморезом клепим батарейный отсек и готово:
Если вы делали на макетке, как я первый прототип, то будет примерно так:
Если все сделано верно — работает сразу после загрузки файлов в память. Если подглючивает, заикается, неверно читает код — смотрите раздел «настройка оптопар».
Веселимся. Наборы карт
Самое веселое в этом проекте — делать наборы карточек. Просто берем макет — там отрисованы все 256 карт. Помещаем на карточку картинку (я делал все в программе Inkscape), а номером, который на ней написан — называем .mp3 файл. Например на карточку с номером 00036 поместили рисунок с змеёй. Тогда файл с шипением называем 00036.mp3 и помещаем в корень файловой системы. Ну и учитывам лимит памяти, где-то в аудиоредакторе жертвуя качеством.
Я сделал наборы карт:
«Мемы» — с известными интернет-мемами. Знать мемы нынче так же важно, как знать персонажей анекдотов, фильмов и другого фольклора, иначе не поймете о чем речь.
«Звуки олдскула» — звуки, способные вызвать приступ ностальгии, от позывных радиостанций, до звуков из видеоигр. Поколение 30+ оценит.
«Твои первые black metal группы» — прививаем хороший музыкальный вкус :D Ну не с рэпом же знакомить детей.
«Твои первые слова» — фраза «пошел на....» на разных языках. Оказалось не так просто найти звучание от носителя, а не в озвучке ютуб-блогеров первый раз употребляющих слова на незнакомом языке. Плюс пришлось штудировать reddit в поисках тонкостей смысловой нагрузки фраз и их употребления.
На это у меня хватило сил. На что у меня не хватило сил, но может кто-нибудь подхватит идею, благо карточками спокойно можно делиться (можете присылать мне — выложу у себя на сайте):
«Пение птиц» — карточки с изображением птицы и звуком ее пения. Я даже нашел интересный ютуб-канал на тему птиц, где это пение можно услышать для птиц нашей местности. Потом подумал, что было бы весело сделать карточки со звуками экзотических птиц, про звуки которых вообще не подумаешь что это птица, как например казуар или Бурая шилоклювая райская птица.
«Звучание музыкальных инструментов» — качество используемого динамика вполне позволяет передать звучание разных музыкальных инструментов, не превращая его в «звуки из китайской детской игрушки».
«Звуки советской культуры» — нарезка известных фраз из мультфильмов, кино, песен, прочно вошедшая в наш народный фольклор.
«посторонние звуки» — карточки для развития словарного запаса персонала о посторонних звуках в технике — «звон», «дребезг», «посвистывание», «подвывание», «треск», «скрежет» и т.д.
Где скачать
Устройство распространяется под лицензией CC BY-NC-SA. Тоесть можно свободно распространять, переделывать, изготавливать, делиться, с тремя ограничениями: оставлять ссылку на первоисточник (меня), не извлекать прибыль и все производные работы распространять на тех же условиях.
STL файл корпуса, коробочек под карты можно скачать на Thingiverse: www.thingiverse.com/thing:6472113. Там же архив с gerber файлом печатной платы и макет для изготовления карточек. Макет с наборами карточек что делал я, выложу только у себя на сайте и в моем телеграм канале из-за копирайтных ограничений, черт его знает, кто пожалуется что у него права на мем.
Следить за обновлениями можно у меня в телеграм канале: t.me/s/serkov_me
Обещанная видеоверсия: