Costumo fazer robôs ou brinquedos baseados em Arduino ou placas semelhantes. Como opção para controlar esses dispositivos, eu uso o alcance do infravermelho. Em termos de receptor, não há problemas, é fácil encontrar e conectar, mas no caso do controle remoto, é mais difícil.
E aqui estão duas opções:
1. use o controle remoto da TV ou de outro equipamento disponível. Depois, há muito barulho, problemas e leva muito tempo. Primeiro, você precisa ler os códigos dos botões no controle remoto e depois gravá-los no firmware. Outro problema é que o controle remoto envia um sinal quando os botões são pressionados uma vez, não o repete (se o dispositivo se move ou está longe, o receptor pode não lê-lo por vez) e não envia nada quando o botão é solto, o que é muito inconveniente quando é necessário controlar máquinas em movimento. Bem, eu não quero controlar a TV e a máquina ao mesmo tempo.
2. faça seu próprio controle remoto.
Este é o segundo caminho a seguir. Para o básico, usei o joystick antigo do console da Sega. Há tudo o que você precisa lá. Quatro setas (convenientes para controlar carros) e 8 botões.
Então, o que precisamos:
- joystick da Sega
- Arduino Pro Mini 3.3v 8MHz
- USB-TTL
- 2 baterias Ni-Mn 1.2v 1000mA
- LED IR
- LED vermelho
- LED azul
- resistor 2x75Om, 2x5Om, 1x2Om
fio
- conector PLSx5 "mãe"
- cola quente
- fios
- compartimento da bateria 4xAAA
- fios multicoloridos
- ferro de soldar, solda, resina
- braços esticados
Etapa 1 Solda
Desmontamos nosso joystick, removemos a placa e soldamos todos os fios. Em seguida, você precisa pegar uma faca de escritório ou apenas uma faca afiada e cortar todas as faixas do controlador no quadro para que não interfira conosco e não entre em conflito com o Arduino. Perto de cada botão, há um pequeno círculo com uma faixa vazia. Depois de levar um ferro de soldar, é necessário soldar cada caneca ao longo do fio, bem como encontrar um fio comum para soldar e um fio para ele (comum, preto). Enrolar os fios de volta deve ser algo como isto:
No verso, em uma fita dupla face, colamos nosso Arduino. Uma pequena digressão sobre a escolha do Arduino. Em princípio, você pode usar qualquer placa, o principal é que ela se encaixe dentro do joystick.
Solde nossos motivos de acordo com o seguinte esquema
Joystick Arduino
Seta para cima 2
Seta para baixo 4
Seta esquerda 5
Seta direita 6
Botão A 8
Botão B 10
Botão C 7
Botão X 12
Botão Y 11
Botão Z 9
Botão Iniciar 14 (A0)
Botão Redefinir RST
LED IR + 3
GND genérico
LED azul
através de um resistor bruto de 75 ohm
LED vermelho
através do resistor 75 Om + 5 conectores
Deixe-me explicar: eu soldei todos os botões, pois era conveniente por arame, se misturado, você só precisa consertá-lo na costura. O contato positivo principal do IR deve ser soldado a 3! Lembre-se de soldar menos IR para GND. O botão Redefinir é necessário para reiniciar o Arduino com firmware.
Etapa 2 modo de caso
É necessário pensar em uma conclusão de fios da conexão de USB-TTL. Eu usei o conector em 5 PLS "mãe". Ele fez um slot de tamanho adequado no lado direito do joystick, inseriu o conector e encheu tudo com cola quente. + 5v a partir deste conector por enquanto, basta emitir o fio. TX para RX Arduino, RX para TX, respectivamente. + 3.3v a 3.3 Arduino, GND a GND Arduino. Ele fez um slot de tamanho adequado no lado direito do joystick.
Para indicar a inclusão do controle remoto e a carga da bateria, é necessário fazer dois furos com um diâmetro de 5 mm na frente do joystick e inserir os LEDs lá. E também faça um furo no interruptor.
Por dentro, encha os diodos e os interruptores com cola quente.
Etapa 3 nutrição
Portanto, existem duas opções para nutrição. Eu fiz os dois, mas você pode escolher o apropriado e usar um.
A primeira bateria alimentada. Para fazer isso, solde duas baterias NI-MN em série, para as vantagens do comutador, solde os seguintes 5Om + 5Om + 2Om + Diodo em série e +5 do nosso conector, isto é para carregar a partir de USB-TTL. Enrolamos o pico resultante do diodo e dos resistores com fita isolante e colocamos o canto superior direito. Paralelamente, solde nosso LED vermelho através de um resistor de 75 Om para indicar uma carga. A segunda posição do comutador é o fio de trabalho que vai para o RAW Arduino e novamente em paralelo, desta vez um LED azul, através de um resistor de 75Om. Menos diretamente para o GND Arduino.
As baterias estão localizadas na parte superior do joystick e devem ser coladas
A seguir estão as manipulações com o Arduino. O fato é que a voltagem de 2,4 volts é pequena e, para iniciar nosso controlador, você precisa alterar os bits do fusível do Arduino. Instruções detalhadas sobre o firmware do carregador de inicialização e dos bits de fusível estão além do escopo deste tópico, e a Internet está cheia de esquemas e opções. O principal resultado aqui é desativar o controle de energia do Arduino. Aqui está o diagrama de pinagem do ICSP Arduino Pro Mini.
A segunda opção é mais simples e não requer manipulações adicionais com o Arduino. Solde ao interruptor o fio positivo do nosso compartimento de bateria, menos o GND Arduino. Retiramos os fios fazendo um pequeno corte no estojo e colamos o compartimento na tampa traseira do joystick em uma fita dupla face. Fica assim:
Não parece muito bonito, mas é mais rápido e tem menos problemas.
Etapa 4 Montagem
Então, temos a seguinte construção:
Ao montar, é necessário colocar os fios para que não sejam mordidos pelas partes internas do joystick. Não tive sucesso imediatamente, mas depois de cinco tentativas, tudo vai dar certo. Aqui está o meu conjunto de controle remoto.
Etapa 5 firmware
Nosso controle remoto é piscado através de um conector conectado ao USB-TTL, o carregamento também é feito através dele. Não se esqueça de pressionar Reset quando derramar o arranhão.
Ao escrever o firmware, escrevi um conjunto aleatório de números (códigos) para cada comando (botão). Eu uso esses códigos ao escrever o firmware de um dispositivo gerenciado. Os códigos são enviados três vezes, o que elimina a possibilidade de ignorar um comando. Quando você solta o botão, também é enviado um código usado para parar o dispositivo gerenciado.