Escolar Documentos
Profissional Documentos
Cultura Documentos
2011
UNIVERSIDADE ESTADUAL DO SUDOESTE DA BAHIA - UESB
DEPARTAMENTO DE CINCIAS EXATAS
2011
2
Aos meus pais, Yvone e Wilde,
incansveis incentivadores da minha
formao profissional, exemplo de
luta e determinao
Dedico!
3
AGRADECIMENTOS
4
LISTA DE TABELAS
5
LISTA DE FIGURAS
Placa me de um PC...........................................................
Figura 1 -
Figura 2 - Microcontrolador..................................................................
6
Figura 22 - Conexo da matriz de sensores e dos motores na placa
Arduino................................................................................
Figura 23 - Rob.....................................................................................
7
SUMRIO
RESUMO 10
1- OBJETIVOS 11
1.2 - JUSTIFICATIVA 11
2 - FUNDAMENTAO TERICA 12
2.2 MICROCONTROLADORES 14
2.2.1 - ARDUINO 15
2.5 PWM
3 DESENVOLVIMENTO PRTICO
3.1 ESTRUTURA
8
3.1.6 MDULO CONTROLADOR
3.2 O ROB
3.3 O AMBIENTE
3.2 SOFTWARE
4 CONCLUSO
5 REFERNCIAS BIBLIOGRFICAS
9
RESUMO
Cada vez mais os robs esto fazendo parte do cotidiano das pessoas,
seja em pequenos dispositivos eletromecnicos, seja em tarefas industriais
funcionando 24 horas por dia continuamente sem sentir cansao, stress ou
outras limitaes dos seres humanas. O custo para a instalao de
mecanismos robotizados tornou-se bem mais acessvel possibilitando a
insero de robs na educao, no meio empresarial e at na vida domstica.
Entretanto, na realidade, no h nenhum rob capaz de funcionar
perfeitamente e ainda no cometer erros.
10
OBJETIVO GERAL
OBJETIVOS ESPECFICOS
JUSTIFICATIVA
11
INTRODUO
12
microcomputadores vem oferecendo. Grandes centros de tecnologia se
ocupam incansavelmente da criao de novas tecnologias, criando robs
capazes de lidar com tomadas de deciso cada vez mais complexas.
MICROCONTROLADORES
13
motivo, os microcontroladores se tornaram bem mais utilizados para projetos
de sistemas embarcados.
Figura 1. Placa me de um PC
Figura 2. Microcontrolador
PLATAFORMA ARDUINO
14
fsica, oferecidos no mercado, se apresentavam, desenvolveram um novo
projeto, com plataforma de software e hardware mais simples e com um nvel
menor de exigncia de conhecimentos de engenharia da computao. Este
projeto obteve sucesso no mbito acadmico, atraindo a ateno do
engenheiro espanhol, David Cuartielles detentor de grande experincia em
microcontroladores, que se interessou pelo desenvolvimento da plataforma, em
carter comercial (ARDUINO, 2010).
15
Figura 3. Placa Arduino
16
permitam ao software fazer interface como os dispositivos externos como:
atuadores e sensores. A linguagem C oferece todas essas ferramentas, uma
vez que possibilita o acesso a dispositivos de hardware. Sua execuo
eficiente e no sobrecarrega o usurio com muitas restries de linguagem. A
plataforma Arduino aproveita todas as funcionalidades desta linguagem e ainda
acrescenta uma dezena de funes e mtodos para facilitar a programao de
dispositivos fsicos.
17
vendidos com a caixa de reduo j instalada, como o caso do adquirido para
este projeto.
SISTEMA DE CONTROLE
18
Tipos de sistemas de controle
19
Os sistemas analgicos ou digitais, dizem respeito forma matemtica
como as variveis so tratadas, internamente ao sistema, bem como aos
componentes deste. Num sistema analgico, por exemplo, o controle feito por
um circuito composto por componentes eltricos e eletrnicos que tratam sinais
eltricos proporcionais grandeza e demais variveis do sistema. Num sistema
digital, o controle feito por um programa, auxiliado por conversores do tipo
analgico-digital e digital-analgico, que permitem transformar variaes
fsicas, por natureza analgicas, em sinais compreensveis pelo programa e
seu resultado, por natureza digital, em sinais novamente compatveis com as
grandezas fsicas, ou seja, as grandezas e variveis externas ao sistema so
analgicas e internamente so tratadas de forma digital, atravs dos
conversores. A tecnologia digital mais atual e traz algumas vantagens, pois,
qualquer alterao no sistema pode ser feita apenas mudando um programa,
dispensando a necessidade de mudanas em componentes e configuraes
fsicas, bem como as demais vantagens de sistemas microprocessados.
AOES DE CONTROLE
Controle liga-desliga:
20
Controle proporcional - P
Controle Integral - I
Controle derivativo - D
21
esta pode ser entendida como a taxa de variao do erro em relao ao tempo.
Se o erro cresce rapidamente, sua sada ser um valor grande; se o erro
cresce lentamente, sua sada apresentar um valor menor. Este resultado
indica a tendncia de variao da grandeza a ser controlada. Tem a
caracterstica de responder rapidamente a qualquer variao da grandeza em
relao ao Set Point.
22
Modulao por Largura de Pulso (PWM)
FOTOSENSOR
23
juno, porm, associado ao efeito transistor aparece o efeito fotoeltrico. Em
geral, possui apenas dois terminais acessveis, o coletor e o emissor, sendo a
base includa apenas para eventual polarizao ou controle eltrico.
24
DESENVOLVIMENTO PRTICO
ESTRUTURA FSICA
25
A placa inferior (Figura 10) abriga os microcontroladores, a bateria, os
dois motores, a roda passiva e a matriz de sensores, todos fixos por meio de
parafusos e porcas.
MDULO DE SENSOR
26
Figura 11: Matriz de sensores de reflexo QTR-8RC
Especificaes
27
Corrente: 100 mA
Formato de sada: digital I / O compatveis
Mnima distncia de deteco: 0,125 "(3 mm)
Mxima recomendada distncia de deteco: 0,375 "(9,5 mm)
Peso sem pinos cabealho: 3,09 g
MDULO DE DESLOCAMENTO
28
Tabela 1. Especificao dos motores ML-30:1
ML-30
DESCRIO
12V
Peso 205.8g
29
Figura 14: Rodas e hub
Uma roda passiva (Figura 16) da marca TAMIYA foi colocada na parte
dianteira do rob funcionando como uma terceira roda. Essa roda passiva
possui uma estrutura plstica com uma esfera de metal em seu interior
proporcionando ao rob uma reao rpida aos movimentos gerados pelos
motores e um timo deslizamento sobre a superfcie.
30
Figura 16: Roda passiva
MODULO DE POTNCIA
31
Figura 17: Sabertooh 2x5
O Sabertooth 2x5 possui dois canais para a conexo dos fios de cada motor
DC (M1A e M1B para o primeiro motor; M2A e M2B para o segundo motor),
duas entradas S1 e S2 usadas para controlar os motores (conectadas s
sadas PWM do microcontrolador) e um conector (positivo e negativo) para a
alimentao do driver por meio de uma bateria externa de voltagem igual a 12
volts (Figura 18).
32
Foi necessria a utilizao de dois resistores em cada entrada S1 e S2 para
estabilizar o fluxo do sinal PWM entre o microcontrolador e o controlador dos
motores.
Especificaes:
Peso: 19g
Tenso de entrada: 6V a 18V,6-12 clulas de NiMH ou NiCd,2s-4s LiPo,
6V ou 12V chumbo-cido (no de chumbo 18 + V!)
5A contnuos por canal, o pico de 10A
Unidade sncrona regenerativa
Proteo trmica e de sobrecarga
Tamanho: 45 x 40 x 13 mm
MDULO DE ENERGIA
33
Especificaes:
MODULO CONTROLADOR
34
Figura 21 : Microcontrolador Arduino Duemilanove
Microcontrolador ATmega328
Voltagem de operao 5V
Voltagem de entrada
7-12V
(recomendvel)
Pinos analgicos 6
SRAM 2 KB
EEPROM 1 KB
35
O Arduino oferece um timo custo/benefcio sendo um microcontrolador
de fcil manuseio que no requer conhecimentos avanados em eletrnica,
proporcionando agilidade na conexo e manipulao de dispositivos de
entrada/sada.
O ROB
36
Figura 23: Rob
SOFTWARE
37
O software deve ser capaz de fornecer ao rob autonomia suficiente
para percorrer um caminho seguindo a linha preta sem perd-la, passando por
curvas abertas ou fechadas com uma velocidade satisfatria e com uma
movimentao suave obtida atravs da aplicao do controle proporcional e
derivativo - PD.
pinMode(motorEsquerda,OUTPUT);
pinMode(motorDireita,OUTPUT);
38
essa superfcie. O mtodo calibrate() invocado dentro de um for por um
perodo de cinco segundos, fazendo o rob girar e deslizar no seu eixo central
em sentido horrio passando sobre a linha preta e sobre a rea branca
diversas vezes, realizando assim a calibragem dos sensores. Esse giro
consiste basicamente na movimentao do motor esquerdo para frente e do
motor esquerdo para trs numa mesma velocidade.
A posio ideal do rob sobre a linha preta (Figura 26) dada pelo
posicionamento dos sensores centrais da matriz (sensor 3 e sensor 4) sobre o
preto, e os demais sensores sobre a parte branca sendo os sensores 0, 1 e 2
esquerda da linha preta e os sensores 5, 6 e 7 direta da linha preta.
39
Figura 26: Ponto ideal (setpoint) do rob sobre a linha preta
Para valores maiores que 3.500 e menores que 7.000 o rob tende para
o lado esquerdo com a linha preta sob os sensores 5, 6 ou 7 (Figura 27-b).
Nesta situao, a velocidade do motor esquerdo dever ser maior que a
velocidade do motor direito.
Figura 27a : Rob tendendo para a direita Figura 27b: Rob tendendo para a esquerda
40
Dessa forma, podem-se estabelecer as seguintes relaes:
// CLCULO DO PD
41
parados e 255 em velocidade mxima), e o resultado calculado pelo sinal
controlador pode gera valores fora deste intervalo.
VALORES DA CONSTANTE
RESULTADO OBTIDO
PROPORCIONAL (Kp)
Kp = 0.0 O rob no segue a linha
Kp = 0.05 O rob segue apenas em linha reta no faz curvas
Kp = 0.1 O rob segue a linha parcialmente, mas instvel em curvas
O rob segue a linha parcialmente, mas ainda instvel em
Kp = 0.2
curvas
Kp = 0.3 Rob 100% estvel na linha e em curvas
Rob segue a linha, porm apresenta variaes discretas em
Kp = 0.4
zig-zag
Rob segue a linha, porm apresenta variaes suaves em
Kp = 0.5
zig-zag
Rob segue a linha, porm apresenta variaes intensas em
Kp = 0.8
zig-zag
Rob segue a linha, porm apresenta fortes variaes em
Kp = 2.0
zig-zag
42
O melhor resultado obtido para o controle proporcional foi Kp=0.3,
deixando o rob preciso durante o seu percurso sobre a linha preta tanto em
retas quanto em curvas.
VALORES DA CONSTANTE
RESULTADO OBTIDO
DERIVATIVA (Kd)
Kd = 0 Nenhuma interferncia
Kd = 5 Boa suavizao
Kd = 7 tima estabilidade do rob
Kd = 10 Boa suavizao com discreta pertubao
Kd = 20 Pequenas oscilaes do rob
Kd = 40 Fortes oscilaes gerando perda da linha
43
CONCLUSO
O controle integral (I) foi desprezvel uma vez que o rob atingiu o seu
objetivo somente com as constantes proporcional e derivativa.
44
REFERNCIAS BIBLIOGRFICAS
45
ANEXO
#include <PololuQTRSensors.h>
float KP = 0.3;
float KD = 7;
int erroAnterior = 0;
void setup()
pinMode(motorEsquerda,OUTPUT);
pinMode(motorDireita,OUTPUT);
analogWrite(motorEsquerda,127);
analogWrite(motorDireita,127);
delay(2000);
analogWrite(motorEsquerda,175);
analogWrite(motorDireita,50);
46
int i;
matrizSensores.calibrate();
delay(20);
analogWrite(motorEsquerda,127);
analogWrite(motorDireita,127);
delay(2000);
void loop()
int leituraSensores =
matrizSensores.readLine(arraySensores);
// CLCULO PD
erroAnterior = erro;
47
//// CORREO DOS VALORES EXTREMOS DOS MOTORES
novaVelocidadeMotor1 = 127;
novaVelocidadeMotor2 = 127;
novaVelocidadeMotor1 = 255;
novaVelocidadeMotor2 = 255;
analogWrite(motorEsquerda,novaVelocidadeMotor1);
analogWrite(motorDireita,novaVelocidadeMotor2);
48