Everything You Need to Know About Arduino CodeBlog Postcircuito teamMarch 11, 2018
Arduinoオープンソースプラットフォームの立ち上げ以来、同ブランドは広大なオープンソースコミュニティの中心としての地位を確立してきました。 Arduinoのエコシステムは、ハードウェアとソフトウェアの多様な組み合わせで構成されています。 Arduinoの多機能性とシンプルなインターフェースは、ホビー、デザイナー、アーティストから製品のプロトタイプまで、世界中の幅広いユーザーにとって有力な選択肢となっています。
Arduinoボードは、USBでコンピュータに接続され、Arduino開発環境(IDE)と接続されます。
初心者も熟練者も、豊富な無料のリソースや資料を利用してサポートを受けることができます。
初心者も熟練者も、サポートするための豊富な無料のリソースや資料を利用することができます。ユーザーは、ボードのセットアップ方法や、Arduinoでのコーディング方法についても調べることができます。 Arduinoの背後にあるオープンソースは、新しいユーザーにも経験豊富なユーザーにも特に優しいものとなっています。 オンラインでは、何千ものArduinoコード例が公開されています。 この記事では、Arduinoでのコーディングの基本原則をご紹介します。
Plan Your Next Arduino Project >>
Arduinoのコーディング環境と基本的なツール
Arduinoはどんな言語なの?
ArduinoのコードはC++で書かれており、後述する特別なメソッドや関数が追加されています。 C++は、人間が読めるプログラミング言語です。
Arduino IDE
Arduino統合開発環境(IDE)は、Arduinoのプログラミングに使用されるメインのテキスト編集プログラムです。 プログラムするボードにコードをアップロードする前に、ここでコードを入力することになります。 Arduinoのコードはスケッチと呼ばれています。
注意:Arduino IDEの最新バージョンを使用することが重要です。
Arduinoコードの例
見ての通り、IDEはミニマルなデザインです。 メニューバーには5つの見出ししかなく、その下にはスケッチを検証したりアップロードしたりするための一連のボタンがあります。 基本的にIDEは、スケッチをArduinoが理解できるコードに変換・コンパイルします。
スケッチのコンパイルを開始するためにユーザーがしなければならないことは、ボタンを押すことだけです(このガイドは以下にあります)。
Arduino コードにエラーがある場合は、ユーザーに変更を促す警告メッセージが表示されます。 Arduino の厳しい構文要件のため、新規ユーザーの多くはコンパイルに苦労しています。
シリアル モニターとシリアル プロッタ
Arduino のシリアル モニターは、IDE の右上または ツールの下にある虫眼鏡のアイコンをクリックして開くことができます。 シリアルモニターは、主にコンピュータを使ってArduinoボードと対話するために使用され、リアルタイムのモニタリングやデバッグに最適なツールです。
circuito.ioからダウンロードしたコードには、以下のスクリーンショットのように、シリアルモニターを使用して各コンポーネントをテストするのに役立つテストセクションがあります:
Arduinoシリアルプロッターは、Arduino IDEのもう1つのコンポーネントで、シリアルデータのリアルタイムグラフを生成することができます。 シリアルプロッターを使えば、データを視覚的に表示して分析することが容易になります。
Arduinoのコードとハードウェアをデバッグする
他のソフトウェアプログラミングプラットフォームのように、Arduinoはオンボードのデバッガを持っていません。
シリアルクラスを使用することで、デバッグ用のコメントや変数の値をシリアルモニターに表示することができます。
コードの構造
ライブラリ
Arduinoでは、他の主要なプログラミングプラットフォームと同様に、基本的な機能を提供する内蔵ライブラリがあります。 また、他のライブラリをインポートすることで、Arduinoボードの機能を拡張することができます。
新しいライブラリをインポートするには、Sketchの> Import Library
さらに、.inoファイルの先頭に「#include」を使用して、外部ライブラリをインクルードする必要があります。
ピンの定義
Arduinoのピンを使用するには、どのピンが使用されているか、その機能を定義する必要があります。
Declarations
Variables
Arduinoを使用する際には、グローバル変数と後で使用するインスタンスを宣言する必要があります。 一言で言えば、変数とは、将来使用する値に名前を付けて保存することができるものです。 例えば、センサーから取得したデータを保存しておき、後で使用することができます。
なお、グローバル変数の宣言は絶対に必要というわけではありません。
インスタンス
ソフトウェアのプログラミングにおいて、クラスとは、関数や変数をひとつの場所にまとめたものです。 各クラスには、そのクラスのインスタンスを作成するためのコンストラクタと呼ばれる特別な関数があります。
Setup()
Arduinoのスケッチには必ずSetup関数が必要です。 この関数は、起動時のArduinoの初期状態を定義し、一度だけ実行されます。
ここでは、以下のように定義します。
- pinMode関数を使ったピンの機能
- ピンの初期状態
- クラスの初期化
- 変数の初期化
- コードロジック
Loop()
ループ関数もArduinoスケッチには必ず必要な関数で、setup()が完了すると実行されます。 これはメインの関数で、その名の通り、何度も何度も繰り返し実行されます。
例:
注:「void」という用語の使用は、その関数が値を返さないことを意味します。
Arduinoのプログラミング方法
Arduinoの基本的なコードロジックは「if-then」構造で、4つのブロックに分けることができます:
セットアップ – 通常、Arduinoコードのセットアップセクションに記述され、センサーのキャリブレーションなど、一度だけ行う必要があることを実行します。 これらの値は、analogRead()を使用したLDRからの環境光の読み取りなど、条件(「if」)として使用されます。
Manipulate Data – このセクションでは、データをより便利な形に変換したり、計算を実行したりします。
出力 – このセクションでは、前のステップで計算されたデータに基づいて、ロジックの最終的な結果(”then”)を定義します。
Arduino Code libraries
Library Structure
ライブラリは、C++ (.cpp)コードファイルとC++ (.h)ヘッダーファイルで構成されたフォルダです。
ライブラリのインポート
まず、オンラインで入手可能な数多くのライブラリの中から、使用したいライブラリを探します。 コンピュータにダウンロードした後、Arduino IDEを開き、Sketch > Include Library > Manage Librariesをクリックするだけです。 そして、IDEにインポートしたいライブラリを選択します。
circuito.ioが提供するコードでは、前述のように外部ライブラリを追加する代わりに、ファームウェアのフォルダでライブラリを提供しています。
ソフトウェアからハードウェアへ
Arduinoのソフトウェア機能については多くのことが語られていますが、プラットフォームはソフトウェアとハードウェアの両方で構成されていることを覚えておくことが重要です。
コード → コンパイル → アップロード → 実行
Arduinoのコアとなるのは、コードをコンパイルして実行する機能です。 アップロードボタン(右向きの矢印のアイコン)をクリックすると、コードがコンパイルされ、コンパイルに合格した場合はアップロードされます。 アップロードが完了すると、プログラムが自動的に実行されます。
以下の手順で行うこともできます:
- まず、コードをコンパイルします。 これを行うには、単にチェックのアイコンをクリックしてください(または、メニューバーのスケッチ > Verify / Compile をクリックしてください)。
ご覧のように、チェック・アイコンは、メニュー・セクションの「ファイル」タグの下、左上にあります。 終了すると、次のような完了メッセージが表示されます。
ご覧のように、ページの下部にある緑色の線は、「コンパイルが完了した」ことを示しています。
スケッチのコンパイルが完了したら、いよいよアップロードです。
- Arduinoが現在接続されているシリアルポートを選択します。 これを行うには、メニューのツール > シリアルポートをクリックして、選択したシリアルポートを指定します (上の図のように)。
- スケッチをアップロードするには、目盛りの横にあるアップロード・アイコンをクリックします。 または、メニューからファイル>アップロードをクリックすることもできます。
データが転送されると、ArduinoのLEDが点滅します。
アップロードが完了すると、Arduinoがアップロードを完了したことを示す完了メッセージが表示されます。 Arduino UNOを使用する場合、USBはプログラムのデータを直接ボードに転送します。 USBケーブルは、Arduinoに電源を供給するために使用します。
コードをアップロードする前に、いくつかの設定を行う必要があります。
ボードの選択 – どのArduinoボードを使用するかを指定する必要があります。
> Board > Your Board.
Choose your processor- 一部のボード(例えばArduino pro-mini)では、使用しているプロセッサのモデルを指定する必要があります。 ツールの下にある>>で、使用しているモデルを選択します。
ポートの選択 – ボードが接続されているポートを選択するには、ツール >> COMX Arduino (これはArduinoのシリアルポートです).
非ネイティブのボードをインストールする方法 (例: NodeMCU)。 NodeMCU)
一部のボードモデルはArduino IDEにプリインストールされていないため、コードをアップロードする前にインストールする必要があります。
NodeMCUのようなネイティブではないボードをインストールするには、以下のようにします。
- ツールをクリック > Boards > Boards Manager
- 検索バーで追加したいボードを検索し、「インストール」をクリックします。
ボードマネージャーからは見つけられないボードもあります。 この場合は、手動で追加する必要があります。
- Filesをクリック > Preferences
- Additional Boards Managerフィールドに、ボードのインストールパッケージのURLを貼り付けます。 例えば、nodeMCUの場合、以下のURLを追加します。 http://arduino.esp8266.com/stable/package_esp8266com_index.json
- OKをクリック
- ツールに移動 > Boards > Boards Manager
- 検索バーで追加したいボードを検索し、「インストール」をクリックします。
このステップが完了すると、ツールの下のボードリストにインストールされたボードが表示されます。
注意:ボードによってプロセスが若干異なる場合があります。
Arduino: 非常に多彩なプラットフォーム
Arduinoは、単なるマイクロコントローラーではありません。 広大なIDEと膨大な数のハードウェア構成を持つArduinoは、まさに多様なプラットフォームです。 多彩なライブラリと直観的なデザインにより、新規ユーザーから経験豊富なメーカーまで幅広く支持されています。
スキルが上がってくると、Arduino IDEの弱点であるデバッグが必要な問題に直面するかもしれません。 幸いなことに、Arduinoのハードウェアとソフトウェアをデバッグするためのツールや方法がいくつかあります。 次回は、Arduinoをデバッグする方法(およびArduinoコードをテストする方法)に加え、シミュレータやエミュレータの使用方法について見ていきます。