- Introdução
- Desenho esquemático do Projeto do Robô Industrial
- Prototipação do Projeto - Robô Industrial
- Montagem e adptação do Seguidor de linha, LDR Esquerdo e direito e LED's no Chassi Tank Rover 5.
- Por dentro das Hastes do Robô Seguidor de linha.
- Adaptação do Sensor Ultrassônico no Chassi Tank Rover 5.
- Testes e implementações do Código do Robô.
- Vídeo exibindo o teste do modo seguidor de Linha
- Vídeo exibindo o Robô executando em modo autônomo
- Vídeo exibindo o Robô executando via comando externo
- Atividades Desenvolvidas
- Considerações Finais
As inovações tecnológicas recentes mostram-se cada vez
mais presentes na indústria e na vida cotidiana das pessoas, isso porque seu
desenvolvimento passou a ser facilitado de vários modos e por várias áreas da
tecnologia. A exemplo podemos citar a computação, de modo geral e a robótica de
modo específico, fazendo uso de diversos componentes eletrônicos auxiliares, possibilitando
uma experiência mais cômoda e prática para a execução de algumas atividades. Na
indústria, por exemplo, tarefas antes executadas de forma interinamente
repetitiva e metódica por homens foram automatizadas/facilitadas com o uso de
robôs. Hoje em dia, a utilização da robótica nessas áreas trouxe meios
autônomos que já desenvolvem alguns processos programados, dotados de
inteligência artificial, de tal forma que não necessite de intervenção direta
do ser humano na execução das atividades do robô.
Partindo desse pressuposto, fomos desafiados pelo tutor da disciplina de Circuitos Digitais do curso de Ciência da computação, somado a curiosidade de intervir de forma intelectual e na prática na montagem de um Robô Industrial, cuja características são: seguir linha, agir de forma autônoma para desviar obstáculos e obedecer comandos externos, com o intuito de automatizar a industria no qual ele será aplicado para cumprir o objetivo de aprimorar atividades antes repetitivas ao homem e incansáveis a um robô.
Diante disso, podemos citar a execução das seguintes atividades que podem ser desenvolvidas por um Robô Industrial:
- Seguir linha para percorrer trajetórias em galpões com o intuito de facilitar o transporte de carga por percursos repetitivos, não precisando do acompanhamento direto de um ser humano;
- Agir de forma autônoma para desviar de obstáculos, caso no percurso encontre empecilhos que o impossibilite de executar a trajetória programada para a execução de determinada tarefa, tudo isso através de uma programação que contemple a previsão do maior número de casos possíveis para execução da tarefa, no ambiente de execução/trabalho do robô;
- E se necessário a manipulação do robô via comandos externos para que o ser humano consiga controlar o robô, seja via conexão bluetooth, wireless ou até mesmo via sistema de posicionamento globa(GPS).
Para realizarmos a implementação do projeto, detectou-se nas pesquisas realizadas pela equipe, que a utilização de Arduino
em base robótica, atendia as necessidades para executar as tarefas supracitadas. A
facilidade de acesso e programação ao microcontrolador, que a interface
Arduino proporciona, nos possibilitou a implementação das rotinas
necessárias para as funcionalidades requeridas no Robô Industrial.
Deste modo, ao finalizar a implementação este robô deverá estar apto
para seguir linha e ser capaz de vencer obstáculos colocados no meio da
trilha; obedecer a comandos externos transmitidos via bluetooth; e
também movimentar-se de modo autônomo, como foi exposto na página
inicial.
Para alcançarmos o objetivo final precisamos primeiramente ter um conhecimento básico da placa que iremos utilizar. (Vídeo 1).
Vídeo 1 - Conhecendo a Placa Romeo
E após isso, seguir adiante para entender um pouco mais sobre a programação na IDE do Arduino. (Vídeo 2).
Vídeo 2 - Introdução à programação para a plataforma Arduino
Então, tendo estes conhecimentos básicos da placa e programação, que servirão para o desenvolvimento do projeto, partimos para o conhecimento dos demais componentes que serão utilizados, que serão listados abaixo:
Figura 1. LDR (à esquerda), Sensor Óptico Reflexivo TCRT 5000 - Seguidor de Linha (à direita) (Clique na imagem para mais detalhes) |
Figura 2. Servo Motor (Clique na imagem para mais detalhes) |
Figura 3 (Clique na imagem para mais detalhes) |
Figura 4. Base robótica Tank Rover 5
(Clique na imagem para mais detalhes)
Figura 5. C.I. L298
(Clique na imagem para mais detalhes)
1 - Desenho esquemático do Projeto do Robô Industrial
Antes de passarmos para a montagem dos componentes é necessário desenvolver o desenho esquemático do projeto, onde é ilustrado de
forma detalhada e técnica as disposições das conexões e componentes
necessários para o seu desenvolvimento, isto é de suma
importância para facilitar a documentação e implementação do projeto na
prática, impedindo que hajam erros de conexões destes. Veja abaixo a Figura 7 que mostra a desenho esquemático desenvolvido no software Fritzing.
Figura 7. Desenho esquemático do Projeto
2 - Prototipação do Projeto - Robô Industrial
A Prototipação apresenta o desenvolvimento, a produção de versões iniciais - protótipos (análogo a maquetes para a arquitetura) - de um sistema futuro, neste caso o Robô, com o qual é possível realizar verificações e experimentos com o intuito de avaliar algumas de suas características antes que o sistema venha realmente a ser construído de forma definitiva. Esse processo facilita aos interessados pela montagem do projeto em saber de forma mais consistente a organização dos componentes e conexões no projeto almejado. Na prototipagem, veremos de modo menos técnico como ficará o projeto no
mundo real. Mostrando todos os componentes que serão utilizados e
organizados da melhor forma possível para garantir a execução do código
implementado. Veja abaixo na Figura 8. como os dispositivos e componentes ficarão conectados à placa controladora.
Figura 8. Prototipação do Projeto - Robô Industrial no software Frizing.
3 - Montagem e adptação do Seguidor de linha, LDR Esquerdo e direito e LED's no Chassi Tank Rover 5.
Primeiramente para fazer com que a base robótica seja adaptada as
necessidades do Robô Industrial seguidor de linha precisamos adaptar pequenas hastes para deixar em ponto estratégico os LED's e o Seguidor de Linha para leitura do ambiente e interpretação da linguagem lógica da programação. As hastes foram confeccionadas a partir de pinceis de quadro branco e canetas, conforme ilustrados na sequencia de figuras abaixo:
Figura 9. Pincel para Quadro Branco Figura 10. Haste de Caneta Esferográfica
Figura 11. Pincel e Canetas Agrupadas Figura 12. Hastes Adaptadas ao Tank Rover 5
4. Por dentro das Hastes do Robô Seguidor de linha.
Na Figura 11 apresentamos a "engenhoca" que desenvolvemos para melhorar a leitura da linha pelo Robô adaptada ao chassi do Tank Rover 5. Agora, vamos mostrar o que tem por dentro dessas hastes. Veja abaixo, na figura 13, sendo que os itens 1-2 são referentes ao LDR esquerdo e direito e os itens 2-3 refere-se ao LED esquerdo e direito. Depois de colocados dentro das hastes ficaram organizados de acordo como ilustrado na Figura 14 sendo que o número 5 que se encontra no centro faz referência ao Sensor Óptico Reflexivo.
Figura 13. LDRs 1-2 e LEDs 3-4 para serem inseridos na Haste
Figura 14. Disposições do LDR, LED e Sensor Óptico Reflexivo na Haste -
(1-LDR Esquerdo; 2-LDR Direito; 3-LED Esquerdo; 4-LDR Direito e 5-Sensor Óptico Reflexivo)
(1-LDR Esquerdo; 2-LDR Direito; 3-LED Esquerdo; 4-LDR Direito e 5-Sensor Óptico Reflexivo)
5. Adaptação do Sensor Ultrassônico no Chassi Tank Rover 5
Uma dos objetivos almejados pelo projeto é fazer com que o Robô Seguidor de linha possa desviar de obstáculos, aumentando assim as possibilidades de êxito na concretização do percurso programado ao robô. Esse sensor conectado a placa, tendo como suporte um servo motor para girar aumentando a área de possibilidades, fará com que o robô possa detectar obstáculos e desviar deles mantendo seu percurso. Veja abaixo na Figura 15 onde adaptamos o Sensor Ultrassônico.
Figura 15. Sensor Ultrassônico acoplado ao servo motor no Tank Rover 5
Abaixo iremos disponibilizar as implementações do código referente ao robô seguidor de linha, para fazer com que este realize os objetivos propostos, primeiramente devemos testar cada componente que serão utilizados, abaixo colocamos os testes e seu códigos para poder assim obter um bom desempenho. Clique nas imagens e veja os códigos na íntegra com seus respectivos comentários.
- Programa 1 - Teste de Motores do Tank Rover 5
Figura 16. Código para testar motores
(Clique na imagem para ver o código completo)
(Clique na imagem para ver o código completo)
- Programa 2 - Teste do Sensor Óptico Reflexivo
Figura 17. Código para Sensor Óptico Reflexivo/Seguidor de Linha
(localizado no chassi do Tank Rover 5 como ilustrado na Figura 14)
(Clique na imagem para ver o código completo)
(localizado no chassi do Tank Rover 5 como ilustrado na Figura 14)
(Clique na imagem para ver o código completo)
- Programa 3 - Teste do Servo Motor
Figura 18. Código para testar servo motor onde será acoplado o Sensor Ultrassônico
(Clique na imagem para ver o código completo)
- Programa 4 - Teste do Sensor Ultrassônico
Figura 19. Código para testar Sensor Ultrassônico
(Clique na imagem para ver o código completo)
- Programa 5 - Código com seguidor de linha implementado
Figura 20. Código do Robô Industrial com a função seguidor de Linha implementada.
(Clique na imagem para ver o código completo)
Figura 21: Código com seguidor de linha implementado, desvio de obstáculo e controle via bluetooth.
(Clique na imagem para ver o código completo)
|
7. Vídeo exibindo o teste do modo seguidor de Linha
O robô apresentado no vídeo abaixo terá as seguintes funcionalidades: Seguirá linha, será autônomo e poderá controlado via Bluetooth. Este vídeo, mostra apenas os testes do modo seguidor de linha, veja que este já executa com êxito as funcionalidades para o qual foi projetado e programado.
O robô apresentado no vídeo abaixo terá as seguintes funcionalidades: Seguirá linha, será autônomo e poderá controlado via Bluetooth. Este vídeo, mostra apenas os testes do modo seguidor de linha, veja que este já executa com êxito as funcionalidades para o qual foi projetado e programado.
Vídeo 3 - Primeiros teste do modo seguidor de Linha executando com êxito.
Vídeo 4 - Robô seguindo linha em um circuito com determinado nível de complexidade
8. Vídeo exibindo o Robô executando em modo autônomo
O Robô industrial desse projeto foi programado para assumir o modo autônomo quando houver na linha um obstáculo obstruindo a sua passagem, como este está equipado com um Sensor Ultrassônico (Figura 3) ele fará a leitura do objeto através da lógica de programação implementada (Figura 19) e através da leitura da distância ele percorrerá ao redor do objeto até encontrar a linha para continuar o seu trajeto. Veja abaixo o Vídeo 5 ilustrando a execução do modo autônomo.
Vídeo 5. Desviando-se de obstáculo sobre a linha
9. Vídeo exibindo o Robô executando via comando externo
Nesta funcionalidade o Robô Industrial será controlado via comando externo, utilizaremos para esta ação um Módulo Bluetooth Rs232/ttl onde os comandos de acelerar, recuar, dobrar para direita e para esquerda será controlado, quando pareado, com o aplicativo Arduino Bluetooth RC Car (Figura 20) disponibilizado na loja de app da Google. Convém ressaltar que existem muitos outros Apps com funções semelhantes, para controlar Robô com Arduino. Abaixo explicaremos passo a passo quais procedimentos foram adotados para realizar o controle do robô via comando externo.
Figura 20. Arduino Bluetooth RC Car (Aplicativo)
(Clique na imagem para saber mais sobre o aplicativo)
Ele é um aplicativo desenvolvido para plataforma Android, e possui uma interface gráfica interativa para o envio de diversos comandos via bluetooth. Cada botão do aplicativo envia um caractere (letra) para o Arduino, através do link serial bluetooth. No vídeo 6 exibimos como utilizamos a função de comandos via controle e o modo acelerômetro do aplicativo. Utilizaremos os seguintes comandos/botões para movimentar o robô (Figura 21).
Figura 21. Tela do aplicativo e Tabela de movimentos customizados as necessidades do Robô Industrial.
Vídeo 6. Robô sendo controlado via bluetooth.
10. Tabela de atividades desenvolvidas
Data | Atividades Desenvolvidas |
19/jun | Primeira reunião da equipe para levantar informações sobre quais componentes a serem utilizados no projeto |
22/jun | Aquisição dos componentes eletrônicos que faltavam |
24/jun | Criação do blog onde estará disponível toda a documentação do projeto |
24/jun | Inicio na escrita da documentação no blog (postagens descrevendo os componentes utilizados) |
05/jul | Prototipagem do projeto em ferramenta CAD (Fritzing) |
05/jul | Adaptação do módulo seguidor de linha, à base robótica. |
06/jul | Teste dos motores |
06/jul | Teste do "módulo" seguidor de linha (IR + LDR) |
09/jul | Montagem do robô e interligação dos componentes |
09/jul | Organização das interligações dos componentes e desenvolvimento do modo autonomo |
13/jul | Adaptação do servo motor e sensor ultrasonico à base robótica |
13/jul | Teste do servo motor |
13/jul | Teste do sensor ultrasonico |
14/jul | Atualização da documentação do blog, com as atividades desenvolvidas até esta data. |
15/jul | Apresentação parcial em sala de aula do que foi desenvolvido até o momento. |
18/jul | Testes e melhoramento do codigo do robo industrial, já incluindo o modo seguidor de linha, e modo autonomo. |
22/jul | Testes e melhoramento do codigo do robo industrial. |
24/jul | Testes e melhoramento do codigo do robo industrial. |
25/jul | Testes e melhoramento do codigo do robo industrial. |
26/jul | Testes, gravação do robô em circuito, adaptação do módulo bluetooth |
27/jul | Testes, gravação do robô em circuito, atualização da documentação do blog, com as atividades desenvolvidas até esta data |
28/jul | Gravação do robô em circuito, desviando obstáculos, e controlado via bluetooth |
28/jul | Conclusão da documentação do projeto no blog |
29/jul | Apresentação final do projeto em sala de aula. |
Ao aceitarmos a proposta de projetar um robô industrial que atendesse aos requisitos necessários (seguir linha, comandos externos e modo autônomo), iniciamos então a etapa de pesquisas, onde conheceríamos mais a fundo todos os componentes que seriam usados, assim como, procuramos alguns projetos similares para que pudéssemos ter uma visão mais ampla do nosso objetivo final.
Verificando então a ausência de alguns componentes que seriam de grande importância na construção do robô, foi efetuada a compra e assim seguimos para a estruturação do projeto para que a disposição dos componentes atendesse às nossas necessidades.
Enquanto era executada a etapa de programação do código que viria a ser inserido no robô, outra parte da equipe estava responsável pelo site contendo toda a documentação necessária. Sendo assim, a equipe se empenhou ao máximo para apresentar os resultados obtidos, dentro do prazo estipulado pelo professor.
Portanto, consideramos que ao os resultados obtidos até o momento, estão dentro dos esperados e o conhecimento adquirido durante esses dias deveras proveitoso. Apesar de terem sido encontradas algumas dificuldades quanto ao uso de LDR’s para a verificação da linha, pois estas não respondiam corretamente quando a incidência de luminosidade aumentava consideravelmente ou em pisos com tonalidades mais escuras; Outra dificuldade, foi em relação ao código para que o robô desviasse de obstáculos sobre a linha. Dessa forma, este foi implementado de modo que o robô sempre desvia para determinada direção, desprezando também o tamanho do obstáculo. Com isto, este robô não conseguiria desviar de obstáculos maiores com a mesma precisão. Tal problema seria solucionado se houvesse mais tempo para implementação de tomadas de decisões, de modo que o robô avaliasse a melhor alternativa para seu desvio, e se desviasse, também avaliaria possíveis soluções quando detectasse qualquer outro obstáculo posterior.
Ressalta-se também que ao desenvolver o modo seguidor de linha, fazendo uso de LDR’s e LED’s laterais e Sensor I.R. centralizado, houve um controle mais preciso do robô durante o percurso, onde os LDR’s tiveram um papel fundamental quanto às tomadas de decisão quando o robô saia totalmente da linha, estes permitindo saber qual foi o ultimo que saiu do percurso. Possibilitou-se também fazer com que o robô chegando ao fim do percurso, se movimente circularmente no intuito de retomar ao trajeto.
Verificando então a ausência de alguns componentes que seriam de grande importância na construção do robô, foi efetuada a compra e assim seguimos para a estruturação do projeto para que a disposição dos componentes atendesse às nossas necessidades.
Enquanto era executada a etapa de programação do código que viria a ser inserido no robô, outra parte da equipe estava responsável pelo site contendo toda a documentação necessária. Sendo assim, a equipe se empenhou ao máximo para apresentar os resultados obtidos, dentro do prazo estipulado pelo professor.
Portanto, consideramos que ao os resultados obtidos até o momento, estão dentro dos esperados e o conhecimento adquirido durante esses dias deveras proveitoso. Apesar de terem sido encontradas algumas dificuldades quanto ao uso de LDR’s para a verificação da linha, pois estas não respondiam corretamente quando a incidência de luminosidade aumentava consideravelmente ou em pisos com tonalidades mais escuras; Outra dificuldade, foi em relação ao código para que o robô desviasse de obstáculos sobre a linha. Dessa forma, este foi implementado de modo que o robô sempre desvia para determinada direção, desprezando também o tamanho do obstáculo. Com isto, este robô não conseguiria desviar de obstáculos maiores com a mesma precisão. Tal problema seria solucionado se houvesse mais tempo para implementação de tomadas de decisões, de modo que o robô avaliasse a melhor alternativa para seu desvio, e se desviasse, também avaliaria possíveis soluções quando detectasse qualquer outro obstáculo posterior.
Ressalta-se também que ao desenvolver o modo seguidor de linha, fazendo uso de LDR’s e LED’s laterais e Sensor I.R. centralizado, houve um controle mais preciso do robô durante o percurso, onde os LDR’s tiveram um papel fundamental quanto às tomadas de decisão quando o robô saia totalmente da linha, estes permitindo saber qual foi o ultimo que saiu do percurso. Possibilitou-se também fazer com que o robô chegando ao fim do percurso, se movimente circularmente no intuito de retomar ao trajeto.