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.

Figura 2. Diagrama de blocos do comando.

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:
- 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.
- 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).
- 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.
- 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:
- Mover em frente: passar a mão de baixo para cima (gesto vertical ascendente);
- Mover para trás: passar a mão de cima para baixo (gesto vertical descendente);
- Virar à esquerda: passar a mão da direita para a esquerda (gesto horizontal para a esquerda);
- Virar à direita: passar a mão da esquerda para a direita (gesto horizontal para a direita);
- Rodar sobre si próprio (esquerda): realizar um movimento circular, sentido anti-horário;
- 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:
- 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.
- 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 email: a.pereira@cie-comunicacao.pt
Outros artigos relacionados
- Artigo “Robot for measurement of human temperature body [Robot para medição da temperatura corporal humana]” da edição 139 da revista Robótica;
- Artigo “Robot móvel de desvio de obstáculos baseado em eletrónica discreta” da edição 130 da revista Robótica;
VOCÊ PODE GOSTAR
-
Robot omnidirecional com manipulador de 5 eixos e garra
-
Coordenacão de frotas de robots móveis: o caso do sistema MAESTRO
-
Robot for measurement of human temperature body [Robot para medição da temperatura corporal humana]
-
Mobile Robotic Arm [Braço Robótico Móvel]
-
Indústria 4.0 e precetivos da evolução em uma análise do cenário português


