Scare trick-or-treaters com uma caixa de ressonância de movimento ativado diy

É essa época do ano outra vez quando ele é considerado socialmente aceitável para aterrorizar as crianças e dar-lhes doces. Oh alegria. Estou aqui para fazer o seu trabalho mais fácil, mostrando-lhe como fazer um soundbox simples sensor de movimento Raspberry Pi Dia das Bruxas. Aqui está uma demonstração:

Aqui está o que você precisa

Provavelmente a única parte que você já não tem é o sensor de movimento, uma parte pequena e barata que você deve ser capaz de encontrar em seu Microcenter local ou Maplin.

  • Raspberry Pi (qualquer modelo vai fazer).
  • sensor de movimento (~ $ 3).
  • Fios de montagem.
  • alto-falante com fio (a maioria dos alto-falantes Bluetooth terá a opção de usar line-in).
  • Cabo estéreo de 3,5mm, macho-macho.

Assim que estiver pronto, você pode querer adicionar um pouco de efeitos de iluminação sincronizados também, mas neste tutorial vamos ser apenas cobrindo a sons pouco assustador!Como sincronizar Início luzes e música para o Dia das BruxasComo sincronizar Início luzes e música para o Dia das BruxasSe você está hospedando uma festa de Halloween ou quer mais legal casa assombrada no bairro, fazendo suas luzes piscam a tempo de música e efeitos sonoros é essencial.consulte Mais informação

Video: An Easy DIY Coffin for Trick or Treaters Candy

Configurando

Estamos usando Raspbian Jessie Lite e Python 2.7, mas qualquer distro Linux que roda em seu Pi deve ser fino. Deixei-o no nome de host padrão “raspberrypi.local”, então começar por fazer o login remotamente usando SSH (abrir uma janela Terminal se você estiver em Mac. Aqui está como fazer o mesmo no Windows) - ou se você optou por usar um Raspbian completa com GUI desktop, fique à vontade para pular para a actualização.

Video: 10 TOP Halloween Pranks ON Trick-or-Treaters!!

ssh [email protected](entrar framboesa como a senha)sudo apt-get atualizarsudo apt-get instalar pitão-pipsudo pip instalar gpiozero

Isso instala uma biblioteca simples para trabalhar com os pinos GPIO em Python com muitos tipos de sensores e botões embutidos. Fio-se o seu sensor com o pino de sinal no GPIO4, o VCC ligado a 5V, eo GND conectado ao GND. Isso pode variar de acordo com o seu modelo exato, então confirmar com um diagrama de pinagem.

Raspberry Pi Diagrama GPIO
Crédito de imagem: raspberrypi.org

Utilmente, a minha caso do Pi 2 de Pimoroni tem um diagrama de pinagem gravado a laser directamente sobre ele.

Rotulado Caso Raspberry Pi

Agora vamos fazer o nosso script de detecção de movimento.

nano motion.py

Cole em:

a partir de gpiozero importar MotionSensorpir = Sensor de movimento(4)enquanto Verdade:E se pir.motion_detected:impressão("Movimento detectado!")outro:impressão ("nenhum movimento")

Pressione CTRL-X, em seguida, Y para salvar e sair, em seguida, executar com:

motion.py python

Você deverá ver a mensagem “nenhum movimento” repetido na tela até que você acenar com a mão na frente do sensor, quando ele vai permanecer no “movimento detectado!”

O movimento detectado no terminal de

Se a mensagem não muda em nada, você com fio-lo errado.

Se você estiver interessado em aprender mais sobre esta biblioteca GPIOZero simples, dê uma olhada neste cheatsheet fantástico.

jogando Som

Conecte-se-lhe colunas portáteis e garantir que ele é alimentado se ele precisa ser. Usaremos o pygame biblioteca para reproduzir sons, então vá em frente e instalá-lo:

sudo apt-get instalar pitão-pygame

Em primeiro lugar, precisamos de um arquivo de som para jogar. Se você está fazendo isso de dentro do ambiente desktop, então vá em frente e baixar um WAV ou OGG arquivo de algum lugar (eu achei uma boa selecção de livre Halloween soa aqui), e colocá-lo em seu diretório home. Eu sugiro downsampling primeira e convertendo a um pequeno formato OGG qualquer maneira.

Se você está se conectando remotamente e usando apenas a linha de comando, nós temos um pouco mais de dificuldade com alguns sites, já que o wget comando pode não pegar o arquivo real. Em vez disso, pode baixá-lo localmente ao nosso ambiente de trabalho e usar o scp comando (Secure Copy) para copiar a linha de comando. Você pode aprender mais sobre scp aqui, mas por agora, abrir uma nova aba Terminal e digite:

scp thunder.ogg [email protected]:

Renomeie thunder.ogg conforme o caso, mas não se esqueça que Final : (O comando será concluída sem ele, mas ele não vai fazer o que quer que ele faça). Por padrão, isso irá transferir o arquivo para o diretório home do usuário Pi.

Video: SCARING TRICK OR TREATERS PRANK!!

Agora vamos modificar o script para reproduzir um som. Comece por importar alguns novos módulos:

importar pygame.batedeiraa partir de pygame.batedeira importar Som

Em seguida, logo após as declarações de importação existentes, vamos repetir o mesmo som mais e mais para fins de teste. Deixe o resto do seu código de detecção de movimento, como é para agora - ele simplesmente não vai funcionar, uma vez que vai ser preso neste loop som-playing para sempre.

Video: HOW TO AVOID TRICK-OR-TREATERS | BratKnee

pygame.nisso()pygame.batedeira.nisso()#load um arquivo de som, no diretório home do usuário Pi (sem MP3)trovão = pygame.batedeira.Som("/home/pi/thunder.ogg")enquanto Verdade:trovão.Toque()dormir(10)trovão.Pare()


Note que quando Inicialmente eu tentei este processo, o som se recusou a jogar e apenas clicado em seu lugar. O tamanho do arquivo ou bit-rate foi o culpado: era 24-bit e mais de 5 MB para um segundo clipe 15. Scaling que até 16 bits usando o conversor I link acima fez tudo funcionar bem, e o tamanho foi reduzido para apenas 260KB!

Se você notar um chiado desagradável de seus alto-falantes quando seu aplicativo Python está funcionando, mas não de outra forma, digite:

sudo nano /boot/config.txt

E adicionar esta linha no final:

disable_audio_dither=1

Reiniciar para que as alterações entrem em vigor. Ou não se incomode, uma vez que tipo de soou como chuva para mim de qualquer maneira.

Finalmente, vamos modificar o ciclo de movimento de verificação principal para reproduzir o som quando é detectado movimento. Vamos usar um atraso de 15 segundos para que todo o ciclo pode ser jogado, e agir como um amortecedor de spam para quando há muito movimento non-stop.

enquanto Verdade:E se pir.motion_detected:impressão("Movimento detectado!")trovão.Toque()# Garantir a reprodução foi totalmente concluída antes de retomar a detecção de movimento, impede "spam" de somdormir(15)trovão.Pare()outro:impressão ("nenhum movimento")

iniciar automaticamente

Nós provavelmente vai querer configurá-lo em algum lugar com uma bateria e sem conexão à Internet, para que o script precisa ser executado na reinicialização, sem ter que abrir uma linha de comando. Para fazer isso, vamos usar o método mais simples possível: o crontab. Tipo:Como agendar tarefas no Linux com Cron e CrontabComo agendar tarefas no Linux com Cron e CrontabA capacidade de automatizar tarefas é uma dessas tecnologias futuristas que já está aqui. Cada usuário Linux podem se beneficiar de sistema de agendamento e tarefas do usuário, graças ao cron, um serviço de fundo easy-to-use.consulte Mais informação

sudo crontab -e

Se esta é a primeira vez que executar este comando, ele vai começar por perguntar-lhe o que editor a ser usado. Eu escolhi a opção 2, para o nano. Vai arrancar no seu editor escolhido, então adicione a seguinte linha:

@reboot python /home/pi/motion.py &

Isso significa que seu roteiro motion.py será executado em cada inicialização, e fazê-lo em silêncio (de modo que qualquer saída do script será ignorado). Reinicie para testá-lo.

Se nada desempenha apesar de haver movimento, ou você ouvir um pouco clique, você não pode ter usado o caminho completo do arquivo, ou o arquivo pode precisar converter para um tamanho de arquivo menor taxa de bits e menor.

Adicionar Mais Sounds

Jogando o mesmo efeito mais e mais é um pouco chato, por isso vamos adicionar um pouco de aleatoriedade a ele. Baixar mais alguns sons do Dia das Bruxas, lembrando-se de escalá-los para um tamanho razoável e bitrate, em seguida, enviá-los para o seu Pi usando scp como antes. Eu adicionei três tipos diferentes de grito.

Modificar o código para que em vez de definir um único pygame.mixer.Sound variável, na verdade estamos criando um ordem de sons. Este é simples com Python, apenas cercar uma lista separada por vírgulas de-os com colchetes, assim:

sons = [pygame.batedeira.Som("/home/pi/thunder.ogg"),pygame.batedeira.Som("/home/pi/scary_scream.ogg"),pygame.batedeira.Som("/home/pi/girl_scream.ogg"),pygame.batedeira.Som("/home/pi/psycho_scream.ogg")]

Em seguida, importar a biblioteca aleatória em seu arquivo, com:

importar aleatória

Agora modifique o loop motion-sensing principal da seguinte forma:

enquanto Verdade:E se pir.motion_detected:impressão("Movimento detectado!")tocar música = aleatória.escolha(sons)tocar música.Toque()# Garantir a reprodução foi totalmente concluída antes de retomar a detecção de movimento, impede "spam" de somdormir(15)tocar música.Pare()outro:impressão ("nenhum movimento")

Observe a pequena alteração: em vez de jogar a variável som único, estamos usando o random.choice função para escolher um som aleatório da nossa gama sons, em seguida, jogando isso.

Aqui está o código completo no caso de você está tendo problemas:

importar pygamea partir de pygame.batedeira importar Soma partir de gpiozero importar Sensor de movimentoa partir de Tempo importar dormirimportar randompygame.nisso()pygame.batedeira.nisso()#load um arquivo de som, mesmo diretório roteiro (sem MP3)sons = [pygame.batedeira.Som("/home/pi/thunder.ogg"),pygame.batedeira.Som("/home/pi/scary_scream.ogg"),pygame.batedeira.Som("/home/pi/girl_scream.ogg"),pygame.batedeira.Som("/home/pi/psycho_scream.ogg")]pir = Sensor de movimento(4)enquanto Verdade:E se pir.motion_detected:impressão("Movimento detectado!")tocar música = aleatória.escolha(sons)tocar música.Toque()# Garantir a reprodução foi totalmente concluída antes de retomar a detecção de movimento, impede "spam" de somdormir(15)tocar música.Pare()outro:impressão ("nenhum movimento")

Com apenas quatro amostras, há uma alta probabilidade de repetição de cada vez, mas você pode adicionar mais amostras se isso é irritante.

É isso aí! Escondê-lo nos arbustos com algum olhos monstro LED assustadores, e você deve ser capaz de salvar-se alguns doces como todas as crianças fugir gritando antes mesmo de chegar à porta. Ou ir se esconder no armário porque uma mãe irritada está fora de sangue depois de ter feito pouco Johnny grito.Como Fazer Dia das Bruxas assustador olhos brilhantes para menos de US $ 5Como Fazer Dia das Bruxas assustador olhos brilhantes para menos de US $ 5Quer apimentar suas decorações do Dia das Bruxas este ano? Saiba como fazer olhos LED para menos de US $ 5 no projeto eletrônico de iniciação.consulte Mais informação

Disclaimer: MakeUseOf não é responsável por quaisquer danos pessoais que possam resultar de seu uso deste projecto!

você estará fazendo este soundbox ativada por movimento, a fim de assustar os trick-or-treaters locais? você configurou quaisquer efeitos assustadores com um Raspberry Pi este Dia das Bruxas? Por favor, deixe-nos saber sobre isso nos comentários abaixo!


Artigos relacionados