Índice:
2025 Autor: John Day | [email protected]. Última modificação: 2025-01-13 06:58
O Makey Makey é um pequeno dispositivo excelente que emula um teclado USB e permite fazer teclas de qualquer coisa condutiva (folha de alumínio, bananas, massinha, etc.), que pode então ser usado como um controlador para jogos e projetos educacionais. O Makey Makey tem duas desvantagens: (1) custo e (2) a necessidade de uma conexão de aterramento.
Este projeto é uma alternativa barata usando uma placa STM32F1 de $ 2 e sensor capacitivo. Possui apenas 10 entradas, ao contrário dos 12 do Makey Makey, mas tem a vantagem de que, além de emular um teclado, pode emular um controlador de gamepad USB (joystick digital).
Partes:
- Placa "comprimido preto" STM32F103c8 (US $ 1,90 no Aliexpress; mais informações aqui)
- placa de ensaio (menos de US $ 1 no Aliexpress) e fios de jumper; ou apenas um monte de conectores duplos macho-fêmea (US $ 0,70 no Aliexpress por um pacote de 40)
- clipes de papel, clipes de crocodilo, etc.
Ferramentas:
- computador
- Adaptador UART para USB para programação inicial da placa (um Arduino Uno ou Mega fará o trabalho, assim como uma unidade CH340 barata)
- ferro de solda para soldar cabeçotes à placa (você também pode usar um monte de clipes de teste sem soldar, mas às vezes eles caem)
O software é um esboço de exemplo incluído na minha biblioteca ADCTouchSensor que permite a detecção capacitiva com um único pino na placa STM32F1 por sensor (é baseado na biblioteca do martin2250 para AVR).
Aviso: Em tempo seco ou onde a estática for um problema (por exemplo, em um tapete), não toque nos conectores de metal expostos para não causar danos eletrostáticos à placa STM32F1. Espero que a resistência de batatas, bananas, massinha, etc. ajude a proteger o tabuleiro, mas se você usar papel alumínio, poderá ter problemas. Por outro lado, a mesa é de apenas $ 1,90.
Ideias de atividades educacionais:
- Experimente descobrir quais itens são condutores e podem ser usados como superfícies de controle. (Por exemplo, grafite x giz de cera; massinha x vela.)
- Escreva jogos de raspar que usem um controlador feito em casa.
- Modifique o código do Arduino que alimenta o projeto para permitir clique / movimento do mouse, outras teclas, mais de quatro direções de joystick, etc.
Etapa 1: Instale o Bootloader na placa de desenvolvimento
Solde os dois cabeçotes de três pinos no meio do sistema de desenvolvimento Black Pill (B0- / center / B0 +; B1- / center / B1 +) e os cabeçotes longos ao longo das bordas (se você estiver com pressa ou quiser para evitar pinos desnecessários que podem confundir as crianças, você só precisa de pinos para A0-A10 e G).
Você precisa de uma ponte UART para USB compatível com dispositivos 3.3v. Você pode pedir um ch340 da Aliexpress por $ 0,66, mas eu tinha uma cópia do Arduino Mega por aí e havia um truque legal que encontrei online. Se em um Arduino você encurtar o pino de reinicialização ao aterramento com um fio curto, ele se tornará uma ponte UART para USB - nenhum esboço necessário. O único truque é que a rotulagem RX e TX torna-se invertida: o pino "RX" do Arduino transmite e seu pino "TX" recebe. O Arduino funciona a 5v e o Black Pill a 3,3v, mas os pinos PA9 e PA10 no stm32f103 são tolerantes a 5V de acordo, então isso não deve ser um problema.
Nos conectores que você soldou, coloque um jumper de B0 + para o centro e de B1- para o centro.
Faça as seguintes conexões:
- PA9 para UART bridge RX ("TX" se você estiver usando o truque do Arduino)
- PA10 para ponte UART TX ("RX" se você estiver usando o truque do Arduino)
- G para aterramento da ponte UART
Você pode usar uma placa de ensaio ou jumpers macho-fêmea ou, se quiser fazer isso antes de soldar os cabeçalhos, pode usar clipes de teste (como na foto).
Baixe o binário do bootloader. Você deseja generic_boot20_pb12.bin.
No Windows, instale o Flash Loader Demonstrator do ST. No Linux (e talvez no OS X e até no Windows se você preferir ferramentas de linha de comando), use este script python, mas minhas instruções serão para o Windows. Conecte sua ponte UART ao computador.
Ligue o Black Pill por meio de sua porta USB (se você usar o computador, ele provavelmente reclamará de um dispositivo USB não reconhecido; ignore isso). Inicie o Flash Loader Demonstrator. Escolha a porta COM para sua ponte UART. Escolha "Remover proteção", se disponível. Escolha uma versão flash de 64kb em vez de 128kb. E carregue o binário do bootloader.
Desligue tudo e mova o jumper de B0 + / centro para B0- / centro. Agora você tem um carregador de boot que pode ser usado com o IDE do Arduino.
Etapa 2: configurar o IDE do Arduino
Presumo que você tenha o IDE do Arduino mais recente instalado.
Em ferramentas | Placas | Boards Manager, instale o suporte para o Arduino Zero (basta colocar Zero na pesquisa, clicar na entrada encontrada e, em seguida, Instalar). Sim, você não está trabalhando com um Zero, mas isso instalará o compilador gcc correto.
Em seguida, baixe o núcleo stm32duino. No Windows, recomendo baixar o arquivo zip, pois quando fiz o check-out dos arquivos (reconhecidamente, com svn), tive alguns problemas de permissão com arquivos no diretório de ferramentas do Windows que precisavam de conserto. Coloque o branch em Arduino / Hardware / Arduino_STM32 (assim você terá pastas como Arduino / Hardware / Arduino_STM32 / STM32F1, etc.) No Windows, instale os drivers executando drivers / win / install_drivers.bat.
Etapa 3: Instalar CapacitiveController Sketch
No IDE Arduino, escolha Sketch | Incluir Biblioteca | Gerenciar bibliotecas. Procure por "ADCTouchSensor" e instale a versão 0.0.6 ou mais recente. Repita e procure por "USBHID" e instale minha biblioteca USBHID_stm32f1.
Escolha o arquivo | Exemplo | ADCTouchSensor | CapacitiveController.
Certifique-se de ter as seguintes configurações em Ferramentas:
- Placa: STM32F103C8 genérico
- Método de upload: STM32duino Bootloader
Conecte a placa no computador e clique no botão "upload" da seta para a direita. Você pode precisar reiniciar a placa (pressione o botão de reinicialização nela) assim que a mensagem de upload for exibida no console.
Etapa 4: conexões e botões
Com o dispositivo desconectado, passe os fios dos pinos STM32F1 para as superfícies de controle. Conecte-se com pinças de crocodilo, clipes de papel ou apenas colando jumpers em objetos. Você pode usar um breadboard ou jumpers feminino para masculino. Para o Tetris no computador, usamos o modo teclado e as teclas de seta; para Pac Man no tablet, usamos um cabo USB OTG e modo de joystick.
O esboço CapacitiveController calibra os sensores capacitivos quando é ligado. Certifique-se de que, ao ligá-lo, você não está tocando nas superfícies de controle, fios ou pinos. E se você modificar qualquer superfície de controle, você precisa recalibrar desconectando e reconectando ou pressionando o botão branco de reset na placa.
A maioria dos aplicativos aqui funcionará, assim como muitos outros. Você também pode ver quantos projetos do Makey Makey você pode adaptar.
Algumas boas superfícies de controle:
- frutas e vegetais
- massa de modelar
- folha de alumínio (exceto em condições de alta estática)
- botões / conexões pesadamente desenhados a lápis no papel (as linhas de conexão não devem ser muito longas - na foto, o botão mais abaixo não funcionou)
- experimente muitos mais! (você também pode tentar ajustar a linha 25 in if (sensores -> read ()> 25) no código-fonte para algumas superfícies)
Conexões de modo de teclado:
- Deixe A10 desconectado
- A0: espaço
- A1: para cima
- A2: esquerda
- A3: baixo
- A4: certo
- A5: w
- A6: a
- A7: s
- B0: d
- B1: f
Conexões do modo Gamepad / Joystick:
- Conecte A10 ao solo (G) para definir o modo joystick
- A0: botão 1
- A1: para cima
- A2: esquerda
- A3: baixo
- A4: certo
- A5-A7, B0, B1: botões 2-6
Dica:
Se estiver usando jumpers homem-para-mulher, você pode fazer a conexão de aterramento do modo de joystick A10 encaixando as extremidades masculinas de dois jumpers uma na outra, formando assim um jumper feminino-para-mulher.