Índice:

Rádio Sênior - Raspberry Pi: 8 Passos
Rádio Sênior - Raspberry Pi: 8 Passos

Vídeo: Rádio Sênior - Raspberry Pi: 8 Passos

Vídeo: Rádio Sênior - Raspberry Pi: 8 Passos
Vídeo: Easy Raspberry Pi Projects for 2023! 2024, Julho
Anonim
Rádio Sênior - Raspberry Pi
Rádio Sênior - Raspberry Pi

O projeto Senior Radio é um dispositivo de rádio da Internet de código aberto, acessível, com componentes de hardware e software. Destina-se a ser usado por usuários familiarizados com o controle de um rádio de bolso, onde os dials controlam o volume e a estação de rádio selecionada. O projeto é feito com um design centrado no usuário, focado em um usuário que deseja um tamanho e controles semelhantes aos de um rádio portátil padrão.

Foi construído para satisfazer as necessidades de permitir que pessoas com deficiência possam ouvir milhares de diferentes conteúdos de streaming da Internet que normalmente só estão normalmente disponíveis através de um navegador de Internet. Muitas pessoas não têm a capacidade de usar esse dispositivo facilmente, então este design visa fazer uma interface familiar para uma tecnologia moderna.

A funcionalidade principal está no Github, armazenada em um programa python 3.7.3 chamado seniorRadio.py. Ele lê e grava um arquivo json para armazenar o estado do rádio, de modo que, ao desligá-lo, ele se lembrará do nível de áudio atual e da estação selecionada. Além disso, ele lê um arquivo json hospedado online que você pode alterar! Isso permite que você atualize as estações de rádio remotamente, se você estiver dando a outra pessoa.

Atualmente, ele é criado para se conectar a um alto-falante bluetooth, mas também pode ser facilmente reproduzido em um alto-falante integrado.

O criador deste dispositivo provavelmente não é o usuário e precisa de pelo menos alguma experiência com eletrônica e conhecimento básico de programação. A experiência com Linux também é muito útil.

Para o usuário, a funcionalidade é simples:

Ao ligar, ele reproduzirá a última estação selecionada no dispositivo de áudio padrão. O botão esquerdo controla a estação, onde alguns cliques do botão mudam para um novo URL. Ele rolará após a última ou primeira entrada. O dial direito controla o nível de áudio. O LED indica que o programa está ligado. E o botão pausa ou "desliga" o rádio. Assim, uma vez ligado, o usuário pode simplesmente apertar o botão para pausar / reproduzir, ou "desligar / ligar", o rádio e os dois dials para controlá-lo.

Suprimentos

Vinculado a cada item está o específico que usei. Custou-me cerca de US $ 60 no total, com muitos suprimentos que sobraram!

Conhecimento básico de eletrônica e Linux - para montagem e depuração

Raspberry Pi Zero W (Zero WH tem cabeçalhos pré-soldados e provavelmente úteis)

Cartão MicroSD-8 GB + e capacidade o

Adaptador de alimentação MicroUSB 5V - Link também inclui adaptador microHDMI e adaptador microUSB OTG para USB A para configuração se você precisar deles

alto-falante Bluetooth

Cabos de jumper M / F e M / M

2 Codificador rotativo - mesmo link acima

Placa de ensaio pequena

Botão de apertar

LED (opcional) - comprado LED + botão de pressão acima

Caixa para embalagem

Etapa 1: configuração (sem cabeça) Raspberry Pi W

Configuração (sem cabeça) Raspberry Pi W
Configuração (sem cabeça) Raspberry Pi W

Precisamos configurar o sistema operacional no raspberry pi que executará o software. Nada disso é exclusivo para este projeto. Para depuração, recomendo configurá-lo para que você também possa acessá-lo no modo headless. Isso significa que você acessa o pi pela rede WiFi por meio da interface gráfica do usuário ou de um terminal SSH e não precisa de teclado, mouse e monitor para usá-lo todas as vezes. Você poderia fazer isso sem precisar se conectar a um monitor / mouse / teclado se você tiver mais experiência em tecnologia. Algumas instruções de exemplo aqui. No entanto, é menos simples, e abaixo está outra maneira de configurá-lo.

Na primeira vez, você provavelmente precisará de:

  • Raspberry Pi W
  • MicroSD para adaptador de cartão SD [para gravar SO no cartão SD]
  • Cartão MicroSD (~ 8 GB +) [para armazenar o sistema operacional e nosso programa]
  • Potência MicroUSB (5V)
  • MicroUSB para USB A [para mouse / teclado]
  • Adaptador Mini HDMI para HDMI [para saída de vídeo]
  • Teclado
  • Mouse
  • Monitor

Primeiro, você precisará atualizar o sistema operacional no cartão micro SD rPi.

Eu usei raspian buster, você baixa isso em um computador com um leitor / gravador de cartão SD e, em seguida, atualiza o sistema operacional raspian no cartão SD. BalenaEtcher é um software fácil de fazer isso

Em seguida, coloque o cartão SD no slot pi, conecte o monitor, teclado e alimentação. Prossiga com as etapas de configuração que o raspian solicita, incluindo conectá-lo à sua rede WiFi e emparelhar seu alto-falante bluetooth através da GUI. Uma boa prática seria atualizá-lo usando os seguintes comandos

sudo apt-get update

sudo apt-get upgrade

Se você quiser incluir a marcação de seu pi sem cabeça, precisaremos primeiro pegar o endereço IP do pi. Por meio de um terminal, você pode encontrá-lo no

ifconfig

comando. Em seguida, você precisa habilitar SSH e VNC nas opções de interface em

sudo raspi-config

Depois de reiniciar, agora você pode testar o acesso ao pi por SSH ou VNC. SSH é apenas uma interface de terminal e você pode achar mais fácil usar a GUI para emparelhar um alto-falante bluetooth. Você pode usar um programa como o VNC Connect para acessar facilmente seu pi em um computador separado em sua rede. Você pode usar um programa como o putty para SSH nele.

Além disso, você pode configurar uma conta de nuvem VNC para que possa acessar o dispositivo fora da rede, se necessário

Etapa 2: instalar o software de rádio sênior

Instale o software de rádio sênior
Instale o software de rádio sênior

Isso pode ser feito a partir de uma janela de terminal do framboesa pi. Primeiro certifique-se de ter o git instalado

sudo apt-get install git

Dependendo de qual sistema operacional você instalou, essas etapas podem ser diferentes, pois pode ser necessário instalar pacotes adicionais, o sistema irá informá-lo se assim for. Primeiro, precisamos baixar o código de rádio sênior do github. https://github.com/Bunborn/seniorRadio Idealmente, você está fazendo nosso próprio repositório para que possa fazer alterações e alterar facilmente as estações de rádio da mesma forma que eu. Bifurque o repo se assim for

No entanto, você pode usar o mesmo que o meu sem problemas se quiser hospedar seu arquivo json de rádio em outro local

Em seguida, clone o repositório em qualquer local que você quiser. O diretório padrão está bom. Obtenha o URL do repositório github que você deseja clicando no botão verde de clonagem ou download.

De volta à janela do terminal, clone git

Agora você deve ver um diretório extra denominado seniorRadio ao usar ls. Fantástico!

O código deve ser autodocumentado, dar uma olhada nele seria útil. Especialmente para fins de depuração e se você estiver alterando o sistema.

Etapa 3: instalar software adicional

Instale software adicional
Instale software adicional

Antes de prosseguirmos para o circuito e testá-lo, também precisamos baixar o VLC e a API python para ele. Você pode já ter o VLC instalado. Os primeiros dois comandos irão atualizar o pi, e os dois últimos comandos abaixo irão instalar o VLC e então a API python

sudo apt-get update

sudo apt-get upgrade

sudo snap install VLC

sudo apt-get install vlc-python

Além disso, instale também o gpiozero, que usaremos para fazer interface com os pinos GPIO do pi. Você pode já tê-lo instalado, dependendo do seu sistema operacional.

sudo apt-get install gpiozero

Etapa 4: encontre streams de estações de rádio

Encontre streams de estações de rádio
Encontre streams de estações de rádio

A seguir, uma das partes mais divertidas! É hora de selecionar os streams que você deseja.

No meu arquivo internetStations.json você pode ver meus links de stream, principalmente de notícias e música. Mas há uma tonelada de conteúdo hospedado por aí. A chave aqui é encontrar o endereço de URL do stream direto. Por exemplo, as estações de notícias e música da BBC podem ser encontradas aqui neste blog. Esses streams diretos não terão nenhuma interface gráfica e reproduzirão automaticamente o stream por meio do reprodutor de mídia do navegador. Esses são os URLs de que precisamos para que o VLC possa lê-los! Você pode testar qualquer link rapidamente em seu navegador da web ou através do VLC em seu computador normal para garantir que funcionará no pi.

Para localizar essas estações, você pode procurar o stream direto online se o serviço o hospedar. Uma forma rápida também pode ser reproduzir o stream, clicar com o botão direito do mouse no navegador e clicar em "inspecionar elemento". Navegue até a guia de rede e ela deve indicar o URL 'direto' do stream. Este vídeo do youtube demonstra isso. Atualizar a página com a guia aberta deve ajudar.

Assim que tiver suas estações, você deseja colocá-las online para que seu programa python seniorRadio possa obtê-las. Existem muitas opções para fazer isso, você pode usar sites como Github, bitbucket ou até mesmo sourceforge. O principal objetivo de hospedar essa lista online é que o usuário que a configura possa alterar a lista de stream online remotamente.

No início do programa python, há uma variável chamada url, simplesmente altere-a para ser a URL do seu arquivo json com os links da URL da estação

Você pode seguir o mesmo formato do meu arquivo internetStation.json. Se você também quiser usar o github, pode simplesmente fazer um fork do meu repositório seniorRadio, editar seu próprio arquivo internetStation.json e apontá-lo para aquele URL "bruto". Você pode encontrar isso abaixo na GUI do Github assim que clicar no arquivo.

Etapa 5: criar circuitos

Criar Circuitos
Criar Circuitos

Agora precisamos configurar o circuito. Isso vai mudar com base no seu equipamento, mas a seguir é como eu configurei o meu.

pinout.xyz/ para referência sobre quais pinos são quais. Como estamos usando a biblioteca gpiozero, estamos preocupados apenas com a numeração de pinos do BCM. Observe que comprei alguns codificadores rotativos KY040 extras - os dials - para testá-los, pois nem todos têm a mesma precisão. Cada um teria algum "salto", ou simplesmente saída incorreta, então escolhi o melhor dos dois que tinha. No código, você notará que há algumas etapas para limitar esse salto também.

Eu conectei meu botão ao pino 17 do BCM e aterramento

Meu LED para um resistor de 1k ohm, em seguida, BCM pino 27 e aterramento

Meus codificadores rotativos KY040 tinham o condutor + em 5V, o GND para o aterramento e o SW desconectado. Eles foram conectados por meio de uma mini placa de ensaio

Pino dt do codificador rotativo da estação conectado ao pino 21 do BCM

Pino clk do codificador rotativo da estação conectado ao pino 20 do BCM

Pino dt do codificador rotativo de nível de áudio conectado ao pino 19 do BCM

Pino clk do codificador rotativo de nível de áudio conectado ao pino 16 do BCM

Se você alterar esses pinos, basta atualizar o número no programa python e também onde ele configura os manipuladores

Usei uma mini placa de ensaio para tornar isso mais fácil. Usei fios de jumper M / M e M / F também para facilitar a interface. Soldei alguns fios de jumper nos pinos do botão / LED que comprei anteriormente. Para não soldar, você pode obter botões e LEDs que já têm cabos de jumper ou que se conectam facilmente a um.

Etapa 6: Teste

Agora, você deve ter um sistema funcionando! Vamos testar. Navegue até a pasta com o programa python, provavelmente:

cd seniorRadio

python3 seniorRadio.py

Atualmente, há um atraso de 45 segundos no início do programa para dar tempo de encontrar o alto-falante bluetooth ao ligar. Você pode comentar esta linha se não precisar dela durante o teste. O programa pode dizer que você precisa instalar pacotes adicionais, então vá em frente. Também pode ser necessário instalar uma versão mais recente do Python.

sudo apt-get install python3.7

Alguns problemas possíveis, mesmo se o programa for executado:

Eu não ouço nenhum som

Certifique-se de que o alto-falante está ligado e selecionado em seu pi de framboesa. Por meio da GUI, você deve ser capaz de emparelhá-lo e, em seguida, selecioná-lo como seu dispositivo de saída de áudio. Além disso, verifique seus drivers de áudio. Um problema comum é que você pode precisar reinstalar o pacote pulseaudio

Áudio entrecortado ou corte dentro e fora

Experimente aproximar o dispositivo do seu roteador WiFi. Além disso, certifique-se de que o alto-falante bluetooth está por perto. Também pode ser um problema de driver de áudio

Etapa 7: colocar em um gabinete permanente

Colocado em um gabinete permanente
Colocado em um gabinete permanente

Em seguida, coloque-o em uma caixa ou dispositivo semelhante para que ele possa morar permanentemente. Eu recomendo ter um que você possa acessar mais tarde ainda para depuração. Comprei esta pequena caixa de madeira em uma loja de artesanato por US $ 2 e coloquei um link na página de suprimentos. Um dos meus amigos recomendou uma caixa de charutos.

Em seguida, cortei orifícios na frente para o botão de pressão e interruptores rotativos e fiz um orifício na parte de trás da caixa para o cabo de alimentação microUSB.

Testei a montaria e verifiquei se funcionou, e voilà!

Finalmente, usei super cola para segurar o botão. Minha placa de ensaio tinha um adesivo na parte inferior que conectei a parte da caixa. Usei uma pequena tira de fita adesiva para prender a parte de trás do pi na caixa, para que pudesse ser movido mais tarde, se necessário.

Etapa 8: programa de instalação para executar na inicialização

Finalmente, você provavelmente desejará que este programa python seja executado na inicialização do raspberry pi, de forma que não precise fazer isso manualmente. Há muitas maneiras de fazer isso que você pode encontrar online.

Pessoalmente, eu configurei usando a segunda maneira neste tutorial SparkFun:

Aqui, ele espera que o sistema entre na área de trabalho gráfica antes de executar o programa. Em seguida, é atrasado pelo programa python por 45 segundos para dar ao sistema tempo para se reconectar ao alto-falante bluetooth. Se estiver usando um alto-falante integrado, você pode remover esse atraso. Observe que o alto-falante bluetooth deve ser ligado primeiro! (para a solução bluetooth)

Agora você pode tentar desligar e religar seu pi! Após cerca de 90 segundos, seu pi deve começar a tocar os streams de rádio mais uma vez. Ao pressionar o botão, ele fará uma pausa / reproduzirá. Observe que, nessas reinicializações, ele relê o arquivo internetStations json, portanto, se você alterar suas estações, será necessário reiniciar o dispositivo para que funcionem. Parabéns!

Se você fez isso, ou fez modificações no projeto, por favor me avise!

Página do Github:

Recomendado: