Você está na página 1de 6

Transporte de objetos em um SIM com módulos NXT da Lego

Brennon, GPA, glauberbrennon@gmail.com1


Motta, Israel, israel_iraquiano@hotmail.com1
Bispo, Márcio, eng.marciobispo@gmail.com1
Rabelo, Pedro, pedrorabelo27@gmail.com1

1 Universidade Salvador, Edf. Civil Empresarial, R. Doutor José Peroba, nº 251, 41770-230, Stiep, Salvador – BA

Resumo: Os avanços tecnológicos trouxeram às indústrias grandes benefícios, como por exemplo a máquina a vapor,
no século XVIII, e, futuramente, os grandes computadores também conhecidos como “mainframes”. Estes
computadores, quando aplicados à produção industrial, acabam por ter a função de gerenciar processos e tarefas,
avisar aos operários o estado das máquinas e fazer com que tudo na planta se comporte de forma ideal, evitando
variações e erros. Após esse novo modelo de produção se firmar, o mesmo foi denominado como “Computer
Integrated Manufacturing”. Seguindo a filosofia do “CIM”, temos o “Sistema Integrado de Manufatura”. Este artigo
tem como objetivo apresentar a comunidade científica o funcionamento de um “SIM” do ponto de vista de um carro
de entrega que irá fazer o transporte de material entre máquinas que não se conectam. Para este carro de entrega se
encaixar no modelo “SIM” é necessário a existência de um protocolo de comunicação comum entre as máquinas.
Simulações foram realizadas utilizando o kit de robótica da Lego denominado NXT Mindstorms.

Palavras-chave: Sistema Integrado de Manufatura, NXT, Sistemas em Tempo Real, Lego, Engenharia.

1. INTRODUÇÃO

Com a evolução da tecnologia, surgiram invenções que simbolizaram o progresso da humanidade. Uma destas
invenções foi a máquina a vapor, que surgiu no século XVIII, e que caracterizou o início das revoluções industriais.
Hoje, no ano de 2012, com a evolução da tecnologia da informação é possível integrar grandes máquinas com super
computadores denominados de “mainframes”. Além dos “mainframes”, também foi possível a criação de mini
computadores, atualmente conhecidos como “microcontroladores” ou até mesmo “microprocessadores”. Os
microprocessadores possuem maior poder de processamento do que os microcontroladores e, portanto, acabam por ter
aplicações mais robustas como controlar máquinas de uma planta industrial. Podem ser caracterizados como módulos
computacionais os sistemas envolvendo uma unidade de processamento lógica com pelo menos uma entrada e uma
saída.
“Sistemas Integrados de Manufatura (SIMs) são os sistemas desenvolvidos sob a filosofia de fabricação CIM
('Computer Integrated Manufacturing') (FLAVIO CESAR, 1990)”. Consequentemente tanto o “CIM” quanto o “SIM”
ditam que uma produção deve ser monitorada e gerenciada através de sistemas computacionais. Seguindo essa filosofia,
cada máquina passa a possuir um modulo computacional e nesses módulos temos uma unidade de processamento que é
construída com um microprocesador ou microcontrolador onde passam todas as operações realizadas pela máquina.
Em paralelo com este artigo um projeto de SIM foi construído com o intuito de representar uma malha fechada e,
para aplicar tais fundamentos, foram utilizados os acessórios da Lego para robótica também conhecidos como “NXT
Mindstorms”. No SIM desenvolvido, o módulo computacional é um módulo da NXT que possui um microprocessador
de arquitetura 32 bits com memória flash, quatro entradas e três saídas. Este foi aplicado a três modelos de máquina que
foram denominadas como “Esteira Elevadora”, “Mesa XY” e “Carro de Entrega”.

2. DESCRIÇÃO DO SISTEMA

O Carro de Entrega é o principal responsável pela movimentação do material entre máquinas que não se conectam
diretamente. O material a ser transportado são bolas de cor vermelha e azul e o trajeto a ser percorrido é uma pista
pintada na cor preto com dois pontos de parada marcados de forma diferenciada. Basicamente, o serviço a ser executado
pelo carro é levar as bolas de um ponto a outro. Todo o tratamento e separação das bolas é feito pela Esteira Elevadora.
Durante o percurso a Mesa XY irá entregar o material para o carro e este entrega para a Esteira Elevadora, e esta irá
entregar as bolas a Mesa XY fechando assim um ciclo vicioso que pode ser melhor descrito na Figura 1.
Figura 1. Fluxograma básico do sistema.

Após observar o fluxograma acima fica evidente que o andamento do sistema é de baixa complexidade. Apesar de
sua baixa complexidade, o funcionamento individual de cada membro deste SIM não se resume a um simples fluxo de
entrega. O funcionamento deste sistema se dá graças a um módulo NXT que é capaz de realizar leitura de sensores,
ativação de motores e manter uma comunicação bluetooth com outros componentes do sistema.

2.1. A mecânica do Carro de Entrega

Toda a estrutura mecânica do carro foi construída utilizando peças da Lego e seguindo os manuais de construção.
Em linhas gerais a estrutura mecânica permite ao mesmo ter ampla autonomia para realizar curvas e as entregas de
material. Como pode ser observado na Figura 2 este sistema se divide em duas partes. A primeira parte é o carro onde
estão localizados o módulo NXT e dois motores de tração controlando as rodas laterais. A segunda parte do sistema se
assemelha a uma caçamba que possui um motor para elevação da plataforma, duas rodas lateiras e uma roda boba na
parte dianteira para facilitar a execução de curvas.

Figura 2. Carro de Entrega e Trajeto

2.2. Módulo NXT e Técnicas Aplicadas

Estando nas especificações de um módulo computacional, o NXT (Figura 3) é o responsável pelo gerenciamento
das tarefas do Carro de Entrega. Este possui três saídas para conexão com atuadores e quatros entradas para conexão
com sensores. Neste módulo uma série de firmwares embarcados são caracterizados como um Sistema Operacional, o
que possibilita melhor performance para aplicações em que há necessidade de gerenciamento de processos. Para realizar
todo o serviço de recebimento e de entrega do material em questão, o NXT foi programado utilizando a técnica
denominada “Multithreading”.
Figura 3. Módulo NXT, Sensores e Atuadores.

O “Multithreading” é uma prática de programação que tem como fundamento o gerenciamento de tarefas e a sua
execução em tempo real. Basicamente o código irá pedir tempo de processamento ao Sistema Operacional em questão e
executar suas “threads” neste espaço de tempo. Portanto só é possível aplicar as “threads” quando existe um S.O. em
funcionamento para gerir as tarefas e suas prioridades.
Aplicando tal técnica o código embarcado deixa de funcionar através do polling, que seria a leitura linear do código
de forma repetida, se assemelhando a um sistema baseado em interrupções. Quando o polling é usado o sistema fica
conferindo de forma repetida se a tarefa foi completa. “This is analogous to the small chid who repeatedly asks, 'Are we
there yet?' througout a long trip. Like the child, the processor spends a large amount of otherwise useful time asking the
question and getting a negative response. (BARR, MICHAEL, 2008)" logo o uso de polling em casos como o transporte
de material acaba por defasar o funcionamento do sistema.
No cenário “Carro de Entrega” as threads ativadas são o acionamento de motores, leitura de sensores e
comunicação bluetooth. Graças a tal técnica o código embarcado não funciona mais de forma linear e sim de forma
dinâmica, se assemelhando a um sistema baseado em interrupções. Um sistema baseado em interrupções é caracterizado
pela maior precisão nas leituras e na execução de comandos. As threads funcionam através de uma disputa por
processamento e o NXT fica responsável por analisar prioridades e dividir a memória e o tempo alocados para cada
processo a ser executado.
Graças a aplicação de threads neste projeto, o Carro de Entrega pode ser caracterizado como um sistema
Determinístico para Tempo quando aplicado de forma individual, pois este é capaz de realizar seu percurso sem grandes
dificuldades graças ao gerenciamento de threads e sem grandes variações de tempo. Quando aplicado em um sistema
complexo a proporção do cenário de threads cresce e cada “máquina” do sistema (carro, mesa e esteira) pode ser
caracterizada como um “grande processo” representado pelo cenário “b” na Figura 4.

Figura 4. Threads
No momento em que o carro passa a depender dos outros membros de tal sistema seu determinismo se torna algo
mais delicado, pois este passa a depender do tempo de entrega entre a Esteira e a Mesa. Caso os outros membros
também sejam determinísticos para tempo, o Carro também será e, portanto, terá capacidade de realizar o trajeto sem
grandes variações de tempo.
Além do determinismo este sistema pode ser considerado como um Soft Real Time System, pois em caso de
alguma falha ele irá causar um pequeno desconforto e fazer com que seja necessário a interferência do meio externo
para realizar manutenções ou consertos.

2.3. Sensores X Atuadores

Para realizar o transporte do material com precisão o NXT trabalha com dois sensores e três motores de escala
reduzida para operarem de forma segura sem danificar os acessórios da Lego. A Lego fornece uma série de sensores
com diferentes características. Como pode ser observado na Figura 5 os sensores podem ser sensores de ultrasom,
infravermelho, fim de curso ou até mesmo sonoro.

Figura 5. Sensores NXT

Os sensores de infravermelho utilizados são caracterizados como sensores ativos, pois estes fazem a ativação de um
LED da cor vermelha para que um sensor localizado ao lado do LED receba a luz refletida. Toda incidência de luz
refletida no sensor é convertida em resistência e, após essa conversão, o módulo computacional faz todo tratamento de
dados lidos criando uma camada de abstração para o programador do NXT. De forma resumida no carro de entrega os
sensores estão fazendo a leitura das linhas pretas do trajeto e dos pontos de parada, caracterizados como uma barra preta
na horizontal em relação a linha.
Os atuadores deste sistema são três motores de baixa escala. Dois motores tem a função de realizar o deslocamento
do Carro e o terceiro motor tem a tarefa de elevar uma superfície semelhante a uma caçamba de caminhão para entregar
o material. Os motores são comandados pelo módulo que é capaz de ditar a intensidade de funcionamento do motor.
Nos pinos de saída o NXT alimenta o motor e, através da alimentação, é possível definir a intensidade dos atuadores de
forma precisa. Para o programador definir a intensidade de cada motor o módulo cria uma camada de abstração de
dados, assim como realizado no tratamento de dados do sensor, possibilitando ao programador definir apenas
percentagens de potência para o motor.
Como citado anteriormente toda a programação do sistema foi feita através de threads, portanto é possível criar
certas “disputas” entre os motores e sensores e também simular interrupções de hardware para o caso os dois sensores
identifiquem o ponto de parada e os motores parem de rodar para que o terceiro motor realize a entrega.

3. PROGRAMAÇÃO E PROTOCOLOS DE COMUNICAÇÃO

Após a abordagem geral feita nos tópicos anteriores pode ser feita uma abordagem mais específica quanto ao
código deste sistema. Para programar os módulos NXT foi utilizada a linguagem denominada NXC (Non-Exactly-C)
que possui sintaxe muito semelhante a do C contemporâneo. Além do NXC os módulos poderiam ser programados
através de Java ou Python.
Durante o desenvolvimento do código e dos estudos sobre threads ficou perceptível a necessidade uma forma de
comunicação entre as máquinas a operar no SIM. Durante o uso de threads em C é possível utilizar a técnicas de IPC
(Inter Process Communication) para transmitir dados entre as threads. No cenário do NXT a comunicação entre threads
foi feita através de variáveis globais. Pode-se observar na Figura 6 que os sensores e os motores disputam por
processamento e, além da disputa, eles utilizam de variáveis globais para realizar o deslocamento do carro. Para tal
Figura 6. Comunicação entre Motores e Sensores

aplicação é necessário que os códigos estejam de certa forma “sincronizados” para que as leituras realizadas pela
Thread Motores sejam as do último valor estabelecido pela Thread Sensores. O cenário acima destacado é um cenário
simples em que um processo é disparado e dentro do processo existem duas threads concorrentes. A Thread Bluetooth
na Figura 6 somente faz referência a existência de uma terceira thread, porém esta thread só será ativada quando a
comunicação entre os protótipos for inicializada e a função dela será notificar ao sistema de que é necessário se deslocar
ao ponto de recebimento.
No cenário SIM temos processos concorrentes e dentro de cada processo é possível observar threads concorrentes.
Cada processo acaba por ser uma caracterização didática de cada protótipo realizando suas tarefas. Consequentemente
as técnicas tradicionais de IPC acabam por serem descartadas e o uso de Bluetooth como protocolo de comunicação se
torna a IPC ideal para este cenário.

3.1. O uso da rede Bluetooth

A rede bluetooth é um protocolo de comunicação para ondas de radio frequência. Este protocolo é conhecido por
utilizar a frequência de 2.45 GHz. Para os módulos NXT trocarem informação através do bluetooth é necessário que os
dispositivos sejam pareados segundo a relação de “Mestre x Escravo” criada pelo bluetooth. O funcionamento de tal
relação dita que somente o mestre poderá enviar dados para os seus respectivos escravos, porém os escravos podem
responder a uma mensagem recebida. Além da relação entre os dispositivos pareados é importante ressaltar que no NXT
é possível utilizar uma “caixa de recebimentos” para o bluetooth e esta caixa de recebimentos segue a metodologia
“FILO” (First In Last Out), portanto é uma boa prática programar os módulos para após a conclusão da tarefa, apagarem
a mensagem bluetooth.
No cenário SIM as Mesas XY exercem o papel de mestre enviando para o Carro de Entrega, um de seus escravos,
uma variável que irá ditar o deslocamento do carro até um ponto de entrega ou de recebimento. Após o deslocamento o
carro pode responder a mensagem caracterizando esta IPC como bidirecional (Figura 7).

Figura 7. Cenário SIM com o Bluetooth

4. CONCLUSÃO

Neste artigo científico foram apresentados conceitos de um SIM com o intuito de caracterizar um sistema operando
em uma malha fechada e a construção de um Carro de Entrega autônomo que exerce a função de levar material de um
ponto ao outro. A partir da execução correta deste SIM é possível observar uma malha fechada funcionando e também
ver na prática conceitos da matéria “Sistemas em Tempo Real”.
É possível concluir que este sistema pôde ser caracterizado como um Soft Real Time System, pois caso ocorra
algum problema ele apenas causará um pequeno desconforto como a necessidade da manutenção dos operários.
Também é possível concluir que o sistema é Determinístico para Tempo, pois o tempo gasto para percorrer o trajeto não
tem grandes variações. Este não é Determinístico para Eventos, pois caso um obstáculo seja colocado no trajeto o carro
não será capaz de tomar uma atitude diferenciada e seguir seu caminho normalmente.

5. AGRADECIMENTOS

A equipe gostaria de agradecer a todos familiares e colegas que de alguma forma apoiaram este projeto.
Gostaríamos de deixar um agradecimento diferenciado ao professor Rafael Araújo que foi o docente desta matéria
denominada “Sistemas em Tempo Real” e esteve durante todo o semestre de 2012.2 passando os conteúdos,
acompanhando e orientando os projetos e também aprendendo com as equipes sobre os temas abordados nesta
disciplina. Um agradecimento a estagiária do “Laboratório de Sistemas Móveis e Embarcados” Pricilla Brandão e seu
coordenador Thomas Buck que forneceram o espaço para desenvolvermos o projeto e assistirmos as aulas práticas com
Rafael Araújo.

6. REFERÊNCIAS

Barr, Michael and Massa, Anthony, 2008, “Programming Embedded Systems with C and GNU Development Tools”,
Vol. 1, 2ª Ed, 33 p.
Fernandes, F.C.F., 1990, “A Função de Controle nos Sistemas Integrados de Manufatura”, Rio de Janeiro, Brasil, Vol.
1, No. 1, 2 p.
7. DIREITOS AUTORAIS
Os autores são os únicos responsáveis pelo conteúdo do material impresso incluído no seu trabalho.

Você também pode gostar