tcc - esteira para contagem de caixas via bluetooth

Upload: alvaro-perdigao

Post on 17-Jul-2015

514 views

Category:

Documents


0 download

TRANSCRIPT

IFMA INSTITUTO FEDERAL DE EDUCAO, CINCIA E TECNOLGIA DO MARANHO DESU DIRETORIA DE ENSINO SUPERIOR DEE DEPARTAMENTO DE ELETRO-ELETRNICA CURSO DE ENGENHARIA ELTRICA INDUSTRIAL

LVARO METON SOUSA PERDIGO

ESTEIRA PARA CONTAGEM DE CAIXAS VIA BLUETOOTH

SO LUS - MA 2012

LVARO METON SOUSA PERDIGO

ESTEIRA PARA CONTAGEM DE CAIXAS VIA BLUETOOTH

Trabalho de Concluso de Curso apresentado para obteno do grau de Engenheiro Eletricista pelo Instituo Federal de Educao, Cincia e Tecnologia do Maranho.

SO LUS - MA 2012

LVARO METON SOUSA PERDIGO

ESTEIRA PARA CONTAGEM DE CAIXAS VIA BLUETOOTH

Trabalho de Concluso de Curso submetido ao corpo docente do IFMA Instituto Federal de Educao, Cincia e Tecnologia do Maranho, como parte dos requisitos necessrios obteno do grau de Bacharel em Engenharia Eltrica Industrial.

Data da aprovao: _____ / ______ / ______________

Nota: ___________

Aprovada por:

____________________________________ Prof. Msc. Cludio Leo Torres

____________________________________ Prof. Msc. Evandro de Carvalho Gomes

____________________________________ Prof. Msc. Eliude Trovo Moraes

SO LUS - MA 2012

Dedico este trabalho de concluso de curso a minha av e me, Izabel Santana Perdigo e a minha segunda av e tambm me Maria Benedita Marinho.

AGRADECIMENTOS

Agradeo ao meu Tio e Padrinho, Airton Santana Perdigo, que sempre me deu todo o suporte para a minha educao e foi a minha inspirao. Agradeo a todos os meus tios, Ana Tereza Santana Perdigo, Maria das Graas Barros, Alvanir Santana Perdigo e lvaro Ribeiro Perdigo Neto, que sempre foram exemplos dos ensinamentos da minha av de que a educao e o respeito so as coisas mais importantes na vida uma pessoa. Agradeo aos meus pais, Adilson Santana Perdigo e Incia Madalena Bgea Sousa Perdigo, pela fora e o apoio na escolha da minha carreira. Agradeo a minha namorada, Raissy Oliveira e Costa, pela compreenso nas vsperas das provas, pelo apoio depois das provas e por me levar pra sair nos momentos que eram preciso. Agradeo a todos os meus colegas do curso, que desde o comeo sempre todos se ajudaram para se chegar at aqui.

ResumoEste trabalho tem como objetivo reproduzir em escala reduzida o processo de automao da contagem de caixas em uma esteira de uma linha produo, identificando o tamanho das caixas e armazenando em um banco de dados o total de caixas e a quantidade de cada tipo de caixa, utilizando apenas o WiiRemote, controle do console Wii da Nintendo, e linguagem orientada a objeto. No decorrer do trabalho sero mostrados os sensores e atuadores do WiiRemote que foram utilizados, todo o cdigo escrito em JScript (uma derivao do JavaScript) para fazer a interpretao das informaes enviadas via Bluetooth do controle para o computador, e o driver desenvolvido para realizar a comunicao do controle com o motor de trao da esteira. Alm dos conceitos de Programao e Eletrnica envolvidos no controle, ser mostrado tambm o processo de confeco da esteira transportadora que necessitou de conceitos da Mecnica, o que torna este trabalho completamente interdisciplinar.

Palavras-Chave: Esteira, Contagem, Orientado a objeto, WiiRemote, JScript, Banco de dados

Abstract

The goal of this work is reproduce in a reduced scale an automation of the process of counting boxes process on a treadmill of a line production, identifying the size of the boxes and store the read box in a database, the total of boxes and how much boxes of each size, using only one WiiRemote, control of Nintendo Wii console, and object-oriented language. In the course of the work will be shown all the sensors and actuators WiiRemote that were used and all the code written in JScript (a derivation of JavaScript) to do the interpretation of the information sent via Bluetooth for control to the computer. Beyond the concepts of Programming and Eletronics envolved in the control, will be show too how the treadmill was made, and the Mechanics concepts envolveds, what makes this job quite interdisciplinary.

Keywords: Treadmill, Count, Object-oriented, WiiMote, Jscipt, Database

Sumrio

1. 2.

INTRODUO................................................................................................................ 12 VISO GERAL DO PROCESSO ......................................................................................... 18 2.1 Comunicao .............................................................................................................. 18 2.2 Acionamento .............................................................................................................. 18 2.3. Leitura ....................................................................................................................... 19 2.4. Classificao............................................................................................................... 20 2.5. Armazenamento ........................................................................................................ 20

3. CONFECCO DA ESTEIRA ................................................................................................ 21 4. CONEXO DO CONTROLE COM O PC ................................................................................ 26 5. SISTEMA DE ACIONAMENTO ............................................................................................ 29 6. SISTEMA DE LEITURA........................................................................................................ 33 7. SISTEMA DE CLASSIFICAO E ARMAZENAMENTO ........................................................... 38 8. INTERFACE ....................................................................................................................... 47 CONCLUSO......................................................................................................................... 51 REFERNCIA BIBLIOGRFICA ................................................................................................ 52 ANEXOS ............................................................................................................................... 53 1. Datasheet do transistor BD135 ..................................................................................... 53 2. Datasheet do Optoacoplador 4N25............................................................................... 57 3. Script - Principal ........................................................................................................... 63 4. Script LigaDesliga ....................................................................................................... 68 5. Script - InterfaceEsteira ................................................................................................ 69 6. Fotos da Esteira ............................................................................................................ 70

FIGURASFigura 1 Humanos realizando trabalho repetitivo em linha de produo dos anos 30. ............................................................................................................................. 12 Figura 2 Linha de produo automatizada ............................................................. 13 Figura 3 Simplicidade do controle do Atari nos anos 70 ........................................ 14 Figura 4 Controle do Nintendo 64 com o sistema de RumblePack acoplado ......... 15 Figura 5 WiiRemote do Nintendo Wii, com todos os sistemas de RumblePack, Bluetooth, Cmera Infravermelha e Auto-Falante embutidos. ................................... 15 Figura 6 - PlayStation Move com o emissor de luz infravermelha ............................. 16 Figura 7 Kinect da Microsoft, com cmeras infravermelhas, microfone e projetor de luz estruturada........................................................................................................... 16 Figura 8 - Viso Geral dos sistemas que compem o processo de contagem de caixas. ....................................................................................................................... 18 Figura 9 Fluxograma do processo de contagem de caixas .................................... 19 Figura 10 Diagrama de Blocos do WiiRemote........................................................ 20 Figura 11 Dimenses das caixas a serem contadas. ............................................. 22 Figura 12 Dimenses da esteira ............................................................................. 23 Figura 13 Motor CC retirado de carro de controle remoto ...................................... 23 Figura 14 Reduo utilizada para transformar a alta rotao do motor em torque para a esteira ............................................................................................................ 23 Figura 15 Carregador de celular utilizado para suprir a energia do motor.............. 24 Figura 16 Eixo de trao da esteira ligado diretamente reduo ........................ 24 Figura 17 Sistema de correia instalado para diminuir a velocidade da esteira ....... 25 Figura 18 Esteira completa..................................................................................... 25 Figura 19 Vista Inferior da Placa do WiiRemote ..................................................... 26 Figura 20 Encontrando dispositivos ....................................................................... 27 Figura 21 Servio disponvel .................................................................................. 27 Figura 22 Solicitao de servio ............................................................................. 28 Figura 23 Conexo estabelecida ............................................................................ 28 Figura 24 GlovePIE Cdigo InterfaceEsteira ....................................................... 29 Figura 25 Cdigo de acionamento do motor no GlovePIE ..................................... 30 Figura 26 Adaptao para obteno do sinal ......................................................... 31

Figura 27 Circuito 1 de interface WiiRemote Motor Esteira ................................. 31 Figura 28 Circuito 2 de interface WiiRemote Motor Esteira ................................. 32 Figura 29 Circuito de acionamento montado no Protoboard .................................. 32 Figura 30 SensorBar .............................................................................................. 33 Figura 31 Circuito de alimentao dos leds ........................................................... 33 Figura 32 Dimenso das caixas e leds .................................................................. 34 Figura 33 Imagem dos leds infravermelhos funcionando capturada por cmera de celular ........................................................................................................................ 34 Figura 34 Cdigo no GlovePIE para emulao de teclas de acordo com a leitura de leds. .......................................................................................................................... 35 Figura 35 Leitura de caixa pequena, bloqueio da visualizao de apenas 1 led .... 35 Figura 36 Leitura de caixa grande, bloqueio da visualizao de 2 leds ................. 36 Figura 37 Interface do Unity 3D.............................................................................. 38 Figura 38 Scripts criados ........................................................................................ 39 Figura 39 Declarao de variveis do script LigaDesliga ....................................... 39 Figura 40 Condies de pressionamento de teclas para ligar e desligar a esteira. 40 Figura 41 Bibliotecas do pacote Microsoft.Net Framework importadas .................. 41 Figura 42 Declarao das variveis do script Principal .......................................... 41 Figura 43 Funes para atualizao do placar de caixas....................................... 42 Figura 44 Principal condio para execuo do script Principal............................. 42 Figura 45 Parte do cdigo do Unity 3D para iniciar o processo de leitura .............. 43 Figura 46 Leituras realizadas dentro do espao de tempo determinado pela passagem da caixa ................................................................................................... 43 Figura 47 Final do perodo para recebimento de entradas e determinao do tamanho da caixa lida................................................................................................ 44 Figura 48 Zeramento das variveis para iniciar nova contagem ............................ 44 Figura 49 Captao dos dados de tempo para elaborao do relatrio ................. 45 Figura 50 Funo para criao do arquivo .TXT .................................................... 45 Figura 51 cone do Relatrio gerado ...................................................................... 46 Figura 52 Visualizao em Bloco de Notas ............................................................ 46 Figura 53 Visualizao no Microsoft Excel ............................................................. 46 Figura 54 Interface do programa de classificao e contagem de caixas .............. 47 Figura 55 Posio Desligado.................................................................................. 48 Figura 56 Posio Ligado ....................................................................................... 48

Figura 57 Caixa Pequena classificada ................................................................... 48 Figura 58 Caixa grande classificada....................................................................... 49 Figura 59 Solicitao de Nova Contagem .............................................................. 49 Figura 60 Contagem Zerada .................................................................................. 50 Figura 61 Salvar Contagem.................................................................................... 50 Figura 62 Aviso de salvamento do arquivo............................................................. 50

TABELAS

Tabela 1 Tipos de esteiras ..................................................................................... 21 Tabela 2 - Padro de leitura das caixas grandes ...................................................... 36 Tabela 3 - Padro de leitura das caixas pequenas ................................................... 36

12

1. INTRODUO

A utilizao de esteiras em processos produtivos iniciou-se quando as produes adotaram o mtodo de linha, primeiramente evidenciado no Fordismo no incio da dcada de 20, quando os carros eram colocados em uma esteira onde passavam pelos postos de trabalho em que cada trabalhador realizava apenas uma especifica tarefa repetidamente. Esse mtodo aumentou consideravelmente a quantidade de carros

produzidos, Ford chegou a dizer que metade dos carros do mundo seriam Ford T, o modelo produzido na fbrica. Porm devido as atividades simples e repetitivas realizadas pelos empregados eram pagos pequenos salrios e subutilizada uma mo de obra com uma enorme capacidade que a do ser humano, que foi satirizado no filme de Charlie Chaplin, Tempos Modernos (EUA, 1936), (Fig. 1).

Figura 1 Humanos realizando trabalho repetitivo em linha de produo dos anos 30. Nos dias de hoje impossvel imaginar um processo que no utilize esteiras e uma produo em linha se quiser ter alta produtividade, porm essa subutilizao da mo de obra humana foi diminuda com o advento da Automao Industrial, sendo utilizada a mo de obra humana apenas em processos mais complexo que

13

mquinas ainda no so capazes de realizar. Ao contrrio do que muitos acham a Automao no veio para tirar empregos e sim melhor aplicar a capacidade do ser humano. Atualmente uma esteira automatizada tem a capacidade de classificar, etiquetar, envasar, cortar e at apertar os parafusos em uma linha de produo, atravs de sensores e atuadores que so capazes de enxergar, empurrar, detectar metais, pesar e etc (Fig. 2).

Figura 2 Linha de produo automatizada Junto com a evoluo dos processos produtivos, outra indstria que tambm evoluiu muito foi a de Games, principalmente os consoles dos vdeos-game. Os primeiros jogos interativos datam do final dos anos 1940 e inicio dos anos 1950, no muito distante da utilizao da linha de produo. Um dos exemplos de jogos dessa poca o Tennis for Two, de 1958, desenvolvido no Brookhaven National Laboratory, pelo cientista William Higinbotham onde o console na verdade era um osciloscpio e os comandos eram dados por potencimetros, que controlavam barras nas laterais da tela rebatendo um pontinho verde que se deslocava de um lado para o outro como uma bola de tnis. Com o passar do tempo muitas empresas de Games surgiram, como Nintendo, Sony, Sega e mesmo a Microsoft que uma empresa de software, tambm tem participao na indstria dos Games. Atualmente todas disputam no apenas por jogos com grficos mais impressionantes ou consoles mais

14

potentes como tambm por novos mtodos do usurio interagir com o jogo, passando de um simples apertar de botes, quer eram simples contatos eltricos, como era no Atari dos anos 70 (Fig.3), para reconhecimento de voz e movimento nos dias de hoje. Essa mudana comeou a acontecer em dezembro de 2006, quando a Nintendo revolucionou esse jeito do usurio interagir com console com o lanamento do videogame Nintendo Wii, onde a interao com o usurio feita atravs do seu controle, o WiiRemote. O controle veio equipado com uma cmera infravermelha na parte frontal com uma resoluo de 1024x768 pixels e frequncia de atualizao de 100 Hz, capaz de detectar at quatro pontos infravermelhos e se orientar no espao por eles.

Figura 3 Simplicidade do controle do Atari nos anos 70 Outro recurso do controle foram os acelermetros, sensores capazes de detectar a intensidade e o sentido de foras aplicadas, com esses sensores o controle se tornou capaz de detectar movimentos, como pular, dar um soco, ou at mesmo rebater uma bola de tnis, muito mais interativo do que simplesmente girar um potencimetro. E o melhor do controle a ausncia de fios, o que possibilita toda essa mobilidade, devido comunicao do controle se dar via Bluetooth com o console (Fig. 5). Ainda no controle pode ser encontrado um alto-falante para simular sons como o de batidas de bolas ou pequenos alarmes e tambm um sistema de vibrao, chamado RumblePack, desenvolvido pela prpria Nintendo ainda no console anterior, o Nintendo 64, s que anteriormente necessitava-se acoplar o

15

sistema ao controle com uma alimentao independente, deixando o controle muito pesado o que era um incomodo para o usurio (Fig. 4).

Figura 4 Controle do Nintendo 64 com o sistema de RumblePack acoplado

Figura 5 WiiRemote do Nintendo Wii, com todos os sistemas de RumblePack, Bluetooth, Cmera Infravermelha e Auto-Falante embutidos.

Aps o enorme sucesso do WiiRemote as outras empresas da rea de games resolveram investir nessa interatividade, que conseguiu inserir um pblico que antes no conseguia vencer a barreira da quantidade de botes em um controle. Em 2010 Sony lanou o PlayStation Move, onde uma cmera infravermelha

16

posicionada prximo sobre o console capta a movimentao do controle que possui um emissor de luz infravermelha, e tambm dotado de acelermetros o que possibilita o reconhecimento de gestos (Fig. 6).

Figura 6 - PlayStation Move com o emissor de luz infravermelha Mas no final de 2010 houve a maior revoluo dentre todos os controles, foi o lanamento do Kinect (Fig. 7), da Microsoft, um dispositivo que acompanha o vdeo-game Xbox 360. O Kinect revolucionou por que na verdade eliminou o controle da mo do usurio, posicionado prximo ao console, o dispositivo possui uma cmera infravermelha que capta a projeo de raios infravermelhos em forma de linhas (luz estruturada), emitidas pelo prprio dispositivo, que ao tocarem em qualquer objeto so deformadas, de acordo com a deformao das linhas o console interpreta as informaes e delimita a silueta do jogador reconhecendo todos os seus movimentos.

Figura 7 Kinect da Microsoft, com cmeras infravermelhas, microfone e projetor de luz estruturada.

17

baseada nessas duas evolues em paralelo, a Automao Industrial e a evoluo dos Consoles de Videogames que se baseia esse trabalho, com a necessidade de melhorar um processo produtivo e com a disponibilidade de todos esses recursos tecnolgicos nos controles atuais, que o desafio foi aceito e ao decorrer deste trabalho ser mostrada uma aplicao de contagem de caixas de acordo com o seu tamanho em uma reproduo de um processo produtivo. No Captulo 2 iremos ter uma viso geral do processo que pode ser dividido Acionamento, Leitura e Classificao & Armazenamento. O Captulo 3 mostrar todos os componentes utilizados na confeco da esteira, especificando os componentes, materiais e dimenses. No Captulo 4 ser exposto o processo de estabelecimento da comunicao entre o WiiRemote e computador utilizado passo-a-passo, especificando todos os softwares necessrios. O Acionamento ser abordado no Captulo 5, mostrando tanto o circuito de interface do controle com o motor quanto a parte do cdigo que envia o sinal para do computador para o controle. No Captulo 6 ser explicado como o ocorre o processo de Leitura do tamanho das caixas, mostrando o padro das informaes obtidas pelo sensor infravermelho que serviro para o processo de Classificao. O Captulo 7 mostrar a parte do cdigo que faz a Contagem de acordo com as informaes vindas da Leitura e Armazena em um arquivo TXT, e tambm a interface criada para a visualizao das informaes pelo usurio.

18

2. VISO GERAL DO PROCESSO

O processo de contagem de caixas pode ser dividido em cinco etapas: Comunicao, Acionamento, Leitura, Classificao & Armazenamento, como pode ser visto na figura abaixo (Fig. 8).

Figura 8 - Viso Geral dos sistemas que compem o processo de contagem de caixas. 2.1 Comunicao a funo bsica de todo o processo, o acionamento depende da comunicao para o WiiRemote receber o comando do computador, e a leitura depende da comunicao para o WiiRemote enviar os dados obtidos para o computador poder realizar a classificao da caixa e conseqentemente o armazenamento. Essa comunicao se d atravs do dispositivo Bluetooth presente no WiiRemote, no terceiro captulo ser explicado todo o processo para o estabelecimento dessa comunicao. 2.2 Acionamento Esta parte do processo consiste em acionar o motor de trao da esteira para o deslocamento das caixas em direo a coluna de leds infravermelhos onde ser efetuada a leitura, como dito anteriormente o comando vir do computador atravs do WiiRemote, para a realizao desse processo foi desenvolvido um circuito para

19

fazer a interface do controle para o motor, utilizando um optoacoplador para isolar o controle e um transistor de potncia para suprir a necessidade de corrente do motor.

Figura 9 Fluxograma do processo de contagem de caixas

2.3. Leitura Para o processo de leitura ser utilizado outro recurso do WiiRemote, que a cmera infravermelha localizada na frente do controle, que consegue visualizar at 4 pontos infravermelhos retornando Verdadeiro ou Falso de acordo com a visualizao ou impossibilidade de visualizar cada ponto, enviando essas informaes para o computador.

20

2.4 Classificao Todos os verdadeiros e falsos enviados pela visualizao dos leds sero tratados pelo software de comunicao com o controle, aps o tratamento o software ir emular comandos que sero recebidos pelo programa principal onde de acordo com as entradas ser incrementada a contagem de cada tipo de caixas. 2.5 Armazenamento A qualquer momento o usurio ir poder gerar um relatrio com a data, hora, quantidade de cada tipo de caixa e o total de caixas. Ao solicitar a gerao do relatrio ser criado um arquivo TXT, com uma formatao que possibilitar sua abertura em planilhas eletrnicas com todos os dados separados em clulas podendo ser gerados grficos mais detalhados da produo.

Figura 10 Diagrama de Blocos do WiiRemote

21

3. CONFECCO DA ESTEIRA

O projeto de uma esteira inicia-se com a determinao da carga a ser transportada, tendo como parmetros: tamanho (gro ou objeto), peso e seu material, que ir influenciar na aderncia (papelo, plstico ou vidro), o que pode influenciar inclusive nos sensores a serem utilizados. De acordo com a carga deve ser escolhido o tipo de esteira mais indicado (Tab.1).

Tabela 1 Tipos de esteiras

Esteira de Caneca Destinada a elevao de cargas, com ps de sustentao para a carga,

Esteira de Roletes Sem controle de velocidade e distncia entre as cargas, o movimento se da por acumulo.

Esteira Simples de Carga A carga se apoia diretamente na correia, mantendo a distncia de acordo com a frequncia de colocao na esteira.

22

Os parmetros para a contagem das caixas foram os seguintes: Formato cbico L = 5 cm e l = 3 cm Material: Papelo Necessitavam manter uma distncia constante uma das outras

Figura 11 Dimenses das caixas a serem contadas. O que levou a escolha de uma esteira do tipo simples, horizontal, baixa velocidade e sem a necessidade de conexes para realizar curvas.

Material Utilizado

Para base da esteira foi confeccionada uma estrutura com perfis de alumnio, fixadas com arrebites nas extremidades, com um espao de suficiente para o deslocamento da carga, para a instalao de um sistema de trao e mais uma rea para a leitura do sensor (Fig. 12). Para a trao foi escolhido um Motor Eltrico CC (Fig. 13), retirado de carro de controle remoto, juntamente com a reduo (Fig. 14). O Motor originalmente no carro era alimentado por uma tenso de 4,5V (3 pilhas AA) tendo em mdia 800 RPM com carga mxima, e demandando uma corrente de 200mA.

23

Figura 12 Dimenses da esteira Como a velocidade necessitava ser constante por um longo perodo de tempo, para no haver variaes na leitura, 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 nova alimentao um carregador de celular (Fig. 15), que tem sada de 5,7 V, prximo da tenso nominal de trabalho do motor, e capaz de fornecer uma corrente de at 800 mA, suprindo completamente as necessidades do motor.

Figura 13 Motor CC retirado de carro de controle remoto

Figura 14 Reduo utilizada para transformar a alta rotao do motor em torque para a esteira

24

Figura 15 Carregador de celular utilizado para suprir a energia do motor O material da esteira transportadora foi um grande desafio na confeco da esteira, primeiramente foi testado um elstico de 80 mm 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, era necessrio uma tenso muito grande no elstico, o que acabava

sobrecarregando o motor CC que impossibilitando 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 consequentemente aumentar a trao transmitida, fixando um cano de PVC de 15 mm 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.

Figura 16 Eixo de trao da esteira ligado diretamente reduo No primeiro teste com o eixo de trao ligado diretamente na reduo (Fig.16), 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 leitura no instante da passagem da caixa pelo sensor.

25

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 5 cm de dimetro ao eixo de trao e confeccionada uma correia com fita isolante para transmitir a trao de um eixo secundrio para a roldana instalada (Fig. 17), que por ter um dimetro muito maior do que o eixo secundrio diminuir consideravelmente o nmero de rotaes por minuto, consequentemente diminuindo a velocidade da esteira. 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.

Figura 17 Sistema de correia instalado para diminuir a velocidade da esteira Para fixao da esteira e de todos os componentes foi cortada uma folha de compensado com espessura de 1 nas dimenses de 20x30cm (Fig.18). Todos os outros sistemas (Leitura e Acionamento) tero seus componentes especificados em seus respectivos captulos, mas podem ser vistos todos j instalados na esteira na figura abaixo:

Figura 18 Esteira completa

26

4. CONEXO DO CONTROLE COM O PC

Este pode ser considerado o ponto vital de todo o processo, a conexo do WiiRemote com o computador, pois sem essa comunicao impossvel movimentar as caixas, ler os dados do sensor e enviar as informaes para o computador, para enfim ser visualizado o tamanho da caixa. A comunicao feita atravs de uma conexo Bluetooth Classe 2, que permite uma comunicao de at 10 metros que consome at 2,5 mW de potncia, o protocolo usado o Bluetooth HID (Humam Interface Device), que d suporte a comunicaes de mouse, joystick e teclado, sendo assim, o WiiRemote ser visto pelo computados dessa forma, como algum desses perifricos. A seguir podemos ver a placa do WiiRemote e a localizao do dispositivo Bluetooth (Fig. 19)

Figura 19 Vista Inferior da Placa do WiiRemote Para esta estabelecer a conexo, alm do hardware instalado no computador necessrio a instalao do software BlueSoleil, neste projeto ser utilizada a verso 8.0.338.0, apenas de demonstrao que permite a transferncia de at 2 MB de dados, mais do que o suficiente para o projeto, pois devido o protocolo utilizado os pacotes de dados so mnimos.

27

O procedimento de conexo bastante simples, o primeiro passo iniciar o BlueSoleil e solicitar uma busca de dispositivos, clicando duas vezes no crculo central da interface do programa. Enquanto estiver sendo realizada a busca mantenha os botes 1 e 2 do WiiRemote pressionados por pelo menos 5 segundos (Fig.20), ao final da busca sero exibidos todos os dispositivos que estiverem com o Bluetooth ligado ao seu redor, o controle ser exibido como um joystick.

Figura 20 Encontrando dispositivos Depois de encontrado, sero dados dois clicks no cone do joystick para serem exibidos os servios disponveis para aquele dispositivo. O cone do mouse na parte superior do programa ir ser realado (Fig. 21), indicando que aquele servio est disponvel, um dispositivo de interface humana.

Figura 21 Servio disponvel

28

O prximo passo solicitar a ligao, com um click com o boto direito em cima do dispositivo sero mostradas as opes para aquele dispositivo (Fig.22), a opo a ser escolhida Ligar Dispositivo de interface humana Bluetooth.

Figura 22 Solicitao de servio Caso o procedimento ocorra corretamente ser exibida uma linha tracejada verde entre o joystick e o crculo central (Fig. 23).

Figura 23 Conexo estabelecida

29

5. SISTEMA DE ACIONAMENTO

Aps estabelecida a comunicao, o prximo passo iniciar o deslocamento das caixas em direo ao sensor, essa tarefa se da com o acionamento do motor da esteira, que de acordo com o diagrama de blocos do Cap. 2, o seu sinal de comando vem do WiiRemote, do seu sistema de vibrao, o RumblePack. Neste projeto o acionamento feito remotamente pelo computador de controle atravs das setas para cima e para baixo do teclado. Mesmo o controle j conectado com o computador esses comandos ainda no so enviados para o controle. Para interpretar esses comandos ser utilizado mais um software, que com uma linguagem prpria e procedural, utiliza a conexo j estabelecida e faz a interface para enviar as instrues para o controle. O software utilizado para essa tarefa ser o GlovePIE, desenvolvido por Carl Kenner e distribudo gratuitamente, esse programa capaz de emular diversos perifricos como mouse, mouse 3D e teclado atravs de controles de vdeos-game, como o WiiRemote, Xbox360 Controller, Playstation 3 BDRemote.

Figura 24 GlovePIE Cdigo InterfaceEsteira Todo o cdigo para envio e recebimento de informaes do controle est mostrado na Fig.24, tanto da parte de acionamento do motor quanto de leitura do tamanho das caixas, que ser comentado no prximo captulo.

30

Figura 25 Cdigo de acionamento do motor no GlovePIE O cdigo bem simples e direto, no necessrio nem a declarao do tipo da varivel, e nem uma atribuio de bibliotecas no incio do programa, de acordo com o acontecimento do evento a varivel criada e atribudo um valor a ela. Como pode ser visto na Fig.25, a seo de acionamento possui duas condies, quando pressionada a tecla para cima do teclado (Keyboard.Up), atribuda uma condio verdadeira a varivel ativado, a funo WiiMote.Rumble que recebe como parmetro a varivel ativado, enviar um sinal para o controle para ativar o seu motor interno, criando um efeito de vibrao enquanto a varivel for verdadeira, pressionando a tecla para baixo (Keyboard.Down) do teclado, ser atribuda uma condio falsa a varivel ativado, desabilitando o motor interno do controle. Foram realizadas medies nos terminais do RumblePack durante o seu acionamento encontrado um valor de 3.2 V (Fig.26), abaixo da tenso nominal de trabalho do motor CC do carro de controle remoto, alm disso, seria invivel a alimentao do motor de trao da esteira vir do WiiRemote, pois o consumo do motor iria diminuir a vida til da das pilhas do controle, e consequentemente prejudicar o sistema de leitura.

31

Figura 26 Adaptao para obteno do sinal Devido a impossibilidade de alimentao direta do WiiRemote para o motor de trao, foi desenvolvido um driver para fazer a interface do comando entre o controle e o motor de trao. Como parmetros para desenvolvimento do driver tnhamos que: elevar a tenso em cima dos terminais do motor para um valor igual ou maior a 4,5 V e alimentar o motor e com uma fonte independente do controle. Caractersticas que poderiam ser completamente atendidas com apenas um transistor funcionando como chave, recebendo o comando do controle na base e alimentando o motor pelo carregador de celular. O transistor que mais se adequou as necessidades do projeto foi o BD135 (datasheet em anexo), foi montado ento o seguinte circuito, (Fig.27):

Figura 27 Circuito 1 de interface WiiRemote Motor Esteira Com o motor de trao ligado ao emissor do transistor e o sinal vindo do RumblePack ligado a base, o que possibilitou realizar o acionamento do motor atravs do controle. Porm por uma questo de segurana e para garantir a confiabilidade do sistema de acionamento, foi necessrio fazer o isolamento do

32

controle, que por ser um sistema digital e ter muitos componentes sensveis, melhor ficar isolado do sistema de fora. Como soluo foi desenvolvido um segundo driver (Fig.28), isolando o controle do transistor, atravs de um optoacoplador, o 4N25 (datasheet em anexo).

Figura 28 Circuito 2 de interface WiiRemote Motor Esteira Abaixo pode ser visto o circuito montado no protoboard e fixado ao lado do motor sobre a folha de compensado (Fig.29).

Figura 29 Circuito de acionamento montado no Protoboard

33

6. SISTEMA DE LEITURAO sistema de leitura foi baseado na funcionalidade bsica do console Wii, que o reconhecimento de pontos infravermelhos pelo controle WiiRemote para servir de referncia para o deslocamento do mouse na tela e conseqentemente a navegao pelos menus. Esses pontos infravermelhos so Leds Infravermelhos nas extremidades de uma barra alimentada pelo console, chamada de SensorBar (Fig.30).

Figura 30 SensorBar 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 (Fig. 32). Para alimentao dos led's tambm foi o carregador de celular com a tenso de 5,7 V, s que para os led's foi utilizado um resistor de 120 para limitar a corrente evitando a queima (Fig. 31).

Figura 31 Circuito de alimentao dos leds

34

Figura 32 Dimenso das caixas e leds A luz emitida pelos led infravermelha, no visvel a olho nu, mas com qualquer cmera, inclusive de celular, podemos visualizar se realmente o circuito est funcionando (Fig. 33).

Figura 33 Imagem dos leds infravermelhos funcionando capturada por cmera de celular Como citado no captulo anterior, o responsvel por receber essas informaes no computador o GlovePIE, na segunda parte do cdigo (Fig. 34) so dados os comandos de emulao, com uma sintaxe bem simples e direta, quando o

35

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. Nesse caso as variveis foram declaradas apenas para efeito de visualizao na interface do prprio software para confirmao da leitura.

Figura 34 Cdigo no GlovePIE para emulao de teclas de acordo com a leitura de leds. O controle no consegue distinguir qual dos dois led's visualizados 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.

Figura 35 Leitura de caixa pequena, bloqueio da visualizao de apenas 1 led

36

Figura 36 Leitura de caixa grande, bloqueio da visualizao de 2 leds Ento quando for bloqueada a visualizao de apenas um dos led's (Fig. 35), (caso da caixa pequena), ser pressionada a tecla B. Quando os dois led's tiverem a visualizao bloqueada (Fig.36), 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 (Tab.2 e Tab.3):

Tabela 2 - Padro de leitura das caixas grandes Baa Baaaaa Abaa Abbbbbbbbbbbbbbb Abbb Abbb Aba Passagem de caixas grandes Aba Abbbb Ab Aba Ab ABB Baaa Ab BA Baa Baa Baa ABB Baa

Tabela 3 - Padro de leitura das caixas pequenas B B B B B B Passagem de caixas pequenas B B B B B B B B B B B B

37

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. 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.

38

7. SISTEMA DE CLASSIFICAO E ARMAZENAMENTO

De acordo com os padres obtidos pela leitura do sensor, o objetivo agora tratar e fazer com que esses caracteres se transformem em informaes e sejam armazenados possibilitando a sua consulta futuramente. Para essa atividade foi escolhido o software Unity 3D (Fig.37), na verso 3.4.0f5, uma Game Engine 3D, com suporte a vrias linguagens de programao, como Boo (variante do Python desenvolvida pelo brasileiro Rodrigo Barreto de Oliveira), JScript (variante do JavaScript, da Microsoft) e C# (muito conhecida e tambm da Microsoft). O mtodo de trabalho com todas as linguagem atravs de scripts que so atribudos a objetos em um espao tridimensional, um jeito muito mais visual de programar, o que facilita a estruturao da criao do aplicativo. Outro fator muito importante o suporte a parte grfica para criao da interface, que dispensa a necessidade do conhecimento de bibliotecas especificas, a interface ser apresentada no prximo captulo. Neste captulo sero abordados apenas os cdigos criados.

Figura 37 Interface do Unity 3D

39

A linguagem escolhida como padro para esse projeto foi o JScript, devido a farta documentao encontrada na internet, por possuir todas as funes necessrias e ter uma sintaxe de fcil assimilao. (Fig.38): Para esse projeto foi

necessria a criao de apenas 2 scripts, como pode ser visto na interface do Unity

Figura 38 Scripts criados Script LigaDesliga

Define a textura a ser utilizada em um dos principais botes da interface, a alavanca de acionamento da esteira, dando ideia de animao. No incio do script so declaradas todas as variveis a serem utilizadas (Fig.39), tanto booleanas quanto texturas.

Figura 39 Declarao de variveis do script LigaDesliga As variveis lig e des criam slots no objeto para o recebimento dos arquivos de imagem que representaro o estado ligado e desligado da alavanca. Os arquivos primeiramente precisam ser importados para dentro do Unity, simplesmente sendo transferidos ou salvos dentro da pasta Assets dentro da pasta do projeto. A varivel acionamento do tipo booleana ser chamada pelo script leitor e ser a principal condio para liberao do processo de leitura e classificao, que s poder ocorrer quando acionamento for verdadeiro. A principal funo de todos os scripts a funo Update( ) (Fig.40), o Unity trabalha em um esquema de clico de frames, onde so executados todos os comandos dentro da funo a cada ciclo, a frequncia de ciclos inversamente

40

proporcional a quantidade de elementos carregados na interface, para essa aplicao a taxa de atualizao est em torno de 107 frames/s.

Figura 40 Condies de pressionamento de teclas para ligar e desligar a esteira As condies if(Input.GeyKeyDown(KeyCode.UpArrow)) e

if(Input.GeyKeyDown(KeyCode.UpArrow)) captam as entradas de teclado seta para cima e seta para baixo, mesmos comandos citados anteriormente para o GlovePIE, que estar sendo executado por trs recebendo os mesmos comandos e atuando no acionamento do motor. Com o pressionamento da tecla de seta para cima a varivel acionamento setada como verdadeira, o que habilitar o processo de contagem e classificao no script leitor e aplica a textura lig ao objeto que contm o script IO. O procedimento inverso acontece quando pressionada a tecla seta para baixo, sendo aplicada a textura des.

Script Principal

Este o principal script de todo o aplicativo, responsvel pelas tarefas de receber as informaes enviadas pelo GlovePIE, interpretar, definir o tamanho da caixa e armazenar no banco de dados. O principio de funcionamento bem simples, ao iniciar a passagem de uma caixa, que o GlovePIE emular o pressionamento de uma tecla, automaticamente a primeira tecla pressionada ser armazenada em um vetor e ser iniciada uma contagem, dentro de um determinado espao de tempo, todas as teclas pressionadas tambm sero armazenas nesse mesmo vetor, ao final do intervalo de tempo ser feito uma varredura no vetor, de acordo com os padres

41

obtidos nos testes de leitura, caso aparea algum caractere A, essa caixa ser classificada como grande, caso no aparea nenhum, ser classificada como pequena. Especialmente nesse script ser necessrio a importao de duas bibliotecas especificas (Fig.41), do pacote Microsoft.Net Framework que no esto no Unity e so responsveis pela funo da criao do arquivo TXT.

Figura 41 Bibliotecas do pacote Microsoft.Net Framework importadas Aps a importao das bibliotecas teremos a declarao das variveis, (Fig.42):

Figura 42 Declarao das variveis do script Principal A primeira varivel, HAB, ser uma varivel auxiliar ir variar entre verdadeiro e falso, habilitando novas entradas aps a primeira leitura e desabilitando no final da janela de leitura. Instante receber um valor em segundos, correspondente ao tempo decorrido desde o incio do programa at o instante do pressionamento da primeira tecla emulada de cada caixa. A varivel lista2 um vetor que receber em cada elemento as entradas emuladas pelo GlovePIE (A e B), de acordo com a visualizao dos leds infravermelhos.

42

Ident ser apenas um identificador da presena de caracteres A no vetor, para cada caractere A presente no vetor, a varivel incrementada, ident seja maior do que zero, a caixa ser classificada como grande. Data receber o dia e a hora no instante em que for dado o comando de gravao no banco de dados, ser do tipo string para ser adicionado tanto ao titulo do arquivo TXT gerado quando ao prprio contedo do arquivo. Caixa_grande, caixa_pequena e total_de_caixas sero as variveis incrementadas durante o processo de contagem. Como pode ser visto, algumas variveis foram declaradas simplesmente como var e outras como static var, isso acontece por que na estrutura do JScript variveis que necessitam ter seu valor lido tanto dentro da funo em que esto sendo incrementadas quanto em outras funes, necessitam ser declaradas como static.

Figura 43 Funes para atualizao do placar de caixas Logo no incio do script, na funo Update ( ), que atualiza a cada ciclo, chamada a funo GameObject.Find (Fig.43), que busca o objeto com o nome passado como parmetro, atuando no texto que ser exibido nesse objeto atravs da funo guiText.text, textos esses que sero as quantidades de caixas. Em seguida inicia-se a principal parte do script (Fig.44), que a classificao das caixas. A primeira condio para o processo iniciar que a varivel acionamento, do script anterior, esteja na condio de verdadeira, ou seja, que a esteira esteja ligada, caso contrrio a leitura no realizada.

Figura 44 Principal condio para execuo do script Principal Caso esta condio esteja satisfeita, ser liberado o recebimento para as entradas emuladas pelo GlovePIE de acordo com os leds visualizados.

43

Figura 45 Parte do cdigo do Unity 3D para iniciar o processo de leitura O programa ficar aguardando a primeira entrada (Fig.45), independente de ser o caractere A ou B, e precisar que a varivel HAB seja verdadeira. No momento em que ocorrer a leitura, a varivel instante receber automaticamente o valor em segundos referente ao tempo decorrido desde o incio do programa at aquele momento. A varivel ident ser zerada para a classificao no sofrer interferncias de classificaes anteriores e ser adicionado ao vetor o caractere que for emulado pelo GlovePIE atravs da funo Push, ao final da primeira leitura a varivel HAB desabilitada para esse processo inicial no se repetir caso novas emulaes de teclas ocorram, protegendo a varivel instante que ir definir o tempo em que a janela de tempo para recebimento das emulaes ficar em aberto.

Figura 46 Leituras realizadas dentro do espao de tempo determinado pela passagem da caixa Ao ser desabilitada na primeira parte do cdigo, a varivel HAB estando no estado falso (Fig.46), habilita o vetor para o recebimento de novos elementos, mas sem alterar nenhuma outra varivel.

44

Figura 47 Final do perodo para recebimento de entradas e determinao do tamanho da caixa lida No instante em que o tempo decorrido desde o incio do programa seja maior que o valor em segundos do instante da primeira leitura mais 3, ou seja, passados 3 segundos da abertura da janela de tempo para as entradas emuladas pelo GlovePIE, ser dado incio ao processo de classificao (Fig.47). Ser iniciada a varredura do vetor lista2, independente de quantos elementos tiverem sido adicionados ao vetor. Para cada caractere A encontrado no vetor ser incrementado de um a varivel ident, ao final da varredura ser feita uma comparao da varivel, e de acordo com o padro de leitura das caixas, caso tenha aparecido um caractere A, a caixa ser classificada como grande, incrementando a varivel caixa_grande, caso no tenha nenhum caractere A no vetor, a caixa ser classificada como pequena, incrementando a varivel caixa_pequena. Ao final da classificao o vetor limpado, com a funo Clear( ), e a janela para recebimento de uma nova leitura inicial liberada novamente. Outra atividade que est dentro da funo Update ( ) a de iniciar uma nova contagem, zerando as variveis que foram incrementadas caixa_pequena, caixa_grande e total_de_caixas mediante o pressionamento da tecla N (Fig.48).

Figura 48 Zeramento das variveis para iniciar nova contagem

45

Por ltimo temos a atividade de armazenamento dos dados, que ser realizada mediante o pressionamento da tecla S, (Fig.49).

Figura 49 Captao dos dados de tempo para elaborao do relatrio Primeiramente foi utilizada apenas a funo System.DateTime.ToString( ) para retornar o dia e a hora no momento em que a tecla era pressionada para a varivel data, que seria utilizada para nomear o arquivo TXT gerado, porm o formato das horas continha o caractere :, que no aceito em nomes de arquivos do Windows por ser um caractere especial, sendo assim foi necessrio extrair cada elemento individualmente para compor a varivel data somando a caracteres aceitos pelo Windows para nomear o TXT. Aps compor a varivel data chamada a funo WriteFile (Fig.50), que est declarada abaixo com o parmetro do local a ser salvo o arquivo gerado quando a tecla S for pressionada.

Figura 50 Funo para criao do arquivo .TXT

46

Indo no local indicado constatado que o arquivo realmente foi gerado com o nome: Relatrio, seguido da data e da hora no exato momento em que foi solicitada a gerao do relatrio (Fig.51).

Figura 51 cone do Relatrio gerado O TXT gerado pode ser aberto tanto no bloco de notas (Fig.52), onde os dados so visualizados como simples texto, quanto em um editor de planilhas, como no Microsoft Excel (Fig.53), que devido a formatao aplicada todo o contedo j automaticamente divido em clulas, podendo ser manipulado facilmente.

Figura 52 Visualizao em Bloco de Notas

Figura 53 Visualizao no Microsoft Excel

47

8. INTERFACEAps a apresentao de todos os sistemas individualmente, vamos ver como o usurio visualiza todas essas informaes e interage com o processo. Por ser um processo bem simples e industrial, a linguagem tm que ser bem visual e intuitiva, para isso, foram utilizados cones grandes e bem significativos.

Figura 54 Interface do programa de classificao e contagem de caixas Logo bem grande do lado esquerdo podemos ver a alavanca de acionamento, a parte mais importante da interface, pois caso ela esteja no estado DESLIGADO (Fig.55), a esteira permanece parada e no efetuada a contagem como citado no captulo anterior. De forma bem intuitiva foram colocados do lado os comandos que acionam a alavanca [() Seta para Cima] e [() Seta para Baixo]. O programa iniciado com a alavanca na posio DESLIGADO e a esteira parada, quando pressionada a tecla [() Seta para Cima], a textura da alavanca alterada e selecionado o estado LIGADO (Fig.56), automaticamente a esteira ligada e se houver alguma caixa ser iniciado o seu deslocamento.

48

Figura 55 Posio Desligado

Figura 56 Posio Ligado Como citado, se houver alguma caixa ela ser deslocada, indo em direo ao sistema de leitura constitudo pela coluna de leds, a passagem de uma caixa pequena ir incrementar a varivel caixa_pequena que poder ser visualizada no painel CAIXAS CLASSIFICADAS (Fig.57), do lado direito.

Figura 57 Caixa Pequena classificada

49

Caso a caixa que passar pelo sistema de leitura for seja uma caixa grande, ser incrementada a varivel caixa_grande e poder ser visualizado o incremento no mesmo painel anterior s que sob a caixa da esquerda (Fig.58), representando a caixa grande.

Figura 58 Caixa grande classificada A qualquer momento pode ser solicitada uma nova contagem, independente de ter sido salva ou no a contagem, como citado no capitulo anterior a solicitao de uma nova contagem zera as variveis caixa_grande e caixa_pequena, na interface esta bem destacado que para a solicitao de uma nova contagem necessrio o pressionamento da tecla N, (Fig.59).

Figura 59 Solicitao de Nova Contagem Aps a solicitao pode ser visualizado no painel de CLASSIFICAO DE CAIXAS (Fig.60), que as variveis realmente foram zeradas.

50

Figura 60 Contagem Zerada O outro boto presente na interface o boto SALVAR CONTAGEM (Fig.61), que pode ser acionado com o pressionamento da tecla S.

Figura 61 Salvar Contagem Quando solicitado o salvamento da contagem realizado todo o processo relatado no final do capitulo anterior, armazenando a quantidade de caixas grandes e pequenas no arquivo TXT e retornada uma mensagem indicando local e o nome do arquivo salvo (Fig.62).

Figura 62 Aviso de salvamento do arquivo

51

CONCLUSOEste trabalho foi um grande desafio, pois necessitou de conceitos de vrias reas completamente diferentes tendo que funcionar juntos e com o mesmo objetivo, um exemplo ter uma relao de polias que dependiam da velocidade de leitura de um sensor, que influenciaria diretamente no cdigo de um programa, o qual dependia das informaes enviadas pelo sensor. Foi enorme a experincia adquirida, 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 videogame, que est nas mos de milhares de pessoas, com uma quantidade enorme de tecnologia, e utilizado para fins completamente diferentes da rea de automao industrial. Outro desafio foi a quantidade de softwares utilizados, com vrias funes diferentes para se chegar a nico objetivo, mas isso justamente o que acontece na realidade, em uma linha de produo automatizada pode-se ter vrios equipamentos de fabricantes diferentes, que utilizam PLCs de marcas diferentes, enfrentando muitas vezes vrios casos de incompatibilidades, sendo necessrio adaptaes, assim como no programa de classificao devido ao padro das entradas do sensor serem apenas verdadeiro ou falso, precisando serem emuladas para serem reconhecidas por outro programa. Conclumos que apesar de desafiador, a reproduo do processo industrial de automao foi reproduzido, e propiciou a experincia de um projeto, desde o conceito, passando pela implantao e a entrega do projeto funcionando de acordo com os parmetros propostos.

52

REFERNCIA BIBLIOGRFICASILVA, Fabrcio Cardoso. Jogo Educativo A Revolta da Cabanagem e as tcnicas de gerao dos recursos grficos de seu ambiente virtual. Belm PA, Universidade Federal do Par, 2009. ALMANADA, Negreiros. Como construir uma esteira transportadora. Disponvel em: . Acesso em: 28 nov. 2011. Wikipdia, a enciclopdia livre. Fordismo. Disponvel em: Acesso em 14. fev. 2012

Wikipdia, a enciclopdia livre. Bluetooth. Disponvel em: Acesso em 27. jan. 2012

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: Acesso em: 12 nov. 2011

UNITY3D. Unity Script Reference. Acesso em 12. jan. 2012

53

ANEXOS1. Datasheet do transistor BD135

54

55

56

57

2. Datasheet do Optoacoplador 4N25

58

59

60

61

62

63

3. Script - principal1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21

. . . . . . . . . . . . . . . . . . . . .

import System.IO; import System;

var HAB = true; var instante : float; var lista2 = new Array (); var ident : int;

static var data : String; static var caixa_grande : int = 0; static var caixa_pequena : int = 0; static var total_de_caixas : int = 0;

function Update(){

//Display das informaes GameObject.Find("caixa_grande_text").guiText.text = "" + caixa_grande; GameObject.Find("caixa_pequena_text").guiText.text = "" + caixa_pequena;

if (LigaDesliga.acionamento == true){

64

22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43

. . . . . . . . . . . . . . . . . . . . . .

//Primeira leitura if ( (Input.GetKeyDown ("a") || Input.GetKeyDown ("b")) && (HAB == true) ){ instante = Time.time; ident = 0; if (Input.GetKeyDown ("a")){ lista2.Push ("a"); } if (Input.GetKeyDown ("b")){ lista2.Push ("b"); } HAB = false; }

//Leituras sequintes if (HAB == false){ if (Input.GetKeyDown ("a")){ lista2.Push ("a"); } if (Input.GetKeyDown ("b")){ lista2.Push ("b"); }

65

44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 64 65 66

. . . . . . . . . . . . . . . . . . . . . . }

}

//Classificao if ((HAB == false) && (Time.time > instante + 3)){ for (var n=0; n < lista2.length; n++){ if (lista2[n]=="a"){ ident++; } } if (ident > 0){ caixa_grande++; } if (ident == 0){ caixa_pequena++; } lista2.Clear(); HAB = true; }

//Iniciar nova contagem if (Input.GetKey(KeyCode.N)){

66

67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88

. . . . . . . . . . . . . . . . . . . . . . } }

principal.caixa_grande = 0; principal.caixa_pequena = 0; principal.total_de_caixas = 0;

//Salvar a contagem if (Input.GetKey(KeyCode.S)){ var dia = System.DateTime.Now.Day.ToString(); var mes = System.DateTime.Now.Month.ToString(); var ano = System.DateTime.Now.Year.ToString(); var hora = System.DateTime.Now.Hour.ToString(); var min = System.DateTime.Now.Minute.ToString(); var seg = System.DateTime.Now.Second.ToString(); principal.data = dia+"-"+mes+"-"+ano+" "+hora+"h"+min+"m"+seg+"s";

WriteFile("C:/Relatrio "+principal.data+".txt"); }

function WriteFile (filepathIncludingFileName : String){

67

89 90 91 92 93 94 95 96 97 98 99

. . . . . . . . . . .

var sw : StreamWriter = new StreamWriter (filepathIncludingFileName); sw.WriteLine("---------------------------------------------------"); sw.WriteLine("Relatrio de Caixas Produzidas"); sw.WriteLine(principal.data); sw.WriteLine("Quantidade de caixas grande: ;"+principal.caixa_grande); sw.WriteLine("Quantidade de caixas pequenas: ;"+principal.caixa_pequena); sw.WriteLine("Quantidade Total de Caixas: ;"+principal.total_de_caixas); sw.WriteLine("---------------------------------------------------"); sw.Flush(); sw.Close(); }

68

4. Script LigaDesliga 1 2 3 4 5 6 7 8 9 . . . . . . . . . function Update(){ if (Input.GetKeyDown (KeyCode.UpArrow)){ LigaDesliga.acionamento = true; renderer.material.mainTexture = des; Debug.Log ("LIGADO"); } if (Input.GetKeyDown (KeyCode.DownArrow)){ LigaDesliga.acionamento = false; renderer.material.mainTexture = lig; Debug.Log ("DESLIGADO"); } } static var acionamento = false; var lig : Texture; var des : Texture;

10 . 11 . 12 . 13 . 14 . 15 . 16 . 17 .

69

5. Script - InterfaceEsteira 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 . . . . . . . . . . . . . . . . . } WiiMote.Rumble = var.ativado } if (Keyboard.Down){ var.ativado = False if (Keyboard.Up){ var.ativado = True // Acioamento A = !(WiiMote.dot1vis) B = !(WiiMote.dot2vis) var.A = WiiMote.dot1vis var.B = WiiMote.dot2vis // Leitura

70

6. Fotos da Esteira

VISO GERAL

DETALHE DA ESTEIRA