Mostrar mensagens com a etiqueta Motores dc. Mostrar todas as mensagens
Mostrar mensagens com a etiqueta Motores dc. Mostrar todas as mensagens

quinta-feira, 16 de fevereiro de 2017

Robôs low cost#1 - uma experiência

Há já algum tempo atrás, comprei um pequeno carrinho por menos de 20€ no Aliexpress e tinha desde então curiosidade em experimentá-lo, mas outras tarefas mais prementes se impunham e o tempo foi passando...até que este ano, em ambiente de clube, o Jorge e a Alexandra, depois de explorar a programação de arduinos em linguagem gráfica, decidiram assumir eles a missão de por o carrinho a funcionar.

O equipamento de maior relevo que podemos encontrar neste kit é: o chassis; 2 rodas; 2 motores DC; caixa de bateria para 4 pilhas; interruptor bipolar simples; 1 sensor shield V5.0 para arduino; 1 arduino UNO R3; 1 servo motor SG90; 1 suporte FPV; 1 driver L298N; 1 sensor de ultra sons HC_SR04. Todo o kit está ilustrado nas imagens seguintes:

O kit completo
 Em termos de literatura de apoio, o kit inclui as instruções de montagem do chassis...e é tudo!

Por isso, a parte fácil é mesmo chegar até aqui:

Chassis do carrinho já montado


Daqui em diante...nada encaixa com nada!!!

A primeira missão foi estudar o driver, montá-lo, ligá-lo ao arduino e programar o arduino de forma a colocar o carrinho a descrever um movimento pré-estabelecido.

O driver L298N, que faz o circuito de potência para controlar os motores, vem inserido numa placa para arduino muito fácil de compreender. É possível encontrar bons tutoriais sobre o funcionamento desta placa. Em termos de pinagem, a imagem seguinte é clara:

http://blog.filipeflop.com/motores-e-servos/motor-dc-arduino-ponte-h-l298n.html

Os conetores Motor A e Motor B devem ser ligados a cada um dos motores do carrinho.
Os pinos AtivaMA e Ativa MB são os pinos responsáveis pelo controlo PWM dos motores A e B, isto é, que permitirão a variação da sua velocidade. Trataremos dessa questão em post posterior. Por defeito, nestes pinos estão dois jumpers que manterão estes pinos a 5V, mantendo a velocidade constante.
O driver disponibiliza um regulador de tensão integrado. Caso estejamos a alimentar o driver no pino 6-35V, e se mantivermos o jumper no pino Ativa 5V, o regulador de tensão disponibiliza uma tensão regulada de 5V no pino 5V. Esta informação é importante porque, neste caso, o pino 5V deve ser usado como um saída (para alimentar outro dispositivo, por exemplo), mas nunca deve ser ligado à saída 5V do arduino, o que o poderia danificar. Se estivermos a controlar motores de 4-5,5V, há que retirar o jumper e ligar um alimentação de 5V ao pino 5V.
O barramento IN1, IN2, IN3 e IN4 é responsável pela rotação de cada um dos motores (IN1 e IN2 - motor A; IN3 e IN4 - motorB).

A forma como o motor A é controlado, que é idêntica à forma de controlo do motor B, é a seguinte:

http://blog.filipeflop.com/motores-e-servos/motor-dc-arduino-ponte-h-l298n.html
Portanto...estamos prontos para a primeira experiência...antes de mais, houve que arrumar o material no chassis. Começámos por usar para o driver dos motores uma bateria reciclada de um carrinho de brincar velho e uma pilha de 9V para o arduino, mas a bateria revelou ter uma duração muito pequena, pelo que, nesta fase, alimentámos o driver com a pilha de 9V e mantivemos o arduino ligado por cabo ao computador. As entradas IN1, IN2, IN3 e IN4 foram ligadas, respetivamente, às saídas digitais 4, 5, 6 e 7 do arduino, tal como ilustrado no esquema seguinte:

As placas e a pilha de 9V foram fixadas com fita adesiva de dupla face. Eis o aspeto final:


Deixamos o programa que fizemos para testar o que aprendemos sobre o driver dos motores...

...um pequeno vídeo com o carrinho em funcionamento...


...e ainda um pequeno registo fotográfico do trabalho realizado pelo grupo:



Nota final: como se pode observar no vídeo, a velocidade do carrinho é sempre constante. O controlo da velocidade através do driver dos motores será explorado em post posterior.

segunda-feira, 7 de março de 2016

Motores dc, arduino e S4A - estudo orientado

Como já tinha referido em post anterior, começam a formar-se grupos de diferentes níveis no Espaço Programação e Eletrónica. As razões são várias, desde a apetência natural para programar e montar circuitos, até à assiduidade ou às preferências quanto ao tipo de trabalho (há quem goste mesmo de programar, há quem prefira aplicar pequenos circuitos e programas a aplicações concretas, como em pequenos projetos).

Assim, tenho de momento três níveis diferentes neste espaço semanal e deixei de poder "dar aulas" para o grupo todo, o que me obrigou a afinar estratégias.

Para o grupo que demonstra mais facilidade em termos de montagem de circuitos e de programação, criei um documento de estudo orientado para exploração do funcionamento de motores dc em circuitos com arduino com o objetivo de, autonomamente, os alunos atingirem as metas por mim propostas.

Não publiquei este documento antes de o testar com os alunos, para avaliar a sua resposta aos exercícios delineados. 

Começo por referir que os alunos que realizaram os exercícios tinham já assistido a 5 sessões de 90 minutos, no âmbito do Espaço Programação e Eletónica, e demonstram facilidade em interpretar esquemas e montar circuitos. Nunca tinham, no entanto, analisado datasheets nem usado (ou estudado) díodos, transístores nem circuitos integrados. Apesar disso, não revelaram dificuldades em cumprir os exercícios propostos (o que fizeram em 90min+45min), tendo precisado da minha ajuda apenas na ligação do L293, por não terem compreendido o curto-circuito entre os pinos 4 e 5.

Esta estratégia de montar e aplicar componentes eletrónicos em circuitos antes de os estudar em ambiente teórico é nova para mim, sendo que considero que resulta para algum tipo de alunos. Pode ser, no entanto, uma forma muito prática de tentar compensar as lacunas com que os nossos alunos saem do ensino secundário regular (em Portugal, o ensino regular é pobre em Eletricidade e praticamente nulo em Eletrónica). Neste contexto, a aposta em material de estudo orientado pode ser uma mais-valia, permitindo que num mesmo espaço os alunos evoluam ao seu ritmo e de acordo com as suas apetências.



quinta-feira, 26 de março de 2015

Controlando motores dc com Scratch

Esta também não foi uma aula testada com alunos, mas uma exploração do controlo de motores dc através de Scratch.

O motor dc (ou motor de corrente contínua) é  muito vulgar em equipamentos como impressoras, carrinhos de brinquedo a pilhas e outros brinquedos baratos, pelo que é extremamente fácil ter acesso a um.

O controlo deste motores é muito simples: ligam-se os cabos do motor a uma fonte de alimentação contínua (uma pilha, por exemplo) apropriada, de acordo com as caraterísticas do motor usado, e o motor começa a girar. Trocando a polarização da fonte, o motor girará em sentido contrário.

O controlo deste tipo de motor com arduino não é, no entanto, tão simples como seria de supor porque, por um lado, este motor exige mais corrente que aquela que o arduino consegue debitar e, por outro, os motores geram correntes de indução que podem danificar o circuito caso este não esteja devidamente preparado.

Para que a corrente elétrica seja suficiente, a ligação do motor deve ser feita recorrendo a uma fonte de alimentação externa (eu usei uma pilha vulgar de 9V).

E onde entra o controlo do motor? Através de um pequeno componente chamado FET (Field Effect Transistor), da família dos transístores e cuja função é permitir a passagem de corrente entre dois pinos quando um terceiro é ativado. O funcionamento de um transístor pode ser comparado ao de uma torneira de monocomando que, ao ser aberta, deixa passar a água sempre num único sentido. 

O controlo do FET foi feito usando uma das saídas analógicas disponíveis no S4A, o pino 9.

Na verdade, o arduino não tem saídas analógicas na verdadeira acepção da palavra. A saída é sempre 0V ou 5V. As saídas ditas analógicas são de facto saídas PWM, que enviam sinais pulsados de acordo com o valor analógico indicado (entre 0 e 255). A variação da frequência dos impulsos vai resultar em valores eficazes de tensão variáveis. No caso concreto, o motor só será alimentado pela pilha de 9V de acordo com os impulsos gerados no pino de controlo do FET.

Confusos? Experimentando tudo vai parecer mais simples. O díodo colocado aos extremos do motor impede a circulação em sentido contrário de correntes geradas pelo motor (o díodo, que é um componente polarizado, só deixa passar a corrente num sentido).

Para fazer a inversão do motor, usei o L293, um circuito integrado preparado já para controlar motores dc e que nos descomplica bastante a vida (a outra hipótese era conceber um circuito algo complicado com vários díodos).

Ainda tentei fazer um pequeno elevador com o circuito que contruí, mas este tipo de motores, ao contrário dos servo motores, não tem a capacidade de manter a posição quando desliga, pelo que se tornou inviável para essa situação. 


Deixo então a minha proposta de trabalho para controlo de motores dc recorrendo ao Scratch...



...o circuito esquemático do último exercício proposto...




...e um pequeno vídeo com o circuito de comando do motor dc em funcionamento (o gacho está um pouco ridículo, reconheço, mas o objetivo foi tornar possível a perceção da inversão de sentido):