Wave Technology(WTI)-ウェーブ・テクノロジ

WTIは技術者不足を解決する「開発設計促進業」です

Arduinoでイルミネーション制御をやってみた part2

皆さんこんにちは。
ソフトウェア設計課の岡田です。よろしくお願いいたします。

前回のブログ(part1)は、イルミネーションの点灯を目標にM5Stackのadafruitライブラリ(今回使用したLEDメーカのOSSライブラリ)のサンプルを使って自作しました。今回は前回の最後に書いていた、画面表示とボタン操作について組み込んでみました。前回と使用機器は変わらないので、使用機器を知りたい方はpart1をご参照ください。

【LCD表示方法】

  1. 表示させたい文字列をグローバルに二次元配列として宣言します。
  2. setup関数はM5Stackがスタートしたときに最初に読み込まれます。この関数内の最初にbegin()でオブジェクトを初期化します。
  3. 画面に表示するテキストの色とサイズを指定します。
  4. 最後にfor文を使用して1で宣言した文字列を画面に出力します。

これでLCDに文字を表示することができました。続いてボタン操作についてです。私は動作確認用に矢印などの表示をしていますが、Lチカや文字表示など、皆さんの好きなように確認してください。

【ボタン操作方法】

  1. Loop()関数の最初にupdate()を入れてください。これがないとボタンの情報が更新されません。
  2. ボタンが押されているかどうかを判定します。BtnA.wasPressed()関数でAボタンが押されたかどうかがわかります。押されたら1、押されていないと0が得られるので、まずはこれを条件に何かを変化させてみましょう。
  3. ボタンB/Cについても同様に関数を入れて動作確認をします。

最終的にはLCDはこのようになりました。

 

 

ここまでできればあとは前回と今回でやったことを合体させるだけです。

ただし、ここで注意すべきことがあります。

前回のイルミネーションのサンプルコードでは、delay()関数が使われています。これではプログラムが「常に流れている」状態ではないので、ボタンのリアルタイム性がありません。そのため、点灯させた時刻をmillis()で取得し、そこからインターバルが経過したタイミングで再点灯させる方法を取りました。細かい部分は省きますが、こんな感じで動作しました!

 

 

上下ボタンで点灯パターンを選択し、OKボタンで点灯パターンを実行できるようになっています。これで、当初の目標であったイルミネーションの点灯パターンを自由に変更・追加できるものが完成しました!たくさん点灯させたい方や、光量を増やしたい方はM5Stackの電源ではなく、外部電源を利用されることを推奨します。

 

「Arduinoでイルミネーション制御をやってみた」は以上になります。ありがとうございました。

このような簡単で便利な機能をもつマイコンやモジュールを使って自作した例をご紹介しましたが、WTIでは様々なマイコンを使った組込み機器・IoT機器の開発を多数受託しております。ご相談がございましたら、お気軽にお声掛けください。

 

【関連リンク】

【関連ブログ】

【関連動画】

 

WTIメールマガジンの配信(無料)

WTIエンジニアが携わる技術内容や日々の業務に関わる情報などを毎週お届けしているブログ記事は、メールマガジンでも購読できます。ブログのサンプル記事はこちら

WTIメールマガジンの登録・メールアドレス変更・配信停止はこちら

 

WTI動画リンクはこちら
WTIの技術、設備、設計/開発会社の使い方、採用関連など、幅広い内容を動画で解説しています。

 

 © 2005 Wave Technology Inc.