Índice:

Telefone móvel rotativo estilo retro: 4 etapas (com fotos)
Telefone móvel rotativo estilo retro: 4 etapas (com fotos)
Anonim
Telefone móvel com botão giratório estilo retro
Telefone móvel com botão giratório estilo retro

Este projeto foi impulsionado tanto pela necessidade prática quanto pelo desejo de fazer algo divertido.

Como a maioria das famílias modernas, deixamos de ter telefones "domésticos" de verdade (com fio) há muitos anos. Em vez disso, temos um cartão SIM extra associado ao nosso "antigo" número residencial, que carreguei no meu celular dual-sim. Isso funcionou bem como uma configuração na maioria das vezes, mas não funcionou bem em alguns casos, como quando nossos pais estavam nos visitando (eles são da velha geração - sem telefones celulares, e eu não podia ligar para eles em nossa casa quando estavam fora já que nosso telefone "de casa" estava comigo). Isso também foi ampliado quando eu troquei meu telefone (o novo telefone tem um slot SIM único). Então, pareceu uma boa ideia encontrar uma maneira de ter um telefone estilo "casa" que pudesse usar nosso cartão SIM extra.

No que diz respeito à diversão, a maioria das crianças hoje em dia não tem ideia de como os antigos telefones rotativos funcionavam, ou de que eles existiam como tal. Na parte do mundo de onde eu e minha esposa somos, usamos a expressão "gire o número" para discar, o que é confuso para a população mais jovem, pois "por que alguém viraria o telefone para discar". Portanto, achei que seria legal se meu filho (que estava participando ativamente desse projeto) pudesse ter experiência com telefones rotativos.

Claro, eu também tinha certeza de que esse "novo" telefone seria um bom tópico de conversa quando recebêssemos amigos e parentes. Ou melhor ainda, levar o celular conosco em visitas a amigos, surpreendendo as pessoas com um celular retro totalmente funcional.

Durante o projeto, mudamos alguns dos objetivos do design original. Por exemplo, eu estava pensando em incorporar uma bateria externa recarregável dentro do telefone para que ela pudesse ser facilmente transportada, mas acabei percebendo que isso não é necessário (já que esse tipo de telefone fica naturalmente em um lugar o tempo todo, então pode estar sempre conectado a uma tomada). Havia alguns outros "atalhos" que pudemos usar, o que tornou o projeto relativamente simples e não muito complexo.

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

Como material, eu esperava inicialmente que pudéssemos conseguir um velho telefone rotativo com meus pais e usar a maioria de suas peças (concha do telefone, discagem rotativa, fone de ouvido, etc.), o que diminuiria o custo do projeto geral. Isso acabou não acontecendo devido ao COVID-19, que impediu nossa viagem planejada para a Europa (visitando a família), e em vez disso, acabamos de encontrar e comprar o novo telefone com discagem rotativa na Amazon (não fiquei satisfeito com as opções e preços no eBay). Isso foi OK, pois forneceu algumas funcionalidades adicionais interessantes, uma vez que encontramos telefones com discagem rotativa com opções de discagem extras (* e #), normalmente não disponíveis em telefones antigos.

A parte principal do projeto foi o HAT GSM / GPRS que está prontamente disponível (não precisávamos da versão 4G) e que pode ser controlado diretamente com qualquer Raspberry Pi ou placas semelhantes. Em nosso caso, tínhamos uma pequena placa Raspberry Pi Zero que não estávamos usando ativamente (do projeto mais velho do meu filho).

É interessante que a maioria das mudanças de pensamento e design foram feitas em torno de uma parte relativamente simples e pequena do projeto - criando uma ação vibrante. Como aqueles que estão familiarizados com telefones antigos sabem, o toque de estilo antigo distinto foi produzido por "sinos" acionados por 40-60 VAC, o que foi complicado de fazer como parte deste projeto. Eu finalmente decidi simplificar essa parte do projeto e acabei com uma solução relativamente simples usando um módulo de som gravável que geralmente faz parte dos cartões de felicitações. Havia algumas outras opções, mas isso funcionou muito bem e foi uma solução relativamente barata.

Suprimentos

  • Raspberry Pi Zero W
  • Waveshare GSM / GPRS / GNSS / Bluetooth HAT
  • Módulo de som gravável, botão ativado
  • (Antigo) Rotary Phone
  • Cartão Micro SD (para Raspberry Pi), cabos / pinos, fones de ouvido antigos, etc.

Etapa 1: Preparando o telefone

Preparando o telefone
Preparando o telefone

Os telefones com fio do estilo antigo são dispositivos relativamente simples. Como pode ser visto na foto com o telefone original desmontado, as peças reutilizáveis são a estrutura principal do telefone, incluindo o botão giratório e a base, o fone de ouvido e seu botão, enquanto o resto foi retirado - campainha e placa de controle.

O que foi muito bom com este modelo específico de telefone é que pudemos não apenas reutilizar o botão giratório, mas também seu conector, que poderia ser conectado diretamente ao conector do Raspberry Pi. Deve-se notar que este conector possui 3 fios, um para referência e 2 indo para entradas discretas no Raspberry Pi. Com a lógica apropriada (capturada no código anexado), isso permite a detecção de quando a discagem é girada e qual número foi selecionado.

O mesmo vale para o interruptor do fone de ouvido, que possui um conector que pode ser conectado diretamente ao conector. É uma lógica simples, pois requer apenas referência e uma entrada discreta.

Como esperado, o cabo do fone de ouvido tem 4 fios, com 2 cada para alto-falante e microfone de baixo nível de potência. Como o HAT que estávamos usando tinha um conector de áudio de 3,5 mm para fone de ouvido, acabei conectando esses 4 fios a um dos velhos fones de ouvido com conector de áudio macho de 3,5 mm.

Outra coisa interessante que foi útil neste modelo específico de telefone foi a montagem de postes a partir da base do telefone. Embora precisássemos cortar alguns deles para abrir espaço para as placas, ainda pudemos reutilizar outros e proteger nossas placas. Esta foi uma boa pausa e nos poupar algum tempo.

Etapa 2: juntando as coisas

Juntando as Coisas
Juntando as Coisas
Juntando as Coisas
Juntando as Coisas
Juntando as Coisas
Juntando as Coisas

Para uma simples prova de conceito, é suficiente conectar Raspberry Pi e GSM HAT diretamente e conectar fones de ouvido regulares ao GSM HAT. Consegui usar essa configuração junto com o aplicativo MiniCom (conduzindo a porta serial Raspberry Pi, que está diretamente conectada ao GSM HAT) para verificar rapidamente se meu cartão SIM está funcionando e se posso ligar e enviar / receber mensagens SMS com essa configuração.

Já que outras pessoas podem estar interessadas em fazer isso (é divertido testar rapidamente uma nova configuração), aqui estão as dicas de como fazer isso (obviamente, com base na suposição de placas iguais / semelhantes):

- Instalar e configurar o sistema operacional no Raspberry Pi (usei a versão Lite OS, que vem sem interface gráfica).

- Conecte o GSM HAT (com cartão SIM instalado) no Raspberry Pi (certifique-se de que o GSM HAT tenha a seleção de chave UART apropriada com base no tipo de conexão, consulte o link abaixo para o manual do HAT). Para esta etapa você pode precisar da versão Raspberry Pi que tem conector de cabeçalho já instalado, no nosso caso eu precisei soldá-lo (já que estava usando Pi zero, que por padrão vem sem cabeçalho). Como alternativa, a melhor opção é usar um cabo micro USB para conectar os dois cartões (Raspberry Pi e GSM HAT têm micro USB)

- Habilite o uso da porta serial Raspberry Pi se conectar GSM HAT através da porta serial (por padrão, a porta Raspberry Pi é usada para console). Para fazer isso, você precisará seguir as instruções para raspi-config (veja o link "configurar" acima), opções de interface - habilitando SSH e opções seriais. Se estiver usando a versão Lite do sistema operacional, você também pode precisar "conectar-se à rede sem fio" e habilitar o SSH (consulte as instruções do link "configurar" acima).

- Conecte o Raspberry Pi ao monitor e ao teclado (ou acesse-o por meio de ssh remoto)

- Use o MiniCom ou aplicativo serial semelhante para controlar manualmente o HAT por meio da porta apropriada (pois minha porta de configuração era "/ dev / ttyS0", será diferente se estiver usando micro USB). Instale o MiniCom com "sudo apt-get install minicom" e, uma vez instalado, inicie-o com "minicom -D / devtyS0" (ou qualquer porta usada).

- Use o manual GSM HAT ou manual de comando AT para conduzir várias funções HAT (enviar SMS, fazer chamadas, etc.). Uma vez conectado corretamente, o GSM HAT responderá com "OK" quando questionado pelo comando "AT". Para verificar se o cartão SIM foi devidamente registrado, use o comando "AT + CREG?", Que também deve retornar "OK". Você também pode verificar o provedor de rede com "AT + COPS?" Ou verificar seu próprio número de telefone com "AT + CNUM"

Para integrar o resto das peças necessárias, criamos um cabo personalizado de 16 pinos para Raspberry Pi para GSM HAT, uma vez que precisávamos de alguns dos outros pinos de IO de uso geral para ler o dial rotativo, o estado do interruptor do fone de ouvido e acionar o toque da campainha (também para iniciar automaticamente GSM HAT durante a ativação / inicialização). Tentei usar alguns fios breakout prontos para uso no Raspberry Pi para esse propósito e, embora funcionasse bem para conectar e testar rapidamente, não fiquei muito feliz com a qualidade e acabei fazendo meu próprio conector de 16 pinos.

Outra maneira de fazer a conexão entre o Raspberry Pi e o GSM HAT é por meio de portas micro USB de ambas as placas (e novamente, você precisará definir o interruptor UART adequadamente no GSM HAT), e essa pode ser uma solução mais rápida e muito mais simples. Você pode fazer isso facilmente se obter o cabo apropriado (isso economizaria tempo e esforço para fazer o cabo) - só não se esqueça de mudar a porta usada pelo software / aplicativo.

Depois de conectar as placas (com micro USB), o resto é fácil. Basta seguir o diagrama acima, onde os pinos apresentados estão associados ao código anexado no final deste instrutível. Especificamente:

- Os pinos 35, 37 e 39 (associados ao Raspberry Pi GPIO 19, 26 e aterramento) são usados para conectar ao dial (pinos de entrada). O telefone que escolhemos já tinha um conector de 3 fios embutido, sendo o fio vermelho e preto associado aos pinos NO e NC, e o fio amarelo sendo comum.

- Os pinos 23 e 25 (Raspberry Pi GPIO 11 e terra) são usados para conectar o interruptor do fone de ouvido (entrada - detecta quando o fone de ouvido é levantado ou colocado)

- Os pinos 22 e 20 (Raspberry Pi GPIO 25 e terra) são usados para conectar a chave do módulo de som (saída - ação do anel)

- Além disso, o pino 19 (GPIO 10) pode precisar ser soldado ao botão liga / desliga do GSM HAT, já que algumas versões do HAT não podem ser iniciadas apenas pela inicialização, mas é necessário que alguém pressione manualmente o botão "liga / desliga" no HAT.

- No lado do telefone, removemos o cabo de 4 fios do fone de ouvido interno e os conectamos ao conector de áudio de 3,5 mm dos fones de ouvido antigos. Os fios vermelho / verde são para o microfone do headset e os fios amarelo / preto são para o alto-falante do headset. Dependendo do lado do conector de 3,5 mm usado, você pode precisar descobrir o fio apropriado (conforme extrato acima para entrada de fone de ouvido GSM HAT), mas em nosso caso o microfone foi conectado à blindagem e vermelho, enquanto os fios do alto-falante eram verdes e azuis. No final, conecte o conector de 3,5 mm na entrada de fones de ouvido GSM HAT.

Etapa 3: embalagem final e adição de "efeito de toque" simulado

Empacotamento final e adição simulada
Empacotamento final e adição simulada

Embora a embalagem interna final, como vista na foto acima, pareça relativamente limpa, exigiu muitos ajustes e tentativas de opções diferentes. As principais restrições eram o espaço sob o botão giratório e os conectores rígidos, e todo o processo era como montar um quebra-cabeça.

Foi uma sorte podermos usar vários posts que já existiam dentro do telefone (removemos outros posts com a ferramenta Dremel), e para proteger placas e alto-falante. Mas isso também restringiu o resto do espaço disponível, o que acabou nos levando a abandonar a ideia original para adicionar fonte de energia recarregável interna.

Quanto ao "ring", acabamos comprando um módulo de som gravável alimentado por bateria. Como opção (ao conectar placas através de micro USB), existe uma versão sem bateria que pode ser alimentada diretamente a partir do conector Raspberry Pi 5V.

Em ambos os casos, a chave de controle externa do módulo de som precisaria ser removida e os fios conectados a um pino GPIO + terra. E programar o toque no módulo é muito simples, basta conectá-lo ao PC e baixar o arquivo mp3 que deseja usar para a ação de toque. Aqui está o link para um site legal com muitos sons de campainha antigos.

Etapa 4: Software e integração final

Software e integração final
Software e integração final
Software e integração final
Software e integração final

O diagrama de blocos acima apresenta todos os componentes principais e seus relacionamentos. Em essência, a implementação precisa de 3 entradas discretas e pelo menos 1 saída discreta (usamos 2 DO's desde a versão do GSM HAT que obtivemos não pode iniciar automaticamente sem pressionar o botão no HAT, então precisamos soldar o fio a esse botão para forçar iniciar o HAT quando o telefone estiver ligado).

No que diz respeito ao código, ele foi escrito em Python 2.7, portanto, se você instalar / usar a versão 3.xe superior, pode haver algumas coisas que precisem ser alteradas (uma óbvia é a instrução "imprimir"). Para que o código funcione corretamente, existem algumas bibliotecas Python que precisam ser adicionadas primeiro, como:

- gpiozero (necessário para a interface Raspberry Pi GPIO)

- re (biblioteca de expressão regular - para analisar mensagens SMS recebidas, instale se não fizer parte da instalação padrão do Python)

- serial (para conectar ao GSM HAT - necessário mesmo se conectar através de micro USB, instale se não fizer parte da instalação padrão do Python)

Além disso, há 2 locais no código anexado que devem ser modificados / adaptados dependendo da implementação final (ou 3 locais, se pinos GPIO diferentes forem usados). O primeiro está relacionado ao número que você deseja usar para encaminhar mensagens:

# ************************************ FORWARDING_NUMBER = "5551234567" # coloque aqui o telefone onde deseja suas mensagens para ser encaminhado

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

E o segundo é para a configuração da porta serial:

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

# SIM868 inicialização e rutinessim868 = serial. Serial ("/ dev / ttyS0", 115200)

# certifique-se de que / dev / ttyS0 é adequado para sua configuração

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

O código foi construído como uma máquina de estado, descrito no diagrama acima. Na maior parte do tempo, o telefone está no estado IDLE, aguardando eventos: 1. Chamada recebida (o que levará o telefone ao estado RING)

2. Mensagem SMS recebida - que é / pode ser encaminhada automaticamente para outro telefone

3. Levantar o fone de ouvido, em preparação para a discagem (coloca o telefone no estado DIAL)

4. Discando um caractere especial sem levantar o fone de ouvido (conforme o código atual, discando "#" para desligar o telefone) …

Existem muitos comentários embutidos no código, o que deve ajudar a lê-lo e entendê-lo. Deixamos algumas coisas inacabadas, como adicionar opção de discagem rápida ou enviar mensagem de status ou …

No que diz respeito a como fazer com que o código seja executado automaticamente quando a energia é aplicada, optamos por implementá-lo como um serviço, o que pode ser feito conforme descrito aqui. Basta fazer o seguinte:

- baixe abaixo os arquivos anexados "rotaryPhoneStateMachine.txt" e "myphone.txt" e renomeie-os como "rotaryPhoneStateMachine.py" e "myphone.service" (por alguma razão estranha, o servidor Instructables não permite o upload de certos tipos de arquivo)

- coloque "rotaryPhoneStateMachine.py" na pasta / home / pi

- coloque "myphone.service" em / etc / systemd / system

- habilite o serviço com o comando "sudo systemctl enable myphone.service" (depois de testar tudo)

Recomendado: