皆さんこんにちは。
ソフトウェア設計課の岡田です。よろしくお願いいたします。
前回のブログ(part1)は、イルミネーションの点灯を目標にM5Stackのadafruitライブラリ(今回使用したLEDメーカのOSSライブラリ)のサンプルを使って自作しました。今回は前回の最後に書いていた、画面表示とボタン操作について組み込んでみました。前回と使用機器は変わらないので、使用機器を知りたい方はpart1をご参照ください。
【LCD表示方法】
- 表示させたい文字列をグローバルに二次元配列として宣言します。
- setup関数はM5Stackがスタートしたときに最初に読み込まれます。この関数内の最初にbegin()でオブジェクトを初期化します。
- 画面に表示するテキストの色とサイズを指定します。
- 最後にfor文を使用して1で宣言した文字列を画面に出力します。
これでLCDに文字を表示することができました。続いてボタン操作についてです。私は動作確認用に矢印などの表示をしていますが、Lチカや文字表示など、皆さんの好きなように確認してください。
【ボタン操作方法】
- Loop()関数の最初にupdate()を入れてください。これがないとボタンの情報が更新されません。
- ボタンが押されているかどうかを判定します。BtnA.wasPressed()関数でAボタンが押されたかどうかがわかります。押されたら1、押されていないと0が得られるので、まずはこれを条件に何かを変化させてみましょう。
- ボタンB/Cについても同様に関数を入れて動作確認をします。
最終的にはLCDはこのようになりました。
ここまでできればあとは前回と今回でやったことを合体させるだけです。
ただし、ここで注意すべきことがあります。
前回のイルミネーションのサンプルコードでは、delay()関数が使われています。これではプログラムが「常に流れている」状態ではないので、ボタンのリアルタイム性がありません。そのため、点灯させた時刻をmillis()で取得し、そこからインターバルが経過したタイミングで再点灯させる方法を取りました。細かい部分は省きますが、こんな感じで動作しました!
上下ボタンで点灯パターンを選択し、OKボタンで点灯パターンを実行できるようになっています。これで、当初の目標であったイルミネーションの点灯パターンを自由に変更・追加できるものが完成しました!たくさん点灯させたい方や、光量を増やしたい方はM5Stackの電源ではなく、外部電源を利用されることを推奨します。
「Arduinoでイルミネーション制御をやってみた」は以上になります。ありがとうございました。
このような簡単で便利な機能をもつマイコンやモジュールを使って自作した例をご紹介しましたが、WTIでは様々なマイコンを使った組込み機器・IoT機器の開発を多数受託しております。ご相談がございましたら、お気軽にお声掛けください。
【関連リンク】
【関連ブログ】
- Arduinoでイルミネーション制御をやってみた part1
- IoT機器のOTA導入が意外と進まない理由とは
- IoT時代の開発者が知っておくべき組込みセキュリティ対策とは? PartⅡ
- IoT時代の開発者が知っておくべき組込みセキュリティ対策とは?
- 組込みソフトウェア作成時のポイントを紹介します
- Q-Learningでチーズパズルを解いてみました
- ESP32マイコンでOTA! Wi-Fiでプログラムを書き込む
- M5stackで簡易Wi-Fiチェッカーを作ってみました
- 無線モジュール搭載IoT機器の開発には幅広い知見と技術が必要です
- IoT化のお手伝い-ワンストップでアイデアを形にします
- WTIブログ(IoT関連)
- 無線通信モジュールのコストを抑える方法とは
- ソフトウェア開発時のデバッグのお話 ~ ロジアナを使ってI2C通信を解析 ~
- IoTのプロフェッショナルを顧客社内に育成する「テクノシェルパ」登場
【関連動画】
WTIメールマガジンの配信(無料)
WTIエンジニアが携わる技術内容や日々の業務に関わる情報などを毎週お届けしているブログ記事は、メールマガジンでも購読できます。ブログのサンプル記事はこちら
WTIメールマガジンの登録・メールアドレス変更・配信停止はこちら
WTIの技術、設備、設計/開発会社の使い方、採用関連など、幅広い内容を動画で解説しています。