Está en la página 1de 72

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

RSO 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. Cladio Leo

____________________________________ Prof. Evandro Gomes

____________________________________ Prof. Eliude Trovo

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 Benedita Maria 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 importante 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.

Resumo
Este 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 um 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, WiiMote, JScript, Banco de dados

Abstract

This work aims to reproduce in a reduced scale an automation of the process of counting boxes on a treadmill of a line production, identifying the size of the boxes and stored 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. INTRODUO .................................................................................................... 12 2. 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 .......................................................................................................... 49 CONCLUSO ............................................................................................................ 53 REFERNCIA BIBLIOGRFICA ............................................................................... 54 ANEXOS ................................................................................................................... 55 1. Datasheat do tranistor BD135 ............................................................................ 55 2. Datasheet do Opto-acoplador 4N25................................................................... 59 3. Script - principal ................................................................................................ 65 4. Script LigaDesliga ........................................................................................... 70 5. Script - InterfaceEsteira...................................................................................... 71 6. Fotos da Esteira ................................................................................................. 72

FIGURAS
Figura 1 Linha de produo nos anos 30 ............................................................... 12 Figura 2 Linha de produo automatizada ............................................................. 13 Figura 3 - Controle do Atari ....................................................................................... 14 Figura 4 WiiMote do Nintendo Wii .......................................................................... 15 Figura 5 - PlayStation Move ...................................................................................... 15 Figura 6 - Kinect ........................................................................................................ 16 Figura 7 - Viso Geral ............................................................................................... 18 Figura 8 Fluxograma do processo .......................................................................... 19 Figura 9 Diagrama de Blocos das trocas de informao ........................................ 20 Figura 10 Dimenses da esteira ............................................................................. 22 Figura 11 Motor CC ................................................................................................ 23 Figura 12 Reduo ................................................................................................. 23 Figura 13 Carregador de celular ............................................................................. 23 Figura 14 Sistema de trao direta ........................................................................ 24 Figura 15 Sistema de correia ................................................................................. 25 Figura 16 - Esteira ..................................................................................................... 25 Figura 17 Vista Inferior da Placa do WiiMote ......................................................... 26 Figura 18 Encontrando dispositivos ....................................................................... 27 Figura 19 Servio disponvel .................................................................................. 27 Figura 20 Solicitao de servio ............................................................................. 28 Figura 21 Conexo estabelecida ............................................................................ 28 Figura 22 GlovePIE Cdigo InterfaceEsteira ....................................................... 29 Figura 23 Circuito 1 de interface WiiRemote Motor Esteira ................................. 31 Figura 24 Circuito 2 de interface WiiRemote Motor Esteira ................................. 32 Figura 25 Circuito de acionamento ......................................................................... 32 Figura 26 SensorBar .............................................................................................. 33 Figura 27 Circuito de alimentao dos leds ........................................................... 33 Figura 28 Dimenso das caixas e leds .................................................................. 34 Figura 29 Imagem capturada por cmera de celular .............................................. 34 Figura 30 Leitura de caixa pequena ....................................................................... 35 Figura 31 Leitura de caixa grande .......................................................................... 36

Figura 32 Unity 3D.................................................................................................. 38 Figura 33 Scripts criados ........................................................................................ 39 Figura 34 cone do Relatrio gerado ...................................................................... 47 Figura 35 Visualizao em Bloco de Notas ............................................................ 47 Figura 36 Visualizao no Microsoft Excel ............................................................. 48 Figura 37 Interface ................................................................................................. 49 Figura 38 Posio Desligado.................................................................................. 50 Figura 39 Posio Ligado ....................................................................................... 50 Figura 40 Caixa Pequena classificada ................................................................... 50 Figura 41 Solicitao de Nova Contagem .............................................................. 51 Figura 42 Contagem Zerada .................................................................................. 52 Figura 43 Salvar Contagem.................................................................................... 52 Figura 44 Aviso de salvamento do arquivo............................................................. 52

TABELAS

Tabela 1 Tipos de esteiras ..................................................................................... 21 Tabela 2 Especificaes da carga transportada ..................................................... 22 Tabela 3 Correntes de acionamento ...................................................................... 31 Tabela 4 Padro de leitura das caixas grandes ..................................................... 36 Tabela 5 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 aumento 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-deobra com uma enorme capacidade que a do ser humano, que foi satirizado no filme de Charlie Chaplin, Tempos Modernos (EUA, 1936).

Figura 1 Linha de produo nos 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 processo muito complexos que mquinas ainda no so capazes de realizar. Ao contrrio do que muitos

13

acham a Automao no veio para tirar empregos e sim melhor aplicar o 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.

Figura 2 Linha de produo automatizada Junto com a evoluo dos processos produtivos outra industria que tambm evoluiu muito foi a de Games, principalmente os consoles dos vdeo-games. 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 potentes como tambm por novos mtodos do usurio interagir com o

14

jogopassando do simples apertar de botes para uma interao com os outros sentidos. Essa mudana comeou a acontecer em dezembro de 2006, quando a Nintendo revolucionou esse jeito do usurio interagir com console com o lanamento do vdeo-game Nintendo Wii, que possui um controle chamado WiiMote, o controle veio equipado com uma cmera infravermelha na parte frontal com uma resoluo de 1024x768 pixels e freqncia de atualizao de 100 Hz, capaz de detectar at quatro pontos infravermelhos e se orientar no espao por eles.

Figura 3 - Controle do Atari 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, que a ausncia de fios, que possibilita toda essa mobilidade, devido a comunicao do controle se dar via Bluetooth com o console. Ainda no controle pode ser encontrado um auto-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 sistema ao controle com uma alimentao independente, muito incomodo para o usurio.

15

Figura 4 WiiMote do Nintendo Wii

Aps o enorme sucesso do WiiMote 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 posicionada prximo ao console capta a movimentao do controle que emite uma luz infravermelha, dotado tambm de acelermetros capaz de reconhecer gestos.

Figura 5 - PlayStation Move

16

Mas no final de 2010 houve a maior revoluo dentre todos os controles, foi o lanamento do Kinect, da Microsoft, um dispositivo que acompanha o vdeogame Xbox 360. O Kinect revolucionou por que na verdade eliminou o controle, posicionado prximo ao console, o dispositivo possui uma cmera infravermelha que capta a projeo de raios infravermelhos em forma de linhas 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 6 - Kinect baseada nessas duas evolues em paralelo, a Automao Industrial e a evoluo dos Consoles de Vdeo-Games que se baseia esse trabalho, com a necessidade de melhor 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 WiiMote 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.

17

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

Figura 7 - Viso Geral 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 da 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 fazer a interface do controle para o motor, utilizando um opto-acoplador para isolar o controle e um transistor de potncia para suprir a necessidade de corrente do motor.

19

Figura 8 Fluxograma do processo

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 9 Diagrama de Blocos das trocas de informao

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.

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 apia diretamente na correia, mantendo a distncia de acordo com a freqncia de colocao na esteira.

Tabela 1 Tipos de esteiras

22

Para o projeto de contagem a carga apresentava as seguintes caractersticas:

2 tipos de caixas: Formato cbico L = 5 cm e l = 3 cm Material: Papelo Necessitavam manter uma distncia constante uma das outras Tabela 2 Especificaes da carga transportada O que levou a escolha de uma esteira do tipo simples, horizontal, baixa velocidade e sem a necessidade de conexes.

Material Utilizado

Para base da esteira foi confeccionada uma estrutura com perfis de alumnio, fixadas com arrebites nas extremidades, com um espao de deslocamento da carga suficiente para ser instalado o um sistema de trao e mais uma rea para a leitura do sensor.

Figura 10 Dimenses da esteira

23

Para a trao foi escolhido um Motor Eltrico CC retirado de carro de controle remoto, juntamente com a reduo. 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.

Figura 11 Motor CC

Figura 12 Reduo 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, 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 Carregador de celular

24

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

Figura 14 Sistema de trao direta 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. 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 que por ter um dimetro muito maior do que o

25

eixo secundrio diminuir consideravelmente o nmero de rotaes por minuto, conseqentemente 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 15 Sistema de correia Para fixao da esteira e de todos os componentes foi cortada uma folha de compensado com espessura de 1 nas dimenses de 20x30cm. Todos os outros sistemas (Leitura e Acionamento) tero seus componentes especificados em seus respectivos captulos, mas podem serem vistos todos j instalados na esteira na figura abaixo:

Figura 16 - Esteira

26

4. CONEXO DO CONTROLE COM O PC

Este pode ser considerado o ponto vital de todo o processo, a conexo do WiiMote 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 WiiMote ser visto pelo computados dessa forma, como algum desses perifricos.

Figura 17 Vista Inferior da Placa do WiiMote 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 WiiMote pressionados por pelo menos 5 segundos, 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 18 Encontrando dispositivos Aps 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, indicando que aquele servio est disponvel, um dispositivo de interface humana.

Figura 19 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, a opo a ser escolhida Ligar Dispositivo de interface humana Bluetooth.

Figura 20 Solicitao de servio Caso o procedimento ocorra corretamente ser exibida uma linha tracejada verde entre o joystick e o crculo central.

Figura 21 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 Rumble Pack. 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 no-linear, 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 vdeo-games, como o WiiMote, Xbox360 Controller, Playstation 3 BDRemote.

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

30

// Acioamento if (Keyboard.Up){ var.ativado = True } if (Keyboard.Down){ var.ativado = False } WiiMote.Rumble = var.ativado (1) 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 parte (1), 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 motor durante o seu acionamento encontrado um valor de 3.2 V, abaixo da sua tenso de trabalho nominal no 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 conseqentemente prejudicar o sistema de leitura. 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

31

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:

Figura 23 Circuito 1 de interface WiiRemote Motor Esteira O circuito cumpriu o desejado, que era realizar o acionamento do motor da esteira, porm durante os testes, ao acionar o motor, o sistema de leitura, que ser explicado no prximo captulo, travava a cmera infravermelha, o leds

infravermelhos deixavam de ser visualizados. Foram ento realizadas medies da corrente demandada para o acionamento, individualmente, apenas com o Rumble Pack, e depois com o driver acoplado, foram coletados os seguintes dados:

IRB Corrente do Rumble Pack IDR Corrente do Driver

8mA 20mA

Tabela 3 Correntes de acionamento

Foi constatado que ao acoplar o driver de acionamento a corrente demandada pelo circuito do Rumble Pack ao controle mais que dobrava, o que causava uma sobre carga para o sistema do controle travando a cmera infravermelha, sendo assim tornou-se necessrio diminuir a corrente demanda pelo driver. Como soluo foi desenvolvido um segundo driver, onde alm de simplesmente diminuir a corrente demanda pelo driver, foi isolado o controle do transistor, atravs de um opto-acoplador, o 4N25 (datasheet em anexo). Ao ser testado, assim como o primeiro circuito, o acionamento ocorreu perfeitamente, porm desta vez, sem o travamento da cmera, ao realizar novamente as medies

32

de corrente demanda, foi constato que houve uma queda significativa, a corrente demandada pelo driver caiu para menos de 6mA, dentro do seu limite de funcionamento normal apenas com o Rumble Pack.

Figura 24 Circuito 2 de interface WiiRemote Motor Esteira

Figura 25 Circuito de acionamento

33

6. SISTEMA DE LEITURA
O sistema de leitura foi baseado na funcionalidade bsica do console Wii, que o reconhecimento de pontos infravermelhos pelo controle WiiMote 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.

Figura 26 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. Para alimentao dos leds tambm foi o carregador de celular com a tenso de 5,7 V, s que para os leds foi utilizado um resistor de 120 para limitar a corrente evitando a queima.

Figura 27 Circuito de alimentao dos leds

34

Figura 28 Dimenso das caixas e leds A luz emitida pelos led infra-vermelha, no visvel a olho n, mas com qualquer cmera, inclusive de celular, podemos visualizar se realmente o circuito est funcionando.

Figura 29 Imagem 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 so dados os comandos de emulao, com uma sintaxe bem simples e direta, quando o segundo led no estiver visvel ser pressionada a tecla B do teclado e quando o primeiro

35

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

var.A = !WiiMote.dot1vis var.B = !WiiMote.dot2vis

A = (!WiiMote.dot2vis) && (!WiiMote.dot1vis) B = (((!WiiMote.dot1vis)&&(WiiMote.dot2vis)) || ((WiiMote.dot1vis)&&(!WiiMote.dot2vis))) (2)

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.

Figura 30 Leitura de caixa pequena

36

Figura 31 Leitura de caixa grande 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 caixas grandes Baa Aba Abbbb Baaaaa Ab Aba Abaa Ab ABB Abbbbbbbbbbbbbbb Baaa Ab Abbb BA Baa Abbb Baa Baa Aba ABB Baa Tabela 4 Padro de leitura das caixas grandes Passagem de caixas pequenas B B B B B B B B B B B B Tabela 5 Padro de leitura das caixas pequenas

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 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# (muitssimo 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 32 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. Para esse projeto foi necessria a criao de apenas 3 scripts:

Figura 33 Scripts criados Script LigaDesliga

Define a textura a ser utilizada em um dos principais botes da interface, a alavanca de acionamento da esteira, dando idia de animao. No incio do script so declaradas todas as variveis a serem utilizadas, tanto booleanas quanto texturas. static var acionamento = false; var lig : Texture; var des : Texture; (3)

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( ), o Unity trabalha em um esquema de clico de frames, onde so executados todos os comandos dentro da funo a cada ciclo, a freqncia de ciclos inversamente proporcional a

40

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

function Update(){ if (Input.GetKeyDown (KeyCode.UpArrow)){ IO.acionamento = true; renderer.material.mainTexture = des; } if (Input.GetKeyDown (KeyCode.DownArrow)){ IO.acionamento = false; renderer.material.mainTexture = lig; } } (4)

As

condies

if(Input.GeyKeyDown(KeyCode.UpArrow))

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

41

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 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 do pacote Microsoft.Net Framework que no esto no Unity e so responsveis pela funo da criao do arquivo TXT.

import System.IO; import System; (5)

Aps a importao das bibliotecas teremos a declarao das variveis:

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; (6)

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.

42

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. 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. function Update () {

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

Logo no incio do script, na funo Update ( ), que atualiza a cada ciclo, chamada a funo GameObject.Find 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, que 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.

43

//Processo de Classificao if (LigaDesliga.acionamento == true){ (8)

Caso esta condio esteja satisfeita, ser liberado o recebimento para as entradas emuladas pelo GlovePIE de acordo com os leds visualizados. //Primeira leitura

if ( (HAB == true)

(Input.GetKeyDown ("a") || Input.GetKeyDown ("b")) && ){

instante = Time.time; ident = 0; if (Input.GetKeyDown ("a")){ lista2.Push ("a"); } if (Input.GetKeyDown ("b")){ lista2.Push ("b"); } HAB = false; } (9)

O programa ficar aguardando a primeira entrada, 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.

44

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

Ao ser desabilitada na primeira parte do cdigo, a varivel HAB estando no estado falso, habilita o vetor para o recebimento de novos elementos, mas sem alterar nenhuma outra varivel. //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; total_de_caixas = caixa_pequena+ caixa_grande; } } (11)

45

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. 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. //Iniciar nova contagem if (Input.GetKey(KeyCode.N)){ leitor.caixa_grande = 0; leitor.caixa_pequena = 0; leitor.total_de_caixas = 0; (12)

Por ltimo temos a atividade de armazenamento dos dados, que ser realizada mediante o pressionamento da tecla S. //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();

46

var hora = System.DateTime.Now.Hour.ToString(); var min = System.DateTime.Now.Minute.ToString(); var seg = System.DateTime.Now.Second.ToString(); leitor.data = dia+"-"+mes+"-"+ano+" "+hora+"h"+min+"m"+seg+"s";

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

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 que est declarada abaixo com o parmetro do local a ser salvo o arquivo gerado quando a tecla S for pressionada. function WriteFile (filepathIncludingFileName : String){ var sw : StreamWriter = new StreamWriter(filepathIncludingFileName); sw.WriteLine("---------------------------------------------"); sw.WriteLine("Relatrio de Caixas Produzidas"); sw.WriteLine(leitor.data); sw.WriteLine("Quantidade de caixas grande;"+leitor.caixa_grande); sw.WriteLine("Quantidade de caixas pequenas;"+leitor.caixa_pequena) sw.WriteLine("QuantidadeTotaldeCaixas;"+leitor.total_de_caixas); sw.WriteLine("----------------------------------------------"); sw.Flush(); sw.Close(); } (14)

47

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.

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

Figura 35 Visualizao em Bloco de Notas

48

Figura 36 Visualizao no Microsoft Excel

49

8. INTERFACE
Aps 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 tem que ser bem visual e intuitiva, para isso foram utilizados cones grandes e bem significativos.

Figura 37 Interface 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, 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, automaticamente a esteira ligada e se houver alguma caixa ser iniciado o seu deslocamento.

50

Figura 38 Posio Desligado

Figura 39 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 do lado direito.

Figura 40 Caixa Pequena classificada

51

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, representando a caixa grande.

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

Figura 41 Solicitao de Nova Contagem Aps a solicitao pode ser visualizado no painel de CLASSIFICAO DE CAIXAS que as variveis realmente foram zeradas.

52

Figura 42 Contagem Zerada O outro boto presente na interface o boto SALVAR CONTAGEM, que pode ser acionado com o pressionamento da tecla S.

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

Figura 44 Aviso de salvamento do arquivo

53

CONCLUSO
Este trabalho foi um grande desafio, pois necessitou de conceitos de vrias reas completamente diferentes tendo que funcionarem juntos com o mesmo objetivo, como relao de polias que dependiam da velocidade de leitura de um sensor, que influenciaria diretamente no cdigo do programa que iria interpretar as informaes do 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 vdeo-game para reduo dos custos com sensores no projeto. 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.

54

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. Wikipdia, a enciclopdia livre. Fordismo. Disponvel em: <http://pt.wikipedia.org/wiki/Fordismo> Acesso em 14. fev. 2012

Wikipdia, a enciclopdia livre. Bluetooth. Disponvel em: <http://pt.wikipedia.org/wiki/Bluetooth> Acesso em 27. jan. 2012

CEBILDS. Projeto Esteira Seletora.avi. Dispnvel 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

UNITY3D. Unity Script Reference. Acesso em 12. jan. 2012 <http://unity3d.com/support/documentation/ScriptReference/ >

55

ANEXOS
1. Datasheat do tranistor BD135

56

57

58

59

2. Datasheet do Opto-acoplador 4N25

60

61

62

63

64

65

3. Script - principal
1 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){

66

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"); }

67

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)){

68

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){

69

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(); }

70

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 .

71

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

72

6. Fotos da Esteira

VISO GERAL

DETALHE DA ESTEIRA

También podría gustarte