Como controlar aparelhos elétricos, modelos controlados por rádio, carrinhos motorizados



Nos artigos anteriores, falei sobre como ajudar as pessoas paralisadas a se comunicarem com o mundo exterior: comunicar seus desejos, escrever cartas, navegar na Internet usando apenas os olhos e um dispositivo que rastreia seu olhar (rastreador de olhos). Nesse caso, fisicamente, uma pessoa ainda permanece limitada pelo mundo do computador e da cama.

Aqui vou falar sobre as maneiras mais simples (na minha opinião) de mudar algo no mundo exterior: acender a luz ou uma guirlanda em uma árvore de Natal, controlar um veículo todo-o-terreno em um controle de rádio, fazer com que um carrinho motorizado se mova na direção certa.

Conteúdo


1. Introdução
Componentes Necessários
Conecte o Arduino a um computador
Esquema de controle da tomada
Circuito de controle do motor

1. Introdução


Além do dispositivo de rastreamento visual e do software livre, descrito aqui neste artigo, precisamos de algo que conecte o computador a objetos externos.

Apesar da venda de vários dispositivos que podem ser controlados a partir de um computador, a opção mais simples e barata para mim era usar duas partes: uma placa Arduino e uma placa de múltiplos relés.

Se você nunca encontrou o Arduino, ainda não desiste de ler, no futuro verá que, neste contexto, é bastante simples trabalhar com ele, não é à toa que existem muitos designers infantis baseados no Arduino à venda.

Ao mesmo tempo, se você não conhece a segurança elétrica e nunca fez a fiação elétrica em casa, não tente repetir os circuitos que usam a conexão às tomadas!

Tudo o que você precisa saber sobre o Arduino: este é um pequeno dispositivo que pode ser conectado à porta USB do computador, após o qual pode ligar / desligar os sinais elétricos em seus contatos de acordo com as instruções recebidas.

Os sinais são de baixa potência, portanto, para controlar algo mais poderoso (lâmpadas elétricas, por exemplo), colocamos uma unidade de relé que, em resposta ao sinal do Arduino, fecha e abre os contatos de controle de dispositivos externos. Além disso, os relés isolam os circuitos elétricos do computador Arduino + dos circuitos elétricos do dispositivo gerenciado.
Portanto, a base dos circuitos de controle para tomadas e motores elétricos, que serão descritos mais adiante, é a seguinte: duas partes conectadas por fios entre si, conectadas por um cabo USB a um computador e fios ao que queremos controlar:



No mundo real, pode ser assim:



Enviamos um comando de um computador, um dos contatos do Arduino liga / desliga o relé, que é a chave de qualquer dispositivo ou um botão separado no dispositivo.

Componentes Necessários


Nós precisaremos (entre parênteses estão os preços de 2018 em uma loja local. Quem compra na China pode economizar muito dinheiro, mas perde tempo):

1) Placa UNO Arduino com um cabo USB (é possível pós-venda, com CH340 barato em vez de caro FTDI) (450 rublos)

2) Uma placa com quatro relés operando em uma voltagem de 5 volts e capaz de controlar dispositivos com uma voltagem de 220 volts. (450 rublos). Ainda existem placas trabalhando em 12 Volts, não confunda!

3) Um monte de fios para conectar duas placas. No meu caso, eram necessários fios com um soquete de um lado e um pino do outro, pois o bloco de relés possui contatos de pinos e o Arduino possui soquetes. Observe os conectores em suas placas ao comprar fios (150 rublos).



Conecte o Arduino a um computador


Primeiro, instale o software de programação Arduino em www.arduino.cc :

Na página https://www.arduino.cc/en/Main/Software, clique em “Windows Installer”:



Clique em "Basta fazer o download":



Faça o download e execute o instalador:



Nós concordamos em tudo:









Quando o programa estiver instalado, conecte a placa Arduino e o computador com um cabo USB.

As luzes na placa do Arduino acendem e, no gerenciador de dispositivos, você verá que uma nova porta apareceu e foi atribuído um determinado número, por exemplo, COM3:



Vamos mudar seu número para COM9, pois no futuro tudo estará vinculado especificamente à COM9. Para fazer isso, clique com o botão direito do mouse, chame o menu de contexto e selecione "propriedades":



Na guia "parâmetros da porta", clique no botão "avançado":



E, finalmente, selecione "COM9" como o número da porta COM.



Feche todas as janelas abertas com o botão “OK” e remova e insira o cabo USB para verificar se o Arduino continuará se conectando através da porta COM9, se estiver inserido na mesma porta USB do computador:



Agora chame e configure o programa Arduino recentemente instalado no site:



No menu "Ferramentas", defina a placa "Arduino UNO" e a porta "COM9":



Agora tudo está pronto para coletar os esquemas e dar vida a eles.

Esquema de controle da tomada


Se você não conhece a segurança elétrica e nunca fez a instalação elétrica em casa, não tente repetir este diagrama! O circuito usa tensão com risco de vida!

Mais uma vez, controle as perguntas:

  • Você sabe como distinguir um fio com uma fase de um fio com zero em um soquete?
  • Você sabe tocar os fios e certificar-se de que não haja curto-circuito após a conexão?

Se você estiver respondendo incerta a essas perguntas, peça a uma pessoa mais experiente para montar o circuito.

Agora ao ponto.

Funciona assim:


O diagrama de conexão do soquete é assim:



Fornecemos zero diretamente às tomadas e a fase através do relé. Se você fizer o contrário, ele funcionará, mas haverá o risco de choque elétrico dos dispositivos OFF MALFUNCTIONAL. Ou seja, pegue a TV com defeito desligada e ela ficará chocada.

Se a casa tiver um aterramento de proteção, use uma tomada de aterramento.

Em seguida é o meu design de referência. Nele, cometi um erro com a cor dos fios: a cor do fio neutro ficou marrom e as fases azuis. Preste atenção nisso.

Pegamos um pedaço da placa do tamanho apropriado para caber nela (da esquerda para a direita): Arduino, bloco de relés, quatro soquetes, um suporte para pressionar o fio na placa.



Cortamos o excesso e usamos um cinzel para fazer um sulco para os fios, para que eles se encaixem livremente sob os soquetes.



Aparafusamos as placas do Arduino e o bloco de relés com parafusos, colocando arruelas de plástico.



Se as arruelas não estavam à mão, você pode cortar as cavilhas:



Prepare os fios: corte no comprimento desejado e retire-o do isolamento. É aconselhável estanhá-los com um ferro de soldar em locais de contato com soquetes e relés.



Pressione o fio na placa com um suporte para que não possa ser puxado.



Conectamos os fios e aparafusamos os soquetes. Nós chamamos a cadeia.





Conectamos a placa Arduino à unidade de relé com um feixe de fios, de acordo com o diagrama acima.



Cobrimos as placas com uma caixa de proteção de material não condutor. Isso deve ser feito aqui, pois a tensão com risco de vida é adequada para o bloco de relés! Em um caso extremo, pelo menos enrole os contatos elétricos do relé.

Usei um recipiente para produtos feitos de plástico rígido como invólucro, prendendo-o com parafusos:



Lembre-se de fazer um orifício para o cabo USB.



Conecte o dispositivo ao computador, mas não o conecte a uma tomada .

Lançamos o programa “Arduino” e copiamos este texto do programa:

//     2,3,4,5 int Relay1=2, Relay2=3, Relay3=4, Relay4=5; void setup() { pinMode(Relay1,OUTPUT); pinMode(Relay2,OUTPUT); pinMode(Relay3,OUTPUT); pinMode(Relay4,OUTPUT); Serial.begin(9600); } void loop() { delay (200); // 1.     while(Serial.available()) { switch(Serial.read()) { case '0': //    digitalWrite(Relay1,0); break; case '1': //    digitalWrite(Relay1,1); break; case '2': //    digitalWrite(Relay2,0); break; case '3': //    digitalWrite(Relay2,1); break; case '4': //    digitalWrite(Relay3,0); break; case '5': //    digitalWrite(Relay3,1); break; case '6': //    digitalWrite(Relay4,0); break; case '7': //    digitalWrite(Relay4,1); break; } // switch } // while } 

Em seguida, clique no botão de download do programa no Arduino (veja a figura abaixo). Se tudo correu sem erros, vemos a inscrição "Download concluído".



Verifique se nosso dispositivo executa comandos. Para fazer isso, chame o monitor de porta:



Agora, digitaremos o número 1 e pressionar Enter ou o botão "Enviar":



Um clique característico do relé será ouvido e o contato no primeiro soquete será conectado ao fio da fase. Verifique isso com um testador. Em seguida, disque o número 0 e o relé desconectará o contato.

Observando o texto do programa, você pode ver o que acontecerá se digitarmos outros números:

3.2 - ligue, desligue a segunda tomada

5,4 - ligue, desligue a terceira tomada

7.6 - ligue, desligue a quarta tomada

Verifique com um testador a conexão dessas tomadas. Após a verificação, você pode conectar o fio à tensão na rede e começar a ligar / desligar dispositivos reais.

Nossa próxima tarefa é ligar e desligar os aparelhos de relance. Para fazer isso, configuramos o programa bkb descrito aqui neste artigo (A ÚLTIMA VERSÃO DO PROGRAMA É NECESSÁRIA !!!) .

Suponha que queremos ligar e desligar uma lâmpada e uma guirlanda de árvore de Natal.
No programa Paint padrão, desenhamos quatro desenhos de 200x200 no formato BMP :



Também criaremos quatro arquivos em lote: c.cmd, d.cmd, e.cmd, f.cmd

Eles conterão comandos para enviar caracteres 1,0,3,2 para a porta COM9. E lembramos que eles ligam e desligam o primeiro e o segundo soquetes. É importante que não haja linhas vazias entre as duas linhas nesses arquivos!

c.cmd:

 MODE COM9: BAUD=9600 DATA=8 STOP=1 PARITY=N to=off xon=off odsr=off octs=off rts=off idsr=off dtr=off echo 1 > com9: 

d.cmd:

 MODE COM9: BAUD=9600 DATA=8 STOP=1 PARITY=N to=off xon=off odsr=off octs=off rts=off idsr=off dtr=off echo 0 > com9: 

e.cmd:

 MODE COM9: BAUD=9600 DATA=8 STOP=1 PARITY=N to=off xon=off odsr=off octs=off rts=off idsr=off dtr=off echo 3 > com9: 

f.cmd:

 MODE COM9: BAUD=9600 DATA=8 STOP=1 PARITY=N to=off xon=off odsr=off octs=off rts=off idsr=off dtr=off echo 2 > com9: 

Sobrescrevemos os arquivos .bmp e .cmd criados no diretório de grade do programa bkb .

Depois de iniciar o programa bkb no modo de tabela, uma nova quinta linha com nossas imagens será exibida:



Quando olhamos para a foto, a ação correspondente é iniciada.

ATENÇÃO! A primeira vez após o início do programa, a ação não funciona. Todos os tempos subsequentes - ele funciona. Isso se deve ao fato de que, durante a primeira inicialização da porta, o sinal na linha DTR muda, o que faz com que o Arduino seja reinicializado, que dura cerca de três segundos.

Dizem que isso pode ser resolvido com um ferro de soldar, mas não me atrevi a fazer esse trabalho de joalheria. Portanto, por enquanto, lembre-se de que na primeira vez você precisa ativar duas vezes.

Observação

Você provavelmente já entendeu que em arquivos .cmd você pode chamar qualquer programa externo. Se você tiver algum dispositivo que possa ser controlado a partir da linha de comando, você mesmo poderá executar esses comandos atribuindo as ações necessárias a qualquer figura da tabela.

Circuito de controle do motor


Meu amigo atualizou a scooter giroscópica e a substituiu pelo eixo traseiro do carrinho de bebê. O gerenciamento era realizado por controles remotos através do conselho do Arduino.



Decidimos tentar dar à criança a oportunidade de controlar o carrinho sozinha com um olhar. Para fazer isso, o modo de controle de cadeira de rodas foi adicionado ao programa bkb .



Após iniciar neste modo, as setas aparecem na tela, uma visão que faz com que o programa envie caracteres de controle para a porta COM9, que são interpretadas pelo carrinho para avançar / retroceder, virar à esquerda / direita e parar.


Enquanto o carrinho está sendo finalizado, decidi usar o mesmo programa para controle remoto do modelo de tanque de esteira. Isso também é uma coisa bastante útil. Primeiro, a criança recebe habilidades úteis para controlar o carrinho. Em segundo lugar, este é apenas um jogo emocionante.



Cada uma das trilhas do tanque é controlada por uma alavanca que pode ser movida para frente ou para trás. Ao mover a alavanca para frente, ele pressiona o botão, forçando o motor a girar para frente. Ao mover a alavanca para trás, ele pressiona o botão, o que faz o motor girar na direção oposta. Não é possível pressionar dois botões ao mesmo tempo - avançar e retroceder é impossível.
A unidade de relé foi conectada aos botões do controle remoto, conforme o diagrama abaixo. O circuito não permite ativar os botões “motor para frente” e “motor para trás” simultaneamente. Um relé liga / desliga o motor e o segundo seleciona a direção para frente ou para trás.

Encontre no painel do painel de controle onde os botões estão conectados e conecte-os, de acordo com o diagrama acima.

Observe que, ao contrário do circuito anterior, o Arduino controla o bloco de relés com os pinos 6 a 9.



Conectei o bloco de relés ao controle remoto através do conector para que o controle remoto possa ser facilmente desconectado e usado separadamente:



O programa que o Arduino precisa baixar recebe os mesmos comandos do computador que são usados ​​para controlar o carrinho motorizado:

F-forward
B-back
L-esquerda
R-direita
S-stop

O texto do programa é dado abaixo.

 //     6,7,8,9 int Relay1=6, Relay2=7, Relay3=8, Relay4=9; int heartbeat=0; //     void setup() { pinMode(Relay1,OUTPUT); pinMode(Relay2,OUTPUT); pinMode(Relay3,OUTPUT); pinMode(Relay4,OUTPUT); Serial.begin(9600); } void RCStop() { digitalWrite(Relay1,0); digitalWrite(Relay2,0); digitalWrite(Relay3,0); digitalWrite(Relay4,0); } void RCForward() { digitalWrite(Relay1,1); digitalWrite(Relay2,1); digitalWrite(Relay3,1); digitalWrite(Relay4,1); } void RCBack() { digitalWrite(Relay1,1); digitalWrite(Relay2,0); digitalWrite(Relay3,1); digitalWrite(Relay4,0); } void RCLeft() { digitalWrite(Relay1,1); digitalWrite(Relay2,0); digitalWrite(Relay3,1); digitalWrite(Relay4,1); } void RCRight() { digitalWrite(Relay1,1); digitalWrite(Relay2,1); digitalWrite(Relay3,1); digitalWrite(Relay4,0); } void loop() { // 1.     while(Serial.available()) { switch(Serial.read()) { case 'S': //  ! RCStop(); heartbeat=0; break; case 'F': //  ! RCForward(); heartbeat=0; break; case 'B': //  ! RCBack(); heartbeat=0; break; case 'L': //  ! RCLeft(); heartbeat=0; break; case 'R': //  ! RCRight(); heartbeat=0; break; } // switch } // while // 2.    //       -   delay(10); heartbeat++; if(heartbeat>30) { heartbeat=30; //    ! RCStop(); //   -   } } 

Se a conexão com o computador for interrompida (nenhum caractere chega em 0,3 segundos, o Arduino desliga os motores). Essa situação pode ser modelada fechando os olhos enquanto os controla. O Aitreker não poderá determinar a direção da visão e os sinais não serão enviados. Os motores irão parar.

Equipei o modelo do tanque com uma câmera de vídeo, que geralmente é chamada de taxa de câmbio, ou FPV (First Person View), que transmite um sinal analógico a uma frequência de cerca de 5,8 GHz. Peguei uma das câmeras mais baratas, também equipada com transmissor e antena: AKK BA-3. Custou-me 1050 rublos. A câmera com o transmissor é tão pequena que cabe nas mãos da figura Lego:



Tudo o que precisa ser feito para a câmera funcionar é conectá-la à energia (de 3,2 a 5,5 Volts). Depois, com um único botão, selecione a faixa, a frequência e a potência do transmissor.

A câmera aquece significativamente, por isso recomendo definir a potência mínima (25 miliwatts). Além disso, eu o conectei à bateria do tanque com uma voltagem de 6 volts, que excede os valores permitidos. Portanto, não sei quanto tempo isso vai durar. Eu recomendo que você use um estabilizador de tensão para alimentar a câmera.

Ao conectar a câmera, colei um elemento do construtor Lego no tanque, e os elementos restantes já estavam anexados a ele com uma conexão simples. Isso facilita a remoção e a retirada da câmera. Além disso, ao encontrar um obstáculo, a câmera pode simplesmente dobrar, o que evitará danos.



Para receber o sinal de vídeo da câmera, usei o receptor Eachine ROTG01. Ele não tomou novo por 1800 rublos. É apenas uma caixa com uma antena que se conecta à porta USB do computador e é visível como uma câmera USB. Ou seja, lançamos o aplicativo Câmera no Windows e vemos o que o receptor aceita. Mesmo no começo, você precisa manter pressionado o único botão no receptor para que ele procure o éter e encontre a frequência com que nossa câmera transmite um sinal.

Em geral, precisamos de três portas USB no computador:

- para um rastreador de TI
- para Arduino, controlando o painel de controle do tanque
- para receptor de vídeo



Iniciamos a saída da imagem da câmera, por exemplo, o programa "Câmera". Lançamos o programa bkb e selecionamos o modo de controle para o carrinho motorizado.

O que pode acontecer a seguir é mostrado no vídeo:


Pode-se ver que a velocidade do movimento, e especialmente a velocidade das curvas, é muito grande. Portanto, se você escolher um modelo controlado por rádio, escolha o mais lento. Uma escavadeira ou algo assim.

E por que não levar o "robô espião" acabado?


Caí nas mãos de um desses, HappyCow 777-325.



Fiquei encantado: ele tem tudo, o controle remoto e a transmissão de vídeo, e cavalga bem devagar. Há, no entanto, um recurso - ele é controlado apenas através de um aplicativo no Android ou iOS. Bem, resolveremos isso através do controle remoto do Android, por exemplo, usando o scrcpy .

Porém, além de deficiências corrigíveis (ângulo de visão estreito da câmera), a máquina possui uma incorrigível. O vídeo transmitido via Wi-Fi tem um atraso terrível.
Ou seja, esse robô colidiu com algo por um longo tempo e todos pressionam o acelerador, pensando que ele não atingiu um obstáculo.

Para uma criança que está aprendendo a controlar uma máquina remotamente, isso, na minha opinião, é inaceitável.

Então o robô recebe uma demissão. Embora eu emprestasse o chassi dele.

Conclusão


Desejo a todos sucesso em repetir e desenvolver as soluções técnicas descritas.

Source: https://habr.com/ru/post/pt430078/


All Articles