- «Умное» зеркало своими руками (18 фото)
- Умное настенное зеркало из старого лэптопа с распознаванием голоса своими руками
- Шаг 1: Подготавливаем электронику
- Шаг 2: Создание рамки и одностороннего зеркала
- Шаг 3: Устанавливаем всё железо
- Шаг 4: Конфигурация софта
- Шаг 5: Навигация по интерфейсу
- Шаг 6: Будущие улучшения
- Умное зеркало своими руками
- Материалы
- ▍Стекло (зеркало)
- ▍Дисплей
- ▍Дерево
- ▍Raspberry Pi 3
- ▍Источник питания
- ▍USB-микрофон
- ▍Датчик движения
- ▍Светодиод
- Части проекта, напечатанные на 3D-принтере
- Сборка компонентов
- Рамка для зеркала
- Настройка системы
- AlexaPi
- Автоматическое включение и выключение зеркала по сигналу от датчика движения
«Умное» зеркало своими руками (18 фото)
Один парень решил сделать для своей девушки «умное» зеркало, внутрь которого он поместил мини-компьютер Raspberry Pi. Фотоотчет создания такого зеркала ждет вас далее.
Для начала подбираем зеркало
Потом монитор к нему, который будет «волшебным образом» нам вещать сквозь зеркало
Убираем рамку — нам она не нужна
Аккуратно все обнажаем, чтобы ничего не повредить
Мастерим коробку для всего этого добра
Обрезаем зеркало по размеру
Информацию с монитора видно сквозь зеркало! Отлично
Начинаем подключать электронную начинку компа к монитору
Синяя изолента решает в укладке кабелей!
Интерфейс зеркала должен быть дружественный
Источник
Умное настенное зеркало из старого лэптопа с распознаванием голоса своими руками
Умное зеркало или иначе smart mirror — это просто дисплей, спрятанный за односторонним зеркалом. Одностороннее зеркало отражает почти весь свет, который падает на его поверхность, но позволяет изображению с мониторов, находящихся за ним, проходить сквозь его поверхность.
За зеркалом также спрятан Echo Dot от Амазона, позволяющий использовать весь широкий спектр голосовых команд Алексы, просто произнося её имя.
В отличие от большинства умных зеркал, основанных на операционке Magic Mirror, спроектированной для Raspberry Pi, это зеркало работает на Windows. Это зеркало хорошо работает, просто оно было спроектировано не для интерактивного использования, а в основном для отображения статической информации. Более того, железо Raspberry Pi с натугой делает что-либо, выходящее за пределы статичных виджетов. Я хотел спокойно подходить к зеркалу и давать ему команды при помощи голоса, сёрфить в интернете и, возможно, смотреть Youtube/Netflix.
Еще одним отличием было то, что я не хотел видеть рамку вокруг зеркала и хотел сохранить ощущение «парящего» стекла, вместо того, чтобы сооружать рамку вокруг моего умного зеркала. Чтобы осуществить это, я просверлил 4 отверстия и прикрепил рамку четырьмя шурупами к стеклу.
Так что после конструирования этого очень смарт зеркала с Raspberry Pi в качестве мозгов, я решил обновить его до чего-то более мощного, но также и дешевого, особенно учитывая насколько дёшев Raspberry Pi. Лучшим способом осуществить мою задумку, было использовать ненужный лэптоп, который просто валялся у меня дома. Если у вас нет старых лэптопов, можете достать один по дешевке на сайтах типа Ибэй просто за смешные деньги.
- Стекло с пленкой-односторонним зеркалом, приклеенной от руки (можно также купить уже готовое зеркало)
- Доски, винты, гайки и болты для соединения железа с рамкой
- Дешевый дисплей, подходящий размеру вашего стекла. Я купил свой с рук.
- Старый рабочий лэптоп
- Echo Dot от Амазона
- Windows
- Rainmeter
- Виджеты для Rainmeter, которые можно найти на страничке программы
Шаг 1: Подготавливаем электронику
Перед тем, как вы начнёте разбирать железо, подумайте о том, что эти шаги скорее всего сделают недействительной вашу гарантию на лэптоп и монитор. Обязательно подумайте о том, что вы можете просто напрямую прикрепить свою электронику позади монитора. Тем не менее, разборка монитора и лэптопа позволят вам упростить сборку зеркала и сделать его значительно тоньше.
Также убедитесь, что всё железо хорошо работает, перед тем как разбирать его и устанавливать на зеркало. Также вы можете перейти к шагу с Софтом, чтобы убедиться, что всё хорошо работает на вашей машине.
Перед тем, как начнёте, убедитесь, что сняли электростатику с вашего тела или используйте приборы для электростатической безопасности.
Начните с того, что открутите все винты на вашем лэптопе. Если возникнет необходимость, поищите в сети инструкции по починке, чтобы посмотреть, как лэптоп разбирается. Как только доберётесь внутрь, обязательно документируйте каждый шаг, который делаете — на фото или с помощью ручки. Снимите материнскую плату с лэптопа и удостоверьтесь, что вайфай, оперативка, кулер и жесткий диск находятся на ней. Вы можете отключить кабели экрана лэптопа, батареи, тачпада и клавиатуры. Соедините «голую» материнку с внешним дисплеем и убедитесь, что она нормально грузится перед тем, как продолжить. Если материнка не загружается, попробуйте заново проделать шаги и узнать, какая часть не давала материнке загружаться.
Как только материнка лэптопа готова, разберите монитор. Снимайте все гнёзда и панели, пока у вас не останется голая LCD-панель и платы питания, которые подсоединены к ней. Опять же, убедитесь, что все работает в таком виде.
Наконец, спаяйте кабель, который подключается к розетке с одной стороны, и к питанию дисплея и лэптопа с другой стороны. Это просто Y-образный кабель, который распараллеливает мощность дисплея лэптопа.
Шаг 2: Создание рамки и одностороннего зеркала
Мне не хотелось создавать традиционную и простую рамку, которая шла бы вокруг зеркала. Мне хотелось придать зеркалу парящий вид, так что я спрятал рамку за зеркалом. Чтобы закрепить рамку за зеркалом, я просверлил в нём 4 отверстия соответственно наброскам, которые я прикрепил выше.
Я использовал комбинацию древесины и винтов, чтобы соорудить прямоугольную форму, в которой будет сидеть монитор. Я использовал чёрную изоленту, чтобы покрыть участки стекла, которые не покрывает монитор, таким образом свет не просачивался за монитор.
Убедитесь, что ваша рамка достаточно прочная, чтобы удержать LCD и всю электронику.
Из-за того, что у каждого будет своя рамка, в зависимости от того какое железо будет под рукой, я рекомендую делать всё по мере необходимости и на глаз. Я прикрепил фотографии моей рамки для примера.
Шаг 3: Устанавливаем всё железо
Установите всю электронику в рамку. Одним из способов сохранить зеркало тонким — поместить питание лэптопа в область, где LCD-панель не покрывает зеркальную поверхность.
Придумайте, как прикрепить вашу рамку к стене. Чтобы прикрепить мою рамку к стене, я просверлил к ней два блока и использовал систему натяжения кабелей. Убедитесь, что всё железо работает и что у вас есть возможность подтянуть кабель к тому месту, где будет установлено зеркало.
Для распознавания речи я также спрятал за стеклом Echo Dot от Амазона.
Шаг 4: Конфигурация софта
Сердце этой сборки — Windows 10, в которой запущен «Rainmeter» — доступное и популярное приложение.
Как только установите зеркало на стену, зайдите в свойства экрана в Windows и выберите подходящее вам разрешение экрана. Пока вы не закрыли это окно, поменяйте картинку экрана на чёрную, потому что чёрные части зеркала отражают больше света. Также удостоверьтесь, что в параметрах электропитания установлено, чтобы железо никогда не уходило в спящий режим. И последнее, уберите панель задач, кликнув по ней правой кнопкой, выбрав Свойства и затем выбрав Автоматическое скрытие.
Настройте Echo Dot по гиду настройки.
Список программ. Используйте любой виджет, какой вам понравится в дополнение к этому списку:
Шаг 5: Навигация по интерфейсу
Есть несколько способов взаимодействия с интерфейсом.
- Используйте голос, чтобы включать Алексу от Амазона для ответов на ваши запросы
- Используйте беспроводную клавиатуру или Team Viewer, чтобы один раз настроить ваше умное зеркало и оставить всё как есть
- Используйте дисплей, чувствительный к нажатиям (лучшее, но дорогое решение)
- Используйте навигацию движениями (leap motion). Я пробовал её, но она недостаточно точная и очень устаёшь держать руки всё время в воздухе. Некоторые хорошие приложения для этого вида навигации: Mudra mouse и Gameware
- Удлините тачпад лэптопа. Это то, что сделал я. Я удлинил кабель, отрезав и спаяв его с дополнительным.
Шаг 6: Будущие улучшения
Как видно на некоторых картинках, на данный момент, чтобы управлять зеркалом, я использую тачпад. Я пробовал другие подходы, например контроль жестами или прикосновениями, но контроль жестами неэффективен, а конструирование тачскрина на основе ИК излучения слишком сложно и зеркало будет смотреться ужасно. В будущем я хочу использовать LCD панель со встроенным тачем, так что мне придется сделать минимум дополнительной работы, чтобы внедрить его.
Во-вторых, я думаю, что для зеркала, которое работает в режиме 24/7, будет логичней использовать вместо старого лэптопа что-то более энергоэффективное, например Intel NUC или Compute Stick.
Рассказываю как сделать какую-либо вещь с пошаговыми фото и видео инструкциями.
Источник
Умное зеркало своими руками
Кому нужно умное зеркало? Много кому. Я, когда такое увидел, тут же захотел выбросить наш календарь с маркерной доской. Майкл Тиув проделал потрясающую работу по созданию отличной расширяемой платформы для умных зеркал, которая позволяет всем желающим самостоятельно делать такие зеркала. Если вам эта тема интересна — загляните на сайт проекта MagicMirror.
Здесь я хочу рассказать о том, что нужно для проектирования и сборки собственного умного зеркала. Я, кроме того, коснусь тут и темы создания рамки для такого зеркала.
Для тех, кто раньше с умными зеркалами не сталкивался, опишу в двух словах суть проекта. За зеркалом, прозрачным с одной стороны, размещают монитор. При идеальном освещении всё, что на экране выведется чёрным, будет выглядеть как зеркало. А всё белое (или имеющее другой высококонтрастный цвет) будет просвечивать сквозь зеркало. Мне хотелось сделать нечто вроде информационной панели для всей семьи, на которую выводились бы календари, списки покупок, сведения о погоде. Я подумывал и о том, чтобы встроить в это зеркало AlexaPi (подробнее об этом я расскажу позже). Я заинтересовал жену рассказом о том, как это зеркало улучшит нашу жизнь и поможет быстрее справляться с делами, и принялся за работу.
Материалы
▍Стекло (зеркало)
Я воспользовался зеркалом Pilkington Mirrorpane. Оно оказалось самой дорогой частью проекта (200 канадских долларов). Я, читая разные материалы на тему умных зеркал, узнал, что хорошего эффекта люди добивались, используя плёнку, прозрачную с одной стороны, на акриловом стекле. В одной местной фирме мне отрезали подходящий кусок 6-миллиметрового зеркала Pilkington Mirrorpane. При правильном освещении оно отлично справляется со своей задачей. Если освещение оказывается слишком ярким, то картинку с монитора, который находится за зеркалом, видно хуже. Производитель рекомендует соотношение между освещённостью задней и передней части зеркала в 8:1. В таких условиях зеркало должно давать хорошие результаты. Кроме того, это зеркало имеет янтарный оттенок. Выглядит он приятно, но выбирая такое зеркало надо учитывать то, что изменить его цвет не удастся.
▍Дисплей
В качестве дисплея для этого проекта я использовал 39″ LED TV Insignia NS-39D400NA14. Стоит он 150 канадских долларов. Я столкнулся с проблемами, которые касались команд HDMI CEC для включения и выключения дисплея, но смог эти проблемы обойти (подробнее об этом я расскажу ниже).
▍Дерево
Я — столяр-любитель. Рамку для зеркала я сделал из того, что нашлось под рукой. Это была фанера, облицованная орехом. Дерева в этом проекте, на самом деле, не так много, да и облицовка из ореха особой роли не играет, но мне нравится работать с этим материалом.
▍Raspberry Pi 3
Плата Raspberry Pi 3 в подобном проекте пригодится тем, кто собирается пользоваться встроенным Wi-Fi-модулем. Подобные проекты делают и на основе Raspberry Pi 2, и даже на Raspberry Pi Zero.
▍Источник питания
▍USB-микрофон
SunFounder USB 2.0 Mini Microphone и удлинительный USB-кабель для него
▍Датчик движения
▍Светодиод
Здесь я использовал RGB-светодиод.
Части проекта, напечатанные на 3D-принтере
Те части проекта, которые надо напечатать на 3D-принтере, я, в основном, спроектировал сам. Ниже приведён список ссылок на соответствующие файлы. Вы можете свободно ими пользоваться.
Сборка компонентов
Вот как выглядит задняя часть зеркала, представленная дисплеем и другими компонентами.
Соединение компонентов проекта
Рамка для зеркала
Тут я хочу показать вам видео, посвящённое созданию рамки для зеркала. То, что у меня получилось, немного отличается от чертежей, с которых начиналась работа.
Создание рамки для зеркала
Настройка системы
Я не задумывал этот раздел как исчерпывающее руководство по настройке умных зеркал. Тут я расскажу лишь о самом главном. А именно, я установил Raspbian Stretch Lite, а потом следовал этому руководству.
Сначала я поэкспериментировал с множеством модулей для MagicMirror, созданных энтузиастами. А уже потом отобрал самое важное. Если вы будете идти моим путём, то советую хотя бы попробовать MMM-EyeCandy.
В итоге я установил следующие модули, которыми пользуюсь до сих пор:
- MMM-MyCalendar
- MMM-cryptocurrency
- MMM-Wunderlist-Enhanced
- MMM-RemoteControl
По умолчанию всё настроено так, что умное зеркало будет заглядывать в репозитории всех установленных модулей и проверять, есть ли в них что-то новое. Мне казалось, что это хорошо, но в итоге я написал следующий скрипт, расположенный в /home/pi/myscripts/mm_update.sh , который автоматически, в полночь, обновляет модули.
Для того чтобы сделать этот скрипт исполняемым, воспользуемся командой chmod :
Потом надо настроить crontab :
В список заданий надо добавить следующую команду, которая будет запускать скрипт каждую полночь:
AlexaPi
AlexaPi — это потрясающий проект. Имеется и пара MagicMirror-модулей, созданных специально для работы с Alexa. Это — MMM-alexa и MMM-awesome-alexa. Мне очень хотелось, чтобы голосовой помощник Alexa оказался бы интегрирован с умным зеркалом, но с настройкой AlexaPi и соответствующих модулей MagicMirror возникло слишком много сложностей. Мне, кроме того, хотелось бы, чтобы помощник Alexa использовал бы отдельный светодиод. В итоге я просто установил AlexaPi, но не интегрировал возможности этого проекта в платформу MagicMirror. В ходе установки AlexaPi я пользовался этой инструкцией.
В моей AlexaPi-конфигурации используется недорогой USB-микрофон. Она, к сожалению, показывает далеко не самые лучшие результаты. Сейчас Alexa реагирует лишь на мужской голос. Возможно, ситуацию могут улучшить эксперименты с pocketsphinx или Snowboy. Ниже показана верхняя часть зеркала, на которой смонтирован светодиод и датчик движения.
Верхняя часть зеркала со светодиодом и датчиком движения
Автоматическое включение и выключение зеркала по сигналу от датчика движения
В моём списке возможностей умного зеркала был один крайне важный пункт: зеркало должно выключаться тогда, когда рядом никого нет. Модуль MMM-PIR-Sensor отлично справляется с этой задачей. Особенно — если дисплей, используемый в проекте, поддерживает все команды HDMI CEC. Тот телевизор, что стоит за моим зеркалом, по неизвестным причинам, поддерживает лишь команду, имеющую отношение к состоянию устройства. В результате я решил проблему включения и выключения телевизора с помощью GPIO Raspberry Pi (PIN 15), воздействуя на кнопку питания телевизора так, что устройство считает, что на неё нажимает человек.
Панель управления телевизором
После установки LIBCEC я создал Python-скрипт, работающий в виде демона. Он наблюдает за состоянием датчика движения и, когда надо, включает и выключает телевизор. Этот скрипт я поместил в файл /home/pi/myscripts/ty_manager.py .
#!/usr/bin/env python import os, sys, subprocess, time, argparse, logging, datetime import RPi.GPIO as GPIO from apscheduler.schedulers.background import BackgroundScheduler PWR_PIN = 15 PIR_PIN = 14 isdisplayon = False def monitor_checkstatus(): global isdisplayon logging.debug(‘[*] CEC -> check current status of display’) process_echo = subprocess.Popen([«echo», «pow», «0»], stdout=subprocess.PIPE, shell=False) process_cec = subprocess.Popen([«cec-client», «-s», «-d», «1»], stdin=process_echo.stdout, stdout=subprocess.PIPE, shell=False) process_echo.stdout.close() ret = process_cec.communicate()[0].splitlines() if ‘on’ in ret[1]: logging.debug(«[*] Display is currently on») isdisplayon = True else: logging.debug(«[*] Display is currently off») isdisplayon = False def monitor_toggle(): GPIO.output(15, GPIO.LOW) time.sleep(1) GPIO.output(15, GPIO.HIGH) def main(argv): global isdisplayon parser = argparse.ArgumentParser( description=’A Power managment daemon for issuing CEC commands’ ) parser.add_argument(«-v», «—verbose», help=»increase output verbosity», action=»store_true») args = parser.parse_args() if args.verbose: logging.basicConfig(level=logging.DEBUG) logging.debug(‘[*] Launching powermanager.py in DEBUG mode’) GPIO.setwarnings(False) GPIO.setmode(GPIO.BCM) GPIO.setup(PWR_PIN, GPIO.OUT, initial=GPIO.HIGH) scheduler = BackgroundScheduler() job = scheduler.add_job(monitor_checkstatus, ‘interval’, minutes=20) scheduler.start() monitor_checkstatus() GPIO.setmode(GPIO.BCM) GPIO.setup(PIR_PIN, GPIO.IN) while True: # PIR triggered if GPIO.input(PIR_PIN): if not isdisplayon: logging.debug(‘[*] Motion detected, CEC -> Turning on display’) monitor_toggle() isdisplayon = True else: if isdisplayon: logging.debug(‘[*] No motion, CEC -> Turning off display’) monitor_toggle() isdisplayon = False time.sleep(1) GPIO.cleanup() if __name__ == «__main__»: main(sys.argv)
Потом я создал такой файл сервиса systemd :
После этого всё заработало так, как мне хотелось.
Источник