前文
自宅で石油暖房をしています。 タンク内のオイルレベルを測定するために、矢印とロープ上のフロートを備えた旧式のセンサーが使用されます。 センサーの動作原理は、その不正確さに顕著です。 しかし、私たちは子供の頃から遠い未来に住んでいるので、次の条件を満たすセンサーを作りたいと思いました。
- センサーはデジタルでなければなりません。
- 彼の証言はさらなる処理のために保存されるべきです。
- データはいつでもどこでも利用できるはずです。
- デバイス全体は200ユーロより安くなければなりません。
この仕様で、適切なコンポーネントを探し始めました。 Arduinoプラットフォームでは、選択は非常に迅速に行われました。 鉄自体は完全に私に合っていましたが、開発環境はひどいものでした。 そのため、Eclipseに切り替えることが決定されました。
もちろん、最愛のVisual Studioに切り替えることはできましたが、現時点では自分でLinuxを再発見しているため、Windowsは使用できません。
今日、Ubuntu 10.10でArduino Unoと連携するようにEclipseを構成する方法について共有したいと思います。
何が必要ですか
ソフトウェア
- Ubuntu 10.10がインストールされたPC
- Eclipse IDE、バージョン3.5.2を使用しました
- C Development Toolkit、バージョン6.0.2を使用しました
- Eclipse用のAVRプラグイン、バージョン2.3.4を使用しました
- GNU AVR-GCCツールチェーン
- Arduino IDE、バージョン0022を使用しました
鉄
- Arduino uno
- Arduinoをコンピューターに接続するためのUSBケーブル
- コンピューターの空きUSBポート。
ソフトウェアのインストール
1.1 Eclipseをインストールします。そのため、Ubuntu Software Centerに移動し、検索に「Eclipse」という単語を入力し、Eclipseの行で[インストール]ボタンをクリックします。

または、ターミナルに次のように記述できます。
sudo apt-get install eclipse-platform
1.2 C Development Toolkitをインストールします。 これを行うには、Eclipseを開き、[ヘルプ]メニューに移動して、[新しいソフトウェアのインストール...]をクリックします。
ウィンドウが開きます。 [作業]フィールドで、[ガリレオ更新サイト]ページを選択します。
検索ボックスに、「Eclipse C / C ++ Development Tools」という行を挿入します

検索結果の左側にあるボックス、つまり 「Eclipse C / C ++ Development Tools」の行の反対側で「Next」をクリックし、次に「Next」、「Accept」、「Finish」の順にクリックします このスーパーコンボの後、CDTのインストールが開始されます。 インストール後、Eclipseを再起動します。
1.3 AVRプラグインをインストールします。 「新しいソフトウェアのインストール」ウィンドウを開き、「追加...」ボタンをクリックして、プラグインを取得するアドレスを入力します。 「名前」フィールドに「AVR plugins for Eclipse」と入力し、「場所」フィールドに次のように入力します。
http://avr-eclipse.sourceforge.net/updatesite/
OKをクリックします。 「AVR Eclipse Plugin」という行にマークを付けて、ステップ1.2からのコンボを実行します。 Eclipseを閉じます。
1.4 GNU AVR-GCCツールチェーンのインストールは、ターミナルから実行されます。 これを行うには、ターミナルに次の行を挿入します。
sudo apt-get install avrdude binutils-avr gcc-avr avr-libc gdb-avr
Enterキーを押して少し待ちます。
Eclipseを構成する
Eclipseに必要なすべてのプラグインをインストールしたら、AVRDudeを構成する必要があります。 これを行うには、Eclipseの設定メニュー(
ウィンドウ→Prefrences )に移動します。
検索バーに「AVRDude」と入力してEnterキーを押すと、次のウィンドウが表示されます。

「追加」ボタンをクリックして、プログラマ用の新しい構成を追加します。 これを行うには、開いたウィンドウで、構成の名前と説明を変更します(注文用)。 [Programmer Hardware(-c)]リストでArduinoを選択します。 「デフォルトのボーレートをオーバーライドする(-b)」フィールドで値
115200を選択し、「デフォルトのポートをオーバーライドする(-P)」フィールドで値
/ dev / ttyACM0を設定する必要があります(Arduinoが接続されているポートは
私のポートと異なる場合がありますArduino IDE)。

OKをクリックします。 もう一度OK。
Arduino用のプロジェクトを作成する
最初のプロジェクトでは、ペンでプロジェクトを調整する必要があります。 したがって、このプロジェクトをArduinoの「ベース」プロジェクトとして作成し、必要に応じてコピーすることをお勧めします。
2.1 Eclipseで、メニュー(
ファイル→新規→プロジェクト... )に進み、「Cプロジェクト」を選択して、「次へ」をクリックします。
2.2私たちは子供、私の場合はArduinoUnoと呼び、プロジェクトのタイプを選択します。「
AVR Cross Target Application 」が必要です。 完了をクリックします。
2.3 「プロジェクトエクスプローラー」ウィンドウでプロジェクトを選択し、プロジェクト設定を変更します(
プロジェクト→プロパティ )。 開いたウィンドウの左ペインに、AVRタブがあり、それを展開します。
2.4 AVRDudeをクリックし、プログラマー構成を選択します(以前に作成しました)。
2.5 USBケーブルを使用してArduinoをコンピューターに接続します。 Arduinoがオンになっていることを確認してください。
2.6 [ターゲットハードウェア]を左クリックします。 右側に「MCUからロード」ボタンが表示されます。それをクリックします。 MCUのタイプと周波数は、ご使用のマイクロコントローラーに合わせて変更する必要があります。 クリスタルの刻印でタイプを確認します。一致する場合は、良好です。 コントローラーを自動的に認識できない場合は、説明を
ハードウェアにスモークし、値を手で設定します。 Unoの場合、タイプはATmega328Pおよび16 MHzの周波数として認識されます。
2.7 [OK]をクリックして[プロパティ]ウィンドウを閉じます。
Arduino Unoのライブラリを作成する
Arduinoを使用する各プロジェクトには、カーネルライブラリが必要です。 取得する方法はいくつかありますが、最速の方法は元のArduino開発環境からそれを引き出すことです。 今何をしますか。
3.1 Arduino IDEの起動
3.2ハードウェアの選択(
ツール→ボード→... )この例では、Arduino Unoを選択します。
3.3 Blinkなどのサンプルコードをダウンロードします(
[ファイル]→[例]→[基本]→[点滅] )。
3.4 [確認]ボタンをクリックします
3.5次に、必要なライブラリがあるフォルダーに移動します。 フォルダー/tmp/buildXXXXXXXX.tmp/で探す必要があります。XXXXXXXXXは数字の束です。 そのようなフォルダが複数ある場合は、すべてのディレクトリを消去して、3.4に進みます。
3.6 core.aファイルの名前をlibArduinoUnoCore.aに変更
3.7ファイルをEclipseプロジェクトにドラッグアンドドロップして、そこにドロップします。
ビルドをカスタマイズする
ビルドを成功させるためのいくつかの設定を行うだけで、完了です。
4.1 Eclipseで、Alt + Enterを押してプロジェクト設定に入ります。
4.2 C / C ++ブランチに移動します(
ビルド→設定 )。 [ツール設定]タブで、[ツールチェーンの追加ツール]アイテムを選択し、チェックボックスをオンにします
- フラッシュメモリ用のHEXファイルを生成する
- 印刷サイズ
- AVRDude
4.3 [拡張リストの生成]アイテムのチェックを外します。 次のようになります。
4.4 AVR Compilerタブに行き、それをクリックして、コマンドフィールドの値を「avr-gcc」から「avr-g ++」に変更します。
4.5次に、
AVR Compiler→Directoriesブランチに進み、libArduinoUnoCore.aにヘッダーファイルを見つけることができるパスを追加します。 必要なパスは、Arduino IDEのあるフォルダーにあります。 ... / arduino-0022 /ハードウェア/ arduino / cores / arduino /(省略記号をIDEへのパスに置き換えます) これは、コンパイラに示すパスです。
4.5次に、
AVR Compiler→Debuggingブランチに進み、Generate Debugging Info値をNo debugging Infoに設定します。
4.6 AVRコンパイラー→最適化ブランチに移動し、最適化レベルをサイズ最適化(-Os)に設定します
4.7 AVR Assembler→デバッグブランチで、デバッグ情報の生成値をデバッグ情報なしに設定します。
4.8 AVR Cリンカー→一般ブランチのその他の引数フィールドに、「-cref -Wl、-gc-sections」と記述します。 これにより、HEXファイルが4分の1に削減されます。
4.9そして、
AVR Cリンカー→ライブラリの最後の
仕上げ :
- ライブラリにArduinoUnoCoreライブラリを追加(-l)
- このプロジェクトのライブラリパス(-L)にパスを追加します。 「 $ {workspace_loc:/ ArduinoUno} 」
次のようになります。

main.cを作成します
さて、私たちは大事なメインファイルに到達しました。 Arduino IDEから覚えているように、2つの関数を作成する必要があり、すべてが機能します(セットアップとループ)。 このプロジェクトでは、より多くのコードを記述する必要があります。プロジェクトにmain.cという名前の新しいファイルを作成することをお勧めします([ファイル]→[新規]→[ソースファイル])。 そして、次のコードをそこに貼り付けます:
/ *
* main.c
*
*作成日:01/12/2011
*
* Arduinoプロジェクトの基本メインファイル。
* /
#include "WProgram.h"
//グローバル変数
int g_LedPin = 13; //デジタルピン13のLED
ボイド設定()
{
//シリアルポートを開き、データレートを9600 bpsに設定します
Serial.begin(9600);
//ピンを出力として設定します
pinMode(g_LedPin、OUTPUT);
Serial.println( "********************" );
Serial.println( "* hello world *" );
Serial.println( "********************" );
}
ボイドループ()
{
digitalWrite(g_LedPin、HIGH); // LEDをオンに設定します
遅延(1000); //しばらく待ちます
digitalWrite(g_LedPin、LOW); // LEDをオフに設定します
遅延(1000); //しばらく待ちます
}
extern "C" void __cxa_pure_virtual()
{
while (1);
}
int main( void )
{
init();
セットアップ();
//無限ループ
(;;)
{
ループ();
}
0を返します。
}
コードを挿入したら、プロジェクトをビルドするだけです。 しかし、あなたは自分でそれを処理できると思います。 それでも、提案されたバージョンでは、HEXファイルのサイズはArduinoの元の開発環境と競合しています。