Превращаем дисковый телефон в цифрового ассистента с помощью Raspberry Pi
Вместе с дисковыми телефонами ушла целая эпоха. Но аппараты по-прежнему привлекают разработчиков. Они используют дисковые системы для самых разных проектов. В материале Selectel рассказываем об одном из них — преобразовании телефона в digital-секретаря.
Для реализации проекта нужна плата Raspberry Pi Zero и подключение к Google Assistant.
Чтобы было понятно, какой конечный результат, вот видео уже собранного телефона с активированным помощником:
Необходимые компоненты
Итак, что же понадобится:
- Raspberry Pi Zero с запаянными пинами, карта памяти с Raspberry Pi OS и адаптер питания.
- Старый дисковый телефон с работающей трубкой (микрофоном и динамиком) и работающим рычажным переключателем, который придется кастомизировать.
- Разного рода кабели, паяльник, отвертки и прочие мелочи.
- 1 USB audio адаптер, совместимый с Linux.
- 1 male-male 3.5 мм аудио кабель.
- 1 Raspberry Pi Zero micro USB to USB A адаптер.
Как установить Google Assistant на старый телефон
Здесь несколько этапов работы:
- Регистрация в Google (самое простое).
- Аутентификация с Google (тоже несложно).
- Кастомизация телефона.
- Настройка помощника Google.
Новые возможности.
Регистрация в Google
Здесь необходима не простая регистрация аккаунта в сервисах компании — нужна регистрация с raspberry pi. Этап может быть сложным для тех, кто не работал с Google Cloud Platform, так что лучше прочитать этот пункт, дабы не терять время. Если вы все знаете — можно и пропустить.
Итак, клонируем репозиторий на «малинку».
Открываем console.actions.google.com в браузере. Здесь расположен центр управления Google Assistant Actions.
Выбираем «новый проект» и заполняем появлющиеся поля.
В новой вкладке подтверждаем имя проекта и выбираем «Enable» для включения API.
Далее на первой вкладке пролистываем страничку до конца и выбираем: «Are you looking for device registration? Click here».
Теперь нужно зарегистрировать девайс, заполнив все поля и скопировав полученный ID в отдельный файл — он понадобится позже.
Выбираем «Download OAuth 2.0 credentials» для того, чтобы загрузить соответствующий файл, который «малинка» будет использовать для формирования запросов.
Переименовываем загруженный файл в oauth_config_credentials.json и передаем его на Raspberry Pi. Разместить его нужно в папку скопированного репозитория, загруженного в самом начале.
Возвращаемся к браузеру. После загрузки и переименования нажимаем «Next» и выбираем «Save Traits», не изменяя настроек.
Аутентификация с Google
После того, как регистрация закончена, самое время аутенифицировать девайс для возможности доступа к аккаунту Google и персонализации помощника.
Открываем ссылку console.cloud.google.com/apis/credentials/consent и проверяем, чтобы имя проекта, заданное выше, совпадало с отображаемым по ссылке.
Выбираем «External» и нажимаем «Create».
Заполняем поле с названием, выбираем из выпадающего списка почту и добавляем этот e-mail в поле «Developer contact information» и сохраняем все.
На следующей странице выбираем «Add or Remove Scopes» и ищем в поисковой строке «Google Assistant API». Выбираем /auth/assistant-sdk-prototype scope, обновляем путем нажатия на «upfate» и сохраняем все.
Затем выбираем «OAuth Consent Screen» и «Add User», добавляя свою почту.
Теперь переходим в папку загруженного репозитория на Raspberry Pi и запускаем команду:
Она завершает процесс аутентификации, после чего нужно скопировать полученный код в консоль. Если все хорошо, то появится сообщение «credentials saved:».
Эти данные требуются для перехода в текущую аудиторию.
Кастомизируем телефон
Конечно, модели дисковых телефонов отличаются друг от друга, но их схемы более-менее похожи, поэтому то, что показано ниже, можно использовать для всех аналогичных аппаратов.
В любом случае телефон сначала нужно разобрать.
Далее находим провода, которые идут к рычажковому переключателю. Их нужно будет подключить к пинам «малинки», чтобы плата могла определять, снята трубка или нет.
Провода нужно припаять к 18 пину и к «земле».
Далее подключаем USB аудио адаптер к raspberry pi zero, после чего припаиваем к проводам трубки два разных 3,5мм провода. Они будут передавать сигнал от Raspberri Pi к трубке и обратно. Возможно, придется повозиться, определяя, где какой провод, но в целом здесь нет ничего сложного.
Заканчиваем кастомизацию телефона, подключая 3,5 мм провода к адаптеру.
Закрываем корпус телефона, не забываем вывести кабель питания «малинки».
Настройка помощника
Осталось совсем немного — настраиваем помощника и все. Здесь тоже несколько шагов.
Запускаем установочный скрипт. Это займет не один час, если вы используете Raspberry Pi Zero. Лучше всего запустить все вечером и оставить на ночь.
Настраиваем USB-аудио. Для этого нужна всего одна команда.
Теперь тестируем аудиоадаптер.
Экспортируем ID проекта. Можно просто зайти вот по этой ссылке и выбрать «Project Settings».
Экспортируем ID.
Теперь выполняем команду.
После этого тестируем телефон. Как? Очень просто — поднимаем трубку и задаем любой вопрос помощнику. Если все ок, консоль покажет определенное действие, а помощник ответит.
Наконец, выполняем команду ниже для запуска ассистента.
Больше подробностей — на страничке проекта.
Не пропускайте последние новости из мира IT, подписывайтесь на блог Selectel.