回答:
多くのArduinoシミュレーターがあり、多くは無料で、いくつかの有料製品もあります。
他の多くのArduinoシミュレータは、検索すればそこにあり、常に新しいものが発表され、クラウドファンディングさえもされています。
このために、circuits.io別名TinkerCADを使用するのが好きです。
クラウドベースであり、PCB設計やコラボレーションなどの優れた機能を備えています。
IMO Arduinoのシミュレーションと機能は印象的で直感的です。
エレクトロニクスシミュレータの世界には多くのオプションがありますが、circuits.io別名TinkerCADはおそらく最も汎用性の高いものです。
これは、IRリモートとLCDスクリーンを備えた回路例です。
免責事項:私たちは123D Circuitsのメーカーです
シミュレーターが実際の状況を再現しないことに注意してください。Arduinoフォーラムには、コードや電子機器の問題に関する多くの投稿がありましたが、次のような微妙なものでした。
その性質上、シミュレーターはこのすべてを再現することはできません。できたとしても、「モーターからのランダムなノイズを挿入する」オプションを切り替えると思いますか?
ボードの到着の準備については、IDEをダウンロードしてプログラミングを開始してください。ライブラリをインストールし、コードを記述し、構文エラーをなくし、きちんと整理し、ハードウェアが手元にある大事な日に備えて準備することができます。
楽しんで、Arduinoを試してみてください!
はい、できます。ProteusISISを使用してコードをシミュレートしてみてください...
Arduinoの完全なエミュレーションには、VBB(Virtual BreadBoard)と呼ばれるシェアウェアプログラムがあります。私も試してみましたが、とても良かったです。
このWebサイトには、エミュレーターとシミュレーターの両方のリストとその価格と入手可能性が記載されていると思います。
更新:
一部のユーザーがそのWebサイトに壊れたリンクがあると述べたので、ここで私が見つけたエミュレーターを選択します。記載されているリンクからいくつかの説明が取られている可能性があることに注意してください。
Emulino:Arduino固有のMCUをエミュレートする初期開発のオープンソースLinuxベースのソフトウェアです。
Emulare:は汎用ハードウェアエミュレーターです。組み込みソフトウェア開発用の電子シミュレーションを構築するための中央インターフェースを提供することを目的としています。現在、emulareはマイクロコントローラのATMegaラインに焦点を当てています(Arduino UNOにはATMegaプロセッサが搭載されています)。
SimAVR:Linux、またはavr-gccを使用するプラットフォーム向けの新しいAVRシミュレーターです。シミュレーターはELFファイルを直接ロードし、.elfセクションを使用してエミュレートされたコードでシミュレーションパラメーターを直接指定する方法もあります。多くのATMegaプロセッサのエミュレーションをサポートし、新しいプロセッサを追加することも簡単であると言われています。
Amtel Studio:これはエミュレーションという用語に言及しているようには見えませんが、多くのプラットフォーム、特にArduinoでコードをデバッグするための洗練されたIDEです。Atmel Studio 7は、Arduino開発環境で作成されたプロジェクトのシームレスなワンクリックインポートを特徴としています。参照するライブラリを含むスケッチは、C ++プロジェクトとしてStudio 7にインポートされます。インポートしたら、Studio 7のすべての機能を活用して、設計を微調整およびデバッグできます。Atmel Studio 7は、Arduino Zeroボード上の強力な組み込みデバッガーを完全にサポートしています。他のArduinoボードの場合、デバッグコネクタを公開するシールドアダプターを使用するか、利用可能な多くのXplained-Mini / PROボードのいずれかに切り替えて、Atmel HWエコシステムを完全に活用します。
それでも、EasyEDAなどのシミュレーターを使用してコードをテストし、ほとんどの場合、デバイスで実行できます。ただし、電子部品の性質上、期待される結果を得るには、外部抵抗、コンデンサなどを用意する必要がある場合があります。
Virtualbreadboardには新しいVBB4Arduino「Two Arduino's」エディションがあり、JVM ArduinoエミュレータとAVR命令セットシミュレータの両方が含まれ、ArduinoディストリビューションのほとんどすべてのサンプルとLCD、WS2812 Neo LED、モーター、サーボの周辺ハードウェアが含まれています。 、ロジックアナライザーなど。
http://www.virtualbreadboard.com
免責事項:私はVirtual Breadboardの著者です
Simulator for Arduinoを試してみてください-これは最高ですが、開発チームの一員であるため、偏見があります。過去数年間で約5,000人のArduinoユーザーがいるにもかかわらず、誰もが19.99ドルを支払うことを望んでいるわけではありません。45日間または100回のスケッチロードと最大200行で実行されるArduino用シミュレータの無料バージョンがあります。これを試してから、余裕がある場合、および/またはそれが価値があると思われる場合は購入してください。
正しくないもの、または改善できるものがある場合はお知らせください。他のすべての人がそうであり、持っているため、シミュレーターfor Arduinoはユーザーのアイデアとバグレポートによって99%構築されています。
また、私たちが試した唯一の品質に近いプログラムはプロテウスですが、これは完全なPCB設計スタジオであり、非常に高価に見えます-つまり20ドル以上です。また、価格を200ドルに引き上げるという最近のユーザーリクエストを無視する予定です。
たとえば、私のシミュレータを使用できます。特に、相互接続された回路のようなオブジェクト(タイマー、マーカー、ラッチ、ワンショット、レジスター)の周期的評価によってマルチタスクが達成されるPLCのようなアプリケーションに適しています。ダウンロードの例から明らかになるように、制御システムをシミュレートするためにも使用できます。適度な視覚化能力があり、タイミングチャートを描画でき、シミュレーションの実行中にリアルタイムでcq forceすべての変数にアクセスして変更できます。また、時間を凍結することができます。コントロールの動作に満足したら、実際のArduinoにアップロードするCコードを生成します。
デスクトップコンピュータを使用してコードを記述し、エミュレート/テストできる方法
デスクトップコンピューターを使用して「単体テスト」できるということであれば、私が書いたライブラリarduino_ciを提供できます。
エミュレーションを提供しません。コードでテストを表現します。たとえば、ポートに書き込まれたデータを検証するリファレンスドキュメントから抜粋したテストを次に示します。
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]);
}
}
実際には、おそらくdigitalWrite
関数を直接呼び出すことはないでしょう。ライブラリ内の関数を呼び出してから、「世界の状態」(ここではGODMODE
構成体で表されます)がライブラリに期待するものと一致することを確認します。
はい、できます。かなり簡単です。TinkerCADと呼ばれる素晴らしいオンラインシミュレーション(完全無料)があります。トランジスタ、LED、IC、Arduinoなどの部品を使用した優れたブレッドボードシミュレーションを備えています。Arduinoをプログラムして、インタラクティブな入力(プッシュボタン、DIPスイッチなど)を含むライブシミュレーションですべて実行できます。
[編集:以下のテキストは、Circuits.ioに移動した機能、つまりEagle PCBを指します]
それがすべてではありません。また、回路用の個別のタブ回路図、およびブレッドボード回路のPCB設計用の別のタブに含まれています!または、回路図をゼロから作成し、そこからPCBを作成することもできます。
回路設計を作成し、購入することができます。circuit.ioでこれらすべてを行うことができ、実際のArduinoを台無しにする危険はありません。また、シミュレーションに警告インジケータがあります(たとえば、LEDやICに十分な抵抗を使用しなかった場合)。