O trabalho a baixo será apresentado em um seminário, em 17/11/2021, para alunos da uninove, sobre o robotinics. Este trabalho é referente a IoT, e faz parte integrante da minha Pós graduação em aprendizado de máquina.
O material a seguir, é um complemento a apresentação que será feita.
O Robotinics é uma plataforma open hardware para desenvolvimento de robótica educacional.
Abaixo o treinamento para o seminário, onde apresentei aos colegas da turma, onde refinaremos os detalhes da apresentação.
O Objetivo do seminário é a apresentação de proposta de IoT, usando redes neurais.
Neste contexto, apresentei a proposta acima, utilizando o robotinics.
O Material a seguir, são detalhes que apresentarei apenas como comentário, onde nos vídeos abaixo, mostro o detalhe do assunto abordado.
Como tudo começou – A 8 anos atras.
Neste vídeo vimos minhas filhas ainda pequenas, recortando o isopor que deu idéia ao projeto.
Neste contexto, o projeto nasceu como uma brincadeira de criança, onde eu como pai, acabei criando um projeto por me sentir compelido a provar que podemos sim criar robôs.
Do momento da brincadeira, até hoje, passaram mais de 8 anos.
Apresentação da Cabeça do robô
Neste vídeo explico a cabeça do robô, onde mostro o seu processo construtivo, envolvendo a eletrônica.
Mostro como foi construído, e o que fiz para simplificar alguns processos que foram sendo corrigidos nesta longa caminhada.
Agora apresentando a detecção de face
Apresento detalhes da detecção de face, usando os script do shell, integrado com motion.
Neste processo, mostro o script de python, usando opencv, que foi utilizado, para detectar faces humanas.
FANN Lib no robotinics
Neste vídeo apresento o processo de instalação da FANN lib, para utilização no raspberry.
No livro, na segunda revisão, apenas apresento, a instalação da libFANN, onde mostro sua execução.
De forma geral, a escolha desta lib, foi em função de sua velocidade e da diminuta utilização de recursos.
Controles e comandos do Robotinics
Neste vídeo apresento o controle remoto do robô, que permite controlar através de Bluetooth, dando comandos ao robô, de forma de telepresença.
Neste método, podemos através de uma aplicação em Desktop, controlar remotamente o robô.
O Robô na época não possuia nenhum padrão de IA, por isso era quase totalmente controlado remotamente (Telepresença).
Inclusive, foram criados aplicações desktop para permitir seu controle.
No vídeo apresento alguns destes softwares, rodando no robô.
Montagem das peças
Neste vídeo apresento algumas peças, o processo de montagem das mesmas.
O processo de produção passa desde o projeto em SOLIDWORKS, até sua impressão em uma impressora 3D.
Muito foi aprendido para chegar nesse nível, pois tive que fazer curso técnico de mecânica industrial, para conseguir obter o conhecimento necessário para chegar neste ponto. Inclusive o trabalho foi o TCC deste curso.
Neste outro vídeo apresento a montagem do tronco do robô.
Podemos ver, o processo de montagem, no solid, alem das peças mecanicas, tambem são montadas os componentes eletrônicos.
O Robô se movimentando
Este vídeo foi logo no começo, as peças 3D ainda não estavam prontas, mas o robô já se movimentava através de um script.
Neste vídeo o projeto de hardware já estava pronto, porem ainda não sonhava com reconhecimento de imagem e outras melhorias.
Podemos ver neste primeiro ensaio, que o robô era totalmente feito de isopor. Pois a idéia é criar um projeto que não necessáriamente precise de impressão 3D para ser criado. As peças foram usadas globos de isopor, muito usados em festas. As peças eram envolvidas em cola de madeira, depois epoxi diluido com um pouco de cetona e depois pintadas.
Parte inferior do robô
Neste vídeo apresento detalhes da parte inferior do robô.
Podemos ver o controlador arduino mega e algumas outras peças.
Podemos ver tambem, que muitas partes eram feitas em isopor.
Infelizmente a bateria de 4200mah esta ruim, passou o dia inteiro carregando e ainda esta com 4.5Volts.
Novidades
Controle de Bateria
Hoje implementei o controle de carga automática do módulo base.
A bateria é o módulo que inicia, desta forma se o robô estiver desconectado da fonte ele consegue dar partida.
O problema é quando a bateria esta baixa. Mas é assim que irá ficar!
Carga Automática
O Controle de Carga automática testa a tensão da bateria, abaixo de 9Volts, ele desliga automaticamente.
De 10V até 9.0V ele dá avisos sobre a bateria, também inclui um pino 6, que pode ser conectado um led, e irá piscar quando a bateria estiver baixa.
Quando a bateria acima de 10V o led ficará aceso.
Quando a bateria estiver abaixo de 9V, ficará apagado.
Proteção de carregamento
Inclui também um controle, para que toda vez que chavear para bateria, o carregador de bateria irá desligar. Desta forma, evito quebrar o carregador.
Carga automática de Bateria
Implementei, também o controle de carga automática caso a bateria esteja na alimentação externa, e a bateria estiver baixa. Desta forma, dou alguma inteligência ao circuito.
Ontem chegou o sensor de tensão e conector da bateria de lipo.
Com estes dois últimos equipamentos, agora eu consigo finalizar a montagem da base.
Devido a pouca memória, estarei retirando o modulo do GPS da Base, e incluindo no módulo do meio.
Infelizmente nem tudo dá para fazer com o arduino nano. Com esta modificação, o espaço do processador esta em 39%, o que garante um funcionamento coerente.
Criei um novo comando VBAT, e mudei o VOLTS para leitura da voltagem do sistema.
Ficando o VBAT, para leitura apenas da bateria. A diferença entre o VBAT e o VOLTS, é que o VBAT esta lendo a tensão antes do relê. Desta forma, quando o relê estiver chaveado para a alimentação externa, ainda sim, o VBAT lerá a bateria.
Estou em um dilema, pois quando a bateria estiver totalmente descarregada, o sistema não conseguirá inicializar. Pois o primeiro start é sempre com a bateria.
Talvez, inverta a entrada, deixando o padrão para Externa.
Agora, comecarei a implementar a verificação da necessidade de recarga.
Desta forma, quando o sistema verificar que a bateria esta descarregada, automáticamente chaveia a recarga da bateria. Deixando para alimentação externa.
A questão da Bateria, ainda tem uma ultima duvida. Preciso incluir um diodo para evitar medir a tensão da externa, quando ambas estiverem ativas no sensor da bateria.
Outra atividade que melhorei foi a impressão do suporte Laser.