Jogar sua própria música tema quando você entra na sala com pi framboesa

Você sempre quis chegar a casa de um pessoal bem-vindos? Com um Raspberry Pi e alguns componentes simples, você pode! Neste projeto simples, vamos usar um interruptor reed para desencadear uma música tema quando a porta é aberta. Estaremos usando um Raspberry Pi como o controlador aqui, embora você pode usar quase qualquer outro microcontrolador

para este projeto usando o mesmo circuito. Aqui está uma demonstração.$ 5 microcontroladores: Arduino, Raspberry Pi zero, Ou nodemcu?$ 5 microcontroladores: Arduino, Raspberry Pi zero, Ou nodemcu?Ela costumava ser o caso de que se você quisesse obter um computador, você teria que hipotecar novamente sua casa para pagar por isso. Agora, você pode obter um para um Abraham Lincoln.consulte Mais informação

Você vai precisar

Você provavelmente já tem todas as peças que você precisa para fazer isso, exceto o interruptor de lâmina, que é de cerca de US $ 2-3, ou você pode obter um pacote de 5 para mais de US $ 8 aqui.

  • A Raspberry Pi (qualquer modelo irá trabalhar para isso).
  • 1 x 220 ohm.
  • 1 X 1K ohm.
  • 3 x 10K ohm.
  • 1 x interruptor reed magnético.
  • 1 x LED.
  • 2 x interruptor de botão de pressão.
  • Placa de ensaio.
  • cabos de gancho para cima.
  • altofalante do computador ou similar.

Nós vamos usar o Raspberry Pi para tocar uma música quando o local está inserido, e projetar um circuito com botões na nossa placa de ensaio para ativá-lo em um atraso, e parar o programa.

Este projecto, enquanto está a ser feito principalmente por diversão, aborda os conceitos básicos para muitas aplicações em domótica DIY e também segurança em casa DIY

Raspberry PI 3 Modelo B A1.2GHz 64-bit quad-core ARMv8 CPU, 1GB RAMRaspberry PI 3 Modelo B A1.2GHz 64-bit quad-core ARMv8 CPU, 1GB RAM1,2 GHz de 64 bits quad-core ARMv8, 1 GB de RAM Compre Agora No Amazon $ 30,39

Começando

Vamos começar fazendo nosso circuito. Verifique se o seu Pi é sem energia, e definir o seu circuito como este:

Fritzing Annotated HQ

O LED está ligado ao pino 7 no nosso pi. Os dois interruptores de botão de pressão estão ligados aos pinos 11 e 13, e o interruptor de lâminas liga ao pino 15. A alimentação passa para o pino 1 (3x3) e pino 6 (GND).

diagrama pino

Certifique-se de verificar tudo está exatamente no lugar certo.

Enquanto você está testando este projecto pode ajudar a manter o seu interruptor de lâminas na frente de você para que você possa facilmente alternar-lo ligado ou desligado. Neste caso o interruptor de lâmina já foi instalado acima da porta. Uma vez que seu projeto está instalado e funcionando, você pode anexar de forma temporária o interruptor à sua porta usando fita, ou se você está se sentindo mais confiante você pode anexá-lo de forma mais permanente para uso em projetos futuros!

reed switch instalado

Ligue a saída de jack de 3,5 mm de vocês Pi para o seu sistema de altifalantes. Uma vez que tudo é juntos que deve ser algo como isto:

Instalação concluída correta

Note-se que a placa de ensaio utilizado aqui tem o seu trilhos de alimentação o contrário com o diagrama Fritzing acima.

Video: MUSICA DO JOGO DA GARRAFA+DOWLOAND !!

Agora ligar o Pi, e acessá-lo usando SSH para que possamos acessar o terminal. Se você não tem certeza de como fazer isso, este guia pode ajudá-lo. Se você estiver usando o Raspberry Pi com um monitor, mouse e teclado, ignore este passo e abrir o terminal. Configurar o seu Raspberry Pi Para uso Headless Com SSH Configurar o seu Raspberry Pi Para uso Headless Com SSHO Raspberry Pi pode aceitar comandos SSH quando conectado a uma rede local (seja por Ethernet ou Wi-Fi), permitindo que você configurá-lo facilmente para cima. Os benefícios da SSH ir além de perturbar a triagem diária ...consulte Mais informação

Antes de começar, vale a pena verificar se você está atualizado. Tipo sudo apt-get update para o terminal.

Agora podemos passar para conseguir o nosso Pi falar com o nosso circuito.

Testando nossa configuração

Para começar, vamos verificar o nosso circuito usando um programa simples. Se você estiver confiante de ter ligado tudo até certo até agora você pode pular esta etapa, embora eu recomendaria como ele pode salvar dores de cabeça mais tarde.

Se você nunca programado em Python antes e estão se sentindo um pouco assustados, há uma série de grandes sites que podem ajudar você a começar.Os 5 melhores sites para aprender Python ProgrammingOs 5 melhores sites para aprender Python ProgrammingDurante a última década, a linguagem de programação Python tem explodiu em popularidade entre os programadores em todas as áreas de codificação. De desenvolvedores web para o vídeo game designers para os criadores de ferramentas em casa, muitas pessoas caíram em ...consulte Mais informação

No terminal, criar um novo script:

nano test.py

Uma vez aberto, adicione este código para o arquivo, e pressione Ctrl-C para sair, na sequência do diálogo salvar:

# Este código foi escrito para um artigo sobre MakeUseOf.com por Ian Buckley.importar RPI.GPIO Como GPIOimportar timeGPIO.DefinirAvisos(Falso)GPIO.setmode(GPIO.BORDA)GPIO.configuração(7,GPIO.FORA)GPIO.configuração(11,GPIO.DENTRO)GPIO.configuração(13,GPIO.DENTRO)GPIO.configuração(15,GPIO.DENTRO)enquanto Verdade:GPIO.saída(7,GPIO.ALTO)E se (GPIO.entrada(11)==1):impressão("Botão no GPIO 11")Tempo.dormir(1)E se (GPIO.entrada(13)==1):impressão("Botão no GPIO 13")Tempo.dormir(1)E se (GPIO.entrada(15)==1):impressão("Botão no GPIO 15")Tempo.dormir(1)GPIO.Limpar()

Este código lê o valor dos botões e imprime na tela quando eles mudam. Os dois botões têm puxar para baixo resistores, então eles relatam ALTA quando pressionado. O interruptor magnético reed relatórios ALTA sempre que o seu íman que acompanha está perto.

comuta

Execute o programa:

test.py python

Você deverá ver a luz de LED, e um relatório para a tela quando você pressiona seus dois botões e puxe o imã longe de sua chave de palheta. Se você não está recebendo feedback quando você pressiona botões, verifique o circuito novamente e se certificar que tudo está conectado como deve ser. Quando terminar o teste, pressione CTRL-C para parar o programa.

teste

Agora podemos montar um programa simples de configurar, gatilho e redefinir o nosso sensor da porta. Vamos falar sobre o código em partes e explicar brevemente o que cada parte faz, mas se você quiser ver o livro de código completo para baixo para vê-lo apresentado na íntegra.

Video: Mortal Kombat Música Tema

Precisamos começar pela importação de alguns módulos:

importar Rpi.GPIO Como GPIOimportar pygame.batedeiraimportar Tempo


Nós estaremos usando o Pygame módulo para tocar nossa música. Ele vem de série com Raspbian Jessie, e é um grande biblioteca para tudo que você precisa para fazer jogos Python e muitos outros projetos surpreendentes.Como construir um Raspberry Pi Twitter BotComo construir um Raspberry Pi Twitter BotTwitter é o maior repositório mundial de mensagens curtas de pessoas com nada a dizer - e agora você também pode contribuir para que o projeto épico com um bot automatizado Twitter, alimentado por sua framboesa ...consulte Mais informação

Video: Mortal Kombat - Música Tema

Nós estamos indo para usar uma variável chamada ativo para decidir se o nosso sistema está ativo ou não. Vamos definir um par de funções que vai fazer isso por nós:

def ActiveSetup():global activeactive=0impressão("Momento não está ativo")def activeState():global ativoE se ativo==1:ativo=0GPIO.saída(7,GPIO.BAIXO)impressão("Momento não está ativo")elif ativo==0:impressão ("Ativando em 10 segundos")para X dentro alcance(0,10):GPIO.saída(7,GPIO.ALTO)Tempo.dormir(0,5)GPIO.saída(7,GPIO.BAIXO)Tempo.dormir(0,5)ativo=1GPIO.saída(7,GPIO.ALTO)impressão("ativas Atualmente")outro: Retorna

A primeira função aqui cria uma variável chamada ativo, e define-o como 0. Dando o estado ativo um valor numérico significa que se você pretende escalar mais tarde o seu programa para ter diferentes estados ativos você pode numerá-las em conformidade. Embora possa não ser a melhor programação Python no mundo, é mais do que suficiente para este projeto.

A segunda função quando chamados verifica se o sistema está activo (ou == activo 1). Se for, ele define o sistema para não ativa (== activo 0), Transforma o LED off e imprime no console. Se não for, dá-lhe uma segunda contagem regressiva de 10 a sair da sala em que o LED pisca, antes permanecendo a mostrar que o sistema está activo.

Agora podemos definir uma função que irá assistir ao nosso interruptor magnético reed:

def watchDoor():global playingplaying = Falsoenquanto Verdade:E se ativo==1 e GPIO.entrada(15)==1 e jogando == Falso:jogando=Verdadepygame.batedeira.música.Toque()E se GPIO.entrada(13)==1:impressão("botão pressionado Parar: Sair")pygame.batedeira.música.Pare()pausaE se GPIO.entrada(11)==1:activeState()Tempo.dormir(0,5)

Nós criamos uma outra variável aqui chamada jogando - este é ali simplesmente para parar o programa tentando começar a jogar repetidamente quando o interruptor é acionado.

Dentro do loop while, a primeira declaração se inicia a música (que não temos qualquer um ainda, mas não se preocupe, ele está vindo). Ele só permite o início da música se o sistema estiver ativo, o interruptor de lâmina está aberto, e ele já não estiver jogando.

A segunda declaração se é para o nosso botão de saída. Se este botão é pressionado a música pára e o programa sai.

O terceiro if é para alternar se o sistema está ativo ou não. o hora de dormir função aqui é para evitar botão várias leituras quando é pressionado.

Agora é hora de configurar fora pins da Pi.

GPIO.setmode(GPIO.BORDA)GPIO.configuração(7, GPIO.FORA,inicial=GPIO.BAIXO)GPIO.configuração(11,GPIO.DENTRO)GPIO.configuração(13,GPIO.DENTRO)GPIO.configuração(15,GPIO.DENTRO)

Caso você tenha feito qualquer experimentando com o Pi antes este deve ser familiar para você. o inicial = GPIO.LOW argumento na configuração pino 7 de configura-lo para baixo assim que ele é inicializado.

Agora nós podemos chamar a nossa função que irá definir o sistema para não ser ativo quando o programa é iniciado.

ActiveSetup()

Música Maestro!

Neste ponto, devemos começar a pensar sobre a música para jogar. Você pode escolher qualquer arquivo de música que você deseja, mas vamos escolher algo disponível para todos por agora. Se você assistir YouTube que você provavelmente já estão familiarizados com a música de Kevin MacLeod. Permite baixar uma música fantástica por ele chamado de “One-eyed Maestro”. Isto, junto com grande parte da música em seu site, está licenciado sob Creative Commons, e há muitas boas razões para usar o conteúdo com estas licenças para seus projetos.O que é o Creative Commons, e você deve usá-lo?O que é o Creative Commons, e você deve usá-lo?Creative Commons é um conjunto de licenças que automaticamente lhe dar permissão para fazer várias coisas, como a reutilização e distribuir o conteúdo. Vamos descobrir mais sobre ele e como usá-lo.consulte Mais informação

wget

Voltar no nosso código, nós precisamos começar o misturador Pygame e carregar a nossa sintonia.

pygame.batedeira.nisso(44100,-16,2,1024)pygame.batedeira.música.set_volume(1.0)nome = "One-eyed Maestro.mp3"pygame.batedeira.música.carga(nome)impressão("faixa carregada - "+ str(nome))

A primeira linha deste bloco inicia o Pygame misturador. O último argumento entre parênteses é o buffer que controla a latência em que o som é reproduzido. Se você experimentar a reprodução agitado mais tarde, quando sua música toca, tente aumentar este número para 4096. As configurações como estão trabalhos com nenhum problema em um Pi 3.

Se você baixou o arquivo de música em um diretório diferente para o seu door.py programa, você precisará fornecer o caminho completo dentro dos colchetes ao definir a variável de nome.

Agora tudo o que resta a fazer é criar um laço que nos espera, quer definir o programa ativo, ou sair dele.

enquanto Verdade:E se(GPIO.entrada(13)==1):impressão("botão pressionado Parar: Sair")pygame.batedeira.música.Pare()pausaE se(GPIO.entrada(11)==1):activeState()Tempo.dormir(0,5)E se(ativo==1):watchDoor()pausaGPIO.Limpar()

Este laço enquanto espera por uma entrada a partir de qualquer um dos botões, e sai ou muda o estado de activo em conformidade. Se o estado de activo torna-se 1, então o watchDoor função que definimos anteriormente é chamado e na próxima vez que a porta se abre nossa música vai jogar. Também chamamos GPIO.cleanup () para repor nossos pinos de saída, que é geralmente uma boa prática para toda a programação no Raspberry Pi.

Isso é tudo o que precisamos fazer para obter esse projeto instalado e funcionando, aqui está o código na íntegra:

importar RPI.GPIO Como GPIOimportar pygame.batedeiraimportar Tempodef ActiveSetup():global activeactive=0impressão("Momento não está ativo")def activeState():global ativoE se ativo==1:ativo=0GPIO.saída(7,GPIO.BAIXO)impressão("Momento não está ativo")elif ativo==0:impressão ("Ativando em 10 segundos")para X dentro alcance(0,10):GPIO.saída(7,GPIO.ALTO)Tempo.dormir(0,5)GPIO.saída(7,GPIO.BAIXO)Tempo.dormir(0,5)ativo=1GPIO.saída(7,GPIO.ALTO)impressão("ativas Atualmente")outro: Retornadef watchDoor():global playingplaying = Falsoenquanto Verdade:E se ativo==1 e GPIO.entrada(15)==1 e jogando == Falso:jogando=Verdadepygame.batedeira.música.Toque()E se GPIO.entrada(13)==1:impressão("botão pressionado Parar: Sair")pygame.batedeira.música.Pare()pausaE se GPIO.entrada(11)==1:activeState()Tempo.dormir(0,5)GPIO.setmode(GPIO.BORDA)GPIO.configuração(7, GPIO.FORA,inicial=GPIO.BAIXO)GPIO.configuração(11,GPIO.DENTRO)GPIO.configuração(13,GPIO.DENTRO)GPIO.configuração(15,GPIO.DENTRO)ActiveSetup()pygame.batedeira.nisso(44100,-16,2,1024)pygame.batedeira.música.set_volume(1.0)nome = "One-eyed Maestro.mp3"pygame.batedeira.música.carga(nome)impressão("faixa carregada - "+ str(nome))enquanto Verdade:E se(GPIO.entrada(13)==1):impressão("botão pressionado Parar: Sair")pygame.batedeira.música.Pare()pausaE se(GPIO.entrada(11)==1):activeState()Tempo.dormir(0,5)E se(ativo==1):watchDoor()pausaGPIO.Limpar()

Se você rolada para baixo aqui para pegar o código completo imediatamente, tenha em mente que você ainda terá de baixar a música para o seu Pi para que ele funcione!

Agora você deve ter uma música tema casa de boas-vindas a funcionar! Junte a sua chave de palheta à sua porta, e experimentá-lo. dança embaraçoso é opcional, mas recomendado.

Este projecto abrangido o básico para muitas formas de monitoramento doméstico, segurança e automação, e espero que foi muito divertido!

Agora que você chegou até aqui, por que parar aí? Você pode adicionar mais faixas e tem o programa escolher um aleatoriamente a partir de uma lista. Você poderia adicionar um relé e ter outros objetos ser acionado na entrada. Se você tem um sistema de home música, porque não têm um tema para cada quarto?Começando com GPIO Em um Raspberry PiComeçando com GPIO Em um Raspberry PiSe você embora o Arduino foi legal, é só esperar até chegar em suas mãos um Raspberry Pi - essas coisas são surpreendentes. Bem como sendo um computador totalmente funcional, eles também têm uma ...consulte Mais informação

luzes de relé

você estará criando sua própria mensagem de boas-vindas casa pessoal? você tem sido criativo com reed em sua casa de outras maneiras? Se assim for, deixe um comentário sobre o que você está planejando ou já feito na seção de comentários abaixo!


Artigos relacionados