Pedal USB baseado em Rpi Pico

6 minute read

Pedais USB (ou qualquer outro interruptor momentâneo) que imitam a pressão de uma tecla no teclado ou combinação de teclas. Prático para usar com software de edição de vídeo para pausar/reproduzir sem afastar as mãos do teclado ou mouse, também pode ser usado por software de videoconferência para silenciar rapidamente. Não é necessário baixar firmware especial ou configurar teclas (apenas um editor de texto simples é necessário). Funciona com quase qualquer sistema operacional, até mesmo com dispositivos Android usando um adaptador USB OTG.

Circuito do pedal USB instalado em uma caixa robusta.

Componente chave: Rpi Pico.

Conceito:

A grande maioria dos pedais programáveis USB disponíveis no mercado precisam que você instale um aplicativo para configuração. Normalmente, este aplicativo só está disponível para Windows e vem traduzido de maneira precária (se é que vem traduzido). Isso é um obstáculo para usuários de Linux ou Mac, que só têm duas opções: instalar uma máquina virtual Windows ou pedir ajuda a um usuário Windows para configurar o pedal.

Aqui entra em ação o Raspberry Pi Pico, por duas grandes razões: interface USB nativa, sem necessidade de programador ou hardware adicional para download de firmware, e o mais importante: suporte ao CircuitPython. A programação pode ser feita “ao vivo”, sem necessidade de compilação e download durante a fase de depuração. Portanto, o Rpi Pico é o melhor candidato para um pedal DIY.

Outra vantagem adicional sobre os pedais USB comerciais, o próprio pedal pode ser substituído por um mais robusto, sem tocar no circuito. Outro tipo de interruptores pode ser usado, para que a operação com diferentes partes do corpo seja possível. A quantidade de interruptores a serem instalados é limitada apenas pelos pinos GPIO do Rpi Pico e pelo espaço disponível na caixa.

O circuito é construído usando o sistema de prototipagem de hardware MISISTEMITA, que fornece diferentes tipos de módulos pré-construídos que permitem construir um projeto eletrônico sem solda, mas tornando-o muito robusto e expansível. Todas as peças estão enclausuradas em uma caixa à prova de poeira e água IP65. Essa caixa confere um aspecto “industrial” ao projeto e também adiciona força mecânica para suportar abusos. As conexões elétricas externas (pedais e USB) foram equipadas com acessórios IP para fornecer uma boa vedação.

Recursos principais:

  • Desenvolvido usando CircuitPython, amigável e fácil de aprender
  • Compatível com os sistemas operacionais mais comuns
  • Não é necessário instalar aplicativos para o download inicial de firmware
  • Configuração de teclas feita em um arquivo de texto
  • Resistente a respingos e à choques
  • Pedais desmontáveis e substituíveis
  • Construído usando sistema de prototipagem de hardware
  • Alimentado por USB, sem necessidade de fonte de alimentação adicional

O hardware é bastante simples, apenas exige um Rpi Pico e interruptores conectados entre GPIO e terra. Resistores de pull-up internos utilizados. Alimentação e dados via cabo USB.

Diagrama de blocos simplificado
O que é CircuitPython?:

Na palavras da Adafruit Industres, criadora do CircuitPython:

CircuitPython é uma linguagem de programação projetada para simplificar a experimentação e o aprendizado de programação em placas de microcontroladores de baixo custo. Torna o início mais fácil do que nunca, sem downloads prévios necessários. Assim que você configurar sua placa, basta abrir qualquer editor de texto e começar a editar o código. É assim de simples.

Outras razões para usar o CircuitPython incluem:

  • Você quer começar rapidamente. Crie um arquivo, edite seu código, salve o arquivo e ele será executado imediatamente. Não há compilação, nem download nem upload necessários.
  • Você é novo em programação. O CircuitPython foi projetado pensando na educação. É fácil começar a aprender a programar e você recebe um feedback imediato da placa.
  • Atualize facilmente seu código. Como o seu código fica armazenado no disco, você pode editá-lo sempre que quiser. Além disso, você pode manter vários arquivos para fácil experimentação.
  • A console serial e o REPL. Eles permitem feedback ao vivo do seu código e programação interativa.
  • Armazenamento de arquivos. O armazenamento interno do CircuitPython é ótimo para registro de dados, reprodução de áudio e interação com arquivos.
  • Suporte sólido a hardware. Existem muitas bibliotecas e drivers para sensores, placas de expansão e outros componentes externos. É Python! O Python é a linguagem de programação em mais rápido crescimento. É ensinado em escolas e universidades. O CircuitPython é quase completamente compatível com o Python. Ele simplesmente adiciona suporte ao hardware.
Software:

A aplicação de exemplo apresentada aqui é composta por duas tarefas: inicializar o GPIO de acordo com o arquivo de configuração e, em seguida, executar um loop interminável verificando o fechamento do interruptor para enviar seu respectivo código de tecla. Uma função de descancelamento de software foi usada para evitar pressionamentos falsos de tecla. A LED integrada ao Rpi Pico acende quando qualquer interruptor configurado é fechado.

A estrutura do arquivo de configuração é muito simples. A primeira linha é dos GPIOs a serem usados, a segunda linha é do código de tecla a ser enviado e a terceira linha é do código de tecla modificadora (como SHIFT, CONTROL, ALT). Se durante a inicialização o arquivo de configuração não for encontrado, o programa assumirá alguns valores padrão. Mais GPIOs podem ser adicionados ao arquivo de configuração, permitindo que sejam plugadas 3, 4 ou mais pedais.

Montagem do circuito::

A montagem do circuito foi feita usando componentes da MISISTEMITA, como a placa de montagem removível e o placa borne de expansão para Rpi Pico.

Uma vez que o aplicativo é baixado pela primeira vez, e as conexões elétricas verificadas, a placa de montagem removível pode ser fixada na caixa sem complicações. Basta desconectar o cabo USB e os terminais com parafusos dos interruptores de depuração, fixar a placa de montagem removível na caixa e reconectar os cabos novamente.

Depuração, fiação e montagem.

A conexão USB impressora (Tipo B) foi escolhida por ser muito robusta e intuitiva. Este conector específico é projetado para montagem em painel e possui 4 pinos de metal (VCC, USB+, USB-, GND) que devem ser soldados em um cabo de extensão Micro USB para ser conectado ao Rpi Pico. Os pedais usam conectores circulares de aviação.

Conectores para o computador e pedais

Uma vez que a caixa está fechado, as atualizações de firmware podem ser feitas modificando o arquivo CircuitPython ou via ambiente interativo. Para uma reinstalação do CircuitPython ou formatação do Rpi Pico, o gabinete deve ser aberto para acessar o botão de inicialização (bootsel).

Lista de materiais.

Componente Ligação do compra Folha de dados
Parafuso auto-rostante tipo B M2.6 Compre aqui M2.6x5-6-8-12mm.pdf
2:1 Tubo termoretrátil em múltiplas cores Compre aqui 2_1_heatshrink_tube_colors.pdf
Caixa plástica à prova d’água 115x90x55 mm Compre aqui KH-F2.pdf
Raspberry Pi Pico Compre aqui pico-datasheet.pdf
USB tipo B IP68 para painel. Compre aqui USB_TYPE_B_PANEL_MOUNT_CONNECTOR.pdf
4 pin aviation connector Compre aqui CIRCULAR_AVIATION_PANEL_CONNECTOR.pdf
Interruptor elétrico de pé metálico Compre aqui METAL_MOMENTARY_ELECTRIC_FOOT_SWITCH.pdf
Cabo de impressora USB tipo A Compre aqui USB_PRINTER_CABLE.pdf
Cabo Micro USB Compre aqui MICRO_USB_CABLE.pdf

Componentes necessários para construir os módulos necessários de misistemita.

Componente Ligação do compra Folha de dados
Espaçador de Nylon de travamento reverso G228 Compre aqui G228.pdf
Borne de parafuso 3.5mm kf350 (2,3 pinos) para PCB. Compre aqui KF350.pdf
Barra De Pinos Fêmea 2.54mm Compre aqui FHA3-S1XX.pdf

Placas de circuito impressas necessárias para construir os módulos necessários do MISISTEMITA.

Placas de circuito impressas (PCB) Ligação do compra Arquivos de origem
A01 placa de montagem removível para o caixa de 158x90x60mm Compre aqui A01
C11 Placa Borne De Expansão para Rpi Pico Compre aqui C11

Software

Software Arquivos de origem
Firmware PEDAL_USB_RPI_PICO

Optional components:

Componente Consigue el tuyo! Hoja de caracteristicas
Broca Escalonada bit 3 a 20 mm Compre aqui 3_pc_set_3-20mm_drill_bit_incremental_center_punch.pdf
Broca Escalonada 10 a 45 mm Compre aqui 8_steps_10-45mm_incremental_drill_bit.pdf