ここで紹介する「M5シリーズ」のプログラムは「C言語」を使用したものです。
さらに専用のコマンドとして、「Arduino」の制御用に用意されたコマンドを使用してプログラミングを行っていきます。
「C言語」にも共通することですが、プログラムの書き方にも決まりがあり、必要な内容が書いてあっても書く順番を間違えるとエラーになったり、思ったように動作しない事があります。
「ATOM LITE」については以下のリンクで詳しく紹介しています。
1.実際のプログラム例(Lチカ)の紹介
以下の「Lチカ」プログラムを例にプログラムの基本構成を紹介していきます。
このプログラムは電源ONで本体のLEDが白く点灯し、本体のボタンを押すとLEDが青色に変わるプログラムです。
「ATOM LITE」の本体ボタンを使用した「Lチカ」プログラムについては以下のリンクで詳しく紹介しています。
プログラムは以下に準備しましたので「コピペ」して書き込んでみましょう。
下のコードを「コピペ」して書き込んでください。
※コピーは下コード(黒枠)内の右上角にある小さなアイコンのクリックでもできます。
#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」については以下のリンクで詳しく紹介しています。
ライブラリは用途に応じてその都度インストールする必要があります。
これらを先にやっておかないとプログラム内で必要なコマンドを記入しても機能しません。
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.begin();
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.まとめ
まとめると基本的な構成は以下のようになります。
//ヘッダー、ライブラリ等の設定を記入
void setup () { //②初期設定
M5.begin();
//ここに初期設定を記入(一回だけ実行)
}
void loop () { //③メイン処理
//ここにメインの処理を記入(繰り返し実行される)
}
コメント