Circuitos digitais de baixo consumo Low-power digital circuits
Carlos Dias Jr.
Automation Engineer/M.Sc. Computational Modeling/Ph.D. Candidate
Projeto sistemas que vivem entre o hardware e a matemática: de painéis elétricos e robôs a foguetes e nanosatélites. Meu doutorado investiga quanta energia um circuito digital realmente precisa gastar para computar.
I build systems that live between hardware and mathematics: from control panels and robots to rockets and nanosatellites. My Ph.D. investigates how much energy a digital circuit truly needs to spend in order to compute.
01 Quem eu souWho I am
Sou Técnico em Eletrônica (2011) e Engenheiro de Automação Industrial (2017). No mestrado troquei o chão de fábrica pela modelagem: sou Mestre em Modelagem Matemática e Computacional pelo CEFET-MG e hoje faço doutorado na mesma área, com foco em otimização de circuitos digitais.
Sou pesquisador do grupo Robotics and Intelligent Systems (EPIIBOTS) e dou aulas de robótica e automação no IFMG, Campus Ibirité. Trabalho principalmente com robótica, sistemas embarcados, inteligência artificial e engenharia elétrica, pesquisando e orientando projetos tecnológicos.
Também oriento equipes de estudantes na construção de nanosatélites (CubeSats) e foguetes para competições nacionais e internacionais, com destaque para a Latin American Space Challenge (LASC) e o CubeDesign.
I am an Electronics Technician (2011) and an Industrial Automation Engineer (2017). In my M.Sc. I traded the shop floor for modeling: I hold an M.Sc. in Mathematical and Computational Modeling from CEFET-MG and I am now a Ph.D. candidate working on digital circuit optimization.
I am a researcher with the Robotics and Intelligent Systems (EPIIBOTS) group and I teach robotics and automation at IFMG, Ibirité Campus. I work mainly with robotics, embedded systems, artificial intelligence and electrical engineering, researching and mentoring technology projects.
I also mentor student teams building nanosatellites (CubeSats) and rockets for national and international competitions, notably the Latin American Space Challenge (LASC) and CubeDesign.
02 AplicaçõesApplications
Dois simuladores que escrevi para ensinar automação. Rodam direto no navegador, sem instalar nada. Two simulators I wrote for teaching automation. They run straight in the browser, nothing to install.
Vue 3 · SVG · sem buildno build
Ladder PLC Simulator
Programe um CLP em linguagem Ladder e veja o programa rodar, ciclo a ciclo, dentro do navegador.
Program a PLC in Ladder logic and watch it run, scan by scan, inside your browser.
Abrir aplicaçãoOpen the appJavaScript · Vite · GPL-3.0
Neumatic mod
Monte circuitos pneumáticos (cilindros, válvulas e comandos) e simule o movimento passo a passo.
Build pneumatic circuits (cylinders, valves and controls) and simulate the motion step by step.
Abrir aplicaçãoOpen the appO que éWhat it is
Um CLP virtual. CLP (Controlador Lógico Programável) é o computador industrial que comanda esteiras, prensas, elevadores e a maior parte das linhas de produção. Ele é programado em Ladder, uma linguagem em forma de diagrama elétrico, com trilhos nas laterais e "degraus" no meio, herdada dos antigos painéis de relés. Este simulador põe esse CLP inteiro dentro de uma aba do navegador.
A virtual PLC. A PLC (Programmable Logic Controller) is the industrial computer that drives conveyors, presses, lifts and most production lines. It is programmed in Ladder, a language drawn like an electrical diagram, with rails on the sides and "rungs" in between, inherited from old relay panels. This simulator puts that whole PLC inside a browser tab.
Por que eu fizWhy I built it
O software oficial dos fabricantes é pesado, licenciado e quase sempre só roda em Windows, o que trava uma aula inteira antes de começar. Aqui o aluno abre um link e já está programando. Sem instalação, sem licença, sem build e funcionando offline.
Vendor software is heavy, licensed and almost always Windows-only, enough to stall an entire class before it starts. Here a student opens a link and is already programming. No install, no license, no build step, and it works offline.
Como funcionaHow it works
- Na aba Elementos, escolha uma instrução e clique na célula do diagrama, ou arraste-a até lá.
- Arraste um elemento por cima de outro para criar ramais em paralelo (o equivalente a um "OU" lógico). Ramais aninhados são suportados.
- Na aba Simulação, clique em Iniciar. Um motor de varredura (scan) passa a executar o programa em ciclos, como um CLP real.
- Um painel flutuante mostra as entradas e saídas: acione as digitais nos LEDs e mova os sliders das analógicas. O diagrama acende em tempo real conforme a energia percorre cada degrau.
- In the Elements tab, pick an instruction and click a cell in the diagram, or drag it there.
- Drag an element on top of another to create parallel branches (a logical "OR"). Nested branches are supported.
- In the Simulation tab, hit Start. A scan engine begins executing the program in cycles, like a real PLC.
- A floating panel shows the I/O: toggle digital inputs on the LEDs, drag the analog sliders. The diagram lights up in real time as power flows through each rung.
O que tem dentroWhat's inside
- 5 modelos de CLP reais5 real PLC models WEG PLC300, Siemens S7-1200, Allen-Bradley MicroLogix 1400, Mitsubishi FX5U e o genérico IEC 61131-3. Trocar o modelo renomeia e remapeia as E/S por posição, sem refazer o diagrama. WEG PLC300, Siemens S7-1200, Allen-Bradley MicroLogix 1400, Mitsubishi FX5U and a generic IEC 61131-3. Switching models renames and remaps I/O by position, no need to redraw.
- Conjunto completo de instruçõesFull instruction set Contatos NA/NF e de borda (P/N), bobinas simples, negada, Set e Reset, temporizadores TON/TOF, contadores CTU/CTD, seis comparadores e blocos analógicos Scale e Move. NO/NC and edge contacts (P/N), plain, negated, Set and Reset coils, TON/TOF timers, CTU/CTD counters, six comparators, plus the Scale and Move analog blocks.
- Timers e contadores em sérieInline timers and counters Podem ficar no meio da linha, antes da bobina, funcionando como bloco de duas pontas. Detalhe que a maioria dos simuladores didáticos não implementa. They can sit mid-rung, before the coil, acting as a two-ended block. Most teaching simulators skip this.
- Feedback visual do acumuladoLive accumulator feedback Durante a simulação cada timer mostra o tempo decorrido (ET) e cada contador o valor acumulado (CV), com barra de progresso que fica verde quando a saída liga. While running, every timer shows elapsed time (ET) and every counter its accumulated value (CV), with a progress bar that turns green when the output goes high.
- Projetos em abasTabbed projects Autosave no navegador, com exportação e importação em JSON. O modelo de CLP viaja junto no arquivo. Autosaved in the browser, with JSON export and import. The PLC model travels inside the file.
um degrau com temporizador em série a rung with an inline timer
I0.0 ──┤ ├──┤ TON T1 / PT 5.0s ├──( Q0.0 )
Q0.0 só liga depois que I0.0 ficar 5 s ligada, e desliga assim que ela abrir. Q0.0 turns on only after I0.0 has been high for 5 s, and drops the moment it opens.
Stack:Stack: Vue 3 · SVG · localStorage · zero dependências externaszero external dependencies
O que éWhat it is
Um simulador de circuitos pneumáticos. Pneumática é a tecnologia que usa ar comprimido para gerar movimento: é o que empurra o pistão que fecha uma embalagem, separa peças numa esteira ou aciona a porta de um ônibus. Você desenha o circuito (cilindros, válvulas, botões) e o simulador anima o ar percorrendo as tubulações e as hastes avançando e recuando.
A pneumatic circuit simulator. Pneumatics is the technology that uses compressed air to produce motion: it is what pushes the piston sealing a package, sorts parts on a conveyor, or opens a bus door. You draw the circuit (cylinders, valves, buttons) and the simulator animates air flowing through the lines and the rods extending and retracting.
Por que eu fizWhy I built it
Uma bancada pneumática de laboratório é cara, ocupa espaço e atende poucos alunos por vez. No simulador, a turma inteira monta, erra e refaz o circuito quantas vezes quiser. Ninguém fura uma mangueira no processo.
A physical pneumatic bench is expensive, takes up space, and serves few students at a time. In the simulator the whole class can build, break and rebuild circuits as many times as they like. Nobody bursts a hose doing it.
Sobre o forkAbout the fork
Este projeto é um fork do Picuino Pneumatic Simulator, criado por Carlos Félix Pardo Martín. O original é excelente como motor de simulação, mas a edição do circuito era trabalhosa e a interface não estava em português. Meu trabalho foi todo em usabilidade, acessibilidade e experiência de uso: manter o motor e tornar a montagem mais fluida.
This project is a fork of the Picuino Pneumatic Simulator by Carlos Félix Pardo Martín. The original is an excellent simulation engine, but editing circuits was laborious and the UI had no Portuguese. My work went entirely into usability, accessibility and user experience: keep the engine, make the building fluid.
O que eu acrescenteiWhat I added
- Interface em português do Brasil. Tradução completa da aplicação. Brazilian Portuguese UI. A full translation of the app.
- Grade na área de desenho, para alinhar componentes sem esforço. Grid on the canvas, so components align effortlessly.
- Zoom e movimentação do canvas (pan), para navegar em circuitos grandes. Zoom and canvas panning, to navigate large circuits.
- Copiar e colar componentes. Nada de redesenhar a mesma válvula cinco vezes. Copy and paste components. No redrawing the same valve five times.
- Feedback visual ao posicionar, mover, apagar, editar e espelhar componentes. Visual feedback when placing, moving, deleting, editing and mirroring components.
- Controles de simulação completos: play, pause, próximo passo e reiniciar. Full simulation controls: play, pause, step forward and restart.
- Tempo e estado da simulação visíveis o tempo todo. Simulation time and state always on screen.
- Atalhos de teclado. D apaga, M move. Keyboard shortcuts. D deletes, M moves.
// crédito e licença// credit and licence
Original de Carlos Félix Pardo Martín: picuino.com/neumatic. Este fork mantém a licença GNU GPL v3.0, e o código está aberto no GitHub.
Original by Carlos Félix Pardo Martín: picuino.com/neumatic. This fork keeps the GNU GPL v3.0 licence, and the source is open on GitHub.
Stack:Stack: JavaScript · Vite · SVG · GPL-3.0
03 PesquisaResearch
O limite termodinâmico da computaçãoThe thermodynamic limit of computing
Toda vez que um circuito digital apaga um bit, ele perde informação. A física cobra por isso. O Princípio de Landauer estabelece que esse apagamento dissipa, no mínimo, kB·T·ln 2 joules de energia. É um piso: nenhum avanço de fabricação passa por baixo dele.
Meu doutorado trabalha no nível das portas lógicas, investigando como sintetizar e otimizar circuitos combinacionais para que se aproximem desse mínimo termodinâmico. É o mesmo fio condutor do mestrado em Modelagem Matemática e Computacional, agora levado adiante.
Every time a digital circuit erases a bit, information is lost. Physics charges for it. Landauer's Principle states that this erasure dissipates at least kB·T·ln 2 joules of energy. It is a floor: no manufacturing advance gets underneath it.
My Ph.D. works at the logic-gate level, investigating how to synthesise and optimise combinational circuits so they approach that thermodynamic minimum. It is the same thread as my M.Sc. in Mathematical and Computational Modeling, now carried further.
// código da pesquisa// research code
circuitropy Rust Biblioteca para inspecionar circuitos digitais combinacionais a partir de netlists Verilog, explorando os limites de energia sob o Princípio de Landauer. A library for inspecting combinational digital circuits from Verilog netlists, exploring energy limits based on Landauer's principle. verilog-benchmarks Verilog Coleção organizada de netlists Verilog combinacionais (EDGE, EPFL, somadores BCGEN) para benchmarks. A curated collection of combinational Verilog netlists (EDGE, EPFL, BCGEN adders) for benchmarking. prog.me CSS Projeto de extensão no IFMG Campus Ibirité para ensino de robótica e programação. Outreach project at IFMG Ibirité for teaching robotics and programming.04 Contribuições no GitHubGitHub contributions
- 7repositóriosrepositories
- 14seguidoresfollowers
- 125contribuições / anocontributions / year
05 Foguetes e nanosatélitesRockets and nanosatellites
Oriento equipes de estudantes que projetam e constroem CubeSats (nanosatélites padronizados em cubos de 10 cm) e foguetes experimentais para competições nacionais e internacionais. São projetos onde estrutura, energia, telemetria, embarcados e controle precisam funcionar juntos, no dia da prova, sem segunda tentativa.
I mentor student teams that design and build CubeSats (standardised 10 cm cube nanosatellites) and experimental rockets for national and international competitions. These are projects where structure, power, telemetry, embedded systems and control must all work together, on launch day, with no second attempt.
LASC
Latin American Space Challenge: competição de foguetes e cargas úteis experimentais.
Latin American Space Challenge: experimental rocketry and payload competition.
CubeDesign
Competição de nanosatélites do INPE, com categorias de CubeSat e CanSat.
INPE's nanosatellite competition, with CubeSat and CanSat categories.
EPIIBOTS
Grupo de pesquisa Robotics and Intelligent Systems, onde essas frentes se encontram.
The Robotics and Intelligent Systems research group, where these fronts meet.