Anda di halaman 1dari 17

INSTITUTO NACIONAL DE TELECOMUNICAES - INATEL

RELATRIO SOBRE TRABALHO FINAL DE EAT205

AGV Veculos Guiados Automaticamente

Equipe:
1. Jorge Luiz da Silva Jnior

n 48

2. Patrick Dirio Carvalho

n 49

3. Vander Silvestre Braga

n 67

Professora: Ana Letcia

07 / 2013

Perodo: 5

SUMRIO
1. Introduo.............................................................................................................................1
1.1.Justificativa....................................................................................................................1
1.2.Motivadores...................................................................................................................1
1.3.Objetivos.......................................................................................................................2
2. Descrio Geral....................................................................................................................3
3. Descrio do Funcionamento...............................................................................................4
3.1.Chave Liga/Desliga.......................................................................................................4
3.2.Sensor ptico................................................................................................................4
3.3.Display 16 x 2................................................................................................................4
3.4.Motor de trao.............................................................................................................4
3.5.Servo Motor...................................................................................................................5
3.6.Micro controlador MSP 430..........................................................................................5
3.7.Lgica de funcionamento do AGV................................................................................6
4. Concluso.............................................................................................................................7
5. Referncias...........................................................................................................................8
6. Anexos..................................................................................................................................9
6.1.Esquema Eltrico...........................................................................................................9
6.2.Fluxograma..................................................................................................................10
6.3.Listagem do Programa.................................................................................................11
6.4.Foto do Prottipo.........................................................................................................15

1. Introduo
Com o desenvolvimento de tecnologias de navegao para veculos autnomos e o
aumento da capacidade de processamento dos computadores, apareceram os primeiros robs
mveis industriais. Embora o seu mbito de aplicao seja muito mais amplo, um rob mvel
procura conjugar num s dispositivo de automao a mobilidade de um veculo autnomo e a
capacidade de manuseio e manipulao dos robs. Neste domnio, o AGV (Automatic Guided
Vehicle) um dispositivo com maior aplicao em empresas, indstrias ou de distribuio.
1.1. Justificativa
Existem inmeros trabalhos arriscados espalhados pelo mundo, com isso teve a
necessidade de criar um Rob que fizesse o servio humano em determinadas situaes sem
ter o risco de vida do funcionrio, alm de aumentar a flexibilidade, diminuir custos com mo
de obra, automatizar a logstica de movimentao de cargas no interior das empresas
diminuindo a dependncia da produo pelo funcionrio.

1.2. Motivadores
Nos ltimos anos houve muito interesse no desenvolvimento de tecnologias aplicadas em
veculos guiados automaticamente. Desde a automatizao de tarefas que envolvem traslado e
carga de materiais ou simples tarefas de inspeo, onde implique o movimento desde um
ponto inicial a um ponto final do veculo, tem havido uma grande melhoria na reduo de
riscos, tempos de traslado e consumo de energia.
A movimentao dos veculos guiados automaticamente (AGV) baseada no estudo das
diferentes tcnicas de navegao existentes, as quais utilizam diferentes tipos de sensores
(infravermelho, ultra-som, tctil, viso, etc.) como parte do equipamento do rob mvel para
realizar tarefas de movimentao do rob desde uma posio inicial at uma posio final. Os
veculos guiados automaticamente so usados para transporte interno e externo de materiais.

1.3. Objetivos
Tradicionalmente os AGVs foram os mais usados em sistemas de manufatura. Atualmente
os AGVs so utilizados para tarefas de transporte repetitivas e em outras reas tais como
armazenagem, sistemas de transporte externo (subsolo), etc.

AGV Veculos Guiados Automaticamente

O uso dos AGVs tem crescido enormemente desde sua introduo. O nmero de reas de
aplicao e variao nos tipos tem aumentado significativamente. Armazns e centros com
muitas interseces so exemplos de reas distribudas.

AGV Veculos Guiados Automaticamente

2. Descrio Geral
O controlador para AGV um dispositivo capaz de executar o controle de um AGV. O
nosso AGV guiado por uma faixa escura instalada no cho: atravs de 2 sensores. O
circuito de controle detecta qual caminho seguir: esquerda (sensor1 acionado e sensor2 no
acionado) ou direita (sensor1 no acionado e sensor2 acionado). O AGV se desloca para
frente quando ligado e para quando recebe um pulso gerado por um sensor instalado na sua
lateral esquerda. Um detector de proximidade est instalado na parte frontal do AGV para
evitar que o mesmo colida com outro AGV ou at mesmo uma pessoa. Esse evento
chamado de parada de emergncia. A movimentao do AGV feita por 2 motores DC
individuais, com velocidade fixa (ou varivel dependendo da necessidade). Como o AGV
alimentado por um banco de baterias, o mesmo deve ser capaz de medir o nvel de carga
dessa bateria. Para controle da operao do AGV, se o mesmo no detectar uma alterao
na leitura do sensor lateral por mais de 10 segundos, o mesmo deve paralisar a sua
movimentao (parada forada) e informar o problema no seu visor. Ele somente sai desse
estado de parada forada com um novo pulso de acionamento. Um display LCD apresenta
as informaes de operao do AGV: mensagens de deslocamento (em movimento,
parado, parada de emergncia, parada forada) e nvel de bateria.

AGV Veculos Guiados Automaticamente

3. Descrio do Funcionamento
Faz-se importante saber que a estrutura mecnica de um AGV projetada para cada
aplicao especfica, e por isso pode ser aplicado em praticamente qualquer ambiente
industrial, onde haja a necessidade de transportar componentes entre etapas de produo.
Podemos citar alguns exemplos onde encontram-se AGVs com maior freqncia:
Indstria Automobilstica: Transporte de Carrocerias e Peas.
Indstria Papeleira: Transporte de Bobinas de Papel.
Indstria Alimentcia e Farmacutica: Transporte em Ambientes Limpos e
Armazenagem.
Indstria Metal-Mecnica: Transporte de Peas, Armazenagem e Expedio.
Indstria de Manufatura: Transporte de Peas, Armazenagem e Expedio.

3.1. Chave Liga/Desliga


A chave liga/desliga uma chave push botton que responsvel pela habilitao do
motor das rodas e do sistema em geral.
3.2. Sensor ptico
O sensor ptico serve para guiar o AGV, foram instalados estrategicamente na parte
lateral esquerda, frontal e embaixo justamente para monitorar seu percurso.
3.3. Display 16 x 2
O display modelo 16 x 2 trabalha com 4 bits e ir mostrar todas as informaes do
AGV como nvel de bateria, emergncia, abastecimento de linha entre outras informaes,
ser instalado na parte traseira para melhor monitoramento.
3.4. Motor de trao
O motor de trao responsvel pela movimentao do AGV, assim que acionado
traciona as rodas.

AGV Veculos Guiados Automaticamente

3.5. Servo Motor


O servo motor responsvel pelo alinhamento e converses do AGV mantendo-o no
caminho correto, os sensores detectores de linha reconhecem os limites da faixa escura
pintada no cho, envia as informaes para o MSP430 que por sua vez envia os comandos
necessrios ao servo motor alinhando o AGV ou fazer as converses (direita / esquerda).
3.6. Micro controlador MSP 430
O MSP430 o crebro do AGV, sendo responsvel por toda programao e lgica de
percurso, os sensores detectam que est chegando perto de algum obstculo ou se est
saindo do percurso e envia para o MSP430, ele analisa e toma as devidas providncias para
continuar no caminho certo e ao mesmo tempo envia todas as informaes para o display,
sendo assim facilita a qualquer um saber o que est acontecendo em determinados
momentos.
A linguagem de programao usada para esse projeto a linguagem C.
Foram usados os pinos abaixo dos portais para o funcionamento do veculo:
Pino 1.0 - Nvel de bateria;
Pino 1.1 - (VAZIO)
Pino 1.2 - Motor de trao;
Pino 1.3 - Chave Liga/Desliga;
Pino 1.4 - Sensor ptico detector de faixa lado direito;
Pino 1.5 - Sensor ptico detector de faixa lado esquerdo;
Pino 1.6 - Sensor ptico lateral esquerdo (abastecimento de linha);
Pino 1.7 - Sensor ptico frontal (emergncia);
Pino 2.0 - Pino de dados D4 (display);
Pino 2.1 - Pino de dados D5 (display);
Pino 2.2 - Pino de dados D6 (display);
Pino 2.3 - Pino de dados D7 (display);
Pino 2.4 - Servo Motor;
Pino 2.5 - Enable (display);
Pino 2.6 Reset (display);
Pino 2.7 - (VAZIO).
5

AGV Veculos Guiados Automaticamente

3.7. Lgica de funcionamento do AGV


Pressionando o boto Liga, o AGV entra em funcionamento, o display passa a exibir
tudo o que est ocorrendo e ele comea a andar seguindo a faixa escura no cho.
Girando o potencimetro, o display indica o NVEL DE BATERIA (simulando uma
bateria descarregando).
Seus sensores funcionam da seguinte maneira:
Sensor lateral (abastecimento): Assim que acionado, o display mostra a mensagem
ABASTECER LINHA, o AGV para de andar aguardando o boto Liga ser novamente
pressionado. Caso o veculo entre em funcionamento, e aps 10 segundos o sensor lateral
no for acionado o mesmo para, exibe no display a informao AGUARDANDO e aguarda
o boto Liga ser pressionado mais uma vez.
Sensor frontal (emergncia): Assim que acionado, o display mostra a mensagem
EMERGNCIA, o AGV para de andar aguardando o obstculo ser retirado, assim que
retirado ele volta a seguir seu percurso reiniciando a contagem de tempo dos 10 segundos.
Sensores de deteco de pista: Assim que acionado, o AGV corrige seu percurso de
acordo com a faixa escura pintada no cho. Caso o sensor da direita seja detectado, o AGV
vira esquerda, caso o sensor da esquerda seja detectado, o AGV vira direita, sendo
assim, corrige seu percurso.

AGV Veculos Guiados Automaticamente

4. Concluso
O resultado final foi satisfatrio, o AGV se mostrou bem estvel capaz de executar
todas as tarefas pr-determinadas e de se locomover sem interao humana, respeitando as
restries que lhe foram impostas (emergncia, parada para abastecimento, interrupo por
tempo pr-determinado).
Os AGVs podem fazer um trabalho fsico pesado, sem desgaste ou exausto,
eliminando o trabalho humano que seria mais caro e potencialmente perigoso, tambm
ajudam a dar s empresas uma vantagem competitiva, pois aumentam a eficincia da
produtividade e otimizam o tempo, so flexveis e podem ser adaptados a diferentes
necessidades, reduzem tambm os danos aos produtos, criando um ambiente de trabalho
mais ergonmico.
Sua aquisio muitas vezes envolve grandes investimentos monetrios iniciais, pois a
maioria dos veculos tele guiados so fabricados com materiais caros e sistemas de
orientao, embora as empresas e os fabricantes que os utilizam possam observar, muitas
vezes, um rpido retorno sobre o investimento, aumentando a produo, o tempo e a
eficincia do trabalho

AGV Veculos Guiados Automaticamente

Referncias
http://pt.scribd.com/doc/22615830/Apresentacao-AGV
http://pt.scribd.com/doc/134576799/Robotica-AGV-em-sistemas-de-manufatura-pdf
http://www.xbot.com.br/downloads/apostila_Robotica_1-0.pdf
http://www.adororobotica.com/RBSENAI.pdf

AGV Veculos Guiados Automaticamente

5. Anexos
5.1. Esquema Eltrico

AGV Veculos Guiados Automaticamente

10

5.2. Fluxograma

Figura 1 Fluxograma do AGV.

10

AGV Veculos Guiados Automaticamente

11

5.3. Listagem do Programa


/*****************************************************************************************/
/* INATEL - INSTITUTO NACIONAL DE TELECOMUNICAES - EAT205
*/
/*
*/
/* PROJETO: AGV
*/
/* AUTOR : VANDER BRAGA, PATRICK DIRIO, JORGE LUIZ
*/
/* DEVICE: MSP430G2553 ( TEXAS INSTRUMENTS - LAUCHPAD)
*/
/* DESCRIO DO SOFTWARE: ESTE PROGRAMA CONSISTE EM UM VECULO ALTO GUIADO */
/* USANDO DOIS SENSORES PTICOS, CONVERSOR AD DA LAUCHPAD PARA INDICAR NVEL */
/* DE BATERIA, SENSORES PTICO FRONTAL PARA SEGURANA DE PESSOAS E OBJETOS AO */
/* LONGO DO TRAJETO E SENSOR PTICO LATERAL QUE PROGRAMA PARADA PARA
*/
/* ABASTECIMENTO DA LINHA DE PRODUO
*/
/*
*/
/*****************************************************************************************/
/******************************BIBLIOTECAS**********************************************/
#include <msp430g2553.h>
//biblioteca
/*****************************************************************************************/
/*****************************************************************************************/
/******************************CONSTANTES**********************************************/
//Funcoes externas para o LCD (LCD16x24B.c)
extern void InitLCD4B(void);
extern void PutStrLCD(const unsigned char *dado);
extern void PutCharLCD(unsigned char dado);
extern void PutStrXYLCD(unsigned char x, unsigned char y, const unsigned char *dado);
extern void CmdLCD(unsigned char cmd);
extern void PutIntLCD(unsigned char dado);
#define SAIDA_ON P1OUT|=SAIDA
#define SAIDA_OFF P1OUT&=~SAIDA
#define IN_AD
0x01
//Entrada AD no pino P1.0 (A0)
//Funcoes externas para o PWM MOTOR (velocidade do motor)
#define PERIODO 20000
#define SERVO 0x04
#define PINO_BOTAO 0x08

//20ms
//SERVO LIGADO NO PINO P1.2
//botao = P1.3

//Funcoes externas para o PWM DIREO (direo do carro)


#define PERIODO_1 20000
#define MINIMO 900
#define MAXIMO 1980
#define SERVO_1 0x10
#define SENSOR_DIR 0x10
#define SENSOR_ESQ 0x20

//20ms
//Ton minimo
//Ton maximo
//SERVO LIGADO NO PINO P2.4
//sensor direito = P1.4
//sensor esquerdo = P1.5

//Sensores de segurana e abastecimento


#define EMERGENCIA 0x80
#define ABASTECIMENTO 0x40

//sada em P1.7
//sada em P1.6

/****************************************************************************************/
/****************************************************************************************/
/*************************** VARIVEIS GLOBAIS LCD ***********************************/
unsigned char bat;

//varivel que recebe o nivel da bateria j convertida

/***************************************************************************************/
/***************************************************************************************/
/***********************VARIVEIS GLOBAIS PWM MOTOR*******************************/
unsigned char botao,ligado=0, liga=0;
unsigned int pwm=8000;
/**************************************************************************************/
/**************************************************************************************/
/*********************VARIVEIS GLOBAIS PWM DIREO******************************/
unsigned char SD, SE;

11

AGV Veculos Guiados Automaticamente

12

unsigned int pwm_d=1380;


/***************************************************************************************/
/*****************************************************************************************************/
/*********************VARIVEIS GLOBAIS TIMER*****************************************************/
unsigned char milisegundo=0, segundo=0;
/****************************************************************************************************/
/****************************************************************************************************/
/*****************VARIVEIS ABASTECIMENTO E EMERGNCIA***************************************/
unsigned char EME, ABA;
/***************************************************************************************************/
/*********************************FUNES*********************************************************/
void ConfigAD (void);
unsigned char LeAD (void);
/***************************************************************************************************/
/****************************FUNO PRINCIPAIS***************************************************/
void main (void)
{
WDTCTL = WDTPW + WDTHOLD;
//Desabilita o watchdog
//LCD
InitLCD4B();
PutStrXYLCD(1,1,"BATERIA\0");
PutStrXYLCD(2,1,"
");
CmdLCD(0x0C);
ConfigAD();

//Inicializa o display
//Mensagem inicial na 1a linha
//Limpa 2a linha
//Desliga o cursor
//Configura o conversor AD

//PWM MOTOR
P1REN |= PINO_BOTAO+SENSOR_DIR+SENSOR_ESQ;
P1DIR |= SERVO;
P1SEL |= SERVO;
TA0CCR0 = PERIODO-1;
TA0CCTL1 = OUTMOD_7;
TA0CTL=TASSEL_2+MC_1+ID_0;

//pull-up no botao e sensores


//configura s o p1.2(TA1) como sada (servo)
//Faz com que o P1.2 seja uma saida especial(PWM)
//Valor que ter que contar para gerar o periodo
//Inicial=1, contagem=CCR1=>0, contagem=CCR0=>0
//Clock=SMCLK, liga o timer, clock/1

//PWM DIREO
P2DIR |= SERVO_1;
P2SEL |= SERVO_1;
TA1CCR0 = PERIODO_1-1;
TA1CCTL2 = OUTMOD_7;
TA1CCR2 = pwm;
TA1CTL=TASSEL_2+MC_1+ID_0;

//configura s o P2.4(TA1) como sada (servo)


//Faz com que o P2.4 seja uma saida especial(PWM)
//Valor que ter que contar para gerar o periodo
//Inicial=1, contagem=CCR1=>0, contagem=CCR0=>0
//Ton desejado (em escala de 1us)
//Clock=SMCLK, liga o timer, clock/1

for(;;)
{
//LCD
bat = LeAD();
CmdLCD(0x8D);
PutIntLCD(bat);
PutCharLCD(0x25);
//PWM MOTOR
TA0CTL=TA0CTL&~(TAIFG);
while ((TA0CTL&TAIFG)==0);
botao=P1IN&PINO_BOTAO;
if(ligado==0 && botao==0)
{
liga = 1;
}
if(liga!=0)
{
TA0CCR1=pwm;
if(botao!=0)
{
ligado = 1;
}
}

//incio do loop infinito


//Var. bateria recebe o valor lido pelo AD
//0x80
//Imprime valor da carga da bateria no LCD
//Imprime smbolo % no LCD

//espera fim da contagem atual (sincronizar)


//le o estado do botao S2 ( P1.3)
//Se botao pressionado, movimenta o servo
//Compara boto aps ligar
//inicia movimento do eixo
//configura novo Ton
//varivel que controla liga/desliga no mesmo boto

12

AGV Veculos Guiados Automaticamente

13

if(ligado!=0 && botao==0)


{
liga = 0;
}
if(liga==0)
{
TA0CCR1=0;
milisegundo = 0;
segundo = 0;
if(botao!=0)
{
ligado = 0;
}
}

//Se botao pressionado, para o servo


//Reinicia varivel auxiliar
//Compara varivel (motor desligado)
//configura novo Ton
//Limpa contagem de tempo (milisegundo)
//Limpa contagem de tempo (segundo)
//Compara boto aps desligar
//Reinicia varivel

//PWM DIREO
SD=P1IN&SENSOR_DIR;
SE=P1IN&SENSOR_ESQ;
if(SD!=0)
{
pwm_d=MINIMO;
}

//le o estado do sensor direito ( P1.4)


//le o estado do sensor esquerdo ( P1.5)
//move carro para a direita
//limita no mnimo

if(SE!=0)
{
pwm_d=MAXIMO;
}
if((SD==0 && SE==0) || (SD!=0 && SE!=0))
{
pwm_d=1440;
}

//move carro para a esquerda


//limita no maximo
//Se SD e SE forem iguais a 0 ou a 1 simultaneamente, servo vai para posio inicial
//posio central

TA1CCR2=pwm_d;

//configura novo Ton

if(liga!=0)
{
if(PERIODO==20000)
{
milisegundo=milisegundo++;
}

//Compara se varivel auxiliar est ligada

if(milisegundo==55)
{
milisegundo = 0;
segundo = segundo++;
}

//Compara periodo do temporizador


//Carrega valor do temporizador na varivel milisegundo
//Converte milisegundo para segundo
//Zera varivel milisegundo

//EMERGENCIA E ABASTECIMENTO
EME=P1IN&EMERGENCIA;
ABA=P1IN&ABASTECIMENTO;
if(liga!=0)
{
//EMERGNCIA
if(EME!=0)
{
TA0CCR1=0;
PutStrXYLCD(2,1,"!!!EMERGENCIA!!!");
milisegundo = 0;
segundo = 0;
}
if(EME==0 && ABA==0)
{
PutStrXYLCD(2,1,"
");
}
//ABASTECIMENTO
if(ABA==0 && PERIODO==20000)
{
milisegundo=milisegundo++;

//le o estado do sensor direito ( P1.7)


//le o estado do sensor esquerdo ( P1.6)

//configura novo Ton


//Imprime no LCD
//Limpa varivel milisegundo
//Limpa varivel segundo

//Limpa LCD
//Compara periodo do temporizador
//Carrega valor do temporizador na varivel milisegundo

13

AGV Veculos Guiados Automaticamente

14

}
if(milisegundo==50)
{
milisegundo = 0;
segundo = segundo++;
CmdLCD(0xCE);
PutIntLCD(segundo);
}
if(ABA==0 && segundo==10)
{
PutStrXYLCD(2,1," AGUARDANDO ");
milisegundo = 0;
segundo = 0;
ligado = 0;
liga = 0;
}
if(ABA!=0)
{
PutStrXYLCD(2,1,"ABASTECER LINHA");
milisegundo = 0;
segundo = 0;
ligado = 0;
liga = 0;
}
}

//Converte milisegundo para segundo


//Zera varivel milisegundo
//0x80
//Imprime contagem de tempo no LCD

//Limpa 2a linha
//Limpa varivel milisegundo
//Limpa varivel segundo
//Reinicia varivel
//Reinicia varivel auxiliar

//Limpa LCD
//Limpa varivel milisegundo
//Limpa varivel segundo
//Reinicia varivel
//Reinicia varivel auxiliar

}
}
}
/*************************************************************************************************/
/*************************************************************************************************/
void ConfigAD (void)
//Funo que configura o conversor AD
{
P1SEL |= IN_AD;
//Configura P1.0 como entrada do AD
ADC10CTL0 = ADC10SR;
//Configura o AD para 50kbps de taxa
//de amostragem
ADC10CTL1 = INCH_0 + ADC10SSEL_3;
//Configura o AD para o canal 0
}
/*************************************************************************************************/
unsigned long int var;
/*************************************************************************************************/
unsigned char LeAD (void)
//Funo que le o conversor AD e converte
{
//para temperatura
unsigned int valorad;
unsigned char bateria;
ADC10CTL0 |= ADC10ON;
//Habilita o conversor AD
ADC10CTL0 &= ~ADC10IFG;
//Desliga flag que indica fim de conversao
ADC10CTL0 |= (ENC + ADC10SC);
//Habilita a converso AD
while ((ADC10CTL0&ADC10IFG)==0);
//Espera converter (ADC10IFG=1)
valorad = ADC10MEM;
//Var. bat recebe o valor lido
var = valorad;
var = var * 100;
var = var / 1023;
bateria = (unsigned char)var;
//Passa o valor lido para %
return (bateria);
}
/*************************************************************************************************/

14

AGV Veculos Guiados Automaticamente

15

5.4. Fotos do Prottipo

Foto do Prottipo montado e testado em laboratrio.

15

AGV Veculos Guiados Automaticamente

Anda mungkin juga menyukai