https://github.com/alan-oliveir/photospice
Aplicação que captura um circuito esquemático a partir de uma imagem, gera automaticamente uma netlist no padrão Spice e simula o circuito mostrando ao usuário as tensões nodais ou gráfico de tensão ou corrente dependendo do tipo de simulação e dos componentes presentes no circuito.
https://github.com/alan-oliveir/photospice
circuits-and-electronics convolutional-neural-networks simulation yolo
Last synced: about 1 year ago
JSON representation
Aplicação que captura um circuito esquemático a partir de uma imagem, gera automaticamente uma netlist no padrão Spice e simula o circuito mostrando ao usuário as tensões nodais ou gráfico de tensão ou corrente dependendo do tipo de simulação e dos componentes presentes no circuito.
- Host: GitHub
- URL: https://github.com/alan-oliveir/photospice
- Owner: Alan-oliveir
- License: mit
- Created: 2025-05-19T17:35:37.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-05-24T02:05:54.000Z (about 1 year ago)
- Last Synced: 2025-05-24T03:19:07.574Z (about 1 year ago)
- Topics: circuits-and-electronics, convolutional-neural-networks, simulation, yolo
- Language: Python
- Homepage:
- Size: 74.9 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# PhotoSpice
PhotoSpice é uma aplicação que captura um circuito esquemático a partir de uma imagem, gera automaticamente uma netlist no padrão Spice e simula o circuito mostrando ao usuário as tensões nodais ou gráfico de tensão ou corrente dependendo do tipo de simulação e dos componentes presentes no circuito.
## 📋 Sobre o Projeto
Este projeto foi desenvolvido como parte do Projeto Integrado do Departamento de Engenharia Eletrônica (DEL) da Escola Politécnica da UFRJ (2022.1), sob orientação dos professores Casé e Juarez.
### Motivação
Os simuladores SPICE atualmente são ótimas ferramentas ao se trabalhar com eletrônica, no entanto é preciso lidar com interfaces gráficas desses programas que podem não ser padronizadas e dependem do hardware e sistemas onde estão instaladas, o que pode atrasar o processo de simulação como um todo.
O PhotoSpice busca simplificar o processo de simulação para fins de estudo, permitindo que os usuários tirem uma foto do circuito com um smartphone e enviem para análise imediata. O projeto também teve inspiração em aplicações similares que fazem a solução de equações matemáticas a partir de fotos.
### Vídeo do Projeto
[PhotoSpice](https://youtu.be/VwTYSiOtutM)
## 🚀 Funcionalidades
- **Captura de imagem**: Use seu smartphone ou upload de arquivo para enviar o esquemático do circuito
- **Processamento automático**: Binarização e identificação de contornos dos componentes
- **Detecção inteligente**: Reconhecimento de componentes, conexões, valores e polaridades
- **Geração de Netlist**: Criação automática de netlist no padrão Spice
- **Simulação interativa**: Possibilidade de correção de parâmetros e seleção do tipo de simulação
- **Visualização de resultados**: Exibição das tensões nodais ou gráficos de tensão/corrente
## 🔌 Componentes Suportados
Atualmente, o sistema suporta os seguintes componentes:
- **Componentes passivos**:
- Resistor
- Capacitor
- Indutor
- **Diodos**
- **Fontes de tensão**:
- Contínua
- Alternada
## 💻 Tecnologias Utilizadas
- **Yolo**: Ferramenta de visão computacional para detecção e classificação de objetos em tempo real
- **PySpice**: Interface open source Python com o simulador NGSpice
- **PyTorch**: Framework de aprendizado de máquina
- **Matplotlib**: Biblioteca para visualização dos gráficos da simulação
- **Albumentations**: Ferramenta para data-augmentation das imagens de treinamento
- **Vue.js e Bootstrap**: Frontend
- **Flask**: Backend
- **Outras bibliotecas**: NumPy, OpenCV, pycocotools
## 📝 Como Usar
1. Acesse a aplicação web
2. Selecione uma foto do esquemático do circuito
3. Clique no botão "Analisar"
4. Verifique e corrija (se necessário) os valores detectados na netlist
5. Selecione o tipo de simulação:
- **Ponto de operação**: Exibe as tensões dos nós
- **Análise transiente**: Exibe gráficos de tensão nodal ou corrente em componentes
6. Para análise transiente, defina:
- Tempo inicial
- Tempo final
- Passo máximo
- Componente ou nó para visualização
7. Visualize os resultados da simulação
## 🧠 Redes Neurais
O sistema utiliza três redes neurais treinadas:
- Detecção geral de componentes e conexões
- Identificação de números, unidades e múltiplos
- Identificação das polaridades de determinados componentes
## 🔜 Desenvolvimento Futuro
- Inclusão de mais componentes eletrônicos (transistores bipolares, MOSFETs, amplificadores operacionais)
- Geração de diagrama esquemático com indicação visual das correntes e tensões nos nós
## 👥 Autores
- Alan de Oliveira
- Lucas Tiné
- Matheus Felinto