web-dev-qa-db-ja.com

C ++でArduinoをプログラムする方法

だから、最近、私は自分のarduinoをいじくり回していて、c ++でarduinoをプログラムできる方法があるのだろうかと考えていました。私がやっていることは、vimのc ++ /処理言語を使用してプログラミングし、メイクファイルを使用してコンパイルしてarduinoにアップロードすることです。しかし、私の目標は、クラスとすべての優れたC++機能(または少なくとも合計)を使用してプログラミングできるようにすることです。最終的には、生のcでプログラムしたいのですが、どうすればいいかわからないだけです。誰かが私を正しい方向に向けてくれたり、助けてくれたりできたら素晴らしいと思います。ありがとう! 〜マイケル

25
Michaelslec

私の経験は次のとおりです。私は、Arduino、センサー、モーター、LED、Bluetoothを使用して、自閉症の子供向けのロボットスマートグッズを構築しています。 C++を使用して必要なことを正確に行うために、独自のライブラリを作成しました。しかし、Arduino IDE Compilerは古いバージョンであり、新しいC++ 11機能をサポートしていないことがわかりました。

そのため、C++ 11コードをコンパイルしてArduinoにアップロードする方法を見つける必要がありました。それは、「かなり」基本的なものであることが判明しました。Makefile、avr-gcc 4.8ツールチェーン、およびvoilàが必要でした。 MakefileジョブはSudarによって実行され( https://github.com/sudar/Arduino-Makefile )、うまく機能します。ただし、プロジェクトで機能するように少しカスタマイズする必要がありました。

私のプロジェクトのために私が書いたいくつかのドキュメントがあります。あなたが見てみる必要があります、それはあなたにとって役に立つかもしれません。 https://github.com/WeAreLeka/moti/blob/master/INSTALL.md

それが役に立てば幸い!乾杯:)

編集08/16/2014:

私は友人や他の開発者からこれに似たリクエストをたくさん受け取ったので、Arduinoプロジェクトをすばやく簡単に立ち上げて実行するために、何らかのフレームワークを設定することにしました。

これは Bare Arduino Project です

それが助けになることを願っています!私が改善できるバグやものを見つけたら、お気軽に記入して発行してください。 :)

48
ladislas

Arduino IDEでサポートされている言語は、基本的にC++であり、Arduinoプログラマーによって実装されたいくつかの追加機能を備えています。また、スケッチではsetuploopルーチン(より高度なプログラマーになると最終的に到達するものがいくつかあります)。

スケッチでは、ライブラリでクラスを定義し、Arduino IDEを使用してそのライブラリを含めることができます。 Arduino IDEは、Arduinoのプロセッサ用のコードを作成するAtmelコンパイラを実装します(いくつかのモデルがあります)。ArduinoIDE(あなたはそうです)が、あなたはまだ正しいAtmelプロセッサを対象とするコンパイラを持っている必要があります。

最後に、C++クラスは大きくなる可能性があるため、ある時点で、ソースはプロセッサが保存できるものより大きくなります。したがって、Arduinoクラスはまばらであり、要点です!

まず、Arduino IDEを使用し、スケッチ(とにかくC++がほとんどです)を記述します。また、機会があれば、CおよびC++で独自のライブラリをコーディングできます。

5
JackCColeman