robotica

controlando a velocidade do robô com PWM

Bom até agora a gente só conseguia fazer o robô andar para Frente ou para Atrás (tem tudo explicadinho neste post aqui) . Mas quando se trata de robótica móvel é interessante que o robô consiga realizar vários movimentos: andar para frente, girar para a direita, girar para esquerda e andar para trás.

Mas como a gente pode conseguir isso? Hum, vamos a um pouco de teoria, o nosso robô é composto por 4 rodas e o controle é feito ou controlando as rodas da direita ou controlando as rodas da esquerda, poderíamos facilmente substituir (para estudo) as 4 rodas por 2 rodas localizadas no mesmo eixo que o centro de massa do robô (sim, tem tudo isso quando a gente vai estudar mais a fundo Robótica Móvel).

Quando se tem duas rodas, para que o robô gire é preciso aplicar velocidades diferentes a cada uma delas e isso, no nosso caso, é feito utilizando-se o conceito dos pinos PWM, ou seja, modulação por pulso. Em outras palavras a velocidade do robô vai depender do valor que vamos “escrever” nos pinos PWM. Vamos aos testes? Eu estou utilizando o Ardublock mas você pode fazer com a linguagem que quiser!!!

Bom do mesmo jeito que é preciso uma combinação de valores setados nos pinos de controle de motor na ponte H (você pode ver as combinações e o comportamento aqui), precisamos fazer ao utilizar os pinos PWM. Como dá para ver na imagem a seguir, temos os pinos 9 e 6 controlando o motor A que no meu caso são as rodas da direita e os pinos 3 e 5 controlando o motor B que são as rodas da esquerda. O eixo direito e esquerdo estão girando na mesma direção e sentido, ou seja, robozinho andando para frente!!!!

andarFrentePWM

Até agora nada muito diferente do que vimos ao utilizar os pinos digitais, o que muda neste caso é que podemos variar a velocidade mudando o valor escrito no pino, no caso da figura foi escrito o valor 90, teste outros valores 🙂

E para girar para a direita e para a esquerda? Bom nestes casos, precisamos fazer com que as rodas da direita girem em um sentido e da esquerda em outro sentido, vamos testar com a mesma velocidade? Fica assim o código

girarProprioEixo

Se você testar esse código vai perceber que o robô gira ao redor do próprio eixo e isso acontece pois a força que aplicamos nas rodas da direita e da esquerda tem o mesmo valor mas sentidos diferentes!!! Vamos variar a velocidade aplicada às rodas da direita ou da esquerda, de tal forma que o valor escrito nos pinos PWM sejam diferentes, olha como fica o código.

girarDireita

Pronto, agora o robô não gira ao redor do próprio eixo,ele faz um giro de um determinado valor em graus e o quanto é esse valor vai depender de vários fatores: tamanho do robô, distribuição de massa do robô, espaço entre as rodas e etc.

Lembrando que essa configuração de pinos, ou seja, o que é direita e esquerda, quais as rodas e pinos correspondem ao Motor A e B são do robô que estamos usando nessa série de tutoriais, lembre-se de adaptar para o seu robô.

Uma dica legal para a programação no ArduBlock é que é possível criar etiquetas para um trecho de código, ou seja, sub-rotinas.

sbrotinas

Elas ficam na aba Controle, a primeira é utilizada para programar, você vai encaixando dentro dela as instruções que deseja. Já a segunda é usada para colocar a sub-rotina dentro do laço principal do programa em Arduíno (o “do sempre” que sempre aparece nos nossos códigos). Com duplo clique é possível mudar o nome da sub-rotina. Olha só como fica o uso.

codigoComSubrotina

Pronto agora já dá para fazer o nosso pequeno amigo realizar algumas rotas, dá pra gente colocar nele uma caneta e criar diversas rotas com o código e ver o resultado em uma cartolina. Dá para saber a distância percorrida ao aplicarmos uma determinada velocidade, qual o ângulo de giro ao aplicarmos uma determinada diferença entre o eixo da direita e da esquerda, enfim, já dá para aplicar esse modelo de robô e o que a gente aprendeu de programação em várias atividades!!! Espero que tenham gostado!!

Aproveitando o post e a sua paciência 🙂 , vota na #JornadadeTchellita nesse projeto do #BeDream, para a gente ir para a próxima etapa é preciso estar entre os 20 mais votados!!!  Prometo que é rapidinho e que a gente vai compartilhar tudo dessa nossa Jornada. É só clicar aqui  !!! Beijos e até a próxima!!!

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s