Se chegou a este artigo provavelmente anda à procura dos melhores simuladores de circuitos de eletrónica. Vamos mostrar-lhe a seguir as características e o funcionamento básico de um simulador de circuitos que consideramos interessante tanto para fins profissionais como académicos.
O que são simuladores de circuitos
Os softwares de simulação de circuitos possuem algoritmos que conseguem prever o comportamento dos componentes eletrónicos com base nos dados de entrada. Algumas dessas ferramentas utilizam visualização 2D ou até mesmo 3D para mostrar o comportamento dos circuitos e dos componentes.
Os programas de simulação de circuitos eletrónicos são utilizados para testar circuitos virtualmente antes de os construir fisicamente. Mas há quem veja este tipo de ferramentas como um tipo de jogo. Enquanto o principal propósito dos jogos como o 22Bet é entreter os jogadores, os softwares de simulação de circuitos eletrônicos também podem ser utilizados para fins educacionais e de entretenimento, permitindo que os utilizadores experimentem e aprendam sobre eletrónica de forma interativa.
Resumindo: os softwares de simulação de circuitos são programas de computador que permitem aos engenheiros e projetistas de eletrónica modelar, analisar e testar circuitos eletrónicos de forma virtual. Servem para replicar o comportamento de componentes eletrónicos num ambiente digital, permitindo a análise do seu desempenho e comportamento antes da implementação física.
O que é o simulador SimulIDE
SimulIDE é um simulador simples de circuitos eletrónicos em tempo real, destinado tanto a amadores ou a estudantes para aprenderem e experimentarem circuitos eletrónicos simples e micro controladores, suportados por sistemas PIC, AVR e Arduino.
De facto, não podemos dizer que seja um simulador extremamente preciso para a análise de circuitos. No entanto, é muito rápido, simples e fácil de utilizar, o que significa que pode ser utilizado em modelos eletrónicos simples, mas não precisam ser muito precisos porque, também, não tem muitos recursos.
A simplicidade e a facilidade de utilização são as principais características deste simulador.
Pode criar, simular e interagir com os seus circuitos em minutos, basta arrastar os componentes da lista, e depois soltá-los no circuito, ligá-los e no fim carregar no botão liga / desliga para ver como funciona.
O SimulIDE também vem com um editor de código e um sistema de depuração para GcBasic, Arduino, PIC asm e AVR asm. Na verdade, este simulador ainda está nas primeiras fases de desenvolvimento. Possui funcionalidades básicas, mas já é possível escrever, compilar e depurar códigos básicos com pontos de interrupção, monitorizar registos e variáveis globais.
É uma ferramenta de código aberto com um tipo de licença GPLv3 e pode encontrar o código-fonte nesta página: https://launchpad.net/simulide
Com este simulador podemos utilizar componentes analógicos e digitais. Conseguimos trabalhar com microcontroladores, criar subcircuitos, ou então utilizar um osciloscópio virtual.
1 – Descarregar a Aplicação
O processo de descarregamento da aplicação é muito simples bastando aceder ao site do desenvolvedor www.simulide.com e clicar no botão “Download” da barra superior da página principal.
Irá aparecer-lhe uma página com links para poder descarregar a aplicação. Só tem de escolher a que corresponde com o sistema operativo do seu computador. No nosso caso escolhemos a opção do Windows 64.
Na página seguinte deve defina um valor que queira pagar pela aplicação. Se entender que não deve pagar nada basta colocar o valor 0 e clicar no botão azul “Eu quero isto!”
Apesar de ser uma ferramenta 100% gratuita, se poder ajudar, não custa contribuir com algum tipo de valor para ajudar os desenvolvedores a continuarem a investir no projeto.
Na janela seguinte irá aparecer um formulário para preencher com o seu endereço de email. Na verdade, o e-mail não é obrigatório, mas se inserir o seu e-mail, irá receber notificações quando as novas versões ou revisões foram lançadas e estiverem disponíveis.
Depois de inserir o seu email (ou não) só tem de clicar no botão cinzento “Obter”.
Poderá aparecer-lhe uma janela popup para preencher um código captcha. Depois de o fazer será descarregado para o seu computador um ficheiro comprimido com os tudo o que precisa para utilizar o programa.
Para utilizar o programa basta descomprimir o ficheiro descarregado (.zip ou .tar.gz) para uma pasta no seu computador e executar o ficheiro “simulide.exe”.
Pode copiar esta pasta para qualquer local que desejar, mantendo a estrutura interna como está. Não mova ou exclua ficheiros a menos que saiba o que está a fazer.
Se estiver a utilizar a versão Windows ou Linux AppIe, não precisará instalar mais nada. Nas versões Windows todas essas dependências estão incluídas, por isso não precisa de instalar nada.
No Ubuntu ou outros derivados do Debian pode instalar todas as dependências com este comando:
“sudo apt-get install libqt5core5a libqt5gui5 libqt5xml5 libqt5svg5 libqt5widgets5 libqt5concurrent5 libqt5multimedia5 libqt5multimedia5-plugins libqt5serialport5 libqt5script5 libelf1”
Para outras versões do Linux precisa instalar estas dependências:
- Qt5 Core
- Qt5 Gui
- Qt5 Xml
- Qt5 svg
- Qt5 Widgets
- Qt5 Concurrent
- Qt5 Multimedia
- Qt5 Multimedia Plugins
- Qt5 Serialport
- Qt5 Script
- libelf
O executável está na pasta “bin”, basta clicar duas vezes nele ou executar a partir de um terminal se ver algumas mensagens sobre a execução do SimulIDE. Mensagens úteis.
2 – Interface da Aplicação
A interface gráfica do utilizador está dividida em 3 partes principais e pode redimensioná-las para ocupar todo o espaço ou fazê-las desaparecer.
Painel esquerdo
Este painel contém separadores com os componentes e o explorador de ficheiros.
Componentes
Esta é a lista de componentes disponíveis para adicionar ao circuito. Está organizada por categorias e subcategorias que podem ser expandidas e recolhidas clicando na pequena seta à esquerda do nome da categoria.
O estado Expandido/Recolhido é guardado e restaurado, portanto, terá a mesma aparência na próxima sessão. Além disso, também é possível ocultar categorias ou componentes únicos da lista.
Dessa forma pode criar uma Lista de Componentes mais simples, o que é útil se utilizar apenas alguns deles, por exemplo, pode criar uma lista apenas para Circuitos Lógicos.
Para fazer isso, clique com o botão direito em qualquer parte da lista e selecione “Gerir Componentes”. Aparecerá um widget onde poderá escolher quais as categorias e componentes que quer que fiquem visíveis.
Essas configurações são guardadas automaticamente, para que da próxima vez que abrir o SimulIDE ele terá sempre a mesma aparência.
Explorador ficheiros
Este separador mostra-nos o sistema de ficheiros no formato de uma árvore. Pode navegar pelas pastas em expansão ou recolhimento e abrir ficheiros no circuito ou no editor.
No topo há uma zona com os “favoritos” onde aparecem algumas pastas predefinidas:
- FileSystem: mostra a raiz do seu sistema, e todos os seus discos internos e externos.
- Home: mostra a sua pasta de utilizador.
- Exemplos: são exemplos que já vêm incluídos no SimulIDE.
Logo a seguir, encontrará uma caixa com o caminho atual do navegador de ficheiros. Pode-se introduzir um caminho nesta caixa para aceder ao conteúdo que precisar.
Também pode clicar com o botão direito para aceder ao menu de contexto e adicionar aos favoritos ou então abrir o ficheiro no editor de ficheiros.
Painel central
Neste painel central irá encontrar uma janela onde irão aparecer os elementos e os instrumentos do circuito como o plotter, osciloscópios, monitores de portas serial, etc…
Basicamente, nessa área amarela “Circuit Canvas” que está no painel central é onde podemos criar e simular os nossos circuitos.
Criar Circuitos
Componentes:
Arraste os componentes do Painel Esquerdo -> Separador Componentes e solte-os no Circuit Canvas.
Clique com o botão esquerdo nos componentes para os conseguir mover de um lado para o outro.
Clique com o botão direito por cima de um componente para lhe aparecer um menu de contexto com as propriedades que pode editar do componente.
Fios:
Clique com o botão esquerdo nos pinos dos componentes ou em outros fios para iniciar e fechar os fios.
Para apagar um fio basta arrastar o rato com o botão esquerdo pressionado por cima do fico para o selecionar e depois clicar na tecla “Delete” do seu teclado.
Se quiser mover o fio utilize o botão do meio do seu rato para clicar no fio e movê-lo para onde quiser.
O circuito:
Utilize o botão do meio do rato em qualquer parte vazia do circuito para o conseguir mover de um lado para o outro.
Se utilizar a roda “wheel” do seu rato irá conseguir aumentar e diminuir o circuito de tamanho.
Clique com o botão direito do rato em qualquer parte vazia do circuito para mostrar o menu de contexto do Circuito.
Na parte superior da aplicação encontrará um botão liga / desliga que pode utilizar para iniciar/parar a simulação.
Menu de Contexto
No menu de contexto do Circuito pode encontrar algumas ações úteis:
- Colar: cola objetos copiados anteriormente.
- Desfazer: desfaz a última alteração.
- Refazer: refaz a última alteração desfeita.
- Importar: permite escolher um ficheiro “.simu” para importar para o circuito atual.
- Guardar: permite guardar o ficheiro atual como uma imagem (jpg, png, bmp ou svg).
- Criar Subcircuito: Cria um ficheiro de subcircuito utilizado para componentes como IC74.
- Lista de materiais: Cria um ficheiro de texto com a lista de materiais do circuito atual.
Propriedades
Podemos editar algumas propriedades relacionadas com a aparência e comportamento do circuito.
Para isso basta clicar com o botão direito do rato em qualquer parte vazia do circuito para abrir um separador com as “Propriedades” ou então clicar na roda dentada que aparece na parte superior da aplicação.
Algumas das propriedades que podemos editar são a ativação ou desativação da grade e da animação do circuito. Ou seja, pode mostrar ou ocultar a grade e isso pode melhorar um pouco a velocidade da simulação.
Também pode colorir os fios do circuito, o que é muito útil nos digitais porque o fio irá aparecer a vermelho para estado elevado (1) e a azul para estado baixo (0).
No entanto, animar o circuito pode diminuir a velocidade da simulação, mas sobre isso falaremos mais adiante neste artigo.
Painel direito
Neste painel mais à direita encontra um editor de texto com funcionalidades básicas de codificação e depuração.
Descrevemos neste artigo mais adiante, tudo o que precisa de saber sobre o módulo de codificação e depuração deste programa.
3 – Tipos de componentes
Muitos componentes são muito fáceis de utilizar, basta arrastar e soltar no circuito e às vezes ajustar alguns valores. As suas configurações estão acessíveis no widget “Propriedades”.
Para aceder às configurações, clique com o botão direito no componente e selecione “Propriedades” no menu popup que aparece.
Basicamente, existem 2 propriedades comuns a qualquer componente que são o “ID” que é o nome mostrado no Circuit Canvas e pode ser o que quiser e o “Mostrar ID” que mostra ou oculta o id no Circuit Canvas.
Cada tipo de Componente possui o seu próprio conjunto de propriedades, para editar valores basta clicar duas vezes no valor e selecionar a opção ou editar valor.
Alguns valores estão relacionados com unidades, por exemplo, nas resistências, o valor da resistência mudará de unidade para KΩ se o valor for >=1000 ou para mΩ se <=0,001. Reconhecemos que pode ser um pouco confuso sobretudo se está a lidar com estas unidades pela primeira vez.
Lista de componentes
Medidores
Frequencimeter |
Fontes
Fixed Volt Clock Volt. Source Current Source Rail Ground |
Botões
Push Switch Switch Dip Relay |
Passivos
Potentiometer Resistor ResistorDip Capacitor Electrolytic Cap. Inductor |
---|---|---|---|
Ativos
Diode Volt. Reg. OpAmp Mosfet BJT Analog Mux |
Saidas
WS2812 Led |
HD44780
Pcd8544 Ks0108 Ssd1306 |
Stepper
Servo Audio Out |
Logica
Counter Full Adder Shift Reg. |
Flipflop D
Flipflop JK Latch Ram/Rom |
Mux
Demux Decoder (4 to 10/16) Encoder (10/16 to 4) Bcd to 7S I2C to Parallel |
ADC
DAC lm555 |
Componentes Lógicos
A maioria dos componentes lógicos possui um grupo comum de propriedades para configurar as suas características de entrada e saída.
Pode ver/editar essas propriedades no separador “Propriedades” do painel esquerdo quando o componente é selecionado ou clicando com o botão direito no componente e escolhendo a opção “Propriedades”.
Além das propriedades típicas “id” e “show id” comuns a todos os componentes, existem algumas propriedades sobre as entradas e as saídas desse tipo de componente:
- Entrada Alta V: Tensão de entrada mínima considerada estado alto (limiar alto).
- Entrada Baixa V: Tensão de entrada máxima considerada estado baixo (limiar baixo).
- Impedância de entrada: Impedância de entrada.
- Saída Alta V: Tensão de saída para estado alto.
- Saída Alta V: Tensão de saída para estado baixo.
Editando essas propriedades consegue “imitar” diferentes famílias e tecnologias lógicas. Por exemplo, se desejar entradas de disparo Schmitt, basta definir as tensões de entrada conforme necessário, por exemplo: 3 Volts para limite alto e 2 Volts para limite baixo.
Ou então pode configurar a impedâncias de entrada e saída para obter diferentes características de “Fan In” e Fan Out”.
Também existem outras propriedades extras para cada tipo de componente e por isso vamos descrever a seguir as características de cada componente lógico:
Portas Lógicas
- Invertida: esteja a saída invertida ou não.
- Coletor aberto: O estado alto da saída é de alta impedância.
- Num Inputs: Número de entradas da porta (quando aplicável).
Aparentemente parece que o simulador SimulIDE não tem portas lógicas do tipo INVERTER, NAND, NOR, NXOR. Mas, na verdade, elas existem, e tudo o que precisa de fazer é definir a propriedade invertida da porta como “true”:
O Buffer tem uma opção extra e que é o Tristate que liga ou desliga a saída. Quando ativado, um pino de ativação da saída irá aparecer no circuito. Basicamente esse pino controla se a saída é de alta impedância ou não, quando este pino está alto a saída é de alta impedância, quando baixo atua como um buffer normal.
Barramentos
Quando utilizamos múltiplas linhas paralelas às vezes é útil agrupá-las em barramentos. Até nisto o simulador SimulIDE pensou porque nos oferece um componente que podemos utilizar para isso. Mostramos-lhe a seguir as principais propriedades desse componente.
As principais propriedades dos barramentos são:
- Num Bits: configura o número de bits do Bus.
- Start Bit: define o bit inicial, o restante dos bits será numerado a partir dele.
As linhas do circuito aparecem mais grossas que as linhas normais e não pode ligar o normal ao barramento.
4 – Alterar velocidade de Simulação
Basicamente, o SimulIDE é um simulador de circuitos em tempo real. Mas para o conseguir tem de se encontrar a melhor relação entre a velocidade e a precisão dos resultados. Por isso existem algumas configurações que podemos fazer para a simulação poder ser executada em tempo real, mantendo um nível de precisão suficiente para simular adequadamente o comportamento do circuito.
Esse tipo de precisão depende sobretudo do circuito que estamos a simular. Se o circuito tem mais ou menos componentes, mais ou menos ligações e os tipos de componentes que estamos a utilizar.
De facto, existem 3 tipos de componentes que podem consumir muito recursos do processador e tornar a simulação mais lenta:
- Não Lineares: Díodos, Transístores, Amplificadores Operacionais.
- Reativo: Condensadores, Indutores.
- LEDs: sendo díodos adicionam sobrecarga extra calculando a luminância.
Se vai utilizar muitos leds talvez seja melhor antes dar uma vista de olhos no Tutorial da aplicação para descobrir como consegue acelerar as suas simulações.
No entanto, agora vamos concentrar-nos na velocidade da simulação em que o ciclo principal funciona a 1 Mhz, ou seja de 1 a 6 passos por segundo, sendo essa a velocidade de referência para tudo.
Também existem 2 subloops principais para componentes não lineares e reativos, sendo executados a cada (n) etapas do loop principal. Por padrão, em modo reativo corre uma vez a cada 50 loops principais (20 Khz) e em modo não Linear é executado uma vez a cada 10 loops principais (100 Khz). Estes ciclos são sempre executados relativamente ao loop principal.
Velocidade dos passos da simulação por segundo:
- Valor Padrão: 1.000.000 (câmara lenta)
- Valor Máximo: 1000.000.000 (tempo real)
- Valor Mínimo: 1
Ao alterar este valor, irá fazer com que a simulação seja executada mais rápida ou mais lentamente. Se tiver, por exemplo, um circuito oscilador que produz uma onda quadrada de 1 Hz:
- Com 1.000.000 a saída mudará a cada 1 segundo.
- Com 500.000 a saída mudará a cada 2 segundos.
- Com 100.000 a saída mudará a cada 10 segundos.
Portanto, alterar este valor permite ver a simulação rodando em “câmara lenta”. Quanto menor esse número, mais precisa será a simulação de componentes reativos, mas, em contrapartida, mais capacidade de processamento CPU será necessária, o que pode diminuir o desempenho. Mas tudo depende do número de componentes reativos no circuito e da potência do seu computador.
5 – Microcontroladores
Como o SimulIDE pode fazer simulações com microcontroladores do tipo Pic, Avr e Arduino. Ou seja, os microcontroladores são simulados por sistemas de simulação externos, que estão incorporados no SimulIDE:
- Simulação AVR fornecida pelo simavr: https://github.com/buserror/simavr
- Simulação PIC fornecida pelo GpSim: http://gpsim.sourceforge.net/
Utilização Básica
Para fazer uma simulação de microcontrolador, basta escolher qual é que quer utilizar no painel esquerdo e inseri-lo no circuito, depois só precisa de construir o circuito necessário para testar o seu firmware.
Quando tiver o seu circuito pronto, clique com o botão direito no microcontrolador e escolha a opção “Carregar firmware” e escolha um ficheiro no formato “.hex” para carregar no seu microcontrolador.
Se não aparecer nenhuma mensagem de erro, significa que o firmware foi carregado corretamente.
Para definir a velocidade do clock do Microcontrolador deve clicar com o botão direito no Microcontrolador e escolher a opção “Propriedades”. Depois só tem de definir a propriedade “Mhz” com a velocidade que precisa em Megahertz. Por padrão, a velocidade do clock é definida como 20 MHz para Pic e 16 MHz para Avr e Arduino.
Depois disso estará pronto para alimentar o circuito e visualizar a sua simulação.
Menu de personalização
Mostramos-lhe a seguir todas as funcionalidades que conseguirá encontrar no menu das propriedades do microcontrolador.
- Carregar firmware: carrega um ficheiro hexadecimal no microcontrolador.
- Recarregar firmware: recarrega o último ficheiro hexadecimal utilizado.
- Carregar dados EEPROM: carrega dados do ficheiro para EEPROM (binário ou .data).
- Guardar dados EEPROM: guarda a EEPROM num ficheiro(binário ou .data).
- Abrir Mcu Monitor: abre um monitor para ver RAM, ROM, Flash e outras informações.
- Abrir Serial Monitor: abre um monitor para ver as comunicações seriais.
- Abrir Porta Serial: abre uma interface para ligar a uma porta serial do seu PC.
Monitor do Microcontrolador
Este widget mostra várias informações sobre o microcontrolador como, por exemplo, um Contador de programas, os registos do estado, as tabelas RAM, ROM e Flash e outros registos e variáveis.
Para conseguir ver estes registos ou variáveis, basta selecionar o separador “Variáveis” e adicionar valores aos parâmetros que quer analisar.
Pode fazê-lo utilizando 2 métodos, ou digite o nome, ou endereço do registo na coluna Reg. ou escolher um local na coluna Reg. e depois clicar duas vezes num registo na lista que aparece à direita.
Se guardar o circuito depois de adicionar os parâmetros que quer analisar, esses valores permanecerão na próxima vez que abrir o circuito.
Também é possível guardar a lista de registos que está a monitorizar num ficheiro, para poder abri-la novamente noutra sessão. Para conseguir fazer isso siga estes passos:
- Clique com o botão direito em qualquer parte da visualização “RamTable”.
- Escolha a opção carregar ou guardar conjunto de variáveis (é utilizada a extensão .vst)
- Irá aparecer-lhe uma caixa de diálogo Carregar ou guardar.
- Escolha o varset que quer carregar ou digite o nome do ficheiro varset para guardar.
Comunicação Serial
Mostramos a seguir tudo o que precisa de saber sobre as comunicações Serial do simulador.
Monitorização UART
Com este simulador consegue monitorizar qualquer tipo de Microcontrolador UART. Basta para isso clicar com o botão direito no Microcontrolador e escolher a opção “Abrir Monitor Serial”. Irá aparecer-lhe uma nova janela com os dados que precisa.
Por padrão, o Serial Monitor utilizará o primeiro UART do Microcontrolador, mas pode alterá-lo na caixa “UART” no canto superior direito.
O monitor serial está dividido em duas secções, uma do lado esquerdo que mostra os dados enviados pelo Microcontrolador e outra do lado direito que mostra os dados recebidos pelo Microcontrolador.
O simulador tem botões “Limpar” tanto no lado do envio como no lado da receção. Também pode imprimir o valor decimal dos dados enviados/recebidos ou o seu valor no formato ASCII.
Há uma opção que pode utilizar para “Enviar texto” ou caracteres ASCII ao microcontrolador e uma opção para poder “Enviar valores” de 0 a 255 ao microcontrolador:
Ligação à Porta Serial
Também é possível ligar qualquer Microcontrolador UART virtual a uma porta serial do seu computador (hardware real ou virtual).
Para isso basta clicar com o botão direito no Microcontrolador e escolher a opção “Abrir porta serial” para lhe aparecer um novo componente.
Primeiro defina o microcontrolador UART, o nome da porta e configure-o no widget das Propriedades que pode aceder através de um duplo clique ou do menu de contexto.
Para ligar à porta utilize o botão “Abrir” que uma vez ligado fará com que um LED pisque quando houver transferência de dados.
Além disso, poderá sempre utilizar o monitor serial para observar a comunicação serial.
6 – Compilador da aplicação
O simulador possui um Editor de Texto integrado com alguns recursos de codificação como realce de código, compilação, upload para um microcontrolador presente no canvas do circuito e debugging básico para alguns compiladores.
Arduino
Pode utilizar o simulador do Arduino, mas os ficheiros devem ter extensão “.ino”. Além disso, o ambiente Arduino deve ser instalado no seu computador.
Além disso, deve definir o caminho do compilador Arduino clicando com o botão direito no separador do documento.
Por padrão, o Arduino irá compilar para a placa “Uno”, mas pode alterar isso no widget das propriedades. Só tem de clicar com o botão direito dentro do documento “.ino” e abrir o widget das propriedades.
Depois escolha a janela disponível ou “Personalizado” e defina a opção “Plano Personalizado”.
GcBasic
Para poder utilizar o compilador GcBasic os ficheiros devem ter a extensão “.gcb”. Além disso, tem de ter o compilador GcBasic instalado no seu computador.
Depois tem de definir o caminho do compilador GcBasic clicando com o botão direito no separador do documento.
Avra Avr asm
Pode utilizar o simulador para compilar sistemas AVRA, mas, os ficheiros têm de estar no formato e na extensão “.asm”.
Um dos principais requisitos é que nos sistemas Linux, o compilador AVRA esteja instalado no computador.
Mas não se preocupe porque está disponível na maioria dos repositórios das diferentes distribuições Linux.
Para quem tem computador com o sistema Windows, o compilador AVRA já vem com SimulIDE.
Gpasm Pic asm
Pode utilizar o simulador para compilar sistemas ASM, mas, os ficheiros devem ter extensão “.asm”.
Qeum tem um computador com o sistema operativo Linux, deve primeiro instalar o compilador gpasm que está disponível na maioria dos repositórios das diversas distribuições Linux.
Para quem tem computadores com o sistema operativo Windows, o compilador gpasm já vem por defeito com o simulador SimulIDE.
Personalizar
O SimulIDE consegue detetar automaticamente se um ficheiro asm é para Pic ou Avr.
De qualquer maneira pode sempre editar algumas propriedades no widget das propriedades clicando para isso com o botão direito em “Propriedades”.
- Tamanho da fonte: define o tamanho da fonte (também ctrl+ e ctrl- funciona) (padrão 9).
- Tamanho do separador: define o tamanho do separador (padrão 4).
- Guia Espaços: se ativado as tabulações serão espaços, se desativado serão tabulações (padrão false).
- Mostrar espaços: se for ativado, diferenciará os espaços ou separadores dos reais, ou seja, irão aparecer pequenos pontos que representam espaços e pequenas setas que representam tabulações (padrão desativado).
Mostramos a seguir como aparece a janela se tiver a opção de mostrar espaços desativada:
A seguir consegue ver como aparece a janela se tiver a opção de mostrar espaços ativada. Basicamente, os pontos são espaços e as setas são tabulações.
Se fez este tipo de ajustes, apercebeu-se que existem alguns separadores e funcionalidades que provavelmente não sabia que existiam.
O melhor é que, se houver um compilador disponível para o tipo de ficheiro que está utilizar, irá aparecer-lhe uma propriedade extra para ver ou definir o caminho do compilador manualmente:
Além disso, também pode definir o caminho do compilador escolhendo uma pasta numa caixa de diálogo de ficheiro. Para definir o caminho do Arduino ou do GcBasic, primeiro abra um ficheiro “.ino” ou “.gcb”, clique com o botão direito no separador do documento e escolha a opção “Definir CompilerPath”.
Depois disso irá aparecer-lhe uma caixa de diálogo de ficheiro onde deve selecionar a pasta raiz da instalação do Arduino ou GcBasic.
Finalmente, entre na pasta, clicando uma vez sobre ela para a selecionar e depois clicar em “Escolher”:
Depois disso já poderá trabalhar com os seus compiladores.
Listamos a seguir os principais controlos que encontra nesta função da esquerda para a direita:
- Novo ficheiro: Cria um ficheiro vazio.
- Abrir ficheiro: abre uma caixa de diálogo para poder abrir um ficheiro.
- Guardar ficheiro: guarda o ficheiro atual.
- Guardar ficheiro como: abre uma caixa de diálogo para guardar o ficheiro atual.
- Localizar/substituir: abre uma caixa de diálogo para localizar ou substituir strings no ficheiro atual.
- Compilar: se o tipo de ficheiro for suportado, o simulador compilará esse ficheiro. Aparecerá a saída do compilador no painel inferior.
- Upload: carrega o firmware correspondente ao ficheiro atual para um Mcu presente no circuito.
- Depurador: inicia uma sessão de depuração.
Com estas ferramentas poderá não só abrir um ficheiro que já tenha guardado como também criar um novo para construir o seu programa.
O compilador utilizará o ficheiro que tem no seu disco, ou seja, quando pressionar o botão compilar, o ficheiro atual será guardado no disco e depois compilado.
Alertamos para o facto que apenas o ficheiro principal é que é guardado, se tiver código noutros ficheiros acessórios, deve guardá-los sempre antes de compilar.
Quando compila, todos os resultados do processo de compilação serão mostrados no painel inferior.
Se a compilação falhar, irá aparecer uma mensagem de ERRO e um sinal com uma seta apontará para a linha onde o erro foi encontrado:
Depois de o seu programa ser compilado sem erros, pode carregá-lo para o microcontrolador que tem no circuito, alimentar o circuito e simular normalmente o seu funcionamento.
Pode sempre acompanhar os registros do Microcontrolador e as variáveis do programa no widget “Mcu Monitor” bastando para isso clicar com o botão direito na opção “Abrir Mcu Monitor”.
Se o registo ou a variável forem encontrados, verá que o endereço decimal na coluna mais à esquerda, logo à esquerda do nome.
Se o nome não for encontrado, o endereço será 0 e não aparecerá nenhum valor.
7 – Depurador da aplicação
Para iniciar o modo de depuração é preferível que o ficheiro fonte já esteja compilado e verificado e que esteja livre de erros.
Deve ter um microcontrolador no circuito que corresponda aquilo que está a compilar.
Só depois disso é que pode pressionar o botão “Iniciar Depurador”. Se tudo estiver certo, o modo de depuração irá ser iniciado.
Uma mensagem no painel inferior confirmará se o modo de depuração foi iniciado corretamente e aparecerá um “ícone de seta” a apontar para a primeira linha do código:
O botão liga / desliga mudará para azul, indicando que o depurador assumiu o controlo da simulação do circuito.
Por padrão, a simulação do circuito será executada em velocidade normal, enquanto a execução do microcontrolador será controlada pelas etapas do depurador.
Também existe uma opção para “sincronizar” a simulação do circuito com a execução do depurador. Para entender como isso funciona, e quando é que o deve utilizar, aceda a esta página.
Ao ativar a depuração notará que as opções disponíveis mudaram, em vez de abrir ficheiro, guardar, etc., agora há um novo conjunto de controlos disponíveis, da esquerda para a direita:
- Passo: execute uma linha de código-fonte.
- Run to Breakpoint: executa até ao próximo breakpoint.
- Pausa: interrompe a execução do processo.
- Reset: reinicia a execução do programa.
- Parar: interrompe o depurador e retorna ao modo de edição.
Note que “Pausa” interrompe o processo em execução, mas permanece no modo de depuração e “Parar”, na verdade, interrompe o depurador e retorna ao modo de edição.
Pode executar o seu código passo a passo, ou então pode adicionar breakpoints. Para isso basta clicar com o botão direito no número da linha onde quer acrescentar o breakpoint e selecione a opção “Adicionar ponto de interrupção” ou “Remover ponto de interrupção”. Irá aparecer um quadrado amarelo na linha selecionada.
Depois disso pode “Executar para o próximo ponto de interrupção” e a seta irá saltar para o ponto de interrupção (se alcançável) ou continuar a correr até que o ponto de interrupção seja alcançável.
O depurador define por defeito o microcontrolador com 0 Mhz e restaura o valor anterior sempre que o depurador é fechado.
Portanto, certifique-se de parar o depurador ao terminar uma sessão de depuração. Também pode observar registos e variáveis do microcontrolador na Tabela Ram. No entanto, apenas as variáveis globais é que serão mostradas. Depois de terminar a sessão de depuração, deve interrompê-la e sair do modo de depuração.
8 – Criar placas de Ensaio – Bread Board
Neste simulador, as placas de ensaio ou Bread Board são um tipo especial de subcircuito que contém componentes “gráficos”.
Os componentes gráficos são aqueles que permitem a interação com o utilizador como displays, motores, botões, dials, etc.
A principal diferença é que esses componentes gráficos são mostrados enquanto o resto dos componentes ficam ocultos. Mas isso requer uma etapa extra que é a de colocar esses componentes gráficos dentro de um pacote.
Para resolver isso, existe um componente de pacote que possui uma entrada verificável “Board Mode” no menu de contexto.
Ao marcar esta entrada oculta todos os componentes não gráficos do subcircuito e mostra os gráficos, permitindo colocá-los na posição que será mostrada quando utilizar aquele subcircuito.
Ao desmarcar “Board Mode” ele retorna ao modo normal, mostrando todos os componentes na sua posição original.
As posições dos componentes num modo não afetam as posições no outro modo.
Além disso, há outro problema que pode resolver nas propriedades dos componentes dentro dos subcircuitos que não são acessíveis.
Isso pode ser um problema para componentes como Microcontroladores porque deixa de conseguir aceder às opções de carregamento de firmware, portas serial, etc.
A solução fornecida também está no menu de contexto do componente do pacote ou seja deve escolher a opção “Selecionar componente principal”.
Escolher esta opção e clicar em qualquer componente do subcircuito adicionará ao menu de contexto e as propriedades deste componente aos do subcircuito.
O componente principal será destacado a amarelo.
9 – Considerações finais
Um projeto como este só é possível com o esforço de muita gente. Se quer contribuir para tornar o SimulIDE uma aplicação melhor, existem várias maneiras de o poder fazer.
Talvez a mais importante seja relatar qualquer problema ou bug que encontrar ao utilizar o simulador. Pode relatar bugs ou outros problemas no Fórum SimulIDE.
O sistema de tradução está a começar a tomar forma e se quiser traduzir o simulador para o seu idioma, dê uma vista de olhos no Forum.
Se é um programador, então é muito bem-vindo se quiser contribuir para o projeto. Se não é programador também existem alguns trabalhos em execução que não requerem conhecimentos de programação, como por exemplo, a criação de subcircuitos como os ICs da série 74.
Se quiser apoiar este projeto pode fazer uma doação pelo PayPal ou então pelo Patreon ou LiberaPay.
Outra forma de apoiar o projeto é ver os vídeos do SimuliDE é inscrever-se no canal do SimulIDE no YouTube.
E, claro, que também pode e deve partilhar a página do programa, vídeos, etc. nas suas redes sociais.