プログラムの基本構成(Arduinoプログラミング)基本はヘッダー+初期設定+メイン

Arduinoコマンド:プログラムの基本構成Arduinoコマンド
スポンサーリンク

ここで紹介する「M5シリーズ」のプログラムは「C言語」を使用したものです。
さらに専用のコマンドとして、「Arduino」の制御用に用意されたコマンドを使用してプログラミングを行っていきます。

「C言語」にも共通することですが、プログラムの書き方にも決まりがあり、必要な内容が書いてあっても書く順番を間違えるとエラーになったり、思ったように動作しない事があります。

ここでは「ATOM LITE」を使った「Lチカ」のプログラムを例に基本的なプログラムの構成を紹介したいと思います。

「ATOM LITE」については以下のリンクで詳しく紹介しています。

超小型で高機能!プログラミング初心者におすすめ「ATOM LITE」
マイコンボードはRaspberry Pi、Arduino、M5Stack等がありますが、一通りやってみてそれぞれの良さはあるものの「最初に何を?」と聞かれたらATOM LITEが一番お手軽♪プログラミング初心者におすすめ
「開発環境の準備」がまだの方は → こちら

1.実際のプログラム例(Lチカ)の紹介

以下の「Lチカ」プログラムを例にプログラムの基本構成を紹介していきます。
このプログラムは電源ONで本体のLEDが白く点灯し、本体のボタンを押すとLEDが青色に変わるプログラムです。

「ATOM LITE」の本体ボタンを使用した「Lチカ」プログラムについては以下のリンクで詳しく紹介しています。

定番の Lチカ!(ATOM LITE編)で遊びながら自然と身につくプログラミング
プログラミング初心者ならとりあえず「Lチカ」やりましょう!LEDを点灯、消灯(チカチカ)させるものです。サンプルプログラムをコピペでとりあえず動作確認。LEDの色は数値を変えるだけ。いろいろ試して遊びながら学びましょう♪

プログラムは以下に準備しましたので「コピペ」して書き込んでみましょう。

下のコードを「コピペ」して書き込んでください。
※コピーは下コード(黒枠)内の右上角にある小さなアイコンのクリックでもできます。

#include <M5Atom.h>    //Atomの制御に必要な(ヘッダー)ファイルを準備

//FastLEDライブラリの設定(CRGB構造体)
CRGB dispColor(uint8_t r, uint8_t g, uint8_t b) {
  return (CRGB)((r << 16) | (g << 8) | b);
}
// 初期設定 -----------------------------------------------
void setup() {
  // 本体初期化(UART有効, I2C無効, LED有効)
  M5.begin(true, false, true);
  // LED全消灯(赤, 緑, 青)
  M5.dis.drawpix(0, dispColor(0, 0, 0));
}
// メイン -------------------------------------------------
void loop() {
  M5.update();  //本体のボタン状態更新

  if (M5.Btn.isPressed()) {         //ボタンが押されていれば
    M5.dis.drawpix(0, dispColor(0, 0, 255)); //LED(指定色)
  } else {                        //ボタンが押されてなければ
    M5.dis.drawpix(0, dispColor(20, 20, 20));    //LED(白)
  }
  delay(100);   //100ms待機
}

このプログラムを3つのブロックに区切って紹介します。

2.まずはヘッダーファイルの準備とライブラリの設定

まず最初に必要な「ヘッダーファイル」の準備と「ライブラリ」の設定を行います。

#include <M5Atom.h>    //Atomの制御に必要な(ヘッダー)ファイルを準備

//FastLEDライブラリの設定(CRGB構造体)
CRGB dispColor(uint8_t r, uint8_t g, uint8_t b) {
  return (CRGB)((r << 16) | (g << 8) | b);
}

何よりも先に行うのは必要なファイルの準備です。
ヘッダーファイルとして準備されているので必要なものを呼び出し使用できるようにします。

今回のプログラムでは「ATOM LITE」のプログラムに必要な「Arduino」の標準関数などを含む「M5Atom.h」を呼び出しています。

今は1つだけですが複数呼び出すことも多いので、この場合は以下のように改行して複数記入します。
ヘッダーファイルは自動で取得されますが、見つからない場合はインストールする必要があります。

・必要なヘッダファイルの挿入(インクルード)
  #include < ファイル名1.h >
  #include < ファイル名2.h >

この後にプログラム内で使用するライブラリの設定等を行います。
今回のプログラムでは本体のフルカラーLEDを制御するためのライブラリ「Fast LED」の設定を行っています。

「FastLED」については以下のリンクで詳しく紹介しています。

定番の Lチカ!(ATOM LITE編)で遊びながら自然と身につくプログラミング
プログラミング初心者ならとりあえず「Lチカ」やりましょう!LEDを点灯、消灯(チカチカ)させるものです。サンプルプログラムをコピペでとりあえず動作確認。LEDの色は数値を変えるだけ。いろいろ試して遊びながら学びましょう♪

ライブラリは用途に応じてその都度インストールする必要があります。
これらを先にやっておかないとプログラム内で必要なコマンドを記入しても機能しません。


3.初期設定(電源ONした時一回だけ実行)

次に「初期設定」を行います。この部分は電源ON時に1回だけ実行されます。

// 初期設定 -----------------------------------------------
void setup() {
  // 本体初期化(UART有効, I2C無効, LED有効)
  M5.begin(true, false, true);
  // LED全消灯(赤, 緑, 青)
  M5.dis.drawpix(0, dispColor(0, 0, 0));
}
・初期設定の記入方法
  void setup()  {
    //ここに初期設定を記入
  }

「M5シリーズ」を使用する場合、以下の初期設定は必ず行うことになります。

・M5シリーズの初期化(カッコ内で個別に設定、省略でデフォルト設定)
  M5.begin();
M5.begin() の「カッコ」内の設定項目は機種によって異なるため個別に確認が必要です。
「ATOM」系は省略すると上手く動かないので基本的に「M5.begin(true, false, true)」としておきましょう。

4.メインプログラム(電源ONの間ずっと実行)

最後に「メイン」プログラムを記入します。この部分は電源ONしている間繰り返し実行されます。

// メイン -------------------------------------------------
void loop() {
  M5.update();  //本体のボタン状態更新

  if (M5.Btn.isPressed()) {         //ボタンが押されていれば
    M5.dis.drawpix(0, dispColor(0, 0, 255)); //LED(指定色)
  } else {                        //ボタンが押されてなければ
    M5.dis.drawpix(0, dispColor(20, 20, 20));    //LED(白)
  }
  delay(100);   //100ms待機
}
・「メイン」プログラムの記入方法
 void loop () {
  //ここにメインの処理を記入(繰り返し実行される)
 }

5.まとめ

まとめると基本的な構成は以下のようになります。

#include < ファイル名1.h > //①必要なファイルの準備
//ヘッダー、ライブラリ等の設定を記入

void setup ()  {       //②初期設定
 M5.begin
();
 //ここに初期設定を記入(一回だけ実行)
}

void loop () {        //③メイン処理
 //ここにメインの処理を記入(繰り返し実行される)
}

プログラム内の「//」以降はコメントです。
この部分は実行されることはありません。
自分のためにもですが、ほかの人が見た時にもわかりやすいようにできるだけコメントを入れましょう。

コメント

タイトルとURLをコピーしました