M5Stackを学ぶ その2(Lチカ)
はじめに
前回の更新から時間が経ってませんが、モチベーションがあるうちにやりたいので更新します。
今回行うのはLチカ(LEDチカチカの略称)です。組み込み界のHelloWorld枠という認識がしっくりくる気がします。テストとしてになりますが、マイコンからついにモノへと繋がるのはとてもわくわくしますね!ではやっていきましょう!
1,階層設計(タイミングチャート)
設計は大まかに分けると階層設計とモジュール設計に分かれると思います。個人でやる分には作成しなくても良い部分にはなるのですが、やっておいて損もないですし、必要なところだけになりますが作成しながら進めていきたいと思います。
今回考えているのは以下のようなものになります。
わからない人には「なんだこれ?」みたいな感想が出てくると思いますが、タイミングチャートとよばれているものになります。これを見て、オシロスコープなどで本当に500ms(0.5秒)単位でON・OFFされているかなどを検証できます。
今回はとても簡単で短いコードになるので、シーケンス図やDFD、モジュール設計は割愛します。ですが、プロジェクトとして何かモノを作成する場合にこういった設計がちゃんとしていないとテストができなかったり、想定とは違う動きをしていたりと大変なことになってしまうので、仕事などで覚える必要のある人はきちんと覚えておきましょう。
2,配線
前まで無料で使用できていたソフトが有料になってしまっていたので実画像のみとなります。
LEDのアノード(長い脚)を21pinに繋げます。このとき、抵抗を接続します。今回は220Ωを使用しています。そして、LEDのカソード(短い脚)側はGNDに繋げます。
直列なので、基本的に私は抵抗をアノード側(プラス側)に接続していますが、カソード(マイナス側)でも大丈夫だと思います。(多分)
表
裏
これで配線は完了となります!
3,コーディング
次はコーディングに入ります。本当はフローチャートとかも書いたほうがいいんですが、お仕事ではないのでゆるりと飛ばしてやっていきます。
こちらが今回のコードになります。
#include <M5Stack.h>
void setup() {
M5.begin();
pinMode(21, OUTPUT);
}
void loop() {
digitalWrite(21, HIGH);
delay(500);
digitalWrite(21, LOW);
delay(500);
}
はい、とっても短くていいですね!digitalWrite(21, HIGH)の部分でONになってLEDが点灯、digitalWrite(21, LOW)の部分でOFFです。簡単ですね。
そしてdelay(500)とありますが、これは500ms待ってねということです。これでタイミングチャートと同じ動きができます。
4,テスト
M5Stackに書き込んで、実際に動かしてみましょう。毎度のごとくオシロスコープなどはないので目視で確認します。
500ms(0.5秒)でLED点灯(ON)
500ms(0.5秒)でLED消灯(OFF)
問題なく動きました!
5,おわりに
今回はM5StackでLチカを行ってみました。初めてではないのですが、やはりモノが動くというのはいいですね。私が組み込みが好きな理由の一つでもあります。
次回は梅雨入りしていまい、植物も心配なのでDHT11(温湿度センサー)を動かしてみようと思います。
では、今回も読んでいただきありがとうございました。お疲れさまでした。
Discussion