実際のボードなしでArduino用にプログラムできますか?


205

基本的なArduinoプロジェクトの開発を開始したいのですが、Arduinoボードをまだ所有していません。デスクトップコンピューターを使用してコードを記述し、エミュレート/テストできる方法はありますか?


1
私も興味がありますが、Arduino IDEでうまく機能するものを見つけましたか?つまり、IDEは、すべての機能を備えたあたかもボードであるかのように検出します。
rraallvv

回答:


128

多くのArduinoシミュレーターがあり、多くは無料で、いくつかの有料製品もあります。

  • コードブロックのArduinoの開発環境は、まだ開発中ではなく、機能、無料のArduinoシミュレータを含んでいます。
  • SimuinoはArduino UnoおよびMegaピンをシミュレートします-見た目はリアルではありませんが、動作します。
  • PythonベースのArduino Simulatorは別のオプションであり、公式のIDEでうまく機能します
  • Arduino用 Virtronics Simulatorは有望に見えますが、その価格で1つ以上の実際のArduinoクローンを購入できるのに、なぜ14.99ドルを支払うのかわかりません

他の多くのArduinoシミュレータは、検索すればそこにあり、常に新しいものが発表され、クラウドファンディングさえもされています。


10
注として、これらはエミュレーターではなくシミュレーターであり、最も重要な違いは、AVR仮想マシンでコードを実行せず(qemuのように)、Arduino関数をネイティブコードにバインドすることです。そのため、基本的にはネイティブのAVRを実行できず、登録/タイマーの動作は実際のAVRハードウェアとは異なります。その答えでよく説明されいる違いを見てください。ただし、qemuを使用してArduino Dueコードをエミュレートすることは理論的には可能です。
zmo 14年

5
あなたは「1つまたは複数のArduinoクローンをその価格で購入できるのに、なぜ1つが14.99ドルを支払うのかわからない」ということですか?その理由は、ハードウェアには、シミュレーターが提供できる機能を備えた組み込みデバッガーがないためです。
R.マルティーニョフェルナンデス14

8
Arduinoのシミュレータは、私の興味をそそったが、残念ながらSourceForgeのサイト上で、それに関連したファイルを持っていないように見えます。何かが足りないのですか、それともあなたが答えを書いてから非推奨になりましたか?
Greenonline

上記のコメントで述べたように、arduinoシミュレーターのソースフォージサイトにはファイルがありません。それのためのウェブサイトはありますか、または公式IDEでMacでうまく機能する別のシミュレータがありますか?
-gordanvij

4
Simuinoはひどく、専門的ではなく、役に立たない。彼らはどのようにコーディングするのか見当もつかない。Arduino Simulatorにはリリースがありません。CodeBlocksはWindowsのみです。Arduinoのシミュレーターはオープンソースではありません。
dhchdhd

81

このために、circuits.io別名TinkerCADを使用するのが好きです。

クラウドベースであり、PCB設計やコラボレーションなどの優れた機能を備えています。

IMO Arduinoのシミュレーションと機能は印象的で直感的です。


3
それは非常に素晴らしく、きれいで、基本的な機能は本当に印象的で使いやすく、強力です。ただし、多くの一般的な部品(LCDおよび温度センサーを含む)はまだサポートされていません。この段階では、非常に基本的な設計以外はテストできないと思います。これが時間の経過とともに良くなることを願っています。
須磨

簡単に試してみたところ、無料の製品として非常に印象的でした。シミュレーションのリアリズムに関する制限はわかりませんが、エディターは非常に友好的であり、正しいピンと点滅ループで自動的に作成された適切なスロットにコードを配置するだけです!
heltonbiker

私の選択でさえ123dですが、このサイトについて不平を言うのは、新しいコンポーネントを追加しないことだけです。彼らがリストにいくつかの新しいコンポーネントを持つことができたら本当に素晴らしいでしょう
KD。

2
電子ラボ部分circuits.ioサイトはに移動したtinkercad.comあなたは下でそれを見つけることができ、回路
SiggyF

1
編集してリンクを更新しました。
sa_leinad

40

エレクトロニクスシミュレータの世界には多くのオプションがありますが、circuits.io別名TinkerCADはおそらく最も汎用性の高いものです。

  • まるで本物のように見える仮想ブレッドボードで回路を構成できます。
  • リアルタイムシミュレーション中に、抽象的な波形に苦労するのではなく、LEDの点滅を実際に見るか、ボタンを押すことができます。
  • 555タイマーやシフトレジスタなどのデジタルデバイスを、抵抗器やLEDなどの(インタラクティブな)アナログコンポーネントと組み合わせることができます。
  • Arduinoをプログラムして、マイクロコントローラーとその周辺のアナログ回路をシミュレートできます。
  • Arduinoをデバッグできます。シミュレータがブレークポイントに達すると、シミュレーションが一時停止し、コード内のすべての変数と、回路内のすべての電圧または電流を簡単にチェックできます。
  • UART、I2C、SPIなどのさまざまな通信プロトコルを使用および監視できます。
  • ドライバーコードにブレークポイントを置くことで、I2Cシーケンスの途中でシミュレーションを一時停止できます(I2Cイベントの割り込みサービスルーチンなど)
  • それは無料です!

例

これは、IRリモートとLCDスクリーンを備えた回路例です。

免責事項:私たちは123D Circuitsのメーカーです


1
Arduino IDEでどのようにプレイしますか?フラッシュ、デバッグなどに使用できますか?
rraallvv

14

シミュレーターが実際の状況を再現しないことに注意してください。Arduinoフォーラムには、コードや電子機器の問題に関する多くの投稿がありましたが、次のような微妙なものでした。

  • タイミングの問題
  • 競合状態(関連/依存イベントが常に同じ順序で発生するとは限らない)
  • 電圧レベル、例えば。フローティング入力ピン
  • Arduino電圧をリセットしてリセットするモーターを駆動する
  • デカップリングコンデンサがない
  • 「未定義」状態の入力ピン(例:2以下のVがLOWで、3V以上がHIGHであるピンの2.5V)
  • 揮発性として宣言されていない変数など、割り込みハンドラーの問題
  • モーターにフライバックダイオードがないために発生する電圧スパイク
  • 消費電流がハードウェアが供給できる量を超えるため、10個を超えるLEDが一度オンになるとプロセッサがリセット
  • 割り込みハンドラは、9 µSしか使用できない場合に10 µSを使用して割り込みを処理します。

その性質上、シミュレーターはこのすべてを再現することはできません。できたとしても、「モーターからのランダムなノイズを挿入する」オプションを切り替えると思いますか?


ボードの到着の準備については、IDEをダウンロードしてプログラミングを開始してください。ライブラリをインストールし、コードを記述し、構文エラーをなくし、きちんと整理し、ハードウェアが手元にある大事な日に備えて準備することができます。


楽しんで、Arduinoを試してみてください!


13

Yenka(家庭用は無料)を使用して、Arduino、PIX、PIXACE、およびデジタル、アナログ、シリアルI / Oを備えた他のボードをシミュレートできます。多くのコンポーネントとサンプルプロジェクトを提供します。

スクリーンショット:

Yenka Arduinoシミュレーション


Arduino IDEからプログラム、デバッグできますか?
-rraallvv

12

はい、できます。ProteusISISを使用してコードをシミュレートしてみてください...

Arduinoの完全なエミュレーションには、VBB(Virtual BreadBoard)と呼ばれるシェアウェアプログラムがあります。私も試してみましたが、とても良かったです。

編集: Proteus ISISでシミュレートする方法については、こちらの詳細なチュートリアルをご覧ください


9

この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などのシミュレーターを使用してコードをテストし、ほとんどの場合、デバイスで実行できます。ただし、電子部品の性質上、期待される結果を得るには、外部抵抗、コンデンサなどを用意する必要がある場合があります。


リンクされたサイトがダウンすると役に立たなくなるので、リンクはここでは良い答えではありません。要約を書いてください。また、すでにあるものを繰り返すだけでなく、答えが価値を高めることを確認してください。
totymedli

@totymedliに同意します-そのリンクが機能しなくなると、答えは役に立たなくなります。少なくとも、言及されているエミュレータと現在の価格を要約してください。行が役立つ場合は、行頭にアスタリスクを付けて箇条書きにすることができます。
ニックギャモン

7

Virtualbreadboardには新しいVBB4Arduino「Two Arduino's」エディションがあり、JVM ArduinoエミュレータとAVR命令セットシミュレータの両方が含まれ、ArduinoディストリビューションのほとんどすべてのサンプルとLCD、WS2812 Neo LED、モーター、サーボの周辺ハードウェアが含まれています。 、ロジックアナライザーなど。

http://www.virtualbreadboard.com

免責事項:私はVirtual Breadboardの著者です


6

Simulator for Arduinoを試してみてください-これは最高ですが、開発チームの一員であるため、偏見があります。過去数年間で約5,000人のArduinoユーザーがいるにもかかわらず、誰もが19.99ドルを支払うことを望んでいるわけではありません。45日間または100回のスケッチロードと最大200行で実行されるArduino用シミュレータの無料バージョンがあります。これを試してから、余裕がある場合、および/またはそれが価値があると思われる場合は購入してください。

正しくないもの、または改善できるものがある場合はお知らせください。他のすべての人がそうであり、持っているため、シミュレーターfor Arduinoはユーザーのアイデアとバグレポートによって99%構築されています。

また、私たちが試した唯一の品質に近いプログラムはプロテウスですが、これは完全なPCB設計スタジオであり、非常に高価に見えます-つまり20ドル以上です。また、価格を200ドルに引き上げるという最近のユーザーリクエストを無視する予定です。


5

たとえば、私のシミュレータを使用できます。特に、相互接続された回路のようなオブジェクト(タイマー、マーカー、ラッチ、ワンショット、レジスター)の周期的評価によってマルチタスクが達成されるPLCのようなアプリケーションに適しています。ダウンロードの例から明らかになるように、制御システムをシミュレートするためにも使用できます。適度な視覚化能力があり、タイミングチャートを描画でき、シミュレーションの実行中にリアルタイムでcq forceすべての変数にアクセスして変更できます。また、時間を凍結することができます。コントロールの動作に満足したら、実際のArduinoにアップロードするCコードを生成します。

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


1

デスクトップコンピュータを使用してコードを記述し、エミュレート/テストできる方法

デスクトップコンピューターを使用して「単体テスト」できるということであれば、私が書いたライブラリ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構成体で表されます)がライブラリに期待するものと一致することを確認します。


0

はい、できます。かなり簡単です。TinkerCADと呼ばれる素晴らしいオンラインシミュレーション(完全無料)があります。トランジスタ、LED、IC、Arduinoなどの部品を使用した優れたブレッドボードシミュレーションを備えています。Arduinoをプログラムして、インタラクティブな入力(プッシュボタン、DIPスイッチなど)を含むライブシミュレーションですべて実行できます。


[編集:以下のテキストは、Circuits.ioに移動した機能、つまりEagle PCBを指します]

それがすべてではありません。また、回路用の個別のタブ回路図、およびブレッドボード回路のPCB設計用の別のタブに含まれています!または、回路図をゼロから作成し、そこからPCBを作成することもできます。

回路設計を作成し、購入することができます。circuit.ioでこれらすべてを行うことができ、実際のArduinoを台無しにする危険はありません。また、シミュレーションに警告インジケータがあります(たとえば、LEDやICに十分な抵抗を使用しなかった場合)。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.