O conteúdo desta página é estritamente para fins de currículo e não didático.

Os projetos estão estruturados do mais recente ao mais antigo.

Continuação no desenvolvimento da PuzzleBox para tentar transformá-la em um produto comercialmente viável. Por ser um projeto comercial, alguns detalhes foram ocultados:

Desenvolvimento de um dispositivo que é um jogo eletrônico com desafios de lógica, que são resolvidos interagindo com os sensores e botões da caixinha.

Conteúdo:

  • Linguagem C;
  • Desenvolvimento de esquemático, layout e montagem de PCB;
  • Desenvolvimento de estrutura plástica de baixo custo inicial.

Características:

  • ESP32;
  • Display 320×240 com touch capacitivo (LCD + CTP);
  • Capacidade de tocar sons e músicas;
  • Carregamento via USB C;
  • Exemplo de interações:
    • Microfone com aplicação de FFT;
    • Botões, LEDs, acelerômetro, temperatura, sensor de distância etc;
    • Ao todo são 14 interações externas e 6 internas;
    • Todas as faces da PuzzleBox possuem interações.
  • Usa FreeRTOS;
  • Possibilidade de conectar à internet para atualizar firmware remotamente.

Modificação de uma balança Wii Fit para transformá-la em uma balança de peso corporal com indicação da medição por meio de uma voz que fala o valor do peso.

Conteúdo:

  • Linguagem C++;
  • Desenvolvimento de esquemático e montagem de circuito com módulos.

Características:

  • ESP32;
  • 1 HX711 medindo 4 células de carga;
  • Conversor DA para tocar sons;
  • Sons previamente extraídos de uma ferramenta que sintetiza a voz;
  • Uso do deep sleep para a bateria durar meses:
    • Até então ela durou 4 meses. E a estimativa é de que ela dure 6 meses ao todo considerando que ao menos 1 vez por dia o dispositivo é ligado.
  • Atualização do firmware pela internet (OTA).

Foto do circuito montado:

Desenvolvimento de um robô redondo pequeno (~13cm de diâmetro e 7 cm de altura) para aspirar pequenas partículas do chão.

Conteúdo:

  • Linguagem C++;
  • Desenvolvimento de esquemático, layout e montagem de PCB;
  • Projeto e impressão de estrutura plástica em impressora 3D;
  • Simulação do robô em ambiente virtual (Webots).

Características esperadas:

  • ESP8266;
  • 1 motor para cada roda e 1 motor para sucção de partículas;
  • 3 sensores de distância a laser;
  • Conector USB C para recarregar bateria interna;
  • Mapeamento do ambiente;
  • Algoritmo de localização;
  • Sistema controlado pela internet;
  • Roda boba personalizada e criada em impressora 3D baseada em uma esfera.

A imagem abaixo mostra a foto mais recente da estrutura projetada:

robô aspirador de pó v1

E, neste link, é possível ver o robô em fase de testes se movimentando.

A foto abaixo mostra o circuito projetado montado na estrutura:

Acabei colocando o projeto em pausa por ter perdido o interesse em finalizá-lo.

Desenvolvido por mim, pelo Bernardo Campos Ferreira de Faria, pelo Fábio Hoffman, pelo Jonas Henrique Ribeiro da Silva e pelo Roger da Silva Xavier.

Trabalho de Conclusão de Curso em que desenvolveu-se um dispositivo portátil de baixo custo para auxiliar deficientes visuais em tarefas cotidianas, como no reconhecimento de produtos de supermercado, leitura de textos e identificação de cores.

Conteúdo:

Características:

  • Rasberry Pi 3;
  • Bateria de Lítio de 1200 mAh;
  • 3 botões para interação do deficiente visual;
  • 1 conector de fone de ouvido para feedback auditivo;
  • 1 câmera 1080p para Raspberry Pi.

Atairu dispositivo portátil para deficientes visuais

Neste link é possível ver o vídeo de apresentação do projeto.

Desenvolvimento de um dispositivo que é um jogo eletrônico com desafios de lógica, que são resolvidos interagindo com os sensores e botões da caixinha.

Conteúdo:

  • Linguagem C;
  • Desenvolvimento de esquemático, layout e montagem de PCB;
  • Projeto e impressão de estrutura plástica em impressora 3D.

Características:

  • STM32f303;
  • ESP12F;
  • Controle de buzzer passivo para tocar sons;
  • Leitura de microfone:
    • Aplicação de filtro FIR para filtrar sinal e aplicação de FFT (faz parte da resolução de alguns desafios).
  • Outras interações:
    • Botões, LEDs, acelerômetro, NTC para medir temperatura, LDR, encoder, switch de 5 direções e display OLED.
  • Tudo funciona em tempo real (amostragem do microfone e buzzer);
  • Possibilidade de conectar à Internet para atualizar firmware (tanto do STM32 quanto do ESP12F):
    • Arquivo de atualização (.bin) fica no Firebase.

PuzzleBox - dispositivo com desafios de lógica

Desenvolvimento de uma smart lamp. O sistema ‘smart lamp’ desenvolvido tem o objetivo de transformar qualquer lâmpada convencional em smart. Para isso, o dispositivo é rosqueado em uma boquilha e uma lâmpada é rosqueada no dispositivo.

Conteúdo:

  • Linguagem C++;
  • Desenvolvimento de esquemático, layout e montagem de PCB;
  • Projeto e impressão de estrutura plástica em impressora 3D.

Características:

  • ESP12F;
  • Controle manual da lâmpada (como se o sistema não existisse);
  • Controle automático da lâmpada baseado no status do sensor de presença;
    • Não funcionou muito bem.
  • Controle manual da lâmpada pela internet;
  • Atualização do firmware pela internet (OTA).

Smart lamp

Implementação de um algoritmo de Localização de Monte Carlo (2D) para um robô de duas rodas em um ambiente simulado no Webots. A localização foi baseada na cor do chão do ambiente (preto e branco).

Conteúdo:

  • Python;
  • Robótica;
  • Simulação feita em ambiente virtual Webots.

Neste link tem um vídeo mostrando o projeto em funcionamento.

Desenvolvido por mim, pelo Bernardo Campos Ferreira de Faria, pelo Jonas Henrique Ribeiro da Silva e pelo Roger da Silva Xavier.

Conteúdo:

  • Linguagem C;
  • Desenvolvimento de esquemático, layout e montagem de PCB em placa ilhada;

Características do transmissor:

  • Modulador digital;
  • STM32F303;
  • Filtro analógico para limitar sinais de entrada entre 300 e 3400 Hz.
  • Multiplexação de dois canais;

Características do receptor:

  • Totalmente analógico;
  • Filtro para separar sinais de entrada;
  • Circuito demodulador;
  • Amplificador para ampliar sinais demodulados.

Abaixo está uma foto do transmissor:

Sistema FDM didático

Neste link, tem um vídeo apresentando o projeto em pleno funcionamento.

Implementação de um algoritmo de Pathfinding em um robô de duas rodas em um ambiente simulado.

Conteúdo:

  • Python;
  • Robótica;
  • Simulação feita em ambiente virtual Webots.

Neste link tem um vídeo mostrando o projeto em funcionamento.

Criação de algoritmo para filtrar os sinais de ângulo obtidos de um acelerômetro com ruído instalado em um pêndulo. Os testes foram feitos via simulador.

Conteúdo:

  • Python;
  • Robótica;
  • Simulação feita em ambiente virtual Webots.

Características:

  • Implementação de 4 métodos diferentes para comparação:
    • Monte Carlo Localization (MCL);
    • Particle Filter (ou SMC);
    • Kalman Filter;
    • Extended Kalman Filter (EKF).
  • O melhor método (EKF) apresentou erros menores que 0,2º.

A imagem abaixo sintetiza os resultados:

Filtrando sinal inclinômetro

Desenvolvimento de um drone pequeno usando motores sem escova.

Conteúdo:

  • Linguagem C;
  • Desenvolvimento de esquemático, layout e montagem de PCB;
  • Projeto e impressão de estrutura plástica em impressora 3D;
  • Simulação do robô em ambiente virtual (Webots).

Características:

  • STM32F030F4P6;
  • Transmissor/receptor RF CC1101;
  • 4 motores brushless;
  • 1 acelerômetro (MPU6050);
  • Bateria de lítio;
  • Carregamento da bateria via conector USB;
  • Placa com analógico (de videogame) e display OLED para controle do drone.

Um pouco antes do drone realmente funcionar, acabei estragando um dos motores e, como eu já havia desprendido inúmeras horas neste projeto, acabei deixando de lado até criar coragem para comprar mais motores (ao todo eu havia comprado 8, sendo que 4 eram muito fracos). De toda forma, abandonei o projeto bem ciente de como desenvolver um drone corretamente, principalmente no sentido de minimizar ao máximo o peso do drone para que os motores dessem conta de levantar ele.

A imagem abaixo mostra um dos últimos testes que fiz com o drone:

Projeto drone

Projeto de um sistema capaz de monitorar a entrada e saída de pessoas de um cômodo para acionamento automático da luz do ambiente.

Conteúdo:

  • Linguagem C++;
  • Desenvolvimento de esquemático, layout e montagem de PCB;
  • Projeto e impressão de estrutura plástica em impressora 3D.

Características:

  • ESP12F;
  • Sensor de gestos;
  • Controle automático da lâmpada baseado no status do sensor de gestos;
  • Controle manual da lâmpada pela internet;
  • Atualização do firmware pela internet (OTA).

Controle automático da luz

Neste link, é possível ler os detalhes do projeto.

Fui convidado pela Luana Cangussú (estudante de medicina na época) a participar do projeto de desenvolvimento de uma caixa eletrônica para melhorar a adesão de pacientes aos medicamentos.

Conteúdo:

  • Linguagem C++ (Arduino);
  • Desenvolvimento de esquemático;
    • Não fui eu quem cuidou da montagem do projeto.

Características:

  • Arduino UNO;
  • Display LCD 16×2;
  • Circuito para controle liga-desliga do display;
  • Buzzer, LEDs e botões.

Eventualmente a Luana levou e apresentou o projeto no X Congresso Brasileiro de Farmacêuticos em Oncologia. Além disso, ela levou o projeto à Semana de Ensino, Pesquisa e Extensão da
Universidade Federal do Vale do São Francisco (SCIENTEX) no ano de 2020 e 2021.

A página do trabalho pode ser acessada por meio deste link.

Desenvolvido por mim, pelo Bernardo Campos Ferreira de Faria, pelo Jonas Henrique Ribeiro da Silva e pelo Roger da Silva Xavier.

Projeto de um Teclado Musical Portátil, ao estilo de um piano, desenvolvido para o Trabalho Acadêmico Integrador da Engenharia Eletrônica e de Telecomunicações da PUC-Minas.

Conteúdo:

  • Linguagem C;
  • Desenvolvimento de esquemático, layout e montagem de PCB;
  • Projeto e impressão de estrutura plástica em impressora 3D.

Características:

  • STM32F303;
  • Sintetização do sinal de um piano;
  • Sintetização do sinal de um violino;
  • Teclado capacitivo;
  • Módulo Bluetooth para comunicação do dispositivo com o PC;
  • Display OLED;
  • 2 botões para interação adicional;
  • Alto-falante;
  • Saída para fone de ouvido.

Abaixo está uma foto do projeto:

Teclado musical portátil

Neste link, tem um vídeo apresentando o projeto em pleno funcionamento.

Criação de algoritmo para controle de robô pêndulo invertido. Os testes foram feitos via simulador.

Conteúdo:

  • Python;
  • Robótica;
  • Simulação feita em ambiente virtual Webots.

Características:

  • Implementação de 2 métodos diferentes para controle:
    • controle PID;
    • rede neural de múltiplas camadas treinada via algoritmo genético.

A imagem abaixo mostra o robô testado:

Robô pêndulo invertido

Recriação do jogo do dinossauro da Google com adição de um agente capaz de aprender a jogar sozinho.

Conteúdo:

  • Python;
  • Inteligência Artificial;

Características:

  • Rede MLP;
  • Rede treinada via algoritmo genético;

A imagem abaixo mostra um print do jogo em funcionamento:

jogo dinossauro inteligência artificial

Desenvolvido por mim, pelo Jonas Henrique Ribeiro da Silva e a equipe do Green Puc Minas.

Conteúdo:

  • Linguagem C;
  • Energia solar;
  • Desenvolvimento de esquemático, layout, criação e montagem de PCB.
    • A PCB foi criada em um laboratório da PUC-Minas.

Características:

  • ATmega328p;
  • Sensor de distância ultrassônico;
  • Circuito de comando para controlar bomba d’água.

A imagem abaixo mostra o projeto montado:

Refrescador fotovoltaico

Desenvolvido por mim, pelo Hilder Lira Viana, pelo Jonas Henrique Ribeiro da Silva, pelo Roger da Silva Xavier e pela Rúbia Evelyn.

Neste link, é possível ler os detalhes do projeto.

O projeto consistiu em gerar uma imagem de um rosto nunca visto utilizando uma rede neural geradora adversária (GANN). Os rostos foram gerados com base em padrões observados em diversas imagens de atores/celebridades. Este projeto foi desenvolvido durante o Nanodegree em Deep Learning da Udacity.

O projeto consistiu em prever a raça de um determinado cachorro em uma imagem usando uma rede neural convolucional (CNN). Caso uma imagem de uma pessoa fosse fornecida, o algoritmo dizia qual era a raça de cachorro mais parecida com a pessoa. Este projeto foi desenvolvido durante o Nanodegree em Deep Learning da Udacity.

O projeto consistiu em gerar um roteiro de uma cena do Simpsons no bar do Moe utilizando uma rede neural recorrente (CRNN). A rede utilizada foi treinada com base em roteiros existentes. Este projeto foi desenvolvido durante o Nanodegree em Deep Learning da Udacity.

Sistema controlado por voz com foco em automação residencial, com o objetivo de ser o mais barato e simples possível comparado com soluções existentes. Além disso, o sistema é capaz de realizar tarefas simples do dia a dia através do acionamento elétrico de algum aparelho ou por meio da automatização de tarefas intelectuais.

Conteúdo:

  • Linguagem Lua;
  • Desenvolvimento de esquemático e montagem do circuito em protoboard;

Características:

  • ESP8266 (NodeMCU);
  • Controle do sistema pela fala ao acessar webserver.
    • O sistema usava uma ferramenta de reconhecimento de voz do Google que era (não sei se ainda existe) embutida no próprio navegador.

A imagem abaixo sintetiza como o projeto foi estruturado em termos da comunicação:

Sistema controlado pela voz