BLOG - Sistemas Embarcados
Este blog tem como autores os participantes do projeto Smart Campus e alunos das disciplinas: Sistemas Embarcados(Engenharia de Controle e Automação) e Plataformas de prototipação para Internet das Coisas
(Especialização Lato Sensu em Internet das Coisas). O objetivo é a divulgação de trabalhos em desenvolvimento no campus que envolvam a utilização de conceitos de sistemas embarcados, internet das coisas, telemetria e outras tecnologias para a resolução de problemas da indústria, meio ambiente, cidades inteligentes, fazendas inteligentes, ....
Coordenação: Prof. Marcos Chaves
Busca:
Projeto de Controle de Robô SCARA Utilizando Servomotores com Integração de IoT, Banco de Dados e Dashboard
Visão Geral:
A automação industrial tem avançado significativamente com o desenvolvimento da tecnologia, e uma das ferramentas mais emblemáticas dessa evolução são os robôs. Entre eles, destaca-se o robô SCARA (Selective Compliance Assembly Robot Arm) por sua precisão e eficiência em tarefas repetitivas, como montagem, embalagem e manipulação de materiais. Este projeto visa desenvolver um sistema de controle para um robô SCARA utilizando servomotores e integrando tecnologias de Internet das Coisas (IoT), banco de dados e dashboards interativos.
O principal objetivo deste projeto é implementar um sistema de controle eficiente para um robô SCARA. Para isso, serão utilizados servomotores que proporcionam a precisão e o controle de movimento essenciais para as operações do robô. Além disso, a integração de IoT permitirá a comunicação em tempo real entre o robô e uma infraestrutura de controle remota. Esta comunicação será realizada por meio de um ESP 32, que enviará e receberá informações via uma rede sem fio. O sistema IoT incluirá a utilização de protocolos seguros de comunicação, como MQTT (Message Queuing Telemetry Transport), garantindo a integridade e a confidencialidade das informações transmitidas.
O banco de dados será utilizado para armazenar informações relevantes sobre a cinemática do robô, oferecendo um sistema de configuração dupla: “automático”, que permitirá ao robô realizar operações de forma autônoma, e “manual”, que permitirá ao usuário controlar diretamente os movimentos do robô, e gravá-los quando aplicável. Por fim, a criação de um dashboard interativo fornecerá uma interface amigável para o controle do sistema, permitindo a visualização em tempo real dos dados operacionais e o ajuste de parâmetros de controle conforme necessário.
Materiais utilizados:
- 1 x ESP 32 Wemos D1 R32;
- 1 x Protoboard de 830 pontos;
- 1 x Potenciomentro de 10K;
- 1 x Servo motor de 9g SG90;
- 1 x Led da cor amarela;
- 1 x Resistor de 330 ohm;
- 1x Powerbank 10000 mAh;
- Juppers do tipo macho-femea.
Tópicos MQTT:
- potenciometro1/valor;
- servo1/angulo;
- atuador.
Tópico potenciometro1/valor:
Esse tópico será responsavel por publicar as leituras analogicas do potenciomentro que serão convertidas gruas para posterioremente enviar para o servo motor
int valorPot1 = analogRead(A0);
int angulo1 = map(valorPot1, 0, 4095, 0, 180); // Converte o valor do potenciômetro 1 para um ângulo (0-180)
client.publish(mqtt_topic_pot1, String(valorPot1).c_str());
Tópico servo1/valor:
Esse tópico por sua vez será responsavel por receber as publicações do tópico anterior e então enviar o ângulo já convertido em uma faixa de movimentação do servo motor
StaticJsonDocument<200> doc;
DeserializationError error = deserializeJson(doc, message); // Verifica se a mensagem é para o servo 1
if (String(topic) == mqtt_topic_servo1) {
int angulo = message.toInt();
if (angulo >= 0 && angulo <= 180) {
x1 = map(angulo, 0, 180, 1200, 8000);
ledcWrite(14, x1);
}
}
Tópico atuador:
Tópico responsavel receber a solicitação de um toggle button e então acionar o atuador do robô ( representado pelo Led)
StaticJsonDocument<200> doc;
DeserializationError error = deserializeJson(doc, message);
if (String(topic) == mqtt_topic_atuador) {
if (doc.containsKey("z")) {
zValue = doc["z"].as();
}
if (zValue == 1 ) {
digitalWrite(27, HIGH);
delay(1000); } //Lógica para desacionar o atuador
if (zValue == 0 ) {
digitalWrite(27, LOW);
delay(1000);
}
}
Infraestrutura do Propmt de comandos:
Este projeto conta com uma infraestrutura em nuvem que possibilita o controle remoto dos angulos mensurados e do status de liga e desliga do atuador, via internet,no qual é representado pela figura abaixo:
Seu fluxo (flow) Node-RED implementado, pode ser observado abaixo:
Resultado final:
Uma vez desenvolvido o fluxo de captação e monitoramento de leituras externas, foi possível desenvolver a seguinte prototipagem de teste:
[ID:173] Autor: - Criado em: 2024-05-29 23:37:08 - [ Compartilhar ]