申し分なく、私はArduinoで十分に遊んだことがあるので、それでかなり快適に感じます。現在行われていることは、それがArduino側であるというよりも、電子工学を学ぶことです。
学習の次のステップは何ですか?Arduinoはプログラマー/コントローラーの組み合わせであるため、おそらくそのリンクを解除し、コントローラーとは別のコントローラーチップで作業を開始する必要があると思いますか?誰かが私を正しい方向に向けることができますか?
申し分なく、私はArduinoで十分に遊んだことがあるので、それでかなり快適に感じます。現在行われていることは、それがArduino側であるというよりも、電子工学を学ぶことです。
学習の次のステップは何ですか?Arduinoはプログラマー/コントローラーの組み合わせであるため、おそらくそのリンクを解除し、コントローラーとは別のコントローラーチップで作業を開始する必要があると思いますか?誰かが私を正しい方向に向けることができますか?
回答:
AVRとCを操作するためのヒントを次に示します。
Jobyには同意します。Arduinoは素晴らしいのですが、周囲のフレームワークにいつも圧迫されています。ArduinoでストレートCを使用し、それらがゼロから提供するライブラリ機能の多くを構築することに進みます。私は通常、幅よりも深さを好みます-提供されているフレームワークを使用して別のマイクロコントローラーファミリを開始するだけではありません。これらの機能のいくつかを自分で実装する方法についてもう少し学んでください。
動作中のプログラムから始めて、Arduinoライブラリ呼び出しを一度に1関数ずつ独自のバージョンに置き換えます。制御レジスタ、タイミング、ビット操作などについてまだ多くのことを学べます。ATMega328データシートを詳細に読んでください。必要なものはすべて揃っています。
AVR StudioやCode :: Blocksのような別のIDEを試してください。GCCツールチェーンをご覧ください。より高度なコーディング手法を試してください-単体テスト、カバレッジ、プロファイリング、lint / splintチェック。RTOSをArduinoに配置します。
プログラマー/コントローラーの組み合わせは、弱点の兆候ではなく、設計上の選択にすぎません。それから生じる唯一の「弱点」は、インサーキットデバッグの欠如です。AVR Dragonを購入すると、50ドルでそれがなめられます。
次に学ぶべきことは、Arduinoができないことを何をしたいかによって決まると思います。つまり、同じことをするために同様のチップをプログラミングすることにはあまり意味がありませんが、より難しい手段が必要です。
Arduinoの弱点は次のとおりです。
次の2つの方向を想像できます。
どの方向がより魅力的であるかについてコメントしていただければ、詳細を追加できます。(2番目のものは間違いなく安価です。)
まず、プラットフォームとしてのArduinoからプラットフォームとしてのAVRに移行することをお勧めします。すなわち、Arduinoの代わりにプロジェクト用にバージンAVRマイクロコントローラーをプログラム/使用する方法を学びます。こうすることで、プロジェクトごとに、または友人とプロジェクトを行うために、Arduinoボードを別に購入する必要がなくなります。これはかなり簡単なステップです(Arduinoは従来のAtmel AVRマイクロコントローラーですが、特別なボードとブートローダーを備えています)が、友人にプロジェクトを販売/提供するための大きなステップです。ツールチェーンも同様です:avr-gccまたはavr-g ++をプログラミングユーティリティと組み合わせて使用し、プログラムをインストールします。