segunda-feira, 20 de outubro de 2014

Sensor Infravermelho



Temos dois tipos de sensor infravermelho o ativo e o passivo. O sensor infravermelho ativo ele tem um receptor e um emissor de luz, assim ao emitir a luz no objeto e refletido para o receptor. O sensor infravermelho passivo ele possui um receptor, ele somente recebe a luz.


Sensor infravermelho ativo




Sensor Infravermelho passivo


Para o projeto o sensor infravermelho ativo e mais viável,assim  podemos utilizar sensor de proximidade que tem como função detectar obstáculos.  Possui um circuito simples caso desejemos criar o sensor. Como vemos na figura abaixo:
circuito sensor de proximidade (barreira)
Os resistores irão regular a potencia do sensor, tendo um resistor de 100 ohms para o led e um de 4k 7 Ohms no transistor. Dessa maneira o led emissor IR tera maior alcance devido sua resistencia ser menos, mas a resistência nao pode ser muito baixa, pois pode queimar o led ou o circuito.
Devido a isso foi acoplado um transistor ao circuito para fazer o controle, servindo também para desativar o circuito e economizar energia. podemos ver esse circuito expressado abaixo ligado ao Arduíno. Na figura esta contido um LDR (no lugar do TIL78) e um led vermelho (no lugar do TIL32).





Referencia:
  • http://robolivre.org/conteudo/sensor-de-infravermelho.

Melhores especificações e exemplos:
  • http://www.arduinoecia.com.br/2014/07/contador-sensor-de-proximidade-ir.html
  • http://blog.filipeflop.com/sensores/sensor-infravermelho.html
  • http://www.filipeflop.com/pd-6b910-sensor-infravermelho.html


sexta-feira, 17 de outubro de 2014

Pessoal, vale a pena ler, pois temos que saber como retroceder o motor:

Controle de motor de passo com ponte H L298N

A maioria dos projetos que eu vejo utilizando o driver motor ponte H L298N  envolve o controle de motores DC. Faz sentido pois uma das grandes vantagens desse módulo é que ele suporta correntes de até 2A por canal. 

Mas com esse módulo também é possível controlarmos motores de passo. Vamos ver como isso funciona, mostrando antes as especificações e pinagem :

Ponte H L298N Arduino

Especificações ponte H L298N


  • Tensão de Operação: 6~35v
  • Chip: ST L298N (datasheet)
  • Controle de 2 motores DC ou 1 motor de passo
  • Corrente de Operação máxima: 2A por canal ou 4A máx
  • Tensão lógica: 5v
  • Corrente lógica: 0~36mA
  • Limites de Temperatura: -20 a +135°C
  • Potência Máxima: 25W
  • Dimensões: 43 x 43 x 27mm
  • Peso: 30g
Pinagem ponte H L298N

Pinagem


  • MOTOR A e MOTOR B são os conectores utilizados para ligação de 2 motores DC ou 1 motor de passo
  • ATIVA MA e ATIVA MB - Podem ser ligados aos pinos PWM do Arduino para controle de velocidade do motor
  • ATIVA 5V e 5v - Esta placa possui um regulador de tensão integrado. Quando o módulo é alimentado por fonte externa (6 à 35v) e um jumper está colocado no conector Ativa 5v, o pino 5v possui uma SAÍDA de +5v. Quando não há jumper no pino Ativa 5v, o pino 5v se comporta comoENTRADA, podendo ser utilizado , por exemplo, os 5v do Arduino para alimentação. Portanto,tome cuidado ao utilizar o pino 5v e evite danos ao módulo.
  • 6-35v GND - Pinos alimentação externa
  • ENTRADA - Barramento com os pinos de IN1 a IN4. IN1 e IN2 controlam o Motor A, e IN3 e IN4controlam o Motor B. No caso de motores de passo, os 4 pinos são utilizados

Eu testei esse módulo com um motor de passo bipolar, retirado de uma impressora (o mesmo que eu utilizei no post Controlando motor de passo bipolar com o módulo Easydriver). Como o motor é de 12 volts, utilizei uma fonte externa para alimentação. Repare que o pino GND do Arduino deve ser ligado ao GND da fonte externa :


Circuito Arduino Uno - Ponte H L298N


Com esse motor eu vou usar a sequência mostrada na tabela abaixo, que se refere ao motor que eu tenho. A bobina 1 está ligada aos fios amarelo e cinza, e a bobina 2 aos fios marrom e verde, e provavelmente são diferentes das cores dos fios do motor que você tiver aí. De qualquer forma, basta descobrir quais são os pares das bobinas.


Motor de passo - Sequencia de ativação 4 passos


Com base na tabela, vou acionando os pinos 8, 9, 10 e 11 do Arduino com pequenos intervalos, movimentando o motor. Como estamos acionando diretamente os pinos, não vamos utilizar bibliotecas nesse programa.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
// Programa : Ponte H L298N e motor de passo
// Autor : Arduino e Cia

// Conexoes modulo - Arduino
int IN1 = 8;
int IN2 = 9;
int IN3 = 10;
int IN4 = 11;

void setup()
{
  // Define os pinos como saida
  pinMode(IN1,OUTPUT);
  pinMode(IN2,OUTPUT);
  pinMode(IN3,OUTPUT);
  pinMode(IN4,OUTPUT);
}

int tempo = 10;

void loop()
{
  // Passo 1
  digitalWrite(IN1, 1);
  digitalWrite(IN2, 0);
  digitalWrite(IN3, 0);
  digitalWrite(IN4, 1);
  delay(tempo);  

  // Passo 2
  digitalWrite(IN1, 0);
  digitalWrite(IN2, 1);
  digitalWrite(IN3, 0);
  digitalWrite(IN4, 1);
  delay(tempo);

  // Passo 3
  digitalWrite(IN1, 0);
  digitalWrite(IN2, 1);
  digitalWrite(IN3, 1);
  digitalWrite(IN4, 0);
  delay(tempo);

  // Passo 4
  digitalWrite(IN1, 1);
  digitalWrite(IN2, 0);
  digitalWrite(IN3, 1);
  digitalWrite(IN4, 0);
  delay(tempo);
}

Adapte o programa ao seu projeto, ajustando a sequência de ativação, alterando o sentido de rotação e modificando o programa para que o motor se movimente em ângulos pré-determinados.

Trabalho escrito por: http://www.arduinoecia.com.br/2014/08/ponte-h-l298n-motor-de-passo.html

Segue o link da demonstração da placa ponte H sendo utilizado no youtube:
https://www.youtube.com/watch?v=XP044wTL_to

segunda-feira, 13 de outubro de 2014

Lógica de Programação

Como será lido os sensores:

Isto varia, vi um vídeo que um sensor de luminosidade de 0 a 5 volts, interpreta em bits ate 1025, suponho que metade para cima seja 1(positivo) e metade para baixo seja 0(negativo);

Caso trabalhe com o mouse mais 2 sensores, acredito que funcionara o projeto sendo sensor da direita, sensor da esquerda  e mouse verificando se esta indo reto(aumentando Y positivo), virando a esquerda( diminuindo X negativo), virando para direita(aumentando X positivo), e tendo que retroceder(aumentando Y negativo);

Considerando os fatos acima, terá uma tabela verdade para os sensores:

Esquerda
Direita
Resultado
1
1
Acelera
1
0
Desacelera e aumenta o grau para Esquerda
0
1
Desacelera e aumenta o grau para Direita
0
0
Retrocede

Teoricamente, poderíamos começar um laço de repetição assim:

Inteiro Esquerda, Direita;
Float Aceleração;
Enquanto (motor estiver ligado){
Se (Esquerda=1, Direita=1){
Aceleração +=1;
}
Se(Esquerda=1, Direita=0){
            Aceleração = Aceleração*0.6;
            InclinaçãoEsquerda +30°;
            Aceleração +=1;
}
Se(Esquerda=0, Direita=1) ){
            Aceleração = Aceleração*0.6;
            InclinaçãoDireita +30°;
            Aceleração +=1;
}
Se(Esquerda=0, Direita=0) ){
            Aceleração = Aceleração*0.2;
            Retrocede;
}
}

No caso a Aceleração, seria com uma formula com base no motor e no tempo, considerando que o tempo seja a cada segundo, a aceleração seria aumentando a força do motor e desaceleração diminuindo, a inclinação seria com base nas rodas, nesse ponto necessito que expliquem como seria, pois não entendo.

Acredito que assim não precisaria, guardar os dados para a segunda volta, pois automaticamente ele estaria acelerando e desacelerando no próprio percurso, mas caso precise guardar, teríamos que guardar as posições de X e Y em um Array, e numa próxima rodada, resetar as posições iniciais para 0,0 no inicio e seguir:

Y Aumenta, X =  anterior ( Acelera)
Y Aumenta, X Aumenta ( Diminui Aceleração, Inclinação a Direita)
Y Aumenta, X Diminui (Diminui Aceleração, Inclinação a Esquerda)
Y Diminui ( Diminui Aceleração, retrocede).

O Acionamento dos Motores será automático com a aceleração, mas acredito que um botão que ative a energia seria o primeiro passo, para considerar que a corrida já começou.
Poderia também ter um segundo botão para ativar a segunda volta, que assim poderia pegar as coordenadas guardadas de x e y para o novo percurso.

Estes 2 links são interessantes:
O primeiro demonstra como funciona o sensor de luminosidade e como o software interpreta os sinais: 
http://engcomper.blogspot.com.br/2011/08/tutorial-sensor-de-luminosidade-com.html

Já o segundo é um trabalho pronto sobre um robô seguidor de percurso mas com uma teoria diferente:
http://vivaolinux.com.br/artigo/Robotica-com-Android-e-Arduino/?pagina=1



quarta-feira, 1 de outubro de 2014

Temas a serem discutidos.

1- Sensor Infravermelho: 
  • -Função: detectar as limitações do percurso a ser seguido.
  • -Pontos a serem explorados: 
    • Qual a melhor disposição dos sensores; 
    • Qual o tipo de sensor existente no mercado; 
    • Como fazer a leitura pela Arduino;
    • Como detectar a diferença de cores.

2 - Estrutura do protótipo:
  • - Função: percorrer  o percurso de forma ágil e segura, ou seja, deve-se manter sempre dentro da pista e da forma mais rápida possível.
  • - Pontos a serem explorados: 
    • Quantos motores usar; 
    • Estrutura mais baixa ou mais alta;
    • Quantas rodas usar(exemplo: duas rodas e um apoio);
    • Vantagens e desvantagens.

3 - Driver do motor:
  • - Função: separar o acionamento dos motores(correntes mais altas) da parte lógica do protótipo(microcontrolador-Arduino);
  • - Pontos a serem explorados: 
    • Qual a corrente suportada pelo driver(ponte h);
    • Quantos pinos do necessita para o controle dos motores; 
    • Qual a tensão suportada.

4 - Sensor de percurso:
  • - Função: guardar o primeiro caminho percorrido pelo robô para posterior acesso nas voltas seguintes.
  • - Pontos a serem explorados: 
    • Qual o tipo de dado(exemplo: mouse coordenada xy); 
    • Como armazenar os dados.

5 - Microcontrolador:
  • - Função: executar a parte lógica do dispositivo.
  • - Pontos a serem explorados; 
    • Qual a capacidade de memória necessária;
    • Quantos pinos para controle dos motores e leitura de sensores precisaremos.

6 - Lógica de Programação:
  • - Função: controlar o protótipo afim de atender os objetivos da competição.
  • - Pontos a serem explorados; 
    • Como será lido os sensores;
    • Como será o laço de repetição;
    • Como será a tomada de decisão;
    • Como será o acionamento dos motores.

segunda-feira, 29 de setembro de 2014

Modificações na estrutura.

 O kit com os motores e rodas chegaram porém veio muito desalinhado os pneus das rodas estavam presas no chassi e tive que fazer algumas adaptações. As rodas também não estão muito presas teremos que pensar em algo para fixa-las. Segue as fotos para acompanhamento. Levarei o kit na próxima aula para podermos discutir sobre o assunto.

Se alguém puder pesquisar sobre qual tipo de sensores vamos usar e postar aqui seria de grande ajuda, pois acho que deverá ser o próximo passo.


Mouse óptico como sensor

Bom dia pessoal,

Surgiu a ideia de usar o sensor do mouse óptico para guardar as coordenadas percorridas pelo robô na primeira volta. Estou fazendo alguns testes para levantar a possibilidade. Estou acompanhando algumas referências, se quiserem dar uma olhada está no final do post. Assim que fizer os teste posto o desenvolvimento pra vocês.

Abraço
Gustavo Oliveira

Referências:
http://www.martijnthe.nl/2009/07/interfacing-an-optical-mouse-sensor-to-your-arduino/

--------------------------------------------------------------------------------------------------------------

03/10/14

Conforme dito estou atualizando as informações sobre a possibilidade de usar as coordenadas lidas pelo sensor do mouse óptico no projeto. Após mais algumas pesquisas e com o mouse que achei em casa consegui obter as coordenadas. A ligação esta demonstrada na figura a seguir e o mouse usado também. No momento estou com pouco tempo então apenas postarei as figuras e a nova referência, pois precisei de uma outra biblioteca para o mouse que estou usando.


Logo mais posto as conexões com a placa Arduino e a programação.

Referências:

Gustavo Oliveira
Desenvolvimento do projeto referente a disciplina Inteligência artificial da Universidade de Uberaba do curso de Engenharia Elétrica.


1. Motores de corrente continua

Existem diferentes motores elétricos como os síncronos, de indução e os de corrente continua, sendo os dois primeiros motores di tipo alternados, que não serão abordados. Os motores de corrente continua possuem internamente três configurações: série, paralelo e composto. O motor do tipo serie, possui um torque (velocidade de giro) alto; os motores paralelo e composto possuem um torque pequeno, mas potencia maiores. No trabalho será abordado o motor paralelo, do tipo shunt, pois não necessita de grande torque.
Os motores de corrente continua, como o próprio nome diz, são acionados com uma corrente de entrada continua, sendo seu funcionamento e estrutura bastante interessantes, então, abordando-os nos tópicos a seguir.


Fonte:http://kiev.all.biz/pt/motores-elctricos-de-corrente-contnua-para-g578836

1.2. Estrutura física de um motor de corrente continua (CC) do tipo shunt

Os motores elétricos CC do tipo shunt são constituídos de duas partes para produzir potencia elétrica em mecânica. A primeira parte é o enrolamento de armadura e a outra é o enrolamento de campo.

Fonte:http://www.logismarket.ind.br/redutep-solucoes-industriais/motoreletrico

O enrolamento de campo são espiras enroladas no estator do motor, então os enrolamentos de campo se encontram na parte fixa.  O enrolamento de armadura são espiras enroladas no rotor do motor, na parte girante da maquina. Estas duas partes são fisicamente afastadas, sofrendo apenas interações eletromagnéticas.
Fonte: http://www.ebah.com.br/content/ABAAAA49cAF/motores-cc
Estas duas partes se encontram em paralelo e a corrente da fonte que alimenta os dois enrolamentos se divide em corrente de campo e em corrente de armadura, como na figura a seguir:


Fonte: http://zone.ni.com/devzone/cda/ph/p/id/54

1.3.Funcionamento motor de corrente continua (CC) do tipo shunt

As duas partes do motor devem ser alimentadas, pois o motor é de dupla excitação. Conforme explicado anteriormente em relação aos indutores, quando se alimenta com certa voltagem, gera uma corrente elétrica que passa no enrolamento de campo. As espiras do enrolamento de campo criam uma indução eletromagnética, sendo esta uma tensão induzida que cria uma força eletromagnética (F. E. M.) no enrolamento da armadura, criando uma rotação (movimento) no rotor do motor. Como existe um eixo no centro do enrolamento da armadura, este eixo também entra em rotação, criando uma velocidade angular e um torque no eixo.
A diferença entre a tensão induzida (e) e a força eletromagnética (F. E. M.) é que a tensão induzida está ligada diretamente com a velocidade do condutor e a força eletromagnética está ligada diretamente com a corrente aplica pela fonte geradora. Assim, podemos facilmente visualizar nas formulas a seguir:
 
e  = b.v.l.sen(x)

Onde: e = tensão induzida; B = fluxo eletromagnético; v = velocidade do condutor;  = angulo entre B e v.
e  = b.i.l.sen(x)

Onde: f = força eletromagnética (f.e.m); i = corrente elétrica da fonte geradora.

2. Redutores de velocidade em motores elétricos

Em certas situações, é preciso reduzir ou parar o giro no eixo motor, dependendo do mecanismo acoplado no eixo do motor, empregado em todos os tipos de maquinas hidráulicos e elétricos, como, por exemplo, em maquinas de elevadores, roda gigante, roda de água, esteira de linha de produção. Assim, existe um dispositivo que se acopla ao eixo do motor para reduzir e/ou parar a velocidade, chamando de redutor de velocidade de motores.
No momento em que diminui a velocidade (RPM), aumenta o torque, aumentando assim a força de giro na saída do redutor.
O redutor pode ser constituído com engrenagens paralelas, cônicas com ou sem cora e rosca sem-fim.

Fonte: http://www.dimarol.com.br/produtos_detalhes.php?cod_produto=16

Para dimensionar o redutor de acordo com a aplicabilidade, observam-se 4 fatores: Rendimento do redutor, relação de transmissão, definição de números de pares de engrenagens e determinação da potencia do motor.

2.1.Rendimento no redutor

O rendimento total no redutor é dado pelo rendimento no par de engrenagens e o rendimento nos mancais (rolamento).
Na pratica o rendimento de engrenagem e de rolamento é:
he = 0,97  e hm = 0,98 

O rendimento total é dado pela formula:

ht = hen . hen+1

Onde: n é o numero de pares de engrenagem.

2.2.Relação de transmissão

A relação de transmissão depende da quantidade de pares de engrenagens.

i1 = n(entrada)/n(saida)
E a redução total:

iT = i1 . i2 . i3 . ... . in



2.3. Determinação do numero de pares de engrenagens

A relação de transmissão por par de engrenagens deve ter a quantidade máxima de 6 a 8 pares.

A determinação de pares de engrenagens é dada por:

n = log i / log i.


I0 é o numero máximo de pares de engrenagens.
O valor de redução necessária deve estar entre 0,97 e 1,03.

0,97 < (redução real/redução necessária) >1,03


2.4. Determinação da potencia do motor

A potencia do motor é determinado pela formula:

NR = [(Q + Q.) x Ve] / (4500. nt)

Onde: Q = carga de elevação; Q0 = peso da talha; Ve = velocidade de elevação; ht = rendimento total.
  



3. BIBLIOGRAFIA:

A.E. Fitzgerald, C. Kingsley Jr., A. Kusko, Máquinas Elétricas, McGraw Hill, 1978.

Dutra, Adriane – Motores CC – 2010 - <http://www.ebah.com.br/content/ABAAAA49cAF/motores-cc > Acessado em 16/04/2013

Irving L. Kosow, Máquinas Elétricas e Transformadores, 14ª edição, Ed. Globo, 2000.

Site allbiz – Motores elétricos de corrente continua – 2010 - <http://kiev.all.biz/pt/motores-elctricos-de-corrente-contnua-para-g578836> Acessado em 13/04/2013

Site Dimarol rolamentos – Redutores de velocidade - 2014 <http://www.dimarol.com.br/produtos_detalhes.php?cod_produto=16> Acessado em 19/04/2013


Site Mercaluz do Brasil – Motor elétrico – 2000 - http://www.logismarket.ind.br/redutep-solucoes-industriais/motoreletrico> Acessado em 16/04/2013