Índice:

Protótipo de placa de som Arduino-Raspberry Pi: 9 etapas (com imagens)
Protótipo de placa de som Arduino-Raspberry Pi: 9 etapas (com imagens)

Vídeo: Protótipo de placa de som Arduino-Raspberry Pi: 9 etapas (com imagens)

Vídeo: Protótipo de placa de som Arduino-Raspberry Pi: 9 etapas (com imagens)
Vídeo: Programando um Raspberry Pi Pico com Arduino IDE! Exemplo com DualCore! 2024, Novembro
Anonim
Protótipo de placa de som Arduino-Raspberry Pi
Protótipo de placa de som Arduino-Raspberry Pi

O protótipo de placa de som criado com um Arduino e Raspberry Pi foi criado para ser uma maneira simples de reproduzir 4 sons ou ruídos diferentes, tendo a opção de alternar os conjuntos de som com um botão e exibir o conjunto de som atual em uma tela LCD.

* Observação: o código do projeto está 99% completo, mas não é funcional.

O Raspberry Pi controla a tela LCD 16x2 e o codificador rotativo enquanto o Arduino lê as entradas analógicas dos resistores sensíveis à força (FSRs) e envia um sinal para o Arduino para reproduzir um som. Nós dois nunca tínhamos usado um Arduino ou Pi antes desta aula, mas nosso professor nos deu todas as ferramentas e orientações necessárias para codificar e construir este projeto facilmente. TinkerCad, uma ferramenta de modelagem 3D online gratuita da AutoDesk, foi usada para modelar nosso projeto.

A parte mais difícil do projeto foi encontrar uma maneira de fazer o Arduino e o Raspberry Pi se comunicarem com comunicação serial. Originalmente, queríamos usar o Pi apenas em todo o projeto, mas precisávamos do Arduino para ler o sinal analógico dos FSRs. Conseguimos facilmente enviar linhas de palavras ou números do Arduino e exibi-los no Pi, mas o problema surgiu quando tentamos ler esses valores em Python e implementá-los em instruções de condição para processá-los.

Habilidades requeridas

  • Compreensão simples de C / C ++ para codificação Arduino
  • Compreensão simples da codificação Python para Raspberry Pi
  • Conhecimento sobre como uma placa de ensaio é conectada
  • Habilidades básicas de modelagem 3D
  • O desejo de aprender e expandir a programação, a fiação e a construção de algo bem legal

Lista de Peças

1 x Raspberry Pi 3

1 x Elegoo Uno OU Arduino Uno

1 x 830 prancha de ensaio

1 x placa de breakout GPIO (RSP-GPIO)

1 x cabo de fita para placa de fuga

4 x resistores sensíveis a pequenas forças

1 x tela LCD básica de 16x2 caracteres

1 x módulo codificador rotativo

24 x fios macho para fêmea

10 x fios macho para macho

4 x 10k resistores

1 x potenciômetro de 10k

1 x joelheira de espuma de jardim (loja do dólar)

Etapa 1: Teste o FSR com o Arduino

Teste o FSR com o Arduino
Teste o FSR com o Arduino

Decidimos primeiro experimentar o FSR com o Arduino. Os FSRs enviam um sinal analógico e, portanto, tivemos que usar um Arduino, pois o Pi não recebe analógico sem outros circuitos. Queríamos testar os limites para ter certeza de que as impressoras estavam com uma boa pressão. Descobrimos que era cerca de 150 de um total de 1000. A plotadora serial no IDE do Arduino foi muito útil para essa etapa.

Etapa 2: Desenhe os Planos para o Conselho

Desenhe os planos para o conselho
Desenhe os planos para o conselho
Desenhe os planos para o conselho
Desenhe os planos para o conselho

Em seguida, elaboramos e medimos os planos para o conselho. Queríamos ter 4 pads para tocar sons, um ponto para uma tela LCD para exibir o grupo de som atual e um codificador giratório para alterar o grupo de som.

Etapa 3: modelar a placa no TinkerCad

Modelar a placa no TinkerCad
Modelar a placa no TinkerCad
Modelar a placa no TinkerCad
Modelar a placa no TinkerCad
Modelar a placa no TinkerCad
Modelar a placa no TinkerCad

Depois que os planos foram elaborados, modelamos a placa em um site de modelagem 3D online gratuito chamado TinkerCad da Autodesk. Nós o recomendamos fortemente para aqueles de vocês que não querem gastar muito dinheiro em grandes softwares de modelagem 3D, pois é fácil de usar, baseado em nuvem e tem suporte completo para impressão 3D.

Depois de modelado, tivemos que dividi-lo em 2 partes para caber na impressora. A impressão foi muito boa, mas meu erro foi não dimensionar o slot da tela LCD muito bem (não cometa esse erro!) Carregamos os arquivos. STL do lado esquerdo e direito se você quiser verificá-los.

Etapa 4: teste a tela LCD

Teste a tela LCD
Teste a tela LCD

Já tínhamos usado a tela do Arduino e era muito fácil de configurar. No entanto, era mais difícil executá-lo com o Pi. Com várias horas de solução de problemas no Google e mexendo nos fios, finalmente conseguimos fazer funcionar. Por favor, veja o código Python final no final para ver como funcionou. Usamos alguns sites para nos ajudar a conectá-lo e escrever o código. Confira:

learn.adafruit.com/drive-a-16x2-lcd-direct…

www.raspberrypi-spy.co.uk/2012/07/16x2-lcd…

Etapa 5: teste o codificador rotativo com a tela LCD

Teste o codificador rotativo com a tela LCD
Teste o codificador rotativo com a tela LCD

Queríamos então ver se poderíamos fazer a tela LCD mudar seu texto quando o codificador fosse girado. O codificador não tem uma quantidade definida de ângulos ou rotações, então, no código, contamos quantas vezes ele foi girado no sentido horário ou anti-horário e o fizemos contar até 3. Se ultrapassasse, voltaria a 0, e se fosse abaixo de 0, voltaria a subir para 3. Esses números podem ser definidos para quantos conjuntos de som você quiser, mas acabamos testando apenas um conjunto de som. Certifique-se de que seus sons estão na mesma pasta / local onde o código Python principal está sendo executado.

Etapa 6: montar a placa

Monte o Conselho
Monte o Conselho
Monte o Conselho
Monte o Conselho
Monte o Conselho
Monte o Conselho

Os FSRs deslizam sob os quatro slots diferentes. Nós os centramos e os prendemos com fita adesiva. Recomendamos fita adesiva ou talvez até cola, porque a fita adesiva simples era péssima para colar no material impresso em 3D. Depois de uma rápida visita à loja do dólar, encontramos uma joelheira de jardim macia, mas fofa, que podíamos cortar em quatro pedaços para usar como botões do tabuleiro. Nós os cortamos para que eles pudessem caber confortavelmente em seus lugares para que pudessem ficar no lugar, mas também ser facilmente removidos se necessário.

Etapa 7: conecte tudo

Conecte tudo
Conecte tudo
Conecte tudo
Conecte tudo

Depois de montar a placa e colocar os FSRs, o codificador e a tela no lugar, conectamos tudo. Você poderia usar 2 placas de ensaio, mas conseguimos encaixar tudo em uma. A imagem parece uma bagunça, mas fizemos um diagrama esquemático em um programa gratuito chamado Fritzing. Observe que você pode alterar os pinos aos quais deseja anexar tudo, mas o diagrama corresponde ao nosso código.

Etapa 8: Conclua a codificação de TUDO

Essa foi a parte complicada. Conforme declarado na introdução, não foi possível concluir esta parte. O código está 99% todo lá, mas a única parte que não funcionou foi a comunicação serial do Arduino para o Pi. Poderíamos enviar as informações facilmente quando conectamos o Arduino ao Pi com o cabo USB, mas o Pi não pôde fazer nada, exceto exibir essas informações na tela. Queríamos saber qual botão foi pressionado e fazer com que ele tocasse um som específico, mas os dados que vinham pela comunicação não puderam ser colocados em uma declaração de condição para testar qual botão foi pressionado.

Por favor, veja o código em anexo, as notas foram comentadas no código Python para o Pi. O código do Arduino deve ser 100%.

Etapa 9: Concluir

Concluir
Concluir

No geral, este projeto foi uma experiência de aprendizado ENORME para nós dois e esperamos que este artigo possa dar a futuros alunos, professores ou tinkerers alguma inspiração para seu próprio projeto e guiá-los aprendendo com nossos erros. Grite para nosso professor de robótica incrível que ajudou imensamente durante nosso tempo em aula e nos deu a oportunidade de nos divertir muito e aprender muito em uma aula de COMP sênior! Obrigado por ler:)

Recomendado: