定番の Lチカ!(ATOM LITE編)で遊びながら自然と身につくプログラミング

ATOM LITEでLED点灯

プログラミング初心者におすすめ「M5Stack」社製「ATOM LITE」を使った定番の「Lチカ(LEDを点灯/消灯させる)」プログラムについて詳しく紹介します。

サンプルプログラムも準備しましたので、コピペで書き込むだけで動作確認まで行えます。

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

ATOM LITE プログラミング初心者におすすめ超小型で高機能!
マイコンボードはRaspberry Pi、Arduino、M5Stack等がありますが、一通りやってみてそれぞれの良さはあるものの「最初に何を?」と聞かれたらATOM LITEが一番お手軽♪プログラミング初心者におすすめ
別途USBケーブルが必要で「ATOM LITE」側はType-Cです。
パソコン側はお持ちのパソコンに合うもので準備してください。
「開発環境の準備」がまだの方は → こちら

ここでは開発環境として「PlatformIO」を使用しています。
「Arduino IDE」を使用した「ATOM LITE」の初期設定については以下のリンクで「Arduino IDE」のインストールから詳しく紹介しています。
M5StackシリーズのためのArduino IDEのインストール方法と初期設定、使い方紹介
ArduinoIDEバージョン2のインストール方法から初期設定、スケッチ例の書き込み、コピペでの使い方まで詳しく紹介します。インストールはArduinoでも同じです。
スポンサーリンク

1.「Lチカ」とは?

「Lチカ」とはLEDを点灯/消灯(チカチカ)させるプログラムです。

今回準備した「Lチカ」プログラムは電源ONで本体のLEDが白く点灯し、本体のボタンを押すとLEDが青色に変わるというプログラムです。

本体のLEDはフルカラーLEDなので数値を変えるだけで好きな色に変えることができます。
フルカラーLEDとは、見た目は1個のLEDですが内部に赤、緑、青の3個のLEDが内蔵されており、それぞれの光の強さを調節することで様々な色を表現できます。
(色の3原色の理解にもなりますので後でいろいろ試してみましょう)

スポンサーリンク

2.サンプルプログラム(コピペ)

「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.フルカラーLED制御プログラム(「FastLED」ライブラリ)の紹介

フルカラーLEDの制御には専用のライブラリ「FastLED」を使用します。
「FastLED」でフルカラーLEDを制御するプログラムについて紹介します。

12行目がフルカラーLEDの色を指定するプログラムです。
これはフルカラーLED制御用のライブラリ「Fast LED」固有のものです。
初期設定として全消灯を指定しています。

・フルカラーLEDの色を指定するプログラム
  M5.dis.drawpix ( LED番号dispColor ( 赤LED緑LED青LED ) );

青文字:フルカラーLEDを制御するためのコマンド
LED番号:制御するLEDの番号「M5ATOM LITE」は1個しかないので常に「0」
      ※「M5ATOM MATRIX」は25個あるので「0」~「24」
赤LED:赤色LEDの光の強さを数値で指定「0」~「255」
緑LED:緑色LEDの光の強さを数値で指定「0」~「255」
青LED:青色LEDの光の強さを数値で指定「0」~「255」
     ※「0」で消灯


19行目がLEDを青色に設定するプログラムです。
赤LED緑LEDを「0」(消灯)、青LEDを「255」(最大値)

・フルカラーLEDの色を青色に指定
  M5.dis.drawpix ( 0dispColor ( 00255 ) );
ここの赤LED緑LED青LEDの数値を変えることで好きな色を指定することができます。
数値を変更して再度書き込みを行い、LEDの点灯色を変えてみましょう。

22行目がLEDを白色に設定するプログラムです。

赤、緑、青のLEDを全て同じ数値にすると白色に点灯します。
ここでは「20」とし弱めの発光に指定しています。

・フルカラーLEDの色を白色に指定
  M5.dis.drawpix ( 0dispColor ( 202020 ) );
全て同じ数値なら最大値の「255」でも白色で明るくもなりますが、消費電流が増え、発熱も大きくなるので今回の用途では「20」にして、弱めの発光にしています。
バッテリー等で駆動する場合は消費電流が駆動時間に影響しますので、意識しながら、用途に応じて設定しましょう。

4.最後に

ようやく「Lチカ」までたどり着きました!
プログラムになじみのある方には「いまさら何を?」だと思いますが、まったくの初心者の方には初めてのことばかりで大変だったのではないでしょうか?
もし、このブログで初めて挑戦されてここまでたどり着けた方がいたとしたら

「おめでとうございます!プログラミングの世界へようこそ!」

まだ実感は無いかもしれません、実際に「今日からあなたもプログラマー」の段階では残念ながらありません。
しかし「明日からはプログラマー」かもしれません!。

ここまでたどり着いたことで、少なくとも開発環境は手に入れています。
エディタとして準備した「VS Code」は様々なプログラミング言語に対応しており、ここまでで「もうメンドクサイ」ってなった方でも、「またやってみるか」と思ったときや、他のサイトさんで紹介されているプログラムをやってみようとした時にすぐに挑戦できることでしょう。

まだ具体的なプログラムの作成には触れていませんが、自分で書込みを行い動作確認を行えたことで確実に1歩前に踏み出しています。「0歩」が「1歩」に、これは非常に重要なことです。

プログラミングの世界は「0」と「1」の組み合わせで様々な動作を実現しており、「0」は日本語で「偽」、「1」は「真」と呼ばれており、「真」と「偽」では大きな違いです。

話が大げさになりましたが、「1歩」踏み出したことで今までできなかったことができるようになりました。
このブログでは引き続き順を追って説明していきますので1ページづつ読み進めてください。

ここまでで「こうやってやるのね」「じゃあ、こんなこともできるし、あんなこともできるのね」と思えた方は「すばらしい!」どんどん想像力を膨らませましょう。

逆に「言われるがままにやっただけで結局なにやってんの?」って方もいると思います。
私も昔(大昔)に定番プログラム「Hello World!!」の表示をやったときはそうでした。

そうはなってほしくないので、ここから先はそれぞれの理解と興味に合わせて下に3つのリンクを準備しました。

好奇心の赴くままに読み進めてみましょう♪

C言語の基本から学びたい方は → こちら
M5シリーズ(マイコン)のプログラムってどんなのって方は → こちら
「Lチカ」だけじゃあつまらない、もっと動かしたいって方は → こちら

「ATOM LITE」本体とUSBケーブルがあればお試しできますが、本格的にやってみたい方には「回転角ユニット(ボリュームです)」や「スイッチ」「液晶表示器」などもおすすめします。

「回転角ユニット(ボリューム)」や「スイッチ」「液晶表示器」については以下のリンクで詳しく紹介しています。

ボリューム(可変抵抗器)の使い方、つなぎ方、抵抗値計算等を回路図も使って詳しく解説
ボリュームというと音量調節のイメージですが、明るさや回転数等を調整するのにも使用されます。「抵抗(固定抵抗器)」が固定の抵抗値を持つのに対して「可変抵抗器」は抵抗値を調整することができます。このボリューム(可変抵抗器)について紹介します。
スイッチ(操作用)の使い方。便利なスイッチユニットについても詳しく紹介
スイッチとは「開閉器」とも呼ばれ電気の通り道をつないだり開いたりするものです。 スイッチには人が操作して動作する「操作スイッチ」と、状況によって動作する「検知スイッチ(センサー)」があります。 ここでは「操作スイッチ」について紹介します。
SSD1306有機ELディスプレイOLEDの使い方、簡単2画面表示の方法も紹介
SSD1306はライブラリを準備してI2C通信と簡単なコマンドで表示可能。ATOM LITEやESP32、Arduino等に表示器を追加したい時に手軽に安価で実現できるのでとても便利です。
SSD1306 OLEDで日本語表示 lovyanGFXの使い方
SSD1306でlovyanGFXを使用した日本語表示方法を紹介。ATOM LITEを使ってますがArduinoでも基本は同じで、他のOLEDでも初期設定を変えるだけです。

コメント

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