Equipe:
1. Jorge Luiz da Silva Jnior
n 48
n 49
n 67
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.
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.
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.
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.
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
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
5. Anexos
5.1. Esquema Eltrico
10
5.2. Fluxograma
10
11
//20ms
//SERVO LIGADO NO PINO P1.2
//botao = P1.3
//20ms
//Ton minimo
//Ton maximo
//SERVO LIGADO NO PINO P2.4
//sensor direito = P1.4
//sensor esquerdo = P1.5
//sada em P1.7
//sada em P1.6
/****************************************************************************************/
/****************************************************************************************/
/*************************** VARIVEIS GLOBAIS LCD ***********************************/
unsigned char bat;
/***************************************************************************************/
/***************************************************************************************/
/***********************VARIVEIS GLOBAIS PWM MOTOR*******************************/
unsigned char botao,ligado=0, liga=0;
unsigned int pwm=8000;
/**************************************************************************************/
/**************************************************************************************/
/*********************VARIVEIS GLOBAIS PWM DIREO******************************/
unsigned char SD, SE;
11
12
//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;
//PWM DIREO
P2DIR |= SERVO_1;
P2SEL |= SERVO_1;
TA1CCR0 = PERIODO_1-1;
TA1CCTL2 = OUTMOD_7;
TA1CCR2 = pwm;
TA1CTL=TASSEL_2+MC_1+ID_0;
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;
}
}
12
13
//PWM DIREO
SD=P1IN&SENSOR_DIR;
SE=P1IN&SENSOR_ESQ;
if(SD!=0)
{
pwm_d=MINIMO;
}
if(SE!=0)
{
pwm_d=MAXIMO;
}
if((SD==0 && SE==0) || (SD!=0 && SE!=0))
{
pwm_d=1440;
}
TA1CCR2=pwm_d;
if(liga!=0)
{
if(PERIODO==20000)
{
milisegundo=milisegundo++;
}
if(milisegundo==55)
{
milisegundo = 0;
segundo = segundo++;
}
//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++;
//Limpa LCD
//Compara periodo do temporizador
//Carrega valor do temporizador na varivel milisegundo
13
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;
}
}
//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
15
15