Arduino IDEを介してAVRスタジオ(または他のより良い代替手段)に移行する方が良いでしょうか。とてもシンプルで子供っぽい感じがします。専門家のアイデアと選択を知る必要があります。
Arduino IDEを介してAVRスタジオ(または他のより良い代替手段)に移行する方が良いでしょうか。とてもシンプルで子供っぽい感じがします。専門家のアイデアと選択を知る必要があります。
回答:
たとえばAVR Studioを使用する大きな利点は、Arduinoの夜明け前にATmega168 / 328用に作成されたすべてのライブラリを使用できることです。FFTライブラリ、購入した不明瞭なICを使用するためのライブラリ、初歩的なデジタルフィルターなど、AVRfreaksや他の何百もの趣味のサイトで見つけることができます。
また、標準のAVRライブラリの利用方法を学び、マイクロコントローラのデータシート(またはチュートリアル)を調べると、より効率的なコードを書くことができます。単純なアプリケーションの場合、arduinoコードの作成とデバッグは簡単です。ただし、タイミングをより効率的に制御したい場合があります。AnalogRead()
実行するには100µsが必要です。これは10ksps(1秒あたり数千のサンプル)に相当します。ATmega168 / 328の低レベルコードにアクセスすると、簡単に70kspsにポンプできます。もちろん、すべてをArduino IDEで実行できますが、ある時点でプロジェクトが複雑になりすぎて、より高速な機能を備えた独自のライブラリを作成したくなるでしょう。AVR Studioがより適しているかもしれません。
また、Arduinoが提供するもの以外のAVRチップをプログラムしたい場合、プログラマーと別のIDEが必要になります。1kBのコードを使用する小さなプロジェクトは、ATtinyで実行できます。単一のATmega328の価格でそれらを数十個購入できます。これらのチップは安価で、Arduinoのほとんどの機能(I2C、SPI、ADC)を備えています。USB HIDインターフェースを追加するライブラリも見つけることができます!シリアルドライバーなどは一切ありません!
個人的には、最初にコードを最適化せずにArduino IDEでコードを記述します。動作する場合、そのコードは標準C ++ライブラリに簡単に転写され、より効率的になります。
それは誰にとってもアクセス可能でなければならないので簡単です、そしてそれはうまくいきます:誰もが彼の妹はArduinoをプログラムできます。
Real Programmingのようなものを扱うことができると思うなら、私は確かにそうするでしょう。より多くのコードを記述する必要がありますが、より多くの制御権もあります。重要な点:Arduinoライブラリは恐ろしく非効率的です:のような関数でDigitalWrite
あり、最大50倍高速にDigitalRead
作成できます。
DigitalRead/Write
。...ことを知っていたことはありません
回答のほとんどは、Arduinoボードを標準AVRボードとして使用することに焦点を当てています。ただし、より高度なIDEを使用しても、Arduinoコーディングと組み込みライブラリのシンプルさを活用できます(上記の欠点もあります)。EngBlazeはこれについてチュートリアルを行いました:チュートリアル:ArduinoプロジェクトでAtmel Studio 6を使用する
Arduino IDEは、小規模プロジェクトの開発の利便性と速度のためにコードの効率を犠牲にします。専門家にも期限があるため、Arduino IDEを使用して概念をすばやく検証したり、別のプロジェクトのデバッグを支援したりすることは完全に受け入れられます。
組み込みソフトウェア開発に特化したい場合は、AVR Studioやavr-gccなどのより強力な開発ツールと好みのIDEを使用できる必要があります。
開発ツールを習得するだけでなく、マイクロコントローラーの内部動作を学習し、一部のアセンブリを知ることは、メモリが少なく、低電力要件、および/または高性能のシステムで作業する場合、間違いなくプラスです。