Contrinex
Gesture - Controlled Robot for Color Detection Applied to IIoT

Gesture – Controlled Robot for Color Detection Applied to IIoT

O projeto Gesture – Controlled Robot for Color Detection Applied to IIoT, trata de um robot controlado por gestos e equipado com tecnologia para a deteção de cores e obstáculos e visa auxiliar no transporte de mercadorias pesadas dentro de fábricas, melhorando a eficiência e segurança do trabalho industrial.

Combinando elementos de Industrial Internet of Things (IIoT), o projeto procura otimizar processos, garantindo uma interação segura e sem contacto direto entre o operador e o robot.

1. Introdução

O projeto tem como objetivo criar um robot autónomo e controlado por gestos, direcionado para apoiar o transporte de mercadorias em fábricas, onde tarefas repetitivas e fisicamente exigentes podem ser otimizadas. A ideia central é desenvolver um sistema que facilite a locomoção de mercadorias, reduzindo o esforço físico dos trabalhadores e minimizando os riscos de acidentes ou problemas de saúde, como hérnias ou lesões na coluna.

2. Desenvolvimento

O robot está dividido em duas partes principais: o corpo do robot e o comando remoto. A construção do robot envolve microcontroladores Arduino Uno e Mega, um sistema de comunicação wireless através da rede Bluetooth, sensores de ultrassons para deteção de obstáculos e um sensor APDS9960, que desempenha papel fundamental na deteção de gestos e cores.

Diagrama de blocos do comando.
Figura 1. Diagrama de blocos do comando.

Figura 2. Diagrama de blocos do comando.

Diagrama de blocos do robot.
Figura 2. Diagrama de blocos do robot.

Osmicrocontroladores são responsáveis pela receção e processamento de dados dos sensores, convertendo-os em comandos que são transmitidos aos atuadores do robot. O Arduino Uno associado ao comando e o Mega associado ao robot.

Os sensores de ultrassons sãoutilizados para a deteção de obstáculos e funcionam ao emitirem ondas sonoras, que calculando os tempos de envio e retorno (após colisão com um obstáculo), conseguem determinar a distância do objeto alvo dessa colisão através do fenómeno da reflexão dessas ondas sonoras. O robot usa 3 sensores de ultrassons que ajudam a evitar colisões e a definir trajetórias seguras.

O sensor APDS9960, desenvolvido pela SparkFun, é um dos componentes centrais do projeto, pois permite a deteção simultânea de gestos e de cores. Este sensor tem quatro funcionalidades principais:

  1. Gestos: o sensor APDS9960 permite o controlo do robot através de gestos, reconhecendo movimentos como cima, baixo, esquerda, direita, frente e trás. Esta funcionalidade é essencial para a operação sem contacto direto, o que é particularmente vantajoso em ambientes onde o comando pode ser manuseado por diferentes utilizadores ou estar exposto a condições de contaminação.
  2. Cores (RGB): a deteção de cores pelo APDS9960 ajuda a definir o modo de operação do robot. As cores têm funções específicas: o vermelho bloqueia o movimento do robot, a cor azul permite um movimento autónomo com desvio de obstáculos, e a cor verde ativa o controlo direto pelo utilizador (utilização do comando).
  3. Deteção de luz ambiente: o sensor APDS9960 também mede a intensidade da luz ambiente, o que poderia ser explorado para ajustar a sinalização do robot conforme as condições de luminosidade do local.
  4. Proximidade: embora não seja uma função utilizada neste projeto, o sensor consegue detetar proximidade, o que poderia ser aplicado futuramente para paragens automáticas em casos de aproximação de pessoas ou objetos, quando está a ser utilizado o comando.

No robot, este sensor está integrado no comando, estando por isso só programado para as três primeiras funcionalidades.

O procedimento desenvolvido para que o sensor APDS9960 consiga detetar movimento de mão, passou por mapear cada movimento da mão para uma ação no robot. Para simplificar o procedimento, utilizaram-se gestos simples:

  1. Mover em frente: passar a mão de baixo para cima (gesto vertical ascendente);
  2. Mover para trás: passar a mão de cima para baixo (gesto vertical descendente);
  3. Virar à esquerda: passar a mão da direita para a esquerda (gesto horizontal para a esquerda);
  4. Virar à direita: passar a mão da esquerda para a direita (gesto horizontal para a direita);
  5. Rodar sobre si próprio (esquerda): realizar um movimento circular, sentido anti-horário;
  6. Rodar sobre si próprio (direita): realizar um movimento circular, no sentido horário.

Para detetar os gestos com o sensor APDS9960, a comunicação I2C permite que o microcontrolador aceda aos registos específicos que armazenam o valor de cada gesto. O sensor utiliza diversos registos internos para sinalizar o movimento detetado e enviar os dados correspondentes.

O endereço I2C padrão do sensor APDS9960 é 0 x 39. Para detetar gestos, utilizou-se o registo principal 0 x FC (GSTATUS) e o registo de dados 0 x FF (GFLVL), bem como os buffers (FIFO) de dados de gestos GFIFO_U, GFIFO_D, GFIFO_L e GFIFO_R, que correspondem aos valores detetados nos eixos.

Registos principais e os valores lidos:

  1. Registo GSTATUS (0 x FC):
    • Este registo indica se há um gesto disponível para leitura,
    • Bit 0 – GVALID: indica se os dados de gesto estão válidos,
    • Quando um gesto é detetado, este bit fica em 1.
  2. Registo GFLVL (0 x FF):
    • Indica o número de entradas no buffer (FIFO) de dados de gestos. Um valor diferente de zero significa que há dados prontos para leitura nos buffers FIFO.

Luís Pires
IPLuso – Instituto Politécnico da Lusofonia

Para ler o artigo completo faça a subscrição da revista e obtenha gratuitamente o link de download da revista “robótica” nº138. Pode também solicitar apenas este artigo através do emaila.pereira@cie-comunicacao.pt

Outros artigos relacionados