CLionは、JetBrainsのC / C ++用の新しいIDEです。 スタイルと動作は、IDEA(IDE for Java)に非常に似ています。 「チップ」を使用してIDEAでJavaで記述しているため、これはIDEです。これらすべての「チップ」を転送し、Arduinoの開発にユースケース開発を使用したいと思います。
一般に、Arduino用のさまざまなIDEを試しました-Arduino IDE、Arduino用プラグイン付きEclipse、AVR用プラグイン付きEclipse、Atmel Studio、VisualMicroプラグイン付きVisual StudioおよびReSharper C ++。 最近、Arduino用のプラグインを使ってEclipseに立ち寄った。 それでも、IDEAの使い慣れた機能の一部では不十分でした。
最後に、JetBrainsはC \ C ++-CLionのIDEを作成しました。 ただし、これまでのところ、Arduinoプラグインはありません。 しかし、CMakeをサポートしています。 ここで活用できます!
arduino-cmake
Arduinoサポートタスクyoutrack.jetbrains.com/issue/CPP-364では、Arduino github.com/queezythegreat/arduino-cmakeのCMakeアセンブリについて言及しており、これを使用します。
これを行うには、arduino-cmake(WinではProgram Files(x86)\ Arduino)で指定されたフォルダーにArduino SDKをインストールします。 1.0.xバージョンを使用する必要があります。 バージョン1.5.xはサポートされていません。 最新バージョン1.0.6を使用しました。
次にgithub.com/queezythegreat/arduino-cmakeをダウンロードすると、すべての作業がその基礎に基づいて構築されます。 Windowsの場合、cmake / Platform / Arduino.cmakeファイルの行1177、1178でTARGET_PATHからTARGET_NAMEへの変数名を修正する必要があります。 Windowsでは、avrdudeのファームウェアのHEXファイルへのパスが正しく形成されていないため、これを行う必要があります。 最も可能性が高いのは、ドライブ文字のあるWinのようなパスです。 私はそれをスクリーニングする方法を見つけられなかったので、相対パスを示しました。 さらに、avrdudeコマンドを呼び出す前に、hexファイルのあるディレクトリへの移行が行われます。 これらの変更は、プログラムをArduinoにアップロードするために必要です。 完了していない場合、コンパイルのみが行われます。
次に、CLionで、File-> Import projectを使用してこのCMakeプロジェクトを開きます。
CLionがCMakeファイルを処理する間、少し待ちます。 これでプロジェクトの準備は完了です。
このプロジェクトをArduinoにロードするように構成するには、特定のArduinoボードとArduinoのポートを選択してプログラムをロードする必要があります。 サンプルプロジェクトでは、これはexample / CMakeLists.txtで構成されます。 例付きのすべての構成情報は、arduino-cmake / README.rstにあります。
独自のプログラムを作成する
最初はArduinoの「スケッチ」を使用しようとしましたが、コンテキスト(右下のCLion)が正しく指定されていても、CLionではautocompliteは機能しませんでした。 したがって、私はcppファイルを使用しました。このファイルは、コンテンツ内では「スケッチ」よりも数行だけでした。
CMakeLists.txtをセットアップするときに、duinoworks.bakketti.com /?p = 11の例を使用しました
最初に、アプリケーションのルートフォルダー(サンプルフォルダーと同じレベル)にシリアルフォルダーを作成し、そこに2つのファイルを追加します-プログラムコードを含むserial.cppとプロジェクト設定を含むCMakeLists.txt。
シリアル/ CMakeLists.txtコンテンツ
# Set a variable for commands below set(PROJECT_NAME serial) # Define your project and language project(${PROJECT_NAME} C CXX) set(${PROJECT_NAME}_BOARD nano328) # Define the source code set(${PROJECT_NAME}_SRCS serial.cpp) # Define the port for uploading code to the Arduino set(${PROJECT_NAME}_PORT COM8) # Command to generate code arduino firmware (.hex file) generate_arduino_firmware(${PROJECT_NAME})
ボードとしてCOM8ポートにATMEGA328を備えたArduino Nanoを選択したことに注意してください。 サポートされているすべてのボードのリストはCにあります:\ Program Files(x86)\ Arduino \ hardware \ arduino \ boards.txt(これはポイントのパラメーターの名前です-uno、atmega328、diecimilaなど)
シリアル/ serial.cppの内容
#if ARDUINO >= 100 #include "Arduino.h" #else #include "WProgram.h" #endif void setup() { Serial.begin(9600); } void loop() { Serial.println("Hello from CLion!"); delay(5000); }
そして、シリアルフォルダーを接続します-ルートCMakeLists.txtに次の行を追加します
add_subdirectory(serial)
次に、CMakeウィンドウのCLionで、CMakeプロジェクトのリロードを選択します:
その後、通常どおりコードを記述できます。 autocompliteをサポートする編集コードの例:
CLionでは、シリアル、シリアルサイズ、シリアルアップロード構成を作成する必要があります。 シリアルアップロードの設定に興味があります-プログラムを収集してロードします。
それを選択し、実行-> Buid(Ctrl + F9)をクリックするか、構成ドロップダウンリストの近くにある[実行]または[デバッグ]ボタンをクリックします。 最初のケースでは、アセンブリとロードはArduinoで行われ、2番目のケースでは同じことが行われますが、elfファイルも実行しようとしますが、失敗し、エラーが発生しますが、これは結果に影響しません。
Arduinoライブラリを使用する
Arduinoライブラリを使用するには、ライブラリフォルダーへのパスを明示的に指定する必要があります。 これは以下を追加することで実行できます
ルートCMakeLists.txt内。 さらにプログラムでは、通常のようにヘッダーを接続するだけですlink_directories(${ARDUINO_SDK}/libraries)
#include "LiquidCrystal.h"
例
GitHubにサンプルプログラムがあります。
github.com/TimReset/arduino-cmake
おわりに
現在、CLionからCOMポートに接続してArduinoと通信することはできません。これには、Arduino IDEまたはEclipseからのCOMポートの監視機能を使用しました。 arduino-cmakeでは、COMポート監視プログラムを開始するタスクを追加できます( CMakeLists.txtでset($ {PROJECT_NAME} _SERIAL <Program_name @ SERIAL_PORT @)を指定します)。 また、avrdudeを介してプログラムをダウンロードする場合、COMポートを誰も使用しないでください(たとえば、Arduino IDEを介して並行して接続することはできません)。そうしないと、ダウンロードは行われませんが、エラーは発生しません。 そのため、起動するたびに接続を閉じる必要があります。
私自身、CLionを自分で開発に使用することにしました-彼はC \ C ++コードを書くための主要な機能をサポートしています。 CMakeLists.txtではこれまでのところ実際には機能しませんが、構文の強調表示しかありませんが、コメントでも機能しません。