Posso programar para o Arduino sem ter uma placa real?


204

Eu gostaria de começar o desenvolvimento de alguns projetos básicos do Arduino, mas ainda não possuo uma placa Arduino. Existe uma maneira de escrever meu código e imitá-lo / testá-lo usando um computador desktop, para que, depois que minha placa chegue, eu apenas precise enviar e executar meu projeto nele?


11
Também estou interessado, você encontrou um que funciona bem com o IDE do Arduino ? isto é, detectado pelo IDE como se fosse uma placa, com todas as suas funcionalidades.
precisa saber é o seguinte

Respostas:


127

Há uma série de simuladores de Arduino por aí, muitos gratuitos e alguns produtos pagos também.

  • O ambiente de desenvolvimento do CodeBlocks Arduino inclui um simulador gratuito do Arduino, ainda em desenvolvimento, mas funcional.
  • O Simuino simula os pinos Arduino Uno e Mega - não um simulador realista de aparência bonita, mas funciona.
  • O Arduino Simulator baseado em Python é outra opção, que funciona bem com o IDE oficial
  • O Virtronics Simulator para Arduino parece promissor, mas não vejo por que pagaria US $ 14,99 por ele, quando pude comprar um ou mais clones reais do Arduino por esse preço

Muitos outros simuladores do Arduino estão lá fora, se você pesquisar, e novos estão sendo anunciados, mesmo com financiamento coletivo, o tempo todo.


10
como uma observação, esses não são emuladores, mas simuladores , a diferença mais importante é que ele não executa o código em uma máquina virtual AVR (como o qemu faz), mas vincula as funções do Arduino ao código nativo. Então, basicamente, eles não serão capazes de executar coisas nativas do AVR e o comportamento do registro / temporizador não será o mesmo do hardware real do AVR. Veja a diferença bem explicada nessa resposta . É teoricamente possível emular o código Arduino Due com o qemu .
Zmo

5
Você "não entende por que [um] pagaria US $ 14,99 por ele, quando [um] poderia comprar um ou mais clones reais do Arduino por esse preço"? Eu posso lhe dizer o porquê: porque o hardware não possui um depurador embutido com os recursos que podem ser fornecidos por um simulador.
R. Martinho Fernandes

8
O Arduino Simulator despertou meu interesse, mas infelizmente parece não ter arquivos relacionados a ele no site sourceforge. Estou faltando alguma coisa ou ela se tornou obsoleta desde que você escreveu sua resposta?
Greenonline 21/02

Como observado no comentário acima, não há arquivos no site de forja de origem do simulador do arduino. Existe um site para ele ou outro simulador que funcione bem no mac, com IDE oficial?
274166

4
Simuino é terrível, pouco profissional e inútil. Eles não têm idéia de como codificar. O Arduino Simulator não possui releases. CodeBlocks é apenas para Windows. O simulador para Arduino não é de código aberto.
Dhchdhd

81

Eu gosto de usar circuits.io, também conhecido como TinkerCAD, para isso.

É baseado em nuvem e possui alguns recursos interessantes, incluindo design e colaboração de PCB.

Na IMO, a simulação e a capacidade do Arduino são impressionantes e intuitivas.


3
É muito agradável e limpo e a funcionalidade básica é realmente impressionante, fácil de usar e poderosa. No entanto, muitas peças comuns (incluindo LCD e sensores de temperatura) ainda não são suportadas. Duvido que você possa testar qualquer coisa, menos projetos muito básicos nesta fase. Espero que isso melhore com o tempo.
Suma

Eu tentei rapidamente e achei muito impressionante para um produto gratuito. Eu não conheço suas limitações em termos de realismo de simulação, mas o editor é muito amigável e apenas coloca um led no slot apropriado, criado automaticamente por código criado com o pino correto e um loop piscando!
23415 heltonbiker

até minha escolha seria 123d, mas minha única reclamação sobre este site é que eles não adicionam novos componentes. Seria ótimo se eles pudessem ter novos componentes em sua lista
KD.

2
A parte dos laboratórios eletrônicos do site circuits.io mudou-se para tinkercad.com , onde você pode encontrá-lo em circuitos .
SiggyF

11
Eu editei e atualizei os links.
sa_leinad

40

Existem muitas opções no mundo dos simuladores eletrônicos, mas o circuits.io, também conhecido como TinkerCAD, é provavelmente o mais versátil do mercado.

  • Você pode compor seu circuito em uma placa de ensaio virtual que parece real.
  • Você pode assistir a um LED piscando ou pressionar um botão durante a simulação em tempo real, em vez de enfrentar formas de onda abstratas.
  • Você pode combinar dispositivos digitais como um timer 555 ou registradores de turnos com componentes analógicos (interativos), como resistores e LEDs.
  • Você pode programar um Arduino e simular o microcontrolador junto com o seu circuito analógico ao seu redor.
  • Você pode depurar um Arduino: quando o simulador atinge seu ponto de interrupção, a simulação é pausada e você pode verificar facilmente todas as variáveis ​​do seu código e todas as voltagens ou correntes do seu circuito.
  • Você pode usar e observar diferentes protocolos de comunicação como UART, I2C e SPI.
  • Você pode pausar a simulação no meio de uma sequência I2C colocando um ponto de interrupção no código do driver (por exemplo, rotina de serviço de interrupção para eventos I2C)
  • É grátis!

Exemplo

Este é um exemplo de circuito que possui um controle remoto IR e uma tela LCD.

Disclaimer: Nós somos os fabricantes de circuitos 123D


11
Como ele brinca com o Arduino IDE ? estaria disponível para flash, depuração, etc?
rraallvv

14

Esteja ciente de que nenhum simulador reproduzirá situações da vida real. Existem muitas postagens no fórum do Arduino sobre problemas com código ou eletrônica, que acabam sendo algo sutis, como:

  • Problemas de tempo
  • Condições de corrida (eventos relacionados / dependentes nem sempre ocorrem na mesma ordem)
  • Níveis de tensão, por exemplo. pinos de entrada flutuantes
  • Motores de acionamento que baixam a tensão do Arduino o suficiente para redefinir
  • Não tendo capacitores de desacoplamento
  • Os pinos de entrada estão em um estado "indefinido" (por exemplo, 2,5V em um pino em que 2 ou menos V é BAIXO e 3V ou mais é ALTO)
  • Problemas com manipuladores de interrupção, como variáveis ​​não declaradas voláteis
  • Picos de tensão devido à ausência de diodos flyback nos motores
  • O processador é reiniciado uma vez que mais de 10 LEDs são acesos porque o consumo atual excede a quantidade que o hardware pode fornecer
  • Interrompa os manipuladores que tomam 10 µS para processar uma interrupção quando apenas 9 µS estão disponíveis.

Por sua natureza, os simuladores não podem reproduzir tudo isso. Mesmo que pudessem, você pensaria em alternar a opção "inserir ruído aleatório dos motores"?


Para se preparar para a chegada do quadro, faça o download do IDE e inicie a programação. Você pode instalar bibliotecas, escrever códigos e livres de erros de sintaxe, organizá-las perfeitamente e estar geralmente pronto para o grande dia em que o hardware estiver em suas mãos.


Divirta-se e divirta-se experimentando seu Arduino!


13

Você pode usar o Yenka (gratuito para uso doméstico) para simular Arduino, PIX, PIXACE e outras placas com E / S digital, analógica e serial. Ele fornece muitos componentes e projetos de amostra.

Captura de tela:

Simulação Yenka Arduino


Pode ser programado, depurado no IDE do Arduino ?
precisa saber é o seguinte

12

Sim, você pode tentar usar o Proteus ISIS para simular seu código ...

Para emulação completa do Arduino, existe um programa shareware chamado VBB (Virtual BreadBoard) , eu tentei também e foi legal.

Edit: Você pode conferir meu tutorial detalhado aqui sobre como simular o Proteus ISIS


9

Acredito que este site tenha uma lista de emuladores e simuladores, juntamente com seu preço e disponibilidade.

Atualizar:

Como alguns usuários mencionaram que há links quebrados nesse site, aqui está uma seleção de emuladores que encontrei. Observe que algumas descrições podem ter sido obtidas no link mencionado:

  • Emulino : É um software baseado em Linux de código aberto no desenvolvimento inicial que emula MCUs específicos para Arduino.

  • Emulare : é um emulador de hardware de uso geral. O objetivo é fornecer uma interface central para criar simulações eletrônicas para o desenvolvimento de software embarcado. No momento, o emulare se concentra na linha de microcontroladores ATMega (o Arduino UNO possui o processador ATMega).

  • SimAVR : é um novo simulador de AVR para linux ou qualquer plataforma que use avr-gcc. O simulador carrega arquivos ELF diretamente e existe até uma maneira de especificar parâmetros de simulação diretamente no código emulado usando uma seção .elf. Ele suporta a emulação de muitos processadores ATMega e é mencionado que é fácil adicionar novos.

  • Amtel Studio : Isso parece não mencionar o termo emulação, mas é um IDE sofisticado para depurar seu código para muitas plataformas, especialmente o Arduino. O Atmel Studio 7 apresenta a importação direta de projetos com um clique, criada no ambiente de desenvolvimento do Arduino. Seu esboço, incluindo as bibliotecas que ele referenciar, será importado para o Studio 7 como um projeto C ++. Depois de importado, você pode aproveitar todos os recursos do Studio 7 para ajustar e depurar seu design. O Atmel Studio 7 suporta totalmente o poderoso depurador incorporado na placa Arduino Zero. Para outras placas Arduino, estão disponíveis adaptadores de blindagem que expõem conectores de depuração ou alterne para uma das muitas placas Xplained-Mini / PRO disponíveis para aproveitar totalmente o ecossistema Atmel HW.

Você ainda pode usar simuladores como o EasyEDA para testar seu código e, na maioria dos casos, poder executá-lo no dispositivo. Mas observe que, dada a natureza dos componentes eletrônicos, talvez seja necessário fornecer resistores externos, capacitores etc. para obter os resultados esperados.


O link apenas responde não uma coisa boa aqui, porque será inútil quando o site vinculado for desativado. Por favor, escreva um resumo e também verifique se a sua resposta agrega valor e não apenas repetindo as que já temos.
totymedli

Concordo com @totymedli - se esse link se esgotar, a resposta se tornará inútil. Resuma, pelo menos, os emuladores mencionados e o preço atual. Você pode iniciar linhas com um asterisco para fazer pontos, se isso ajudar.
Nick Gammon

7

A Virtualbreadboard possui uma nova edição do VBB4Arduino 'Two Arduino' que inclui AMBOS um emulador JVM Arduino E um simulador de conjunto de instruções AVR com exemplos que cobrem quase todos os exemplos de distribuição do Arduino e um monte de hardware periférico - LCD, WS2812 Neo LEDS, Motors, Servo's , Analisador lógico e muito mais.

http://www.virtualbreadboard.com

Disclaimer: Eu sou o autor do Virtual Breadboard


6

Experimente o Simulator for Arduino - é o melhor, mas somos tendenciosos, pois fazemos parte da equipe de desenvolvimento. Nem todo mundo quer pagar US $ 19,99, embora quase 5 mil usuários do Arduino paguem nos últimos anos. Existe uma versão gratuita do Simulator for Arduino, que dura 45 dias ou 100 cargas de esboço e 200 linhas no máximo. Experimente e compre se puder pagar e / ou se parecer que vale a pena.

Se houver algo errado ou que possa ser melhorado, avise-nos - todo mundo faz e tem, e é por isso que o Simulator for Arduino foi 99% construído por idéias de usuários e relatórios de erros.

Além disso, o único outro programa que tentamos com qualidade aproximada é o Proteus, mas este é um estúdio completo de design de PCBs e parece muito caro - ou seja, muito mais do que US $ 20. E planejamos ignorar uma solicitação recente do usuário para aumentar o preço para US $ 200.


5

Você poderia, por exemplo, usar meu simulador. É especialmente adequado para aplicações do tipo CLP, onde a multitarefa é obtida pela avaliação cíclica de objetos do tipo circuito interconectados: Timers, Marcadores, Travas, Oneshots e Registradores. Você pode usá-lo para simular seu sistema controlado também, como fica claro nos exemplos no download. Possui capacidades de visualização modestas, pode desenhar gráficos de tempo e permite acessar e alterar cq force todas as variáveis ​​em tempo real durante uma simulação em execução. Além disso, você pode congelar o tempo. Quando você está satisfeito com o comportamento do seu controle, ele gera o código C para ser carregado em um Arduino real.

https://pypi.python.org/pypi/SimPyLC


1

uma maneira de escrever meu código e emular / testá-lo usando um computador desktop

Se você quer ser capaz de "testar a unidade" usando um computador desktop, posso oferecer uma biblioteca que escrevi chamada arduino_ci .

Não oferece emulação. Você expressaria seus testes em código. Por exemplo, aqui está um teste extraído da documentação de referência que valida os dados gravados em uma porta:

unittest(pin_history)
{
  GodmodeState* state = GODMODE();
  int myPin = 3;
  state->reset();            // pin will start LOW
  digitalWrite(myPin, HIGH);
  digitalWrite(myPin, LOW);
  digitalWrite(myPin, LOW);
  digitalWrite(myPin, HIGH);
  digitalWrite(myPin, HIGH);

  // pin history is queued in case we want to analyze it later.
  // we expect 6 values in that queue.
  assertEqual(6, state->digitalPin[1].size());
  bool expected[6] = {LOW, HIGH, LOW, LOW, HIGH, HIGH};
  bool actual[6];

  // convert history queue into an array so we can verify it.
  // we expect to find 6 values: the 5 we set, plus the initial LOW
  // and this is where/how we assert that
  int numMoved = state->digitalPin[myPin].toArray(actual, 6);
  assertEqual(6, numMoved);

  // verify each element
  for (int i = 0; i < 6; ++i) {
    assertEqual(expected[i], actual[i]);
  }
}

Na prática, você provavelmente não chamaria as digitalWritefunções diretamente - você chamaria uma função em sua biblioteca e, em seguida, verificaria se o "estado mundial" (representado aqui pela GODMODEconstrução) corresponde ao que você esperava que sua biblioteca fizesse.


0

Sim, você pode, e com bastante facilidade. Existe uma maravilhosa simulação on-line (totalmente gratuita) chamada TinkerCAD . Possui uma excelente simulação de placa de ensaio, com peças como transistores, LEDs, ICs e Arduino. Você pode programar o Arduino e executar tudo em uma simulação ao vivo que inclui entradas interativas (botões de pressão, interruptores DIP, etc.).


[Editar: O texto a seguir se refere à funcionalidade que foi movida para Circuits.io , ou seja, Eagle PCB ]

Isso não é tudo. Ele também inclui esquemas de guias separados para o seu circuito e outro guia para o design de placas de circuito impresso da placa de ensaio! Ou você pode simplesmente fazer seus esquemas do zero e fazer seu PCB a partir daí.

Você pode fazer seus projetos de circuito e comprá-los. Você pode fazer tudo isso em circuits.io e não corre o risco de estragar seu Arduino real. Ele também possui indicadores de aviso na simulação (por exemplo, se você não usou resistência suficiente em um LED ou IC).

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.