Vous êtes sur la page 1sur 41

UNIVERSIDADE TECNOLGICA FEDERAL DO PARAN

GRUPO DE ROBTICA - OVERLOAD

RELATRIO DE DESENVOLVIMENTO
SEGUIDOR DE LINHA - ROBERTA

CORNLIO PROCPIO
2016

SUMRIO
1. A COMPETIO ......................................................................................... 3
1.2.

CATEGORIA SEGUIDOR DE LINHA PRO .............................................. 3

1.3.

ESPECIFICAES DO ROB ................................................................ 3

1.4.

O PERCURSO ......................................................................................... 3

2. PROJETO .................................................................................................... 5
2.1.

ELETRNICA........................................................................................... 5

2.1.1.

ARDUINO .............................................................................................. 5

2.1.2.

DRIVER DOS MOTORES ..................................................................... 7

2.1.3.

BATERIAS ............................................................................................ 9

2.1.4.

SENSORES ........................................................................................ 10

2.2.

MECNICA............................................................................................. 13

2.2.1.

LOCOMOO .................................................................................... 14

2.2.2.

RODAS ............................................................................................... 15

2.2.3.

MOTOR ............................................................................................... 15

2.2.3.1.

TIPOS DE MOTORES ..................................................................... 17

2.2.3.2.

CARACTERISTICAS DO MOTOR ................................................... 22

2.2.4.

ESTRUTURA ...................................................................................... 24

2.2.4.1.

MATERIAL ....................................................................................... 24

3. PROGRAMAO ...................................................................................... 27
3.2.

PROGRAMA........................................................................................... 29

4. ORAMENTO DOS COMPONENTES ...................................................... 38


5. VIAGEM ..................................................................................................... 39
6. PLANEJAMENTO ...................................................................................... 39
7. ANEXOS .................................................................................................... 40

1. A COMPETIO
A winter challenge desenvolvida pela robocore a maior competio de
robtica da Amrica latina. A 12 edio acontecer no Instituto Mau de
Tecnologia na cidade de So Caetano do Sul, entre os dias 7 e 10 de julho.
1.2. CATEGORIA SEGUIDOR DE LINHA PRO
Nesta categoria o rob deve percorrer um trajeto definido por uma linha
branca com no mximo 60 m de extenso. Neste percurso tero cruzamentos e
curvas. Os robs sero classificados pelo menor tempo para concluir o
percurso.
1.3. ESPECIFICAES DO ROB

Os robs devem ser totalmente autnomos e com todos os componentes


embarcados. No pode ser controlado externamente por fio ou por rdio, com
exceo para ser iniciado;

Nenhuma adio, remoo ou alterao de hardware ou software podero ser


feitas durante a tomada de tempo. Porm pequenos reparos sero permitidos;

O Rob no pode exceder 250mm de comprimento, 250mm de largura e


200mm de altura, no podendo alterar suas dimenses durante a partida;

O Rob no poder possuir nenhum tipo de mecanismo de suco para


aumentar a fora normal em relao ao solo.
1.4. O PERCURSO
A superfcie da pista ser preta, feita com uma ou mais placas de MDF
revestidas com manta de borracha preta, portanto eventuais emendas de
placas sero necessrias para compor toda a rea do percurso, para tal

possveis desnveis podero ocorrer, a organizao tentar minimiz-los da


melhor maneira possvel adicionando fita preta em todas as emendas. De
qualquer forma os robs devem ser capazes de superar tais desnveis (
1mm).
O percurso ser indicado por uma linha branca de 191mm de largura.
O comprimento total da linha ser no mximo 60m.
A linha consistir em combinaes de retas e arcos. A linha poder
cruzar sobre ela mesmo.
Quando houver um cruzamento, o angulo de interseco das linhas ser
de 905 (vide figura 1). As partes das linhas 250mm antes e 250mm depois do
cruzamento sero retas.
A rea a qual se entende entre o ponto de partida e o ponto de chegada,
considerando 200mm a direta da linha e 200mm a esquerda da linha
denominada "rea de partida-chegada".
A linha de partida e a linha de chegada sero localizadas em uma reta
do percurso. A linha de chegada ser localizada um metro para traz da linha
de partida. Haver marcaes no lado direito da linha (em relao ao sentido
do percurso), indicando o ponto de partida e o ponto de chegada.
A linha 250mm antes e 250mm depois da "rea de partida-chegada"
ser reta.
O raio dos arcos ser de pelo menos 100mm.

Haver uma marcao no lado esquerdo da linha (em relao ao sentido


do percurso) no ponto em que houver alterao da curvatura.
O circuito ser totalmente plano. Porm podero ser includas
inclinaes de at no mximo 5.
As cores da linha e da pista esto sujeitas possveis variaes,
dependendo do fornecedor dos materiais utilizados na confeco dos mesmos,
porm existe um grande contraste entre o branco da faixa e o preto da pista.
2. PROJETO
O projeto foi desenvolvido levando em considerao o custo e o
desempenho do rob.
2.1. ELETRNICA
2.1.1. ARDUINO
Decidimos utilizar o arduino Atmega2560. Devido a plataforma arduino
ajudar na prototipagem rpida e o alto desempenho que o Atmega2560 tem em
comparao aos outros modelos da Arduino, e tambm por temos ela
disponvel para o uso do grupo.

Figura 1: Arduino Atmega2560

As especificaes tcnicas do arduino esto na tabela seguinte:


Tenso de Operao

5V

Tenso de Entrada
(recomendado

7-12V

Tenso de Entrada (limites)

6-20V

Pinos Digital I/O

54 (of which 15 provide PWM output)

Pinos Analogicos I/O

16

Corrente por Pino I/O

20 mA

Corrente para o Pino 3.3V

50 mA

Flash Memory

256 KB of which 8 KB used by


bootloader

SRAM

8 KB

EEPROM

4 KB

Clock Speed

16 MHz

Comprimento

101.52 mm

Largura

53.3 mm

Peso

37 g

2.1.2. DRIVER DOS MOTORES


Foi escolhida a ponte H dupla modelo L298n, embutido em uma placa de
circuito.
O modelo uma ponte H dupla, dessa forma possvel controlar dois
motores DC de forma independente utilizando um controle PWM.
Com este CI, possvel alimentar os motores de duas formas: utilizando a
sada +5V do arduino ou utilizando uma fonte externa, sendo que, neste caso,
pode ser utilizada uma tenso de at 35V e uma corrente de at 2A.
As dimenses da placa do driver so: 43x43x27 (mm).
O peso da placa : 30g.

Figura 1: Driver L298n

Motor A: Local onde devem ser conectados os terminais do motor A.


Motor B: Local onde devem ser conectados os terminais do motor B.
6-35V: Local onde deve ser colocado o cabo de alimentao, no caso dos
motores receberem alimentao externa ao arduino.
Ativa 5V: Quando retirado o jumper, habilita a entrada 6-35V para a
alimentao externa dos motores.
5V: Local onde deve ser conectada a sada +5V do arduino, caso os motores
no recebam alimentao externa.
GND: Ground.
Ativa MA: Habilita o controle PWM do motor A. Para o controle da
velocidade do motor, o jumper deve ser retirado e deve-se conectar esta
entrada a uma porta PWM do arduino.
Ativa MB: Habilita o controle PWM do motor B. Para o controle da
velocidade do motor, o jumper deve ser retirado e deve-se conectar esta
entrada a uma porta PWM do arduino.
Entrada: Local onde devem ser conectadas as portas PWM do arduino
para o controle do sentido do motor.
O controle do sentido do motor feito da seguinte forma: Ao receber um
sinal contnuo de 5V na entrada IN1 e outro de 0V na entrada IN2, o driver
aciona o motor no sentido anti-horrio. Porm, caso o driver receba um sinal
contnuo de 5V na entrada IN2 e outro de 0V na entrada IN1, o mesmo ir
acionar o motor no sentido horrio.

O driver um componente leve e pequeno, porm muito verstil. Com o


CI utilizado possvel fazer um controle preciso de dois motores DC utilizando
as portas PWM do arduino, o que elimina a necessidade de se usar um driver
independente para cada motor. Alm disso, o preo da placa com CI embutido
no tem elevado, sendo esse o melhor custo/benefcio encontrado para esse
projeto.

2.1.3. BATERIAS
Escolhemos utilizar duas baterias em detrimento de uma pois, desta forma,
no precisaria utilizar nenhum regulador de tenso, visto que os dispositivos
usados tm tenses diferentes. Alm disso, a utilizao de duas baterias
facilitar as ligaes entre os componentes.
Optamos pela bateria recarregvel, por conta da escassez dos recursos
financeiros e por estas atenderem as tenses exigidas por cada equipamento.
Por ter escolhido baterias recarregveis, foi necessrio incluir no oramento
um carregador apropriado para a recarga das baterias, facilitando e dando
segurana ao processo de recarga das fontes de alimentao.

Figura 2: Bateria Knup 9v 450 mAh

Voltagem

9v

Capacidade

450 mAh

Material

NI-Mh

Peso

No h especificaes

Dimenses

No h especificaes

Figura 3: Carregador bivolt.

Carrega pilhas AA ou baterias 9v;

LED indica o processo de carga;

Canais de carga independente;

Desliga automaticamente ao terminar a recarga.


2.1.4. SENSORES

Utilizamos um tipo de fototransistor que sensvel luz infra vermelha para


construir um sensor infrared e para que ele funcione necessrio que
tenhamos uma fonte deste tipo de luz. por este motivo que tambm
utilizaremos um led infra vermelho. Seu funcionamento praticamente idntico
ao dos leds tradicionais sendo que sua nica diferena o fato de emitirem luz
no spectro infra vermelho (IR), ou seja, no visvel a no ser que utilizemos
algum tipo de equipamento para isso. A figura a seguir apresenta o aspecto
fsico do fototransistor TIL78 e de um LED IR, iguais aos que utilizaremos no
projeto do sensor infravermelho.

Figura 4: Fototransistor e LED IR.

Para que possamos utilizar estes componentes como sensores de linha,


nos aproveitaremos do fato de que a luz infravermelha refletida quando
atinge uma superfcie. A intensidade de luz refletida depende do material que a
mesma atinge. De modo geral, quanto mais lisa for a superfcie, maior ser a
reflexo. Outro fator que pode influenciar na reflexo a cor da superfcie,
sendo que superfcies lisas e de cor clara possuem melhor ndice de reflexo.

Figura 5: Caractersticas do sensor.

Na Figura 4 podemos notar que a luz infra vermelha emitida pelo Led reflete
na superfcie, assim uma parte do feixe luminoso incide no fototransistor,
acionando sua base e gerando uma corrente entre seu coletor e emissor.
Ajustando-se o ngulo de incidncia da Luz IR na superfcie, podemos
aumentar ou diminuir a quantidade de luz que atinge o fototransistor. A razo
pela qual estamos utilizando luz IR que desejamos minimizar a influncia que
a luminosidade do ambiente ter sobre o sensor.

1 Arduino;

1 Protoboard;

1 Fototransistor TIL78;

1 LED IR;

1 Resistor de 200 Ohms;

1 Resistor de 5KOhms.

O resistor de 200 conectado em srie com o LED IR foi utilizado para


limitar sua corrente em 20 mA. Da mesma forma, utilizou-se um resistor de 5
k no coletor do fototransistor para limitar a sua corrente em 0.1 mA,
consequentemente limitando sua potncia em 50 mW conforme sugere o
datasheet do componente. importante frisar que o posicionamento do
fototransistor e do LED IR do protoboard dever ser feito experimentalmente
at que se atinja a posio tima que faz com que a luz IR emitida atinja o
fototransistor quando o fundo branco for identificado (em outras palavras,
tentativa e erro).
2.2. MECNICA

Figura 6: Desenho da ROBERTA.

2.2.1. LOCOMOO
Escolhemos o sistema de locomoo baseado na mobilidade. No
sistema escolhido o movimento baseado em duas rodas motrizes
posicionadas em cada lado do motor. Elas mudam a direo do rob variando
a velocidade relativa entre os motores.

Figura 7: Sistema de locomoo

2.2.2. RODAS
Tomando como base o desenvolvimento mnimo necessrio para que o
rob seguidor de linha possa competir, foi estipulado que ele deveria alcanar a
velocidade de 1 metro por segundo (m/s). Desse modo, ao pesquisar as
opes disponveis no mercado, a que apresentou melhor custo benefcio foi
uma roda com pneu de borracha, com dimetro de 42 mm:

Figura 8: Rodas com pneu de borracha.

Para o clculo do Torque de Frico, torque mnimo necessrio para que


o rob entre em movimento, foi utilizada a seguinte frmula:
=

(1)

Onde T o torque de frico, a fora de atrito e R o raio da roda.

2.2.3. MOTOR
Como a pista em que o rob ir percorrer plana a fora necessria para
exercer o movimento calculada pelas seguintes equaes:

(5)

Onde o coeficiente de frico entre a roda e a superfcie e N a fora


normal que age sobre as rodas. O torque necessrio para superar a fora de
frico calculado pela equao (1).
Para o calculo da potencia do motor necessrio estabelecer uma
velocidade linear mdia, no caso estabelecemos uma velocidade de 60 metros
por minuto:
= 60/2

(6)

Aps a concluso dos clculos do torque e da velocidade necessrios


para que o rob seguidor de linha apresente um desenvolvimento mnimo
necessrio para competir e realizada a pesquisa dos motores disponveis no
mercado, foi decidido utilizar o motor Mini DC Gear Motor 12V 600pm 12mm,
o qual apresentou melhor custo benefcio, tendo em vista as necessidades do
projeto. Na tabela a seguir encontram-se alguns dados do datasheet do motor
escolhido:

Velocidade Velocidade Torque Corrente

Stall

Stall

Razo da

Voltagem
Sem carga Com carga Nominal Nominal torque current Reduo
V

rpm

rpm

kg.cm

mA

kg.cm

mA

01:00

150

100

0.1

80

0.8

100

50

300

240

0.2

160

1.6

200

50

12

600

480

0.4

200

3.2

300

50

Figura 14: Motor Mini DC Gear Motor 12V 600pm 12mm.

2.2.3.1.

TIPOS DE MOTORES

Motor de Corrente Contnua


Os motores de corrente contnua (CC), tambm conhecidos como motores
DC (Direct Current), operam atravs do aproveitamento das foras de atrao e
repulso geradas por eletroms e ims permanentes. Esse aproveitamento
ocorre atravs da bobina existente entre os dois polos do im, como mostrado
abaixo:

Figura 9: Componentes internos do Motor de Corrente Contnua.

partir da posio inicial, em que os polos da bobina esto alinhados


aos polos do im, vemos a existncia de uma fora de repulso, a qual faz com
que a bobina mude de posio:

Figura 10: Funcionamento da bobina.

Devido a carga presente nos polos da bobina, o polo sul da bobina


atrado pelo polo norte do im, assim como o polo norte da bobina atrado
pelo polo sul do im. Contudo, devido a existncia de um comutador no eixo do
rotor, por onde passa a corrente eltrica que circula pela bobina, os polos da
bobina se alteram; atravs da inverso do sentido de circulao da corrente na
bobina.
Assim, como resultado tem-se a transformao da fora de atrao em
repulso, fazendo com que o rotor continue seu movimento. Contudo, o rotor
no atinge a posio de equilbrio, ou seja, a posio em que as foras esto
na mesma linha de ao, fazendo com que o rotor no gire, graas ao
comutador.
Portanto, o rotor no ir parar. Enquanto o motor estiver conectado
eletricidade, ele continuar procurando sua posio de equilbrio. Nesse tipo de
motor, sua velocidade depende da fora executada pelo rotor para que o motor
gire.
Servo Motor

Os Servos Motores so motores que possuem grande preciso na


velocidade em que trabalham, e na posio de seu rotor. possvel dividir um
servo motor em cinco componentes principais: Caixa do Servo, Circuito de
Controle, Engrenagens, Motor e Potencimetro; como mostrado abaixo:

Figura 11: Componentes internos do Servo Motor.

Esses componentes esto posicionados internamente caixa do servo


motor, da seguinte forma:

Figura 12: Interior do Servo Motor.

O controle de um servo motor feito atravs de uma alimentao com


tenso de 5V, de formato PWM (Pulse Width Modulation). Ou seja, o formato
desse sinal ser igual a 0V ou a 5V. Este sinal monitorado a cada 20 ms pelo
circuito de controle, para que a cada sinal, seja verificada a largura do sinal, e
assim altere a posio do eixo a fim de coincidir com o sinal recebido.

Um sinal com largura de pulso de 1 ms corresponde a posio do servo


todo a esquerda ou 0 grau.
Um sinal com largura de pulso de 1,5 ms corresponde a posio central
do servo ou de 90 graus.
Um sinal com largura de pulso de 2 ms corresponde a posio do servo
todo a direita ou 180 graus.

Figura 13: Sinais de controle do Servo Motor.

A caracterstica marcante dos servos motores sua capacidade de


movimentar seu brao at uma determinada posio e mant-lo, mesmo que
sofra uma fora no sentido contrrio. O nome dado essa resistncia exercida
pelo servo motor Torque.
Dentro do tipo de motor denominado Servo Motor, possvel classificlos em trs tipos:
Standard servos motores mais comuns. Grandes e robustos, pesam em
torno de 35 gramas.
Mini pesam de 20 a 28 gramas.

Micro so pequenos e leves, mas com um bom torque. Pesando de 6 a 20


gramas.

2.2.3.2.

CARACTERISTICAS DO MOTOR

Tenso de Operao
A tenso de operao indica o nvel de tenso necessrio para que o
motor funcione, tambm pode indicar uma faixa de valores com o minimo de
tenso necessria e o mximo de tenso possvel que garante o tempo de vida
razovel e condies de operao seguras. A maioria dos motores de corrente
continua so projetados para operar entre 3 a 6 volts ou 1,5 volts. Motores de
maior porte necessitam de 12V ou 24V, em certos casos at 90V CC podem
ser necessrios. Normalmente quanto maior a tenso mais rpido e mais forte
o motor deve ser.
A tenso de operao aplicada pode ser maior ou menor em relao a
tenso nominal (a recomendada). Uma tenso menor reduz o torque e a
velocidade. Aplicar uma tenso maior que a nominal aumenta o torque e a
velocidade mas pode destruir o motor. Pois a resistncia interna do motor fixa
e aplicar uma tenso maior faz aumentar a corrente que circula nas bobinas
gerando mais calor e deteriorao do motor.
Motores de passo no muda sua velocidade quando a tenso alterada.
O que muda a velocidade de um motor de passo a frequncia de sinais
enviadas para o motor.

Tenso Nominal

tenso

utilizada

pelo fabricante para

calcular as outras

especificaes do motor. Em motores baratos os fabricantes utilizam uma ou


duas tenses nominais. Em motores caros existem grficos detalhados com a
performance resultante da tenso e carga aplicada.

Tenso Constante ou Velocidade Constante (Kv)


Descreve o montante de voltas do motor por 1 volt. Por exemplo, se um
motor tem Kv =150 e aplicamos 10V, ento a velocidade do motor ser de
1500RPM. Lembrando que deve ser levado em considerao a eficincia do
motor, neste caso 90% de eficincia resultaria em 1350RPM.

Corrente
Indica a quantidade de corrente consumida pelo motor em determinado
torque. Quanto maior o torque maior a corrente. Existem alguns estados do
motor que afetam a variao de corrente.

Sem carga: O motor gira livremente, sem nada conectado ao seu eixo.
Partida: Corrente necessria para iniciar o movimento do motor.
Com carga: Quanto maior a carga maior dever ser o torque aplicado e por fim
maior ser a corrente.
Estagnado: Acontece quando o torque gerado pelo motor no suficiente para
mover a carga elevando muito a corrente que acaba danificando o motor.
Pode ser calculado usando o torque constante (k), utilizando a seguinte
frmula:

(2)

Onde M o torque gerado pelo motor e K o torque constante

Potncia
A potncia indica o trabalho feito pelo motor sobre o tempo. Pode ser o
multiplo da corrente e tenso.
=

(3)

Ou do torque pela velocidade.


=

(4)

Torque
O torque a fora exercida pelo motor. No caso dos motores de corrente
continua o torque depende da corrente.

Torque Constante
coeficiente que representa a quantidade de torque exercida pelo motor
a cada ampere de corrente.

2.2.4. ESTRUTURA
O desenho da estrutura do rob est em anexo a este relatrio.
2.2.4.1.

MATERIAL

O material deve possui resistncia ao calor, durabilidade, fcil manuseio


e pouco condutor de eletricidade. Aps estudos realizados com diversos
materiais foi obtido como resultado a utilizao do Policarbonato. Porm devido
a questes financeiras o material escolhido foi o MDF. Por meio disto ser
possvel a confeco de vrios robs devido ao material possuir todos
requisitos necessrios e ter o material com preo favorvel a compra e
utilizao em testes e futuros projetos.
A escolha do material foi devido ao fcil acesso para aquisio e
atendimento a todos os requisitos mnimos para sustentao e adequao ao
rob. Sendo que todos os requisitos que os materiais deveriam ter foram
cumpridos e testados utilizando os programas Autodesk Inventor e Solidworks
2016.
1. Policarbonato
O Policarbonato possui excelente isolamento eltrico, transmisso
controlada da luz do dia, durabilidade, peso leve e possui manipulao e
montagem facilmente para manuseio. Com densidade de 1,2 3 ,com peso
50% mais leve que o vidro. A resistncia ao impacto e de 250 vezes mais
resistente que o vidro e 30 a 40 vezes mais resistente que o acrlico. Resistente
a temperatura de -15C at 120 C em temperaturas contnuas, o raio de
curvatura mximo e de 100 vezes a espessura da chapa. No propaga chamas
alm de possuir resistncia boa contra o calor.
2. Acrlico
O Acrlico possui excelente durabilidade com cerca de 10 anos
resistindo ao sol, chuvas, tempestades e todos tipos de intempries que seriam

importante para futuros projetos do grupo. A resistncia a abraso e


comparvel ao alumnio e densidade relativamente baixa com 1,19 3, boa
resistncia a produtos qumicos caso houver problemas com a bateria. Quando
ocorre a quebra do material em caso de quedas e excees de forca no h
liberao de fragmentos que podem causar problemas aos membros do grupo.
Possui excelente maleabilidade com tratamentos trmicos. Baixa resistncia a
fadiga e ao lcool. Possui baixa reteno de umidade de dois por cento, no
havendo expanso dimensional considervel.
3. Poliestileno
Possui fcil processamento e boa resistncia a impactos com altas
estabilidades dimensionais e alta flexibilidade. Baixa absoro de umidade e
boas propriedades de sua estrutura.
4. Alumnio
Com alta condutividade trmica este material pode possuir expanso
trmica deformando a chapa. A alta condutividade eltrica pode ser positiva
sendo possvel utiliza-lo em futuros projetos da equipe. Com alongamento de 8
a 12 por cento sendo possveis alteraes pela temperatura e deformaes do
material. A densidade do material de 2,71 3 sendo muito leve quando
comparado a outros metais. Possui altas resistncias mecnicas a choques,
corroso, tenso, trao e soldabilidade. Resistencia ao retirar componentes
apoiados ou juntos a chapa como parafusos e suportes do rob.
5. MDF

O Medium-Density

Fiberboard (em ingls),

mais

conhecido

pela

sigla MDF (Dutra 2015), um material derivado da madeira. A traduo


adequada para a lngua portuguesa "placa de fibra de madeira de mdia
densidade". Tratando-se de um material de origem biolgica, a resistncia a
elasticidade e inchamento so inferiores aos demais materiais sendo
possivelmente prejudicial quando utilizado em extensivo tempo. Pode ser
fabricada com caractersticas especiais como resistncia a ambientes midos,
resistncia ao fogo e resistncia a tenso. Possui maior estabilidade
dimensional que outros materiais derivados da madeira. A densidade do
material de 0,8 3 .

3. PROGRAMAO

A tcnica de PWM empregada em diversas reas da eletrnica, talvez a


mais comum seja a utilizao em fontes chaveadas mas tambm pode ser
utilizada para controle de velocidade de motores, controle de luminosidade,
controle de servo motores e diversas outras aplicaes. PWM significa "Pulse
Width Modulation" ou Modulao de Largura de Pulso, ou seja, atravs da
largura do pulso de uma onda quadrada possvel o controle de potncia ou
velocidade.
Imagine uma chave simples liga e desliga, quando ligada 100% da tenso e
da potencia aplicada a carga, j quando a chave esta aberta a tenso nula
e assim a potncia 0. Quando controlamos o tempo que a chave fica ligada e
conseqentemente o tempo dela desligada podemos controlar a potencia

mdia entregue a carga, por exemplo: a chave fica ligada 50% ligada e 50%
desligada, isso quer dizer que em mdia temos 50% do tempo com corrente e
50% sem. Portanto a potncia mdia aplicada na carga a prpria tenso
mdia, ou seja, 50%, portanto quanto maior o tempo que o pulso se manter em
nvel lgico alto, ou seja, ligado maior a potencia entregue a carga, quanto
menor o tempo em nvel lgico alto menor a entrega de potencia.
A grande diferena entre um controle PWM e um controle FM (Freqncia
modulada), que no PWM a freqncia permanece fixa, normalmente em um
valor alto suficiente para no afetar o funcionamento do equipamento a ser
controlado e que a forma de onda resultante seja a mais suave possvel,
normalmente para controle de velocidade de motores por exemplo utilizado
dezenas de KHz, j pra controladores de luminosidade como "dimmer" de uma
lmpada podemos utilizar centenas de Hz, ou para aplicaes de udio ou
fontes como as de computadores podemos utilizar centenas de KHz.
Considerando uma onda quadrada, para o funcionamento correto do PWM
devemos variar a largura de pulso da onda, para efeito de calculo dois
parmetros so necessrios o perodo e a largura do pulso propriamente dita,
chamada de duty-cycle, definida em porcentagem segundo a formula:
= 100

Onde:
Duty-Cycle: Valor em (%)
Largura do pulso: Tempo em que o sinal esta ligado.

(6)

Perodo: Tempo de um ciclo da onda.

Alguns exemplos de forma de onda, variando a largura do pulso e


conseqentemente o duty-cycle:

Figura 15: Forma de onda

3.2. PROGRAMA
Os cdigos a seguir o programa utilizado no arduino. Todo o programa foi
desenvolvido utilizando a linguagem C:
const int MotorVD = 7;
const int MotorVE = 5;
const int MotorRD = 6;
const int MotorRE = 4;

const int LED1 = A8;


const int LED2 = A9;

const int LED3 = A10;


const int LED4 = A11;
const int LED5 = A12;
const int LED6 = A13;
const int LED7 = A14;

const int Sensor1 = A1;


const int Sensor2 = A2;
const int Sensor3 = A3;
const int Sensor4 = A4;
const int Sensor5 = A5;
const int Sensor6 = A6;
const int Sensor7 = A7;

int controlepwm=0;

int ValorCorte = 160;


int ValorCorteS4 = 10;

int Velocidade = 100;//testar

float valorLE1=0;
float valorLE2=0;
float valorLE3=0;
float valorLE4=0;
float valorLE5=0;
float valorLE6=0;

float valorLE7=0;

int start = 0;

class PID{
public:

double error;
double sample;
double lastSample;
double kP, kI, kD, _kP, _kI, _kD;
double P, I, D;
double pid;

double setPoint;
long lastProcess;

PID(double _kP, double _kI, double _kD){


kP = _kP;
kI = _kI;
kD = _kD;
}

double erro (float valorLE1, float valorLE2, float valorLE3, float valorLE4, float valorLE5, float
ValorCorte, float ValorCorteS4){
if((valorLE1 < ValorCorte)&&(valorLE2 < ValorCorte)&&(valorLE3 < ValorCorte)&&(valorLE4 <
ValorCorteS4)&&(valorLE5 < ValorCorte))

{
return 0;
}
else if((valorLE1 < ValorCorte)&&(valorLE2 < ValorCorte)&&(valorLE3 >
ValorCorte)&&(valorLE4 < ValorCorteS4)&&(valorLE5 < ValorCorte))//Seguir em frente
{
return 0;
}

else if((valorLE1 < ValorCorte)&&(valorLE2 > ValorCorte)&&(valorLE3 >


ValorCorte)&&(valorLE4 < ValorCorteS4)&&(valorLE5 < ValorCorte)) //Correo pra direita
{
return -1;
}
else if((valorLE1 < ValorCorte)&&(valorLE2 > ValorCorte)&&(valorLE3 <
ValorCorte)&&(valorLE4 < ValorCorteS4)&&(valorLE5 < ValorCorte)) //Correo pra direita
{
return -2;
}
else if((valorLE1 > ValorCorte)&&(valorLE2 > ValorCorte)&&(valorLE3 <
ValorCorte)&&(valorLE4 < ValorCorteS4)&&(valorLE5 < ValorCorte)) //Correo pra direita
{
return -3;
}

else if((valorLE1 > ValorCorte)&&(valorLE2 < ValorCorte)&&(valorLE3 <


ValorCorte)&&(valorLE4 < ValorCorteS4)&&(valorLE5 < ValorCorte)) //Correo pra direita
{
return -4;

}
else if((valorLE1 < ValorCorte)&&(valorLE2 < ValorCorte)&&(valorLE3 >
ValorCorte)&&(valorLE4 > ValorCorteS4)&&(valorLE5 < ValorCorte)) //Correo pra esquerda
{
return 1;
}
else if((valorLE1 < ValorCorte)&&(valorLE2 < ValorCorte)&&(valorLE3 <
ValorCorte)&&(valorLE4 > ValorCorteS4)&&(valorLE5 < ValorCorte)) //Correo pra esquerda
{
return 2;
}
else if((valorLE1 < ValorCorte)&&(valorLE2 < ValorCorte)&&(valorLE3 <
ValorCorte)&&(valorLE4 > ValorCorteS4)&&(valorLE5 > ValorCorte)) //Correo pra esquerda
{
return 3;
}
else if((valorLE1 < ValorCorte)&&(valorLE2 < ValorCorte)&&(valorLE3 <
ValorCorte)&&(valorLE4 < ValorCorteS4)&&(valorLE5 > ValorCorte)) //Correo pra esquerda
{
return 4;
}
}

void addNewSample( int erro(float valorLE1, float valorLE2, float valorLE3, float valorLE4, float
valorLE5, float ValorCorte, float ValorCorteS4), int Velocidade)
{
sample = abs (erro(valorLE1, valorLE2, valorLE3, valorLE4, valorLE5, ValorCorte,
ValorCorteS4)); // sample a amostra, ou seja o erro em relao ao sensor
}

void setSetPoint()
{
setPoint = 0; //valor do erro que queremos atingir
}

double process()
{

error = setPoint - sample;

float deltaTime = (millis() - lastProcess) / 1000.0; // serve para agilizar o processo de analise
do erro, ele recebe o tempo atual do loop menos o tempo do ultimo loop e divide por mil pra
termos o tempo em segundos

lastProcess = millis();

P = error * kP;

I = I + (error * kI) * deltaTime;

D = (lastSample - sample) * kD / deltaTime;

lastSample = sample;

pid = P + I + D;

return pid;
}
};

PID meuPid(3.5 , 0.0 , 0.0);

void setup()
{
pinMode(MotorVD, OUTPUT);
pinMode(MotorVE, OUTPUT);
pinMode(MotorRD, OUTPUT);
pinMode(MotorRE, OUTPUT);

pinMode(LED1,OUTPUT);
pinMode(LED2,OUTPUT);
pinMode(LED3,OUTPUT);
pinMode(LED4,OUTPUT);
pinMode(LED5,OUTPUT);
pinMode(LED6,OUTPUT);
pinMode(LED7,OUTPUT);

pinMode(Sensor1,INPUT);
pinMode(Sensor2,INPUT);
pinMode(Sensor3,INPUT);
pinMode(Sensor4,INPUT);
pinMode(Sensor5,INPUT);
pinMode(Sensor6,INPUT);

pinMode(Sensor7,INPUT);

Serial.begin(9600);
}

void loop(){

meuPid.erro(valorLE1, valorLE2, valorLE3, valorLE4, valorLE5, ValorCorte, ValorCorteS4);


meuPid.process();
int erro_f= meuPid.erro(valorLE1, valorLE2, valorLE3, valorLE4, valorLE5, ValorCorte,
ValorCorteS4);
controlepwm = (meuPid.process() + 100);

digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED3, HIGH);
digitalWrite(LED4, HIGH);
digitalWrite(LED5, HIGH);
digitalWrite(LED6, HIGH);
digitalWrite(LED7, HIGH);

valorLE1 = analogRead(Sensor1);
valorLE2 = analogRead(Sensor2);
valorLE3 = analogRead(Sensor3);
valorLE4 = analogRead(Sensor4);
valorLE5 = analogRead(Sensor5);
valorLE6 = analogRead(Sensor6);
valorLE7 = analogRead(Sensor7);

/*Serial.print(analogRead(Sensor1));
Serial.print(',');
Serial.print(analogRead(Sensor2));
Serial.print(',');
Serial.print(analogRead(Sensor3));
Serial.print(',');
Serial.print(analogRead(Sensor4));
Serial.print(',');
Serial.print(analogRead(Sensor5));
Serial.print(',');
Serial.print(analogRead(Sensor6));
Serial.print(',');
Serial.println(analogRead(Sensor7));
delay(1000);*/

if(erro_f > 0)
{
analogWrite(MotorVD, controlepwm);
digitalWrite(MotorRD, HIGH);
analogWrite(MotorVE, Velocidade);
digitalWrite(MotorRE, HIGH);
}
else if(erro_f < 0)
{

analogWrite(MotorVE, controlepwm);
digitalWrite(MotorRD, HIGH);
analogWrite(MotorVD, Velocidade);
digitalWrite(MotorRE, HIGH);
}
else if (erro_f ==0)
{
analogWrite(MotorVD, Velocidade);
digitalWrite(MotorRD, HIGH);
analogWrite(MotorVE, Velocidade);
digitalWrite(MotorRE, HIGH);
}
}

4. ORAMENTO DOS COMPONENTES


Todos os componentes do rob e seu respectivo valor foram colocados na
tabela a seguir.
Quantidade
2
1
1
1
2
2
2
30
6
6
12

Item
2x Motores 600rpm + Rodas 42x19mm + Suporte
Esfera deslizaznte 3/8
Policarbonato compacto 50x50
Driver L298n
Adaptador para bateria
Bateria recarregvel 9v 450 mAh Knup
Carregador mltiplo para pilhas AA e 9v bivolt
Fita de Aluminio(cm)
Led Infravermelho
Sensor TIL78
Parafuso M3 x 50

Valor
R$ 145,00
R$ 13,00
R$ 53,00
R$ 25,00
R$ 17,92
R$ 37,34
R$ 23,41
R$ 3,00
R$ 12,00
R$ 12,00
R$ 3,00

16

Porca M3
TOTAL

R$ 3,00
R$ 347,67

5. VIAGEM

Entramos em contato com 42 escolas para fazer uma parceria e conseguir


alojamento durante o perodo da competio. Porm devido as escolas ainda
estarem em perodo letivo no possvel estabelecer a parceria. Portanto
entramos em contato com os hotis na cidade atrs da hospedagem mais
barata possvel e encontramos o hotel Capriccio. Como sero 9 pessoas que
iro participar da competio, reservamos trs quartos triplos com cada um no
valor de R$160,00 a noite, portanto como estaremos por 4 dias o valor total
de R$1440,00.

6. PLANEJAMENTO

O projeto foi dividido em trs reas: eletrnica, mecnica e


programao. Cada uma das reas teve um lder, sendo ele responsvel
por fazer reunies, planejar as tarefas e montar o cronograma da rea em
questo. Todo o processo de criao seguiu um fluxo de atividade de uma
forma geral de acordo com o seguinte fluxograma:

Figura 16: Processo de gerenciamento do projeto

O projeto teve vrias mudanas ao longo de seu desenvolvimento,


porm seguimos como base o cronograma de atividade a seguir:
Nome da atividade
Rob Seguidor de Linha
Pesquisa
Estudo das regras robocore
Estudo da ferramenta arduino
Estudo da ferramenta INVENTOR
Estudo da sintaxe da ferramenta arduino
Estudo de motores
Estudo de sensores
Estudo de sistemas de alimentao
Estudo do Software Eagle
Desenvolvimento
Modelagem da estrutura do rob
Desenvolvimento do software do rob
Especificao dos sensores
Especificao dos motores
Especificao da plataforma arduino
Especificao de outros componentes
Especificao do material para a estrutura do rob
Simulao do sistema de alimentao
Finalizao dos desenhos
Execuo
Oramento e Compra
Corte da Chapa
Teste dos componentes
Montagem
Teste do programa
Testes e correes
Relatrio da Eletrnica
Relatrio da Mecnica
Relatrio do Software
Finalizao
Relatrios de Desenvolvimento
Relatrio de Avaliao do Projeto

7. ANEXOS

Incio
10/08/2015
10/08/2015
10/08/2015
17/08/2015
17/08/2015
17/08/2015
17/08/2015
17/08/2015
17/08/2015
17/08/2015
24/08/2015
24/08/2015
07/09/2015
07/09/2015
07/09/2015
07/09/2015
07/09/2015
07/09/2015
07/09/2015
11/03/2016
11/02/2015
11/02/2015
18/03/2016
23/03/2016
15/04/2016
10/03/2016
11/04/2016
11/04/2016
11/04/2016
11/04/2016
17/06/2016
17/06/2016
17/06/2016

Fim
12/01/2016
07/09/2015
13/08/2015
31/08/2015
24/08/2015
07/09/2015
31/08/2015
31/08/2015
07/09/2015
07/09/2015
17/03/2016
24/11/2015
24/11/2015
14/09/2015
14/09/2015
14/09/2015
14/09/2015
14/09/2015
14/09/2015
17/03/2016
06/07/2016
10/03/2015
14/04/2016
14/04/2016
22/04/2016
10/04/2016
06/07/2016
16/06/2016
16/06/2016
17/06/2016
06/07/2016
06/07/2016
06/07/2016

B
Esfera deslizante

Roda

Motor

Suporte motor

Arduino

Driver L298n

Atmega2560

Baterias

A
Projeto

ROBERTA

Placa sensores

Folha

1/1
Data

ROBERTA
2

Edi o

20/04/2016

Vous aimerez peut-être aussi