Оглавление:

Мобильный телефон с дисковым циферблатом в стиле ретро: 4 шага (с изображениями)
Мобильный телефон с дисковым циферблатом в стиле ретро: 4 шага (с изображениями)

Видео: Мобильный телефон с дисковым циферблатом в стиле ретро: 4 шага (с изображениями)

Видео: Мобильный телефон с дисковым циферблатом в стиле ретро: 4 шага (с изображениями)
Видео: Как Google хотела быть Apple! История великих Nexus 2024, Ноябрь
Anonim
Мобильный телефон с поворотным циферблатом в стиле ретро
Мобильный телефон с поворотным циферблатом в стиле ретро

Этот проект был продиктован как практическими потребностями, так и желанием развлечься.

Как и в большинстве современных семей, у нас много лет назад перестали иметь настоящий «домашний» телефон (проводной). Вместо этого у нас есть дополнительная SIM-карта, связанная с нашим «старым» домашним номером, который я носил в своем мобильном телефоне с двумя SIM-картами. В большинстве случаев это было хорошо, но в некоторых случаях это не срабатывало, например, когда к нам приходили родители (они старое поколение - без сотовых телефонов, и я не мог позвонить им в наш дом, когда был в отъезде. так как наш "домашний" телефон был у меня). Это также усилилось, когда я переключил свой телефон (новый телефон с одним слотом для SIM-карты). Таким образом, казалось хорошей идеей найти способ иметь телефон в «домашнем» стиле, в котором можно было бы использовать нашу дополнительную SIM-карту.

Что касается забавной части, большинство детей в настоящее время не имеют большого представления о том, как старые телефоны с дисковым набором номера работали или что они вообще существовали как таковые. В той части мира, откуда мы с женой, мы используем выражение «переверни номер» для набора номера, что сбивает с толку более молодое население, поскольку «зачем кому-то поворачивать телефон, чтобы набрать номер». Поэтому я подумал, что было бы здорово, если бы мой сын (который активно участвовал в этом проекте) мог получить опыт работы с дисковым телефоном.

Конечно, я также был уверен, что этот «новый» телефон станет хорошей темой для разговора, когда к нам приезжают друзья и родственники. Или, что еще лучше, брать телефон с собой в гости к друзьям, удивляя людей полностью функциональным мобильным телефоном в ретро-стиле.

В ходе проекта мы изменили некоторые изначальные цели дизайна. Например, я думал о том, чтобы встроить перезаряжаемый внешний аккумулятор внутрь телефона, чтобы его можно было легко брать с собой, но в конце концов понял, что в этом нет необходимости (поскольку этот тип телефона, естественно, всегда находится в одном месте, поэтому он может всегда быть подключенным к розетке). Были и другие «ярлыки», которые мы смогли предпринять, что сделало проект относительно простым и не слишком сложным.

================

Что касается материала, я изначально надеялся, что мы сможем получить старый дисковый телефон от моих родителей и использовать большинство его частей (корпус телефона, дисковый переключатель, гарнитуру и т. Д.), Что снизит стоимость всего проекта. В конечном итоге этого не произошло из-за COVID-19, который помешал нашей запланированной поездке в Европу (посещение семьи), и вместо этого мы просто нашли и купили новый телефон с дисковым набором номера на Amazon (меня не устроили варианты и цены на eBay). Это было нормально, поскольку он предоставлял некоторые интересные дополнительные функции, поскольку мы обнаружили телефон с дисковым набором номера с дополнительными параметрами набора (* и #), обычно недоступными на старых телефонах.

Основной частью проекта была GSM / GPRS HAT, которая легко доступна (нам не нужна версия 4G) и которой можно напрямую управлять с любой Raspberry Pi или аналогичных плат. В нашем случае у нас была небольшая плата Raspberry Pi Zero, которую мы активно не использовали (из старшего проекта моего сына).

Интересно, что большинство изменений мышления и дизайна было сделано вокруг относительно простой и небольшой части проекта - создания вызывающего действия. Как известно тем, кто знаком со старыми телефонами, характерный звонок старого стиля производился «колокольчиками» с питанием от 40-60 В переменного тока, что было непросто сделать в рамках этого проекта. В конце концов я решил упростить эту часть проекта и пришел к относительно простому решению, используя записываемый звуковой модуль, который обычно является частью поздравительных открыток. Были и другие варианты, но на самом деле это работало отлично и было относительно недорогим решением.

Запасы

  • Малина Pi Zero W
  • Шляпа Waveshare GSM / GPRS / GNSS / Bluetooth

  • Записываемый звуковой модуль, активируется кнопкой
  • (Старый) Поворотный телефон
  • Карта Micro SD (для Raspberry Pi), кабели / контакты, старые наушники и т. Д.

Шаг 1. Подготовка телефона

Подготовка телефона
Подготовка телефона

Проводные телефоны старого образца - относительно простые устройства. Как видно на снимке с оригинальным телефоном в разобранном виде, многоразовыми частями являются основная оболочка телефона, включая поворотный переключатель и базу, гарнитуру и ее переключатель, а все остальное вынесено - звонок и плата управления.

Что было очень приятно с этой конкретной моделью телефона, так это то, что мы смогли повторно использовать не только поворотный переключатель, но и его разъем, который можно было подключить непосредственно к заголовку на Raspberry Pi. Следует отметить, что этот разъем имеет 3 провода, один для справки и 2 для дискретных входов на Raspberry Pi. При наличии соответствующей логики (зафиксированной в прилагаемом коде) это позволяет определить, когда циферблат повернут и какой номер был выбран.

То же самое и с переключателем гарнитуры, у которого есть разъем, который можно напрямую подключить к разъему. Это простая логика, поскольку для нее требуется только ссылка и один дискретный вход.

Как и ожидалось, кабель гарнитуры состоит из 4-х проводов, по 2 для маломощного динамика и микрофона. Поскольку HAT, который мы использовали, имел аудиоразъем 3,5 мм для наушников, я просто подключил эти 4 провода к одному из старых наушников 3,5-мм штекер аудиоразъема.

Еще одна интересная вещь, которая пригодилась в данной модели телефона, - это крепление стоек к базе. Хотя нам нужно было вырезать некоторые из них, чтобы освободить место для досок, мы все же смогли повторно использовать другие и обезопасить наши платы. Это был хороший перерыв, который сэкономил нам время.

Шаг 2. Собираем все вместе

Собираем вещи вместе
Собираем вещи вместе
Собираем вещи вместе
Собираем вещи вместе
Собираем вещи вместе
Собираем вещи вместе

Для простой проверки концепции достаточно подключить Raspberry Pi и GSM HAT напрямую, а обычные наушники подключить к GSM HAT. Я смог использовать эту настройку вместе с приложением MiniCom (управление последовательным портом Raspberry Pi, который напрямую подключен к GSM HAT), чтобы быстро проверить, что моя SIM-карта работает и что я могу звонить и отправлять / получать SMS-сообщения с этой настройкой.

Поскольку другие могут быть заинтересованы в этом (интересно быстро протестировать новую настройку), вот указатели, как это сделать (очевидно, на основе предположения об одинаковых / похожих платах):

- Установить и настроить ОС на Raspberry Pi (я использовал версию Lite OS, которая поставляется без графического интерфейса).

- Подключите GSM HAT (с установленной SIM-картой) к Raspberry Pi (убедитесь, что GSM HAT имеет соответствующий выбор переключателя UART в зависимости от типа подключения, см. Ссылку ниже для руководства HAT). Для этого шага вам может потребоваться версия Raspberry Pi, в которой уже установлен разъем заголовка, в нашем случае мне нужно было его припаять (так как я использовал Pi zero, который по умолчанию поставляется без заголовка). В качестве альтернативы, лучший вариант - использовать кабель micro USB для подключения обеих карт (и Raspberry Pi, и GSM HAT имеют micro USB)

- Включите использование последовательного порта Raspberry Pi при подключении GSM HAT через последовательный порт (по умолчанию порт Raspberry Pi используется для консоли). Для этого вам нужно будет следовать инструкциям для raspi-config (см. Выше ссылку «настроить»), опций взаимодействия - включения SSH и опций последовательного порта. Если вы используете версию ОС Lite, вам также может потребоваться «подключиться к беспроводной сети» и включить SSH (см. Инструкции выше по ссылке «настроить»).

- Подключите Raspberry Pi к монитору и клавиатуре (или получите доступ к нему через удаленный ssh)

- Используйте MiniCom или подобное последовательное приложение для ручного управления HAT через соответствующий порт (для моего порта установки был «/ dev / ttyS0», он будет другим при использовании micro USB). Установите MiniCom с помощью «sudo apt-get install minicom», а после установки запустите его с помощью «minicom -D / devtyS0» (или любого другого используемого порта).

- Используйте руководство по GSM HAT или руководство по AT-командам для управления различными функциями HAT (отправка SMS, вызов и т. Д.). После правильного подключения GSM HAT ответит «OK» на запрос команды «AT». Чтобы проверить, правильно ли зарегистрирована SIM-карта, используйте команду «AT + CREG?», Которая также должна вернуть «OK». Вы также можете подтвердить поставщика сети с помощью «AT + COPS?» Или проверить свой номер телефона с помощью «AT + CNUM».

Чтобы интегрировать остальные необходимые детали, мы создали специальный 16-контактный кабель для Raspberry Pi и GSM HAT, так как нам потребовались некоторые другие контакты ввода-вывода общего назначения для чтения поворотного переключателя, состояния переключателя гарнитуры и для управления звонком (также для автоматического запуска GSM HAT во время включения / инициализации). Я попытался использовать для этой цели некоторые из готовых соединительных проводов для Raspberry Pi, и, хотя они отлично работали для быстрого подключения и тестирования, я был не очень доволен качеством и в итоге сделал свой собственный 16-контактный разъем.

Другой способ установить соединение между Raspberry Pi и GSM HAT - через порты micro USB на обеих платах (и опять же, вам нужно будет соответствующим образом установить переключатель UART на GSM HAT), и это может быть более быстрым и гораздо более простым решением. Вы можете легко это сделать, если приобретете соответствующий кабель (который сэкономит ваше время и усилия на изготовление кабеля) - просто не забудьте изменить порт, используемый программным обеспечением / приложением.

После подключения плат (через micro USB) все остальное легко. Просто следуйте диаграмме выше, где представленные контакты связаны с кодом, прикрепленным в конце этой инструкции. Конкретно:

- Контакты 35, 37 и 39 (связанные с Raspberry Pi GPIO 19, 26 и землей) используются для подключения к циферблату (входные контакты). Телефон, который мы выбрали, уже имеет 3-х проводный разъем, красный и черный провод связаны с контактами NO и NC, а желтый провод является общим.

- Контакты 23 и 25 (Raspberry Pi GPIO 11 и земля) используются для подключения переключателя гарнитуры (вход - обнаружение, когда гарнитура поднимается или опускается)

- Контакты 22 и 20 (Raspberry Pi GPIO 25 и земля) используются для подключения к переключателю звукового модуля (выход - кольцевое действие)

- Кроме того, контакт 19 (GPIO 10), возможно, потребуется припаять к выключателю питания GSM HAT, поскольку некоторые версии HAT не могут быть запущены только при включении питания, а нужно, чтобы кто-то вручную нажал выключатель питания на HAT.

- Со стороны телефона мы сняли внутренний 4-жильный кабель гарнитуры и подключили к 3,5-мм аудиоразъему от старых наушников. Красный / зеленый провода предназначены для микрофона гарнитуры, а желтый / черный - для динамика гарнитуры. В зависимости от используемой стороны разъема 3,5 мм вам может потребоваться выбрать подходящий провод (согласно приведенному выше фрагменту для входа для наушников GSM HAT), но в нашем случае микрофон был подключен к экрану и красному, а провода динамика были зеленым и синим. В конце вставьте штекер 3,5 мм во вход для наушников GSM HAT.

Шаг 3: Окончательная упаковка и добавление смоделированного «эффекта звонка»

Окончательная упаковка и добавление смоделированы
Окончательная упаковка и добавление смоделированы

Хотя окончательная внутренняя упаковка, как показано на рисунке выше, выглядит относительно аккуратно, потребовалось много доработок и опробования различных вариантов. Основными ограничениями были пространство под диском и жесткие разъемы, и весь процесс напоминал сборку пазла.

Нам очень повезло, что мы смогли использовать несколько столбиков, которые уже существовали внутри телефона (мы удалили другие стойки с помощью инструмента Dremel), а также для защиты плат и динамика. Но это также ограничивало остальное доступное пространство, что в конечном итоге привело к тому, что мы отказались от первоначальной идеи добавить внутренний перезаряжаемый источник питания.

Что касается "кольца", то в итоге мы купили записываемый звуковой модуль с батарейным питанием. В качестве опции (при подключении плат через micro USB) есть версия без батареи, которая может питаться напрямую от разъема Raspberry Pi 5V.

В обоих случаях необходимо удалить внешний управляющий переключатель звукового модуля и подключить провода к одному из контактов GPIO + заземления. А программирование мелодии звонка в модуль очень просто, просто подключите его к ПК и загрузите любой mp3-файл, который вы хотите использовать для звонка. Вот ссылка на хороший сайт с множеством старых мелодий звонков.

Шаг 4: программное обеспечение и окончательная интеграция

Программное обеспечение и окончательная интеграция
Программное обеспечение и окончательная интеграция
Программное обеспечение и окончательная интеграция
Программное обеспечение и окончательная интеграция

На приведенной выше блок-схеме представлены все основные компоненты и их взаимосвязи. По сути, для реализации требуется 3 дискретных входа и как минимум 1 дискретный выход (мы использовали 2 DO, поскольку версия GSM HAT, которую мы получили, не может запускаться автоматически без нажатия кнопки на HAT, поэтому нам нужно было припаять провод к этой кнопке, чтобы заставить запуск HAT при включенном телефоне).

Что касается кода, он был написан на Python 2.7, поэтому, если вы устанавливаете / используете версию 3.x и выше, могут быть некоторые вещи, которые нужно будет изменить (очевидным является оператор print). Для правильной работы кода необходимо сначала добавить несколько библиотек Python, например:

- gpiozero (необходимо для интерфейса Raspberry Pi GPIO)

- re (библиотека регулярных выражений - для анализа входящих SMS-сообщений, установить, если не является частью установки Python по умолчанию)

- последовательный (для подключения к GSM HAT - требуется даже при подключении через micro USB, установить, если не является частью стандартной установки Python)

Кроме того, в прикрепленном коде есть 2 места, которые необходимо изменить / адаптировать в зависимости от окончательной реализации (или 3 места, если используются разные контакты GPIO). Первый связан с номером, который вы хотите использовать для пересылки сообщений:

# ********************************** FORWARDING_NUMBER = "5551234567" # поместите сюда телефон, на котором хотите отправлять сообщения быть отправленным

# ***********************************

И второй - для настройки последовательного порта:

# ***********************************

# Инициализация SIM868 и rutinessim868 = serial. Serial ("/ dev / ttyS0", 115200)

# убедитесь, что / dev / ttyS0 подходит для вашей установки

# ***********************************

Код был построен как конечный автомат, описанный на диаграмме выше. Большую часть времени телефон находится в состоянии ожидания, ожидая событий: 1. Входящий звонок (переводит телефон в состояние ЗВОНОК)

2. Входящее SMS-сообщение - которое / может быть автоматически переадресовано на другой телефон.

3. Поднимите гарнитуру перед набором номера (переводит телефон в состояние DIAL).

4. Набор спецсимвола без снятия гарнитуры (по текущему коду, набор "#" выключенного телефона)…

В код встроено множество комментариев, которые должны помочь прочитать и понять его. Мы оставили некоторые вещи незавершенными, например, добавили опцию быстрого набора, или отправили статусное сообщение, или …

Что касается того, как автоматически запускать код при подаче питания, мы решили реализовать его как службу, что можно сделать, как описано здесь. Просто сделайте следующее:

- загрузите ниже прикрепленные файлы «rotaryPhoneStateMachine.txt» и «myphone.txt» и переименуйте их в «rotaryPhoneStateMachine.py» и «myphone.service» (по какой-то странной причине сервер Instructables не позволяет загружать файлы определенных типов)

- поместите rotaryPhoneStateMachine.py в папку / home / pi

- поместите myphone.service в / etc / systemd / system

- включить службу командой «sudo systemctl enable myphone.service» (после проверки всего)

Рекомендуемые: