Você está na página 1de 13

Prática - Montagem e lógica do robôcar

Nome: Data:
Turma:

Princípios de montagem do robôcar

OBS: Negrito significa o dobro da atenção no tópico!

1. Reconhecendo Componentes e fazendo suas conexões

Primeiramente é de suma importância compreender como ligar e desligar componentes


eletrônicos, bem como entender como enviar e receber informações através de sensores ou
atuadores. Primeiramente precisamos dividir o que iremos ligar em duas categorias.

 Atuadores - Motores, LED’s.


 Sensores - Refletância, LDR, Ultrassônico.

A ligação dos atuadores é primordial, afinal é eles que irão receber os comandos
enviados via código pelo arduino para executar ações que necessitamos, como virar o robô
para esquerda, seguir em frente, entre outros.
O primeiro atuador a ser ligado é o motor de corrente contínua, ele que irá receber
comandos e controlar os movimentos de nosso robôcar. O controle do motor se faz através do
uso de uma ponte H, dispositivo já visto que é capaz de controlar o sentido e velocidade de
rotação do motor.
Vale ressaltar que o motor não possui polaridade de conexão, ao inverter seus fios,
você apenas inverterá o sentido de rotação do motor, o mesmo pode ser feito através de
programação.

a) MOTOR - ATUADOR

Circuito de energia
A própria ponte H receberá através de seus pinos de energia como representado na
figura 1 abaixo (Vcc), a energia externa responsável por alimentar o motor, essa energia é
proveniente de uma fonte de corrente contínua ou uma bateria externa.
Figura 1 - Ponte H

A saídas OUT1 e OUT2 controlam o motor A, enquanto OUT3 e OUT4 controlam o


motor B.
Um último detalhe sobre a ligação da energia dos motores é a respeito de curto-
circuitar 2 pinos mostrados na figura 1 chamados regulador v_logic, eles são responsáveis por
permitir a passagem de energia para a ponte H vinda do arduino ou de fonte externa, para
fonte externa, mantenha o componente que junta os dois pinos na mesma posição de
origem , caso contrário a ponte H não irá ligar para fonte externa, o qual é nosso objetivo.
Para finalizar o circuito de energia, conecta-se por último, após a montagem do robô a
fonte de energia nos pinos da ponte indicados como Vcc e Gnd na ponte H.

Circuito de controle

O circuito de controle é feito através das entradas indicadas na figura 2 abaixo e


também dos pinos ENA e ENB. Ambos os pinos citados por último, devem ser curto-
circuitados, uma vez que eles servem para ditar a velocidade do motor via programação, mas
isso pode feito usando as portas PWM, não fazendo a necessidade do uso dessas portas da
ponte H.
Os pinos de entrada são usados para enviar as ordem ditas em código para a ponte H
efetuar suas operações, todos os pinos devem ser conectados em portas PWM, que são portas
que podem funcionar como digitais ou analógica.
Dessa forma, dada a montagem completa, a conexão dos motores na ponte H é
demonstrada na figura 2 abaixo.

Figura 2 - Ligação do motor em ponte H

De acordo com a ligação do motor na ponte, existirá uma seguinte lógica quanto aos
comandos enviados e suas respostas ao motor. A tabela a seguir mostra bem essa lógica. Aqui
enviamos entradas digitais, sendo um (1) representante digital igual ao valor máximo de
tensão(maior velocidade) e zero (0) um valor nulo, na qual não há entrega de tensão.
OBS: Para que o motor funcione, é preciso haver diferença entre a entrada INx e INx’,
ou seja, ambos devem ser diferentes digitalmente ou analogicamente (PWM) para que o
motor gire.
Tabela 1 - Lógica de acionamento dos motores

Motor X INx INx’ Comentário


Sentido Direto 1 0 Alimentação direta
Troca de polaridade via
Sentido Inverso 0 1
código
O motor não gira(mesma
Freio 0 0
DDP)
O motor não gira(mesma
Freio 1 1
DDP)
b) JOYSTICK - SENSOR

Uma vez já tendo ligado os motores, é importante o uso de sensores para receber
informações externas e converter em informações para os motores. Nosso sensor é analógico
e será o joystick. A imagem abaixo mostra os pinos desse nosso componente.

Figura 3 - Pinagem Joystick

O Vcc e o GND são os pinos de alimentação do joystick, lembrando que a


alimentação é no pino de 5v do arduino nos pinos de energia. X e Y são as direções do
joystick que serão especificadas na programação seu funcionamento e captação de movimento,
enquanto o pino KEY é para o botão de pressionar do Joystick.
A figura 4 nos mostra a conexão do joystick no arduino, para os pinos X e Y, são
conectadas analógicas principalmente pela variação dos valores, enquanto o pino KEY é
conectado no pino digital, por somente assumir valores zero(0) ou um (1).
Figura 4 - Ligação do joystick no arduino

O circuito completo se dar da seguinte forma como exemplo de montagem:


Figura 5 - Circuito completo

Uma vez o sistema elétrico montado, é necessário fixá-lo bem a carcaça do carrinho,
para garantir a integridade da placa e principalmente não danificar outros componentes. Use
meios para amarrar bem os componentes na carcaça. Seja organizado na fiação para não se
perder.
Motores conectados, joystick conectado corretamente e carcaça bem acoplada junto
aos componentes, agora chegou o momento da programação do nosso robôcar.

2. Programação

a) Definindo as portas usadas no projeto

É uma boa prática no início do programa dar nome as portas que estão sendo utilizadas
no projeto. Logo, como mostra a Figura 6, foram associados nomes as entradas positivas e
negativas dos motores assim como a cada um dos eixos do analógico (joystick).
Figura 6 - Associando nomes as entradas

As portas representadas apenas por números são as portas digitais e as portas


representadas com um “A” antes do número são as portas analógicas. Veja a Figura 7.
Figura 7 - Pinagem do Arduino Uno

b) Assinando as funções

Na linguagem C (usada para programar o Arduino), devemos “assinar” as funções


antes de passar para o código principal. Assinar uma função é apenas colocar seu tipo,
nome e parâmetros de entrada como mostra a Figura 8.

Figura 8 - Assinando as funções

Note que os parâmetros passados para todas as funções são os pinos relacionados as
entradas positivas e negativas dos motores. O último parâmetro, chamado “d” é uma variável
de delay que será explicada mais à frente.

c) Configurando o funcionamento das portas


Nomeadas as portas agora devemos definir se elas vão enviar um comando (OUTPUT)
ou receber um comando (INPUT) como mostrado na Figura 9.

Figura 9 - Configurando as portas

d) Entendendo o funcionamento do analógico

O analógico funciona em dois eixos X e Y, como mostra a Figura 10, permitindo


controlar a direção do carro nos quatro sentidos.

Figura 10 - Analógico visto de cima

Ao serem conectados nas portas analógicas, cada eixo do Arduino será lido um valor
de 0 a 1023 como mostra a figura 11.
Figura 11 - Valores do analógico de acordo com a posição

e) Entendendo o algoritmo

Nesse projeto queremos que o carro vá para frente quando o analógico for colocado
para frente, permaneça parado quando o analógico estiver parado na posição do meio, dê a ré
quando o analógico for colocado para trás, assim como fazer as curvas para esquerda ou
direita de acordo com a posição do analógico no sentido horizontal.
Como se pôde notar, os eixos X e Y do analógico foram conectados as portas
analógicas, isso faz com que o menor dos movimentos cause ruído na leitura dos dados
fazendo o carro funcionar de maneira inesperada. Para solucionar esse problema
trabalharemos com intervalos de valores como mostra a Figura 12.
Figura 12 - Intervalos de valores para o movimento do analógico

A área pintada em azul representa o que será chamado de zona morta, o intervalo de
valores em que o analógico será considerado como parado no centro e fará com o que o carro
permaneça parado.
A área pintada em vermelho representa no eixo X, os valores para os quais o carro vai
para frente, e no eixo Y, os valores para os quais o carro vai para direita.
A área pintada em laranja representa no eixo X, os valores para os quais o carro vai
para trás, e no eixo Y, os valores para os quais o carro vai para esquerda.
Entendido os intervalos passamos ao programa principal.

Figura 13 - Loop

As variáveis valor_x e valor_y recebem os valores lidos dos eixos X e Y e seus valores
são testados para ver em quais intervalos eles se encaixam para assim chamar as funções com
seu valor de delay.
f) Entendendo as funções

Logo após a função loop iniciamos o corpo das funções, que é programar o que elas
vão fazer. As figuras 13 mostra a função frente. As funções frente, trás, esquerda e direita
funcionam da mesma forma, então usaremos a função frente para entender o algoritmo das
funções.

Figura 14 - Função frente

Ao entrar na função a variável v_read vai receber o valor lido do eixo. Nesse projeto
não queremos que os motores do carro sejam ligados com velocidade máxima pois o controle
ficaria muito impreciso, logo pensando na forma como um carro da vida real funciona,
devemos adicionar uma aceleração ao movimento, isso é feito no while dentro da função.
Para isso adicionamos a variável auxiliar “c”, que irá funcionar como uma
porcentagem indo de 0% a 100% da velocidade total do motor e esse valor será atualizado
pela variável “d” passada por parâmetro. Quanto maior o valor de “d” mais rápido o carro
chegará a velocidade máxima.
No while, uma das condições do loop é que o valor lido eixo esteja dentro do intervalo
de valores preestabelecidos e o outro é que ele não tenha chegado a velocidade máxima, isso
fará com que o valor da velocidade seja aumentado com valores “d” até que o máximo seja
atingido.
Quando o programa sai do loop do while o valor de “d” volta a 0 para ser
reaproveitado em outra função.
Como mostra a Figura 15, a função trás funciona da mesma forma só que com a
polaridade dos motores invertida, fazendo com que o carro dê ré.
Figura 15 - Função trás

As funções esquerda e direita funcionam da mesma forma, mas acelerando uma das
rodas com apenas a metade da velocidade, fazendo com que o carro faça a curva.

Figura 16 - Função direita

Figura 17 - Função esquerda

Como mostra a Figura 18, a função travar funciona de um jeito simples, ao ligar
simultaneamente os dois polos do motor ele fica travado sem girar nem para a esquerda nem
para a direita.
Figura 18 - Função travar
REFERÊNCIAS

NERY, Gustavo. Guia Definitivo de uso da Ponte H L298N. Blog ELETROGATE, 2022.
Disponível em: <https://blog.eletrogate.com/guia-definitivo-de-uso-da-ponte-h-l298n/>.
Acesso em: 25, julho de 2022.

DC motor controlled by Joystick using Arduino & L298N Motor driver - Wired
Connection. King studio, 2019. Disponível em:
<http://kingstudio1993.blogspot.com/2019/12/dc-motor-controlled-by-joystick-
using_31.html>. Acesso em: 25, julho de 2022.

Arduino: controle de joystick. Solectro. Disponível em:


<https://solectroshop.com/pt/content/23-arduino-controle-de-joystick>. Acesso em: 25, julho
de 2022.

Joystick Module. Components 101, 2018. Disponível em:


<https://components101.com/modules/joystick-module>. Acesso em: 25, julho de 2022.

Você também pode gostar