Existe alguma maneira de simular uma execução do programa antes de gravá-la no quadro?
24
Às vezes, os programas podem ter erros de tempo de execução. Às vezes, são difíceis de encontrar e podem ser facilmente esquecidos. Existe alguma maneira de testar o programa antes de gravá-lo na placa?
A página da Virtronics vinculada acima também lista alguns outros simuladores do Arduino, gratuitos e pagos.
Dado o interesse que o Arduino desperta, é provável que haja muitos outros simuladores por aí, então não adianta tentar listá-los todos em uma resposta aqui.
O Arduino é em si um painel de prototipagem / experimentação. É ideal para programar código experimental, depurá-lo, modificar e, em seguida, re-piscar o código novo, praticamente quantas vezes quiser . Se o código travar, redefina e reflash com as alterações.
Portanto, o mérito de usar um simulador, que nunca pode emular perfeitamente os vários momentos do mundo real ou outros problemas que um aplicativo pode enfrentar, é questionável.
Se o custo do Arduino é a preocupação, existem algumas opções em aberto:
Arduino Nano barato clona o eBay - Eu tenho várias placas de aprimoramento Nano Meduino , elas funcionam de forma excelente e custam menos de US $ 10, incluindo remessas em todo o mundo:
Obrigado por compartilhar o link para o Virtronics Simulator!
Powtac
Sim, é muito mais fácil depurar e reflash. O flash ATMega328 é avaliado em 10000 ciclos de reescrita, portanto, mesmo se você o reescrever 10 vezes por dia, terá mais de dois anos de diversão antes de você :-) Muita diversão para um hobby. Se você gosta um pouco mais, pode usar placas mais novas para fazer a depuração e quando elas começarem a se desgastar (digamos, após 5000 ciclos?), Você pode usá-las para aplicativos estáveis e comprar uma nova para depuração.
Lorenzo Donati apoia Monica
8
Você pode encontrar erros de tempo de execução se você pode percorrer manualmente seu programa com o Arduino conectado e depurar ( após baixar o código no Arduino). Está disponível no Visual Micro, embora exija o Visual Studio. Você pode definir pontos de interrupção, avaliar variáveis e alterar valores de variáveis. Você também pode obter a visualização da memória ao longo do tempo:
Muito arrumado. Quão maduro é esse projeto - ou, melhor dizendo, esse IDE funcionou sem problemas em sua experiência?
boardbite
Eu não o usei para criação de perfil e apenas o usei brevemente, mas ele se integra muito bem e funciona bem para mim. Eu realmente aprecio a capacidade de depuração, sem recorrer a Serial.print
4
Uma maneira de fazer isso seria criar um programa wrapper para o código real, que simula todas as entradas e aceita saídas (criando assim um loop de feedback) conforme o ambiente real. Isso exigiria uma quantidade variável de esforço, dependendo do tipo de programa, grau de teste e número de entradas.
Lembre-se de que, ao escrever o programa wrapper, você deve seguir uma abordagem de caixa preta .
Caso contrário, seu código externo poderá não testar o programa da melhor maneira possível, pois, tendo em mente o código real ao criar o código de teste, você poderá ignorar casos de fronteira ou áreas problemáticas (isso foi observado durante o teste de caixa branca que é a alternativa).
Você conhece algum exemplo? A maioria dos códigos do Arduino que vi não possui testes de unidade adequados, mesmo para as partes que não exigem entrada / saída.
Jakob
@ Jakob Eu costumo escrever meu próprio código para o teste. É prático para pequenos projetos.
Respostas:
Existem alguns projetos do Arduino Simulator por aí.
Talvez um dos mais maduros seja o Virtronics Simulator for Arduino , vídeo do YouTube aqui .
A página da Virtronics vinculada acima também lista alguns outros simuladores do Arduino, gratuitos e pagos.
Dado o interesse que o Arduino desperta, é provável que haja muitos outros simuladores por aí, então não adianta tentar listá-los todos em uma resposta aqui.
O que vale a pena notar é que também há um aplicativo para iPhone do Arduino Simulator : essa não é uma recomendação, pois ainda não o vi em operação.
Em uma nota lateral:
O Arduino é em si um painel de prototipagem / experimentação. É ideal para programar código experimental, depurá-lo, modificar e, em seguida, re-piscar o código novo, praticamente quantas vezes quiser . Se o código travar, redefina e reflash com as alterações.
Portanto, o mérito de usar um simulador, que nunca pode emular perfeitamente os vários momentos do mundo real ou outros problemas que um aplicativo pode enfrentar, é questionável.
Se o custo do Arduino é a preocupação, existem algumas opções em aberto:
fonte
Você pode encontrar erros de tempo de execução se você pode percorrer manualmente seu programa com o Arduino conectado e depurar ( após baixar o código no Arduino). Está disponível no Visual Micro, embora exija o Visual Studio. Você pode definir pontos de interrupção, avaliar variáveis e alterar valores de variáveis. Você também pode obter a visualização da memória ao longo do tempo:
fonte
Uma maneira de fazer isso seria criar um programa wrapper para o código real, que simula todas as entradas e aceita saídas (criando assim um loop de feedback) conforme o ambiente real. Isso exigiria uma quantidade variável de esforço, dependendo do tipo de programa, grau de teste e número de entradas.
Lembre-se de que, ao escrever o programa wrapper, você deve seguir uma abordagem de caixa preta .
Caso contrário, seu código externo poderá não testar o programa da melhor maneira possível, pois, tendo em mente o código real ao criar o código de teste, você poderá ignorar casos de fronteira ou áreas problemáticas (isso foi observado durante o teste de caixa branca que é a alternativa).
fonte