NetduinoまたはArduinoを購入する必要がありますか?


17

私はいくつかの楽しいホームホビープロジェクトのためにNetDuinoを買うことを検討しています。

使用したことがありますか?

代わりにArduinoまたはFreeDuinoの範囲(またはまったく異なるもの)を見る必要がありますか?

私はC#の知識のためにNetDuinoに固執することにしましたが、それは要件ではありません。

ありがとう

PS。これがコミュニティWikiに属しているかどうかはわかりません(ガイダンスを歓迎します)。


5
ボードで何をしたいですか?それはあなたの選択に影響します。
トビージャフィー

3
NetDuinoのARM7マイクロコントローラーとArduinoの8ビットAVRは、まったく異なるクラスです。サーバーやネットブックを購入するかどうかを尋ねているようなものです。ただし、不適切なVMを実行することでサーバーの速度が低下しています。パフォーマンスは同様であり、同じタスクに両方のツールを使用しています。その抽象化の層が本当に必要ですか?
ケビンフェルメール

@reemrevnivek-「不適切な」ええと...それは抽象化の層ですが、それは確かに不適切ではありません(そして実際にはvmでもありません)。
コナーウルフ

2
@Fake Name netduino(TinyCLR)にはJITコンパイラがないようです。したがって、これ VM /インタープリターです。tinyclr.com/faq/#13
トビー・ジャフィー

1
VMは、Smalltalk、Java、Pythonなどで実行されるものです。「ベアメタル」とは異なる命令セットを実行する抽象化されたマシンを意味します。仮想化されたPCだけではありません。
ジョーコバーグ

回答:


16

私はC#が大好きであり、Visual Studioを使用してC#で開発することの生産性の利点は、Netduinoを支持する非常に強力な要因であると感じています。ここで他の答えが示すように、「C#はマイクロコントローラー/組み込み環境用ではない」ため、Netduinoをプープーしません。

Arduinoと同じようにNetduinoを使用するか、「ベアメタル」に移行し、AVR、PIC、または他のマイクロコントローラーの直接MCU管理を行うことで、非常に楽しいプロジェクトを作成し、さまざまな物理入出力デバイスの接続について多くを学ぶことができます。

それで、私は次の理由でArduinoに固執しています:

  • より良いコミュニティサポート。Arduinoには、より多くのサンプル、サンプル、およびより大きなコミュニティがあります。
  • Netduinoには、高価なキット/プロトタイピングアプローチを超える話はありません。あなたのコードを実行する数十のマイクロコントローラーを必要とするインタラクティブなアート展示を実装しますか?Netduinosごとに35ドルを支払う準備をしてください。Arduinoを使用すると、Arduinoでプロトタイプを作成し、AVRマイクロコントローラーを備えたベアボーンMCU専用ソリューションにそれぞれ10ドル未満で実装できます。

したがって、Cのスキルがほこりっぽい、または存在しない場合、C#とVisual Studioが好きで、コストがより大きな問題になる場所にスケールアウトする必要のないいくつかの趣味のプロジェクトに手を加えたいだけなら、Netduinoに行きます。

Cに慣れている場合、またはコードサンプルとコミュニティの助けを借りてCに慣れている場合、そして金属に近づき、最終的にNetduinoとArduinoの「プロトタイプ」アプローチから脱却したい場合は、go Arduinoを開始します。


1
これは少し古い答えであることは知っていますが、Netduinoは完全にオープンソース(ハードウェアを含む)であるため、誰からでもuCを購入してNetduinoファームウェアをフラッシュできることを付け加えました。したがって、Netduinoプラットフォームを実稼働製品で使用できます。
Unkwntech

「とにかく、組み込みプラットフォームではあなたのC#の知識はほとんど役に立たないので、あまり重くしないでください。」-なんて馬鹿げたことでしょう。Netduinoが埋め込まれ、それが岩、そしてそれは... C#のである
Jonesome復活モニカ

11

とにかく、組み込みプラットフォームではC#の知識はほとんど役に立たないので、それを重視しすぎないでください。

.Netが悪魔だからではなく、Arduinoやクローンのいずれかを使用しますが、それは他の誰もが使用しているためです。

一度足を濡らしたら、必ず分岐して別のものを試してください。


Arduinoで使用されているWiring言語を提唱していますか、それともavrfreaksのCコードを流用しています(そして貢献しています)?
ケビンフェルメール

1
@reemrevnivek Arduinoは、いくつかのライブラリを備えた単なるC ++です。それは添付のヘッダとフッタを持つC ++だ-私は「言語」としてクラスにいないだろう
トビーJaffey

おっと、配線は私が意味したものです。
ケビンフェルメール

プログラミング要素はそれほど問題にならないため、Netduinoを使用して開始するための提案として、「足が濡れたら、必ず分岐する」と思うでしょう。必要な「他の」スキルを開発します。
マーフ

1
悪いコメント、dren.dkは単に間違っています。私と他の多くの人は一日中netduinoとC#を使用しています。
ジョーンズーム復活モニカ

7

現在、Arduino、mbed、そして最後にNetduinoを開発/愛好家向けに使用しています。Arduinoでの作業が好きではなかったのは、おそらくエディターがあまり良くないからであり、私はC#開発者として間違いなく甘やかされています。mbedを受け取ったとき、その開発はずっと良かったのですが、何が起こっているのかを把握するためにprintステートメントを使用する必要があるため、デバッグは依然として苦痛です。

製品を開発しているとき、または単にめちゃくちゃにしているとき、最初はほとんどの時間をデバッグに費やしています...そしてデバッグしているときは、ブレークポイントが必要です。ブレークポイントを一切提供しない組み込みハードウェアに戻るのは非常に困難です。

私はまだJTAGの経験がありませんが、これまで見たすべてのマイクロ(RabbitCoreモジュールを除く)では、ブレークポイントを介したデバッグを許可する必要があります。今日、Netduinoを接続し、VS2010でコードを1ステップ実行できたときの驚きを想像してください!私はこれに非常に満足していました。

個人的には、フットプリントのサイズ、.NETやMicrosoftの悪さなどについては心配しません。デバッグを迅速かつ効率的に行えるようにしたいだけなので、作業を完了できます。


最高のハードな方法を学習する授業で行われるものを取得

@kurtnelle .NET MFを使用しないことを主張しているようですね。
デイブ

@デイブ、はい、私です。これは、古いcベースの8ビットマイクロコントローラーを試したが、多くの労力でほとんど何もしなかったからです。

@kurtnelleですが、.NET MFを使用すると、実際にはほとんど労力をかけずに多くのことを成し遂げています。
デイブ

2
@デイブ、これまでの逸話的な反応にごめんなさい。私は.NET MFを提唱しています

5

BasicStampユーザーとして20年近く、NetDuinoユーザーとしてたった2週間(Arduinoを使用したことはありません)、NetDuinoは素晴らしいプラットフォームだと思います。私が楽しんでいる2つの主な機能:VisualStudioでのプログラミングの容易さ(およびブレークポイント!)とボード上の高解像度ADCが主な理由です。SparkFunで試したいくつかのArduinoシールドは、NetDuinoと完全に連携しています。


4

個人的に、私はC#や.NETのファンではありません。私はCルーディットです。そのため、プラットフォームの選択は、必要なハードウェア機能(フラッシュ、RAM、クロック速度、ADCの数、タイマーの数など)を持っていることになります。

そうは言っても、C#/。NETはラピッドプロトタイピングに役立つと想像できます。

  • 文字列処理はおそらくはるかに簡単になります
  • RPCとオブジェクトのシリアル化はおそらく簡単です。シリアルリンクを介してC#オブジェクトをプッシュできると思われます。RPCはおそらく「正常に動作します」
  • 移植性-.NETは仮想マシンであるため、コードは他のボードまたはPCでも実行する必要があります
  • ガベージコレクションにより、多くのアルゴリズムの実装が簡単になります

もちろん、これにはすべてコストがかかります。

  • コードのフットプリントが大きい(特に標準ライブラリを考慮する場合)
  • RAMの使用率が高い(すべてがオブジェクトです。すべて入力されていますか?)
  • ガベージコレクターはリアルタイムパフォーマンスに干渉する可能性が高い
  • ハードウェア機能が.NETライブラリでサポートされていない場合は使用できません(C / C ++が必要な機能を自分で実装しない限り、コメントを参照してください)

そして何よりも、組み込みプラットフォームでC#のスキルを使用することにより、組み込みデバイスについて何も学習していません。

はい、それは仕事を終わらせます-しかし、その中でどこが楽しいですか?


NetDuinoで使用されている.NETライブラリに新しい機能をパッチするのはどれほど難しいのだろうか。SecretLabs.NETMF.Hardware / Stubs- source filesに至るまで、C ++を使用して.NET SDKを構築しているようです。はぁ。
ケビンフェルメール

@reemrevnivek楽しみの私の考えではありません。ランタイムにパッチを適用する場合は、C / C ++
Toby Jaffey

1
@Joby-私はあなたのようなCラディットですが、それが可能であったことを指摘したかっただけです-「ハードウェア機能が.NETライブラリでサポートされていない場合、使用できません」本当ではありません。
ケビンフェルメール

1
実際にベンチマークを見たことがありますか?16MHzの8ビットが60MHzの32ビットマイクロと同じ速度で動作すると想像するのは難しいです。特に、Arduinoライブラリも速度を落とすため、実際に速度が最適化されるものはありません。また、オブジェクトもあります(.NETで使用されているほど多くない場合)。そして、それはArduinoとは大きく異なりますか?機能をサポートするArduinoライブラリがない場合は、自分で実装する必要があります(ハードウェアレジスタなどを直接呼び出す)
davr

@davr編集済みの回答
トビージャフィー

3

私はmbedを見つけましたはArduinoのすばらしい代替品であることが。

ソフトウェアライブラリは、より多くのC ++指向であり、代入演算子のオーバーロードのすべての構文糖衣を備えています。さらに、ユーザーがコードライブラリを公開およびドキュメント化できるようにシステムが設定されているため、簡単に検索してプロジェクトにインポートできます。

もう1つの優れた機能は、デバイスをUSBスティックとして扱い、.binファイルをドライブに直接配置する機能です。

残念ながら、IDEはarduinoのIDEに匹敵します。また、オンラインです。これは非常に優れており(どのPCでも使用でき、インストールは不要)、非常に悪い(インターネットに接続せずに簡単に再プログラムすることはできません)。

委員会の費用は60ドルですが、スポンサーシップスキームがあり、進行状況が文書化され、ソースコードが公開されていれば、興味深いプロジェクトに委員会を寄付します。


私はスポンサーシップのアイデアが大好きです-それを調べなければなりません。
デイブ

2

私は主にC#開発者です。ソースコードが入手できるため、NetduinoではなくArduinoを購入しました。NetduinoをArduino電子ブリックと統合するのは簡単ではありません。サンプルの一部をゼロから書き直す必要があるからです。


2

「C#は組み込みプラットフォームに適していない」と読んだ場合、特定の年齢以上の人は生涯で少なくとも一度は「C」について、そして再びC ++について言ったことを聞いたことを思い出してください...

もちろん、プロセッサの基本的な機能は途方もなく「無駄」ですが、アイドルループを必要な速度よりも10倍速くするのではなく、必要な速度よりも1000倍速く実行できる機能は、決して豊かになりません。


アイドルループは関係ありません。ビデオ信号のキャプチャまたは生成、独自のオシロスコープの作成、入力信号のリアルタイムFFT分析など、サイクルが重要なMCUの用途がいくつかあります。これらのC#は忘れることができます。一方、要件が「PCのようなソフトウェアを小さなパッケージで作成する」ことを重視している場合、C#と.NET MFはまったく悪い選択ではありません
...-avra

2
...このような経験のために、Linuxベースの組み込みARMボードを選択したいのですが、それは他の議論のトピックです。ポイントは、C#のバックグラウンドを持つ組み込みの世界に入ったばかりの人にとって、.NET MFは決して悪い第一歩ではないということです。
avra

1

ベアメタルを感じて、たとえばビデオ信号を直接生成またはキャプチャできるようにしたい場合は、すべてのサイクルが重要であり、AVR / Arduinoがそれを可能にします。高レベルの抽象化、高レベルのプログラミングとデバッグの快適さ、ガベージコレクターが必要な場合、Windowsのようにすべてを制御するわけではないという事実に耐えることができる場合は、NetDuinoまたはFEZ Dominoを選択します。どちらもARMを使用しているため、必要に応じて、ボード上の.NET MFを削除し、小さなJTAGデバッガーの助けを借りてIDEのようなEclipseからベアメタルARM GCCコードを直接フラッシュできると思います。少し調べてください。問題は、JTAGヘッダーが欠落している場合、はんだ付けを行う必要があることです。


CとC ++はビデオには十分ではありません。そのためにはVerilogが必要です:)

ソフトウェアだけでビデオを作成するプロジェクトが少なくとも10個あります。ほとんどは白黒またはグレーですが、カラーのものや、AVRソフトウェアで生成されたビデオだけのゲームシステムもあります。OSDプロジェクトも存在します。FPGAなしでAVRで低解像度ビデオフレームをキャプチャする例もほとんどありません。ただグーグルで
...-avra

私がビデオと言うとき、私は1080p 24ビットカラーを意味します。埋め込みC ++でできますか?

0

エレクトロニクスとプログラミングから非常に長い休みを経て、息子の一人が大学で行っているプロジェクトのために、私はそれに戻ってきました。チューブが標準であり、トグルスイッチ(アドレスの設定、データの設定、ロード、ストア、バイナリ)およびパンチカードを使用したプログラミングのときに電子工学を学びました。長年にわたり、私はそれぞれの電子言語とプログラミング言語の進歩を学び、使用してきましたが、これには多大な労力と時間がかかりました。その結果、マイクロコントローラーの進歩と、Arduino、Netduinoなどの開発ボードを含め、どれほど信じられないほど安価であるかに感謝しています。コマンドライン対GUIとして。結果に適切である限り、どのプラットフォーム、プログラミング言語などが使用されるかは関係ありません。


-1

.net MFが純粋なマシン/メタルコードでできるライブラリを提供した場合、...唯一の抽象化(。Net MF)が適切なものになります。フットプリントを増やしてGCを実行する以外に(効率的にする必要がありますか??)

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