2016-11-08 3 views
0

C#プログラムから生成されたCプログラムをarduinoボードにコンパイルしてアップロードする方法はありますか?C#アプリケーションからArduinoにコンパイルしてアップロードする方法

私は基本的に、ウィンドウに選択されたsomesパラメータに応じてCコードを生成する小さなC#アプリケーションをビルドしました。今のところ、ardunioインターフェースの中にコードをコピー&ペーストしてコンパイルし、プログラムをアップロードする必要があります。

私はこの作業を自動化して、arduinoプログラム内で作成されたCコードをarduinoプログラムなどを使用せずに直接送信したいと考えています。私のウィンドウインターフェイスだけです。出来ますか ?

プログラムの画像: enter image description here

答えて

1

あなたは、Cコードをアップロードしていないが、あなたはマシンコードにコンパイルしAVR-GCCを使用しています。拡張で また、ArduinoのIDE .inoファイルから.cppファイルを生成するために、いくつかの準備がない(関数プロトタイプを生成し、ファイルを含める追加) 次にユーティリティAVRDUDEが結果の.hexファイルをアップロードするために使用される

ルックコンパイルとアップロードの間に出力します。

一般的には可能ですが、私はあなたが成功するかどうかは疑問です。 c#で作業しているときは、VisualStudio内でArduinoにコンパイルしてアップロードするVisualStudioプラグインを探します(VisualMicroを検索してください)。 おそらくそれはあなたのために面白いです...

+0

は、応答をありがとうございました。私はVisualMicroについて見ています。それは私がそれを使うのが難しいようです!ありがとう男 – user2305302

+0

IDEから始めて、スケッチをVSプロジェクトにインポートすることができます。 VS内では、(より良いインテリセンスのサポートを)編集し、コンパイルしてアップロードすることができます。もちろん、それはあなたの質問/アイデアとは全く異なるアプローチですが、Arduino IDEを使用するのと同じくらい簡単です。 – datafiddler

1

データフィドラーは彼の答えで指摘するように、avr-gcc(プログラムをコンパイルするために)を最初に呼び出す必要があります。

2番目の手順(アップロードプロセス)の代わりに、ネイティブのC#ライブラリArduinoSketchUploaderを使用して、バイナリHEXファイルをArduinoにブートローダー経由でアップロードできます。このようにして、あなたのコードにavrdudeを梱包する必要はありません。

免責事項:これは私が個人的に書いたライブラリです。

nugetパッケージが参照されると、結果のコードは次のようになります。

var uploader = new ArduinoSketchUploader(
    new ArduinoSketchUploaderOptions() 
    { 
     FileName = @"C:\MyHexFiles\UnoHexFile.ino.hex", 
     PortName = "COM3", 
     ArduinoModel = ArduinoModel.UnoR3 
    }); 
uploader.UploadSketch(); 
+0

ChristopheR、これは解決策である可能性があるので、前に.ino.hexを作成するソリューションを見つけなければなりません。私はC#のこの部分を探ったことはありませんでしたが、私にとっては受け入れやすい方法だと思います。ありがとうございました。 – user2305302

関連する問題