Você está na página 1de 24

INSTITUTO FEDERAL DE EDUCAO, CIENCIA E TECNOLOGIA DO MARANHO DIRETORIA DE ENSINO SUPERIOR DEPARTAMENTO DE ELETRO-ELETRONICA CURSO DE ENGENHARIA ELTRICA INDUSTRIAL

DISCIPLINA: INFORMTICA INDUSTRIAL PROF: CLADIO LEO TORRES

PROJETO: ESTEIRA CLASSIFICADORA DE CAIXAS

Alexandre Rosa Carvalho EE0711002-21 lvaro Meton Sousa Perdigo EE0711003-21

SO LUS - MA 2011

ALEXANDRE ROSA CARVALHO LVARO METON SOUSA PERDIGO

PROJETO: ESTEIRA CLASSIFICADORA DE CAIXAS

Relatrio referente ao Projeto da Disciplina de Informtica Industrial do Curso de Engenharia Eltrica Industrial do Instituto Federal de Educao, Cincia e Tecnologia do Maranho, IFMA, com intuito de obter nota para aprovao na disciplina.

So Lus-MA 2011

Resumo

Este relatrio apresentado disciplina de Informtica Industrial aborda o projeto de uma esteira classificadora de caixas. Ele mostra os materiais utilizados para uma montagem em menor escala do processo e detalha os procedimentos tomados por um programa desenvolvido em uma linguagem de programao orientada a objetos. Este projeto consiste em passar caixas por uma esteira para que estas possam ser classificadas em dois tamanhos, pequena ou grande. Ele iniciado pelo usurio indicando a quantidade de caixas a serem contadas, as caixas passam pela esteira e depois o programa retorna quantas dessas caixas so grandes e quantas so pequenas. Para realizar esta tarefa, ser utilizado um sensor infravermelho do controle do vdeo-game Wii da Nintendo, o WiiMote, e como visto anteriormente, um cdigo desenvolvido em uma linguagem de programao orientada a objetos. Aps o trmino da classificao, os dados referentes ao processo recm executado sero salvos em um banco de dados, para que estes possam ser visualizados ou manipulados futuramente caso o usurio tenha necessidade.

Palavras-Chave: Esteira, Classificao, Orientado a objeto, WiiMote, Banco de dados

Abstract

This report presented to the discipline of Industrial Informatics focuses on the design of a classifier belt boxes. It shows the materials used for mounting on a smaller scale of the process and details the procedures taken by a program developed in a programming language object-oriented. This project is to move boxes onto a conveyor so that they can be classified in two sizes, small or large. It is initiated by the user indicating the number of boxes to be counted, the boxes go through the mat and then the program returns how many of these boxes are large and many are small. To accomplish this, an infrared sensor will be used to control video game Nintendo Wii, Wiimote, and as seen above, a code developed in a programming language object-oriented. After the classification, the data for the newly implemented process will be saved in a database, so that they can be viewed or manipulated in the future if the user needs. Keywords: Track, Classification, Object Oriented, WiiMote, Database

Sumrio

1. INTRODUO ...................................................................................................... 6 2. VISO GERAL DO PROCESSO .......................................................................... 7 2.1. Deslocamento ................................................................................................... 7 2.2. Leitura ............................................................................................................... 8 2.3 Classificao e Armazenamento ........................................................................ 8 3. CONFECCO DA ESTEIRA ................................................................................. 9 4. SISTEMA DE LEITURA ......................................................................................... 12 5. CLASSIFICAO E ARMAZENAMENTO ............................................................. 17 CONCLUSO ............................................................................................................ 23 REFERNCIA BIBLIOGRFICA ............................................................................... 24

1. INTRODUO
Atualmente na indstria muitos processos necessitam de automao, e a base para a automao de um processo a Informtica Industrial, que consiste em aplicar tcnicas da informtica nos processos produtivos para retirar o homem de atividades repetitivas e cansativas para coloc-lo em atividades pensantes de anlise e tomada de deciso. Algumas das tcnicas da informtica largamente utilizadas em processos industriais so as linguagens orientadas a objeto e os bancos de dados. As linguagens orientadas a objeto se tornaram praticamente padro devido a sua facilidade de reutilizao, que diminui bastante o custo de desenvolvimento e a agregao de cdigo, que pode expandir e muito a funcionalidade de um programa. J os bancos de dados so vitais para um processo produtivo, pois sendo bem projetados, qualquer informao de qualquer produto produzido a anos pode ser obtida em questo de minutos, a produo de meses pode ser resumida em um relatrio em segundos. Conhecendo esses conceitos e tendo como desafio proposto pelo professor a criao de um processo em que variveis tinham que ser lidas por um sensor e guardadas em um bando de dados para uma posterior verificao foi escolhido um processo de classificao de caixas por tamanhos atravs de dados vindos de um sensor infravermelho, que deveriam ser analisados e guardados em um banco de dados. No Captulo 2 teremos uma viso geral do processo, que pode ser resumido em: Deslocamento, Leitura e Classificao e Armazenamento da Informao. O Captulo 3 mostrar todos os passos e materiais para a confeco da Esteira de Deslocamento. No Captulo 4 ser detalhado o processo de leitura, os dados obtidos pelo sensor e quais os parmetros adotados para a classificao de uma caixa em grande ou pequena Por fim, no captulo 5 ser exposto o cdigo do Programa Orientado a Objeto que far a interpretao dos dados vindos do sensor e o armazenamento no Banco de Dados.

2. VISO GERAL DO PROCESSO


O processo de classificao de caixas pode ser dividido em trs etapas: Deslocamento, Classificao e Armazenamento da Informao.

Figura 1 Viso Geral

2.1. Deslocamento Em qualquer processo produtivo que se tenham vrias atividades necessrio com que se faa o produto se deslocar por essas atividades, pode ser um envasamento, uma lavagem, secagem, montagem, pintura e no nosso caso leitura para classificao. Para efetuar a leitura era necessrio que as caixas passassem com uma velocidade constante e baixa na frente dos Leds para que pudesse ser identificado quando eles estavam encobertos. Foram feitos vrios testes, tanto com trao direta por engrenagens ao eixo de rolamento da esteira quanto transmisso da fora por correia. Que foi o mtodo mais adequado. Os materiais e o processo de montagem ser completamente apresentado no prximo captulo.

2.2. Leitura Para conseguir identificar o tipo de caixa foi utilizada a cmera infravermelha presente no controle do Nintendo Wii, o WiiMote, juntamente com o software GlovePIE, desenvolvido por Carl Kenner, que um software completamente gratuito que utiliza uma linguagem no linear com funes prprias e consegue emular joysticks, mouse ou teclado atravs dos recebido do WiiMote por uma conexo Bluetooth. No Captulo 4 ser mostrado tanto as especificaes para a montagem da coluna de leds que servir de referncia para o controle, quando o cdigo que foi desenvolvido no GlovoPIE para emular em teclas os sinais captados pelo controle vindos desses leds e o software utilizado para fazer a comunicao via Bluetooth com o controle do Nintendo Wii. 2.3 Classificao e Armazenamento Nesse ponto do processo que sero aplicados todos os conhecimentos adquiridos na disciplina de Informtica Industrial, que ser a Programao Orientada a Objeto, que nesse caso foi aplicado linguagem C++, para a interpretao dos dados vindos dos sensores, que de acordo com os padres encontrados ir classificar os tipos de caixas e ir armazenar em um arquivo .TXT, formatado de modo que possa ser aberto no Microsoft Excel tendo todas as informaes organizadas em clulas. No Captulo 5 ser exposto todo o cdigo feito em C++ para a interpretao dos padres obtidos na leitura dos sensores para cada tipo de caixa e a formatao necessria para poder abrir o arquivo .TXT gerado, no Excel.

3. CONFECCO DA ESTEIRA
Material Utilizado

Para a confeco da esteira foram feitos e testados vrios projetos at se chegar ao modelo final. Como trao foi escolhido um Motor Eltrico CC retirado de carrinho de controle remoto, juntamente com a reduo e os eixos que j vieram no carrinho. O Motor alimentado por 4,5V (3 pilhas AA), tem em mdia 7000 rpm com carga mxima, e demanda uma corrente de 70mA.

Figura 2 Motor CC com reduo

Como a velocidade necessitava ser constante por um longo perodo de tempo, seria invivel a utilizao de pilhas para a alimentao do motor, pois iria haver a variao da velocidade de acordo com o descarregamento natural das pilhas. Ento foi definida como alimentao para o motor a porta USB do computador de armazenamento, que possui uma tenso constante de 5V e consegue suprir uma corrente de 500mA por porta, o que atende perfeitamente ao caso.

Figura 3 Identificao dos cabos USB

10

Foi montada uma estrutura de cantoneiras de alumnio fixadas com arrebites nas extremidades com as seguintes dimenses:

Figura 4 Dimenses da estrutura de alumnio

O material da esteira transportadora foi um grande desafio na confeco da esteira, primeiramente foi testado um elstico de 80mm de largura, porm a relao Tenso X Aderncia no foi satisfatria, para se obter uma aderncia suficiente entre o elstico e o eixo do motor para se conseguir fazer a transmisso da trao para movimentar o elstico era necessrio uma tenso muito grande no elstico, o que acabava sobrecarregando o motor DC que no dava nem a partida. Para a soluo do problema foram tomadas duas medidas, primeiro o aumento do dimetro do eixo do motor para aumentar a rea de contato com a esteira e conseqentemente aumentar a trao transmitida, fixando um cano de PVC de 15mm junto ao eixo e a troca do material da esteira, que foi trocado de elstico por um material plstico, que precisa de menos tenso para obter o mesmo nvel de aderncia. No primeiro teste com o eixo de trao ligado diretamente na reduo a velocidade de deslocamento da caixa no foi satisfatria, pois a velocidade da esteira estava muito alta, impossibilitando tanto a estabilidade da caixa sobre a esteira quanto a leitura no instante da passagem da caixa pelo sensor.

11

Figura 5 Moto-redutor Para reduzir ainda mais a velocidade da esteira seria necessrio modificar o tamanho das engrenagens da reduo, porm como no dispnhamos de outras engrenagens foi decido modificar o sistema de transmisso de trao. Foi acoplada uma roldana de dimetro 5 cm ao eixo de trao e confeccionada uma correia com fita isolante para transmitir a trao de um eixo secundrio para a roldana instalada que por ter um dimetro muito maior do que o eixo secundrio diminuir bastante o nmero de rotaes por minuto,

conseqentemente diminuindo a velocidade da esteira.

Figura 6 Sistema de Correa

Com a alterao feita foi obtida uma velocidade satisfatria, que possibilitou a estabilidade da caixa sobre a esteira e tempo suficiente de passagem no sensor para a leitura correta.

12

4. SISTEMA DE LEITURA
Devido a grande variedades de sensores presentes no controle do vdeogame Nintendo Wii que ele foi escolhido como base para o sistema de classificao das caixas. Alm de trs acelermetros, sistema de vibrao e alto-falante, ele possui uma cmera infra-vermelha na parte frontal, com uma resoluo de 1024x768 pixels e taxa de atualizao de 100Hz que consegue detectar at 4 pontos infravermelhos. Os leds que serviro de referncia para o controle foram fixados em um palito de picol com o espaamento definido de acordo com o tamanho das caixas a serem classificadas. Para alimentao dos leds tambm foi utilizada outra porta USB do computador, s que para os leds foi utilizado um resistor de 120 para limitar a corrente para no ocorrer a queima.

Figura 8 Dimenses das caixas e leds

A luz emitida pelos led infra-vermelha, no visvel a olho nu, mas com qualquer cmera, inclusive de celular, podemos visualizar se realmente o circuito est funcionando.

13

Figura 9 Imagem capturada por cmera de celular

Figura 10 Sistema de leitura

Todas as informaes captadas pelo sensor so enviadas para o computador via Bluetooth. O computador reconhece o controle como um HID (Human Interface Device), que um joystick comum. Para reconhecer o dispositivo necessria a utilizao de um software de gerenciamento de dispositivos Bluetooth, para esse trabalho foi utilizado o BlueSoleil 8.0 na verso para teste, que permite a troca de at 2Mb de dados, mais do que o suficiente para a aplicao, pois os dados enviados pelo controle so muito pequenos. Para poder tratar os dados recebidos pelo sensor e aplic-los de acordo com a nossa necessidade necessrio outro software, o GloviePIE, que possui uma linguagem prpria no linear. A linguagem utilizada pelo software baseada em eventos, independente da ordem em que o programa escrito, os eventos acontecem de acordo o pressionamento dos botes no controle.

14

O GlovePIE um emulador capaz de simular teclado, mouse, joystick, mouse 3D e outros perifricos apenas interpretando os dados vindos do controle WiiMote, justamente a funo que utilizada para esse projeto.

Figura 11 Interface GlovePIE

O cdigo muito simples e ser comentado a seguir: var.A = WiiMote.dot2vis var.B = WiiMote.dot1vis

Na primeira parte so declaradas as variveis para poderem ser verificadas no prprio programa e atribudo a elas a funo de visibilidade dos leds, que retornam um valor True se o led estiver visvel e False se o led no estiver visvel.

A = !(WiiMote.dot1vis) B = !(WiiMote.dot2vis)

Na segunda parte so dados os comandos de emulao, com uma sintaxe bem simples e direta o comando simples, quando o segundo led no estiver visvel ser pressionada a tecla B do teclado e quando o primeiro led no estiver visvel ser pressionada a tecla A do teclado, resultando em uma lgica inversa. O controle no consegue distinguir qual dos dois leds vistos o primeiro ou o segundo, por default quando um led deixa de estar visvel, automaticamente ele considerado como o segundo led, e quando o prximo led deixar de estar visvel considerado o primeiro.

15

Ento quando for bloqueada a visualizao de apenas um dos leds, (caso da caixa pequena), ser pressionada a tecla B. Quando os dois leds tiverem a visualizao bloqueada ser pressionada a tecla A. Como teste foi utilizado o Microsoft Word 2010 para verificar os padres criados pela emulao do teclado, obtendo-se o seguinte resultado:

Passagem de Caixa Pequena Bbbbbb Bbbbbbb bbbbbb bbbbbbbbbb bbbbbb bbbb bbbbbbb bbbbbbbb bbbbbb bbbbbbb bbbbb

Passagem de Caixa Grande Baaaa Abbbbb Baaaaa Baaaaaa Baaaaa Baaaaa Baaaaaaa Abbbbb Baaaaaa Baaaaaa Baaaaa

Figura 12 Padres da emulao de teclado

Durante a passagem da caixa pelo sensor a emulao do teclado ocorre vrias vezes. Pode ser observado que na passagem da caixa pequena, onde bloqueada apenas a viso de um dos leds, o padro so apenas teclas B, j na passagem da caixa grande, onde os dois leds so bloqueados, apresentam-se dois tipos de entrada, mas seguindo um padro de aparecer sempre a tecla A, como explicado anteriormente, a linguagem utilizada pelo GlovePIE no linear, ento o programa executa as duas aes aleatoriamente, j que as duas esto acontecendo.

16

Tendo os dois padres definidos o prximo passo o tratamento dessas informaes de entrada para a classificao e armazenamento, que sero detalhados no prximo captulo.

17

5. CLASSIFICAO E ARMAZENAMENTO
De acordo com os padres obtidos pela leitura do sensor, o objetivo agora era tratar e fazer com que esses caracteres se transformassem em informaes e fossem armazenadas possibilitando a sua consulta futuramente. Para cumprir tal objetivo foi desenvolvido um software em uma Linguagem Orientada a Objeto, no caso C++, utilizando o CodeBlocks, que salva todas as informaes tratadas em um arquivo .TXT formato de tal maneira que aberto no Microsoft Excel, consegue exibir todos os dados separadamente nas clulas. Todo o cdigo ser mostrado e comentado abaixo: #include <iostream> #include <fstream> #include <time.h> #include <conio.h> #include <stdio.h> using namespace std;

Essas

foram todas

as

bibliotecas

que foram necessrias

para

funcionamento do programa, com ateno para a namespace, que fundamental para o processo de armazenamento no banco de dados. Void wait ( int seconds ){ clock_t endwait; endwait = clock () + seconds * CLOCKS_PER_SEC ; while (clock() < endwait) {} }

A criao da funo WAIT necessria para limitar a entrada de caracteres durante a leitura do sensor, pois como visto no padro de leitura a quantidade de caracteres no momento da leitura no constante, constante apenas o caractere, A ou B.

18

main(){ int quant; ofstream myfile; time_t rawtime; struct tm * timeinfo; char ch, ch1, ch2, ch3, ch4, chs;

No incio do programa principal feita a declarao das variveis: quant - receber a quantidade de caixas a serem lidas myfile ser o arquivo .TXT de armazenamento ch1, ch2, ch3, ch4 sero os caracteres de amostragem cout<<\n Programa desenvolvido para contagem de caixas; cout<<\n em uma linha de produo por meio do controle WiiMote;

Primeira interface com o usurio, para informar a funo do programa a ser utilizado. For(;;){ int quantg = 0, quantp = 0; time (&rawtime); timeinfo = localtime(&rawtime); myfile.open (caixas.txt,ios::app); cout << \n\n Quantidade de caixas para classificar:; cin >> quant;

O corpo do cdigo inicia-se com um lao FOR infinito, que s interrompido aps o processo da leitura e se o usurio no quiser executar mais uma nova contagem. No incio do lao perguntado ao usurio a quantidade de caixas a serem classificadas, como se ele tivesse recebido um estoque de caixas apenas com a informao da quantidade total, mas sem a especificao da quantidade de cada tipo de caixa. E so criadas mais duas variveis:

19

quantg receber a quantidade de caixas grandes quantp receber a quantidade de caixas pequenas

// primeira leitura (para fugir do caso especial) cout << \n Tamanho da caixa:; ch1 = getche(); ch2 = getche(); ch3 = getche(); ch4 = getche();

Independente da quantidade de caixas, a primeira leitura tem que ser fora do lao de leitura que depende da quantidade de caixas, pois como visto no padro de leitura, na leitura de uma caixa grande pode tanto comear com B e ter todos os outros caracteres A (Baaaaa), quanto comear com A e ter todos os outros caracteres B (Abbbbb), sendo assim, todos os caracteres precisam ser analisados para conseguir classificar a caixa lida. If((ch1 == b)&&(ch2 == b)&&(ch3 == b)){ quantp++; cout << Caixa pequena; wait(3); } if((ch1 != b)or(ch2 != b)or(ch3 != b)){ quantg++; cout << Caixa grande; wait(3); }

Essas so as condies de classificao, se os trs primeiros caracteres da amostra forem B, a caixa considerada uma caixa pequena, incrementada a varivel quantp. J se aparecer algum A, a caixa ser considerada uma caixa grande e a varivel quantg ser incrementada.

20

For (int i = 1; i <= quant-1; i++){ cout << \n Tamanho da caixa:; ch1 = getche(); ch2 = getche(); ch3 = getche(); ch4 = getche();

Aps a primeira leitura inicia-se o lao para leitura das prximas caixas, tendo como parmetro quant-1, que uma leitura a menos do que a quantidade de caixas, pois j foi feita uma. If((ch2 == b)&&(ch3 == b)&&(ch4 == b)){ quantp++; cout << Caixa pequena; wait(3); } if((ch2 != b)or(ch3 != b)or(ch4 != b )){ quantg++; cout << Caixa grande; wait(3); } }

As condies de classificao dentro do loop so um pouco diferentes. Durante os testes verificou-se que sempre aps a leitura de uma caixa remanescia o ltimo caractere para a classificao da prxima caixa, o que causa um erro. Para contornar esse rudo na classificao, os caracteres utilizados comeam a partir do segundo e seguindo a mesma lgica, se todos os caracteres forem B a caixa classificada como pequena e se houver pelo menos um caractere A, ser classificada como uma caixa grande. Aps o processo de classificao os dados sero armazenados, como cabealho do arquivo gerado so informados a dada e a hora da leitura, para

21

facilitarem a pesquisa em uma futura verificao, como se fosse um lote. E na seqncia a quantidade total de caixas grandes e pequenas. Cout << \n\nData/hora: << asctime(timeinfo); cout << Quantidade total de caixas: << quant << \n; cout << Quantidade de caixas grandes: << quantg << \n; cout << Quantidade de caixas pequenas: << quantp << \n; cout << ----------------------------------------------\n;

A primeira sada apenas para a interface com o usurio, utilizando a funo cout, para a gravao do arquivo utilizada a funo myfile.

Myfile << Data/hora: << asctime(timeinfo); myfile << Quantidade total de caixas:; << quant << \n; myfile << Quantidade de caixas grandes:; << quantg << \n; myfile << Quantidade de caixas pequenas:; << quantp << \n; myfile << ----------------------------------------------\n; myfile.close();

Como pode ser visto no cdigo, no final do texto que informa o tipo de caixa utilizado o ; ainda dentro da string, essa pontuao que servir para o Excel para formatar os dados separando em clulas. No final do armazenamento perguntado ao usurio se ele deseja fazer uma nova contagem, se o usurio responder que no, o loop encerrado e o aplicativo de contagem encerrado. Cout << \n Deseja fazer outra contagem?(s/n) \n; ch = getche(); chs = getche(); if (chs == n)break; } }

22

Figura 13 Arquivo gerado sendo aberto no Bloco de notas

Figura 14 Arquivo gerado sendo aberto no Microsoft Excel

23

CONCLUSO
Para a realizao deste trabalho foram necessrias as aplicaes de conceitos no s da Informtica, mas como tambm da Fsica e da Mecnica, pois a informtica uma matria multidisciplinar, seu objetivo otimizar qualquer processo de uma forma inteligente. Foi enorme a experincia adquirida com a execuo desse trabalho, pois mesmo em uma escala muito menor, vrios problemas presentes em um processo industrial puderam ser vividos, desde a adaptao do sistema aos parmetros do produto a ser produzido quanto necessidade da aplicao de novas tecnologias, como foi a utilizao de um controle de vdeo-game. Outro desafio foi a quantidade de softwares utilizados, com vrias funes diferentes mas para chegar a nico objetivo, mas isso justamente o que acontece na realidade, enfrentando muitas vezes vrios casos de incompatibilidades, sendo necessrio adaptaes, assim como no programa de classificao devido ao tipo de entrada do sensor. Conclumos que apesar de desafiador o problema proposto pelo professor, todos os requisitos foram atendidos e todos os conceitos a serem passados foram assimilados.

24

REFERNCIA BIBLIOGRFICA
ALMANADA, Negreiros. Como construir uma esteira transportadora. Disponvel em: <http://www.comofazertudo.com.br/casa-e-jardim/como-construir-uma-esteira-

transportadora>. Acesso em: 28 nov. 2011.

CEBILDS. Projeto Esteira Seletora.avi. Disponvel em: < http://www.youtube.com/watch?v=HDgVJQiJpcc >. Acesso em 23 nov. 2011 KENNER, Carl. Documentation - GlovePIE.doc. Disponvel em: <http://glovepie.org/> Acesso em: 12 nov. 2011

SOULI. Juan. C++ Language Tutorial. Disponvel em: <http://www.cplusplus.com/files/tutorial.pdf>. Acesso em 12 de Nov. de 2011.