- Умное настенное зеркало из старого лэптопа с распознаванием голоса своими руками
- Шаг 1: Подготавливаем электронику
- Шаг 2: Создание рамки и одностороннего зеркала
- Шаг 3: Устанавливаем всё железо
- Шаг 4: Конфигурация софта
- Шаг 5: Навигация по интерфейсу
- Шаг 6: Будущие улучшения
- «Умное зеркало» с Google Ассистентом и беспроводной зарядкой
Умное настенное зеркало из старого лэптопа с распознаванием голоса своими руками
Умное зеркало или иначе 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.
Рассказываю как сделать какую-либо вещь с пошаговыми фото и видео инструкциями.
Источник
«Умное зеркало» с Google Ассистентом и беспроводной зарядкой
В этой статье мастер расскажет нам, как сделать «умное зеркало». Умное зеркало — это устройство с зеркальной поверхность, за которой располагается монитор. Монитор располагается вплотную с зеркальной поверхностью и все данные, которые на нем отображаются (погода, новости, почта и т.д.), видны сквозь специальное зеркало.
У данного зеркала присутствую еще две функции, -это голосовое управление и беспроводная зарядка устройств.
Программное обеспечение:
Adobe Illustrator
Программное обеспечение САПР
Шаг первый: настройка Raspberry Pi — программное обеспечение VNC
Предполагается, что у пользователя есть операционная система Raspbian, отформатированная на Raspberry Pi, и компьютер готов к работе.
1: Загрузите Raspberry Pi и откройте терминал
Кликните значок терминала на верхней панели приложения, чтобы открыть окно терминала.
2: Установите VNC на Raspberry Pi
Введите следующую команду в терминал, чтобы установить RealVNC на Raspberry Pi.
3. Откройте конфигуратор Raspberry Pi, чтобы включить VNC.
Введите следующую команду в терминал, чтобы открыть настройки.
Затем перейдите к «Параметры взаимодействия» и «Включите» параметр «VNC». Нажмите «Применить», чтобы вернуться на панель терминала.
4. Перезагрузите Raspberry Pi.
Введите следующую команду, чтобы перезагрузить Raspberry Pi, чтобы изменения вступили в силу.
5. Установите VNC на компьютер
Теперь на своем персональном ноутбуке / компьютере (не на Raspberry Pi) перейдите на веб-сайт RealVNC, чтобы загрузить «VNC Viewer» для своей операционной системы (работает практически на любой ОС, включая Mac, Windows и Linux).
Завершите процесс установки и при появлении запроса создайте учетную запись (в качестве альтернативы можно использовать VNC в качестве гостя).
6: Вернитесь к своему Raspberry Pi. После загрузки перейдите на верхнюю панель и щелкните значок «VNC», который теперь должен быть активирован. Кликните по нему, чтобы просмотреть свой IP-адрес и пароль.
На своем ноутбуке или компьютере введите эту информацию для удаленного подключения к Raspberry Pi. Если все прошло правильно, пользователь сможет увидеть Raspberry Pi и управлять им с помощью персонального компьютера.
Шаг второй: настройка Raspberry Pi — программное обеспечение Magic Mirror
1: Откройте терминал на Raspberry Pi
Первое, что нам нужно сделать, это установить пакет под названием «npm», который поможет загрузить программу Magic Mirror.
2: Используйте скрипт Sdetweil для загрузки и установки Magic Mirror
4: К настоящему времени программа Magic Mirror должна уже загрузиться, и пользователь должен увидеть окно, похожее на пользовательский интерфейс Smart Mirror. Если это окно не появилось, запустите этот код:
5: Конфигурация Magic Mirror
Дальше нужно настроить виджеты. Для этого необходимо создать учетную запись на OpenWeatherMap (это бесплатно и быстро). Зарегистрировавшись, программное обеспечение Magic Mirror может воспользоваться преимуществами системы API OpenWeatherMap, которая необходима для получения данных о погоде. После создания учетной записи на главной странице перейдите на вкладку «Ключи API».При необходимости создайте или переименуйте ключ API (он выглядит как длинная строка буквенно-цифровых символов). Скопируйте свой ключ API.
Затем на Raspberry Pi откройте приложение «Файлы», перейдите в папку «MagicMirror» (которая загружается в каталог «/ home / pi»), щелкните папку «config» и, наконец, дважды нажмите на кнопку «config». config.js — текстовый файл. Пользователь должен увидеть список модулей, которые в данный момент работают на Magic Mirror. Можно отредактировать эту папку, чтобы изменить виджеты, расположение виджетов и т. д. На данный момент переходим к модулю под названием «currentweather».
Там, где написано: ‘appid: «YOUR API KEY HERE»‘, вставьте ключ API скопированный ранее. Двумя строками выше есть указание города «местоположение:» Нью-Йорк». Нужно отредактировать поле и ввести город, в котором вы проживаете. Наконец, нужно отредактировать ‘LocationID. У каждого города есть уникальный идентификатор, который сообщает OpenWeatherMap, в каком городе нужно отображать погоду. Закомментированный прямо рядом с этой строкой кода, вы должны увидеть URL, где можно скачать полный список городов и их соответствующие коды.
Затем нужно настроить сообщения. Сделать это можно снова перейдя в папку «home/pi/MagicMirror/modules/default/compliments» через приложение для работы с файлами. Откройте файл .json, и теперь вы можете изменить списки, которые вы видите, чтобы отображать любое сообщение, которое вы хотите, в зависимости от времени суток. Убедитесь, что вы добавляете / редактируете строки, используя тот же формат, который вы видите, например «кавычки» и запятые, разделяющие каждое уникальное сообщение.
6: Дополнения Magic Mirror
На этом этапе настройки можно добавить множество виджетов Magic Mirror. От отслеживания отправлений FedEx до просмотра прямых трансляций Земли из космоса — есть виджеты практически для всего.
Здесь полный список модулей для Magic Mirror, а также документация о том, что это такое и как их установить. Для демонстрации мастер устанавливает виджет «MMM-Screencast». Это виджет позволяет любому устройству, подключенному к той же интернет-сети, что и Smart Mirror, транслировать видео с Youtube прямо на Mirror.
Чтобы установить виджет, сначала откройте терминал на Raspberry Pi и перейдите в каталог MagicMirror / modules (здесь хранятся все модули). Нужно перейти сюда, чтобы при загрузке «MMM-Screencast» он автоматически сохранялся в правильном месте. Чтобы изменить каталоги, вводим команду cd:
Затем клонируйте модуль MMM-Screencast с GitHub:
После успешной установки войдите в модуль «MMM-Screencast», используя команду «cd» еще раз:
Теперь установите зависимости (другие инструменты / пакеты, необходимые для запуска этого модуля):
Откройте приложение для работы с файлами на Raspberry Pi и перейдите к измененному ранее текстовому файлу config.js (/home/pi/MagicMirror/config/config.js).
В разделе модулей добавьте следующий код непосредственно после строки кода с надписью « modules: [ »
Обратите внимание, что в конце скобки стоит запятая. Все модули в разделе модулей файла config.js должны быть разделены запятыми. Важно, чтобы приведенный выше код был вставлен непосредственно после « modules: [ », потому что это гарантирует, что это первый модуль в списке.
Параметр castName: показывает, как Smart Mirror выглядит для других устройств, когда они хотят транслировать на него видео с YouTube. Его можно изменить.
Дальше сохраните этот файл и перезагрузите Raspberry Pi, запустив приведенный ниже код в терминале:
Проверьте модуль Screencast, нажав кнопку трансляции в приложении YouTube на мобильном устройстве.
Советы по устранению неполадок:
На шаге «Конфигурация Magic Mirror» могут возникнуть проблемы с получением идентификатора местоположения. Но есть простое решение.
Сначала перейдите к OpenWeatherMap. В левом верхнем углу сайта есть панель поиска, найдите город, в котором вы проживаете, и кликните по нему. Вы будете перенаправлены на страницу с текущей погодой для этого города, а «ярлык» URL — это ваш идентификатор местоположения. Например, страница погоды для Сан-Франциско, штат Калифорния, находится по адресу https://openweathermap.org/city/ 5391959.’и 5391959 — это его locationID.
Шаг третий: настройка Raspberry Pi — программное обеспечение Google Assistant
Далее в этом проекте мастер собирается интегрировать Google Voice Assistant в Smart Mirror. Эта программа Google Assistant, использующая Raspberry Pi, USB-микрофон и динамик, будет работать параллельно с Magic Mirror. В результате получится умное зеркало, которому можно задать вопросы, сказав «Hey Google.».
1. Создайте новый проект на Google Cloud Platform
На Raspberry Pi необходимо настроить учетную запись Google Cloud Platform, чтобы интегрировать Google Assistant в проект.
Перейдите по этой ссылке , чтобы создать учетную запись и начать новый проект.
Теперь перейдите в «API-интерфейсы и службы», а затем в «Страница соглашения OAuth». Там нужно заполнить форму. Как только это будет сделано, щелкните вкладку прямо над страницей соглашения OAuth под названием «Учетные данные».
Нажмите кнопку «Создать учетные данные» и выберите «Идентификатор клиента OAuth». В поле «Тип приложения» выберите «Рабочий стол», а в поле «Имя» введите что-нибудь вроде «[ВАШЕ ИМЯ] smartmirror».
Как только ваши учетные данные будут созданы, нажмите кнопку загрузки.
2. Дальше нужно подключить микрофон и динамик к Raspberry Pi. Сначала подключите USB-микрофон к Raspberry Pi и с помощью кабеля AUX подключите динамик к аудиоразъему Raspberry Pi.
Откройте терминал на Raspberry Pi и выполните эту команду:
Пример должен выглядеть примерно так, если USB-микрофон работает правильно:
Скопируйте и вставьте в этот текстовый файл следующий код:
Обратите внимание: в строке № 9 pcm «hw: 2,0» замените «2» на любой номер микрофонной карты, который вы нашли ранее. Если у вас был регистр микрофона на карте 2, то ничего менять не нужно. Однако, если вам написано « карта 1», измените эту строку на: pcm «hw: 1,0».
Чтобы выйти из текстового редактора, удерживайте Control + X, введите Y для сохранения и Enter для подтверждения.
Затем запустите следующую команду, чтобы создать еще один текстовый файл:
В этот текстовый файл скопируйте и вставьте те же элементы конфигурации, которые вы сохранили в файле ‘ /etc/asound.conf ‘, не забудьте изменить строку 9 так, чтобы она была вашим конкретным номером USB-микрофонной карты. Сохраните и выйдите из этого файла (Control + X, введите Y для сохранения и Enter).
Чтобы настроить динамик через AUX, нужно сообщить Raspberry Pi, что звук должен идти на динамик, а не куда-либо еще. Для этого запустите в терминале приведенный ниже код:
Это действие открывает меню, похожее на настройки на устройстве Raspberry Pi. Перейдите в «Параметры системы» (нажмите «Ввод» для выбора) и «Аудио» (используйте клавиши вверх / вниз для навигации). Перейдите к AUX или наушникам в качестве аудиовыхода и введите для подтверждения. Затем нажмите кнопку со стрелкой вправо и нажмите Enter, чтобы выйти из меню raspi-config .
Дальше перезагрузите Raspberry Pi. Как только устройство загрузится, снова откройте терминал.
Теперь нужно проверить, что настройки динамика и микрофона работают.
Запустите команду:
Если вы слышите, как ваш динамик говорит что-то вроде «Right, Left . », значит, динамики настроены правильно.
Чтобы протестировать микрофон, нужно что-нибудь записать и проиграть через динамик.
Запускаем команду:
Эта команда записывает 10-секундный файл через USB-микрофон и сохраняет его в файле под названием audiotest.wav. Т.е. нужно что-то проговаривать в течении 10 секунд.
Затем, чтобы воспроизвести этот аудиофайл на подключенных динамиках, запустите:
Из динамика должен быть слышен ваш голос.
3. На следующем этапе нужно установить важные пакеты, чтобы включить Google Assistant на нашем Pi.
Сначала нужно обновить устройство.
Затем запустите следующую команду, чтобы установить пакет, который позволит управлять светодиодными индикаторами:
Теперь нужно установить Python 3:
Запустите команду, чтобы активировать пакет:
Установите все зависимости.
Чтобы полностью активировать среду Python 3, выполните команду активации:
Дальше нужно установить библиотеку Google Assistant, которая на самом деле обеспечивает работу голосового помощника:
Затем нужно аутентифицировать Raspberry Pi в учетной записи разработчика Google Cloud. Во-первых, нужно установить специальный инструмент аутентификации от Google:
Переходим в приложение File Explorer на Raspberry Pi. Там мы должны увидеть загруженный файл .json, название которого должно начинаться с client_secret . Щелкните этот файл правой кнопкой мыши и нажмите кнопку «Копировать».
Вернитесь в Терминал на Raspberry Pi и запустите этот код:
В случае успешного выполнения команды будет отображен URL-адрес. Нажимаем на ссылку и входим в свою учетную запись Google. После входа в систему скопируйте предоставленный код и вставьте этот код в приглашение терминала, где написано:
4.В окне терминала Raspberry Pi выполните эту команду:
Создайте текстовый файл Python с именем ‘main’, выполнив этот код:
После открытия текстового редактора скопируйте и вставьте этот код:
Единственный текст, который нужно отредактировать в этом коде, находится в предпоследнем абзаце, где написано «[НАЗВАНИЕ ВАШЕГО УМНОГО ЗЕРКАЛА]» . Помните, когда мы создали «Идентификатор клиента OAuth» на платформе Google Cloud Platform, и я сказал вам назвать свой проект как-нибудь вроде «[ВАШЕ ИМЯ] smartmirror». Получите это имя и замените его на [YOUR SMART MIRROR NAME]» (имя умного зеркала).
Как только это будет сделано, нажмите Control + X, введите «Y» и нажмите Enter, чтобы сохранить и выйти из этого текстового редактора.
Наконец, перейдите в приложение «Файлы» на Raspberry Pi и найдите ранее использованный файл client_secrets .json (он должен находиться в / home / pi / Downloads ). Щелкните его правой кнопкой мыши и выберите «Копировать». Затем перейдите в каталог « / home / pi » и вставьте его туда, щелкнув правой кнопкой мыши и выбрав «Вставить».
5. Автоматизация процесса загрузки
Последний шаг в обеспечении работы Google Assistant — это создание сценария оболочки, который указывает на основной код и запускает его. Это упростит запуск этого сценария оболочки при загрузке, поэтому каждый раз, когда Raspberry Pi перезагружается, Google Assistant будет автоматически инициализироваться и работать.
Чтобы создать сценарий оболочки с именем google-assistant-init.sh , выполните следующую команду:
Оказавшись внутри текстового редактора, скопируйте и вставьте этот код:
Щелкните Command + X, введите «Y» и нажмите Enter, чтобы сохранить и закрыть текстовый редактор. Затем мы Дальше введите такую команду:
Теперь откройте приложение «Папки» на Raspberry Pi. Перейдите в « / home / pi » и щелкните правой кнопкой мыши на пустом месте. Нажмите кнопку «Показать скрытые файлы». Найдите и откройте текстовый файл с названием « .bashrc ». Это файл, который запускается при загрузке на Raspberry Pi.
Вставьте в самом низу нижеприведенный код:
Сохраните этот файл и перезагрузите Raspberry Pi. Голосовой помощник готов.
Подробно о проекте проектирования можно узнать здесь .
Шаг пятый: электроника
После резки и печати деталей мастер переходит к сборке проекта.
Сначала мастер подготавливает светодиоды. На ранее вырезанную полоску из фанеры он наклеивает светорассеиватель из акрила.
Затем на макетной плате проверяет работу светодиодов (подключает их к контакту 25 GPIO). Далее нужно сказать «Окей, Google» и светодиод загорится.
После проверки приклеивает их к рамке и соединяет параллельно.
Теперь нужно настроить регулятор напряжения. Для этого нужно его подключить к источнику питания 12 В. После включения регулятора небольшая светодиодная панель должна загореться и показать выходное напряжение.
Чтобы изменить выходное напряжение, нужно повернуть левый винт на плате против часовой стрелки (чтобы уменьшить напряжение). Напряжение нужно установить от 5,0 до 5,1 В.
Дальше нужно все проверить. Подключите Raspberry Pi и динамик к положительным и отрицательным выходным клеммам на регуляторе напряжения (ток 5 В) и подключите плату контроллера ЖК-экрана к 12 В. От платы контроллера идет 40-контактный провод, который подключается к задней части ЖК-панели. Подключите этот 40-контактный разъем. Также подсоедините кабель HDMI от Raspberry Pi к плате ЖК-контроллера.
Подключите кабель питания 12 В и проверьте работу устройства.
Источник