[Перевод] Говорящая приставка к стиральной машине, не нарушающая гарантию
Приобретя стиральную машину с вроде бы механическим управлением, автор и его слепая супруга Сью вскоре поняли, что ошиблись. Вместо командоаппарата там оказался энкодер, абсолютное положение которого по понятной причине не связано с выбранной программой. Проверенный приём — наклеивание тактильных меток — более не действовал. Вряд ли автор знаком с журналом «Юный техник», значит, к этому решению он пришёл независимо — считывать состояние расположенных вокруг ручки энкодера светодиодов фоторезисторами.
На видео показана суть проблемы, но она и так понятна знающему, что такое энкодер:
Итак, рождается устройство под названием SOAP — Speech Output Announcing Programmes. Для удобства оно разделено на два блока. Первый содержит четырнадцать фоторезисторов, расположенных по кольцу, его конструкция зависит от геометрии передней панели машины. Во втором расположена собственно «говорилка», конструкция которой неизменна. Между собой они соединены шлейфом. Вмешательства в стиральную машину не происходит, гарантия не теряется.
Схема устройства показана ниже. Соединения с шилдом для хранения звуковых фрагментов не показаны, поскольку он просто установлен на клон Arduino подобно любому другому шилду. Количество фоторезисторов равно количеству программ у машины. Подтягивающие резисторы требуют подбора таким образом, чтобы при включённом светодиоде в машине напряжение на фоторезисторе было меньше 3 В, а при выключенном — больше.
Питается устройство от «Кроны» через кнопку с фиксацией и стабилизатор, расположенный на Arduino-совместимой плате. Удобнее, конечно, питать от пауэрбанка мимо этого стабилизатора, особенно если выбрана такая плата, где его нет.
Без корпусов и бленды устройство выглядит так:
Шлейф содержит 16 проводников, из которых 14 идут к фотодиодам, а оставшиеся 2 — к общему проводу.
Для датчика необходимо выпилить согласно чертежу две детали из стандартной макетной платы, затем установить фоторезисторы, перемычки и разъём (16 выводов в 2 ряда):
Результат сборки…
… оклеить спереди мягким светонепроницаемым материалом от коврика для мыши, сзади — им же, а также тонкой чёрной листовой пластмассой:
Далее показаны приёмы вырезания скругления на плате с фоторезисторами и отверстия в ней:
На чертеже обозначены: синим — сигнальные перемычки, зелёным — перемычки, соединённые с общим проводом, чёрным — перемычки, придающие механическую жёсткость, сиреневым — перерезанные печатные проводники, овалами — фоторезисторы. Фоторезисторы и перемычки необходимо впаивать со стороны, противоположной печатным проводникам.
На выводы фоторезисторов перед впайкой надеть трубочки:
На чертеже платы с разъёмом обозначения те же:
Готовая плата:
Две платы, соединённые вместе:
Схема оклейки плат пористым материалом и тонкой пластмассой:
Детали перед приклеиванием:
После:
Теперь добавляем изоленту с боков:
На ручку энкодера будет надеваться внешняя ручка, состоящая из крышки, кольца (пористый материал) и диска (тонкая листовая пластмасса):
Испытательная плата может работать в одном из двух режимов:
— подключён только шлейф от блока с фоторезисторами — можно измерять их сопротивление при наличии и отсутствии света
— подключён только шлейф от Arduino — можно имитировать уменьшение сопротивления фоторезисторов и проверять, приводит ли это к проигрыванию звуковых фрагментов
Надев первый блок на стиральную машину, необходимо подключить его шлейф к испытательной плате и, переключая режимы энкодером, измерять сопротивления освещённых фоторезисторов, определяя тем самым их разброс параметров. В таблице приведены результаты, получившиеся у автора и результаты подбора на их основе подтягивающих резисторов:
Как видно из таблицы, способ подбора прост: номинал подтягивающего резистора должен быть несколько больше сопротивления освещённого фоторезистора. Если светодиоды в стиральной машине перегружены и будут со временем терять яркость, в дальнейшем может потребоваться новый подбор подтягивающих резисторов.
После настройки необходимо заменить испытательную плату на переходную, в которую впаяны подобранные подтягивающие резисторы, и подключить к ней оба шлейфа:
Вот теперь можно собрать «говорилку»:
В плату хранения звуковых фрагментов необходимо записать фразы, соответствующие режимам стирки. Для этого:
— подключить динамическую головку как показано на чертеже:
— надеть плату на Arduino или его клон и подать питание:
— удержанием кнопки воспроизведения перевести плату в режим записи и произнести фразу, соответствующую первому режиму, например: «один — стирка хлопка».
— отпустить кнопку
— коротким нажатием на неё же заставить плату проиграть записанную фразу
— если не понравилось, перезаписать её
— нажатием кнопки «вперёд» перейти ко второй ячейке
— записать фразу, соответствующую второму режиму, например: «два — экономичная стирка хлопка»
Так записать все четырнадцать фраз, помня, что в сумме должно получиться не более одной минуты, поэтому не следует делать фрагменты слишком длинными.
Следующая задача — скорректировать адреса начала и окончания фрагментов:
Необходимый для этого скетч взят с сайта Velleman и немного переделан. Его нужно залить в Arduino, а затем в мониторе последовательного порта ввести цифру 1. Прозвучит первая фраза. Если её начало и окончание определены правильно, делать ничего не надо, если неправильно — скорректировать соответствующие адреса в скетче (строки 14 и 15) и залить его снова. Ввести цифру 2 и проделать то же со вторым фрагментом, на этот раз коррекции подлежат строки 18 и 19. Номера фрагментов шестнадцатеричные, то есть, вместо 10 в монитор последовательного порта необходимо ввести букву a, вместо 11 — букву b, и так далее.
Скорректированный скетч сохранить — адреса из него необходимо перенести в рабочий скетч. Здесь каждая из строк (с 14 по 27) содержит оба адреса — как начала, так и окончания соответствующего фрагмента.
Теперь можно проделать в корпусе «говорилки» отверстия под кнопку с фиксацией, динамическую головку и шлейф:
Вернуть платы на место:
И закрыть корпус:
Впрочем, при желании можно сначала снова временно заменить переходную плату на испытательную и прослушать все фрагменты, имитируя срабатывания фоторезисторов:
Пока перемычка на месте, фрагмент будет звучать каждые три секунды.
Вернув обратно переходную плату, устанавливаем блок с фоторезисторами на стиральную машину:
И проверяем, как всё работает:
Гайки в корпусе предусмотрены не случайно. Они позволяют закрепить блок, предварительно просверлив отверстия в дне. Сразу после выбора режима работы машины питание «говорилки» нужно отключать. Результат соблюдения этого правила: прошёл год, а батарейку менять не пришлось ещё ни разу.