注目キーワード

【Arduino】「M5Stack」で人感センサーを試す! (くせ者を検知するぞ~!)

すけろく
んー。
どうしたものか…
げんろく
どうした?深刻な顔をして。
すけろく
「城の守りを固めるため、敵の接近を検知してみせよ!」
と殿から宿題をもらっての。
げんろく
なるほど、それならば人感センサーを使ってみてはどうか?
敵が勝手に部屋に入ったりするのを検知できるぞ!

この記事では、M5Stackと、「人感センサー(HC-SR501)」を使って、人が近づいた際に検知して反応するプログラムを作成してみます。

記事内では、基本的なセンサーの使い方、M5Stack Core 2 との接続、プログラミング方法について、簡単な作例を用いてをご紹介します。

記事内でご紹介するM5Stackはこちら!

M5Stack Core2 開発キット

created by Rinker
M5Stack
¥9,478 (2024/04/25 16:17:09時点 Amazon調べ-詳細)
Arduino、UIFlow、MicroPythonに対応している組み込み開発キットです。
タッチスクリーン、マイク、IMUを使うことができ、従来のM5Stackよりも多機能なモデルです。 バッテリーも搭載しています。一台でいろいろと遊べる機器なのでおススメです!

人感センサー

created by Rinker
Ren He
¥699 (2024/04/25 16:17:09時点 Amazon調べ-詳細)

これからはじめる方にお勧めの参考図書はこちら!

created by Rinker
¥3,089 (2024/04/25 23:11:34時点 Amazon調べ-詳細)
created by Rinker
¥2,310 (2024/04/25 18:25:36時点 Amazon調べ-詳細)
created by Rinker
技術評論社
¥3,278 (2024/04/25 23:11:35時点 Amazon調べ-詳細)
created by Rinker
¥2,420 (2024/04/25 23:39:03時点 Amazon調べ-詳細)

 

人感センサーとは?

今回使う「人感センサー」は、「HC-SR501」です。

赤外線パッシブセンサー (遠赤外線センサー) と モーション検知 IC の組み合わせです。

外観は次のとおり

検知角度は 110°です。フレネルレンズ (白いドーム状のもの) は取り外せます。

裏面はこんな感じです。右上にジャンパーがあります。今回使ったものは、ジャンパーセットで、L(シングルトリガー)、H(繰り返しトリガー) を選択することができます。

画像下にあるピンは 電源入力と、出力のピンです。

構成は、VCC(+) / OUT / GND(-) で、人の動きを検知すると OUT が HIGH (3.3V) になります。

VCC には、入力できる電圧が商品ごとに違う可能性がありますが、概ね 5V~12V を入れられるようです。

今回は、M5Stack Core 2 の5Vピンから電源を供給します。

サイドには、半固定抵抗が2つつけられています。

画像の左側が「検知感度」、右側が「検知時間」になります。ドライバーなどで調整することで、センサーの感度を調整できます。

これも商品によって異なるので、使う際には、微調整をしましょう。

電子回路をつくる

M5Stack Core 2 の準備

今回使った「M5Stack Core 2 」は、購入時のままではGPIOにはアクセスできません。
底面にIMUとマイクの基板が取り付けられているからです。
そこでGPIOにアクセスするために、IMU/マイク基板を取り外します。
<取り外し前>
<取り外し後>

回路の作成

いよいよブレッドボードに部品をつけて電子回路を作成します。

M5Stack Core 2 と人感センサーを接続します。

M5Stack Core 2 側は、GPIOピンの中で、「G19」を人感センサーの「Out」に割り当てます。

「5V出力」と「GND」についても、人感センサーの「VCC」と「GND」に割り当てます。

直接接続してもよいですが、わかりやすくするため、ブレッドボードとジャンパー線を使います。

created by Rinker
¥1,356 (2024/04/25 09:53:48時点 楽天市場調べ-詳細)
created by Rinker
¥702 (2024/04/25 09:53:50時点 楽天市場調べ-詳細)

接続図は次の通りです。

 

ブレッドボード上の接続図は次の通りです。

 

実際に接続したイメージこんな感じになりました。

接続が完了したら、いよいよ、M5Stack Core 2 でセンサーからのアウトプットを使って反応するプログラムを記載します。

M5Stack Core 2 で人感センサーを使う!

それでは早速、人感センサーからのアウトプット(G19の電圧)を使って反応するプログラムを記述していきます。

今回は、プログラムを簡単にしています。

アウトプット(G19 の電圧)が、0Vから3.3Vに変化(人感センサーが検知)した場合に、M5Stack Core 2 のディスプレイにお知らせ表示(円の描画)をします。

アウトプット(G19 の電圧)が、変化しない場合は、「Watching Now!」という文字をディスプレイに表示させます。

人感センサーを使ったプログラム

Arduino IDEを起動して、「ファイル」メニューから「新規ファイル」を選択し、表示されるスケッチに以下のように記述します。

 Arduino IDE スケッチ例

※下記は、M5Stack Core 2 向けのプログラムです。
 プログラム上部の「#include <M5Core2.h>」の部分がM5Stack Core 2に対応したものになります。
他のM5Stackで使用する場合は、読み替えてください。

 M5Stackへの書き込み

  1. 「ファイル」メニューから「名前を付けて保存」で任意の名前を付けて保存します。
  2. 「ツール」メニューから「ボード」情報を確認し、次のものを選択します。
    この際、「シリアルポート」にマイコンを接続したCOMポートが指定されているかも確認します。
    ボード:「M5Stack-Core2」または「M5Stack Tough」など対応するボードを選択します。
    「Partition Scheme」で「Not OTA(2MB)」を選択します。
  3. 「ツール」メニューから「シリアルモニタ」を選択してシリアルモニタを起動します。(転送速度は「115200」です)
  4. 「スケッチ」メニューから「マイコンボードに書き込む」を選択します。

 プログラム実行結果

人感センサーに近づくとM5Stack Core 2のディスプレイ上に次のように表示されます。

編集後記

いかがだったでしょうか。

人感センサーと連携して、人が近づいた際にM5Stack Core 2 でお知らせすることができました。

今回の記事は以上になります。

こういったセンサーを使ったプログラムの実行例なども、面白いですね!

応用編などは今後ご紹介していきます。

ご期待ください。

今回の記事は以上になります。

最後までご覧いただきありがとうございました。

記事内でご紹介した商品はこちら!

M5Stack Core2 開発キット

created by Rinker
M5Stack
¥9,478 (2024/04/25 16:17:09時点 Amazon調べ-詳細)
Arduino、UIFlow、MicroPythonに対応している組み込み開発キットです。
タッチスクリーン、マイク、IMUを使うことができ、従来のM5Stackよりも多機能なモデルです。 バッテリーも搭載しています。一台でいろいろと遊べる機器なのでおススメです!

人感センサー

created by Rinker
Ren He
¥699 (2024/04/25 16:17:09時点 Amazon調べ-詳細)
created by Rinker
¥1,356 (2024/04/25 09:53:48時点 楽天市場調べ-詳細)
created by Rinker
¥702 (2024/04/25 09:53:50時点 楽天市場調べ-詳細)

これからはじめる方にお勧めの参考図書はこちら!

created by Rinker
¥3,089 (2024/04/25 23:11:34時点 Amazon調べ-詳細)
created by Rinker
¥2,310 (2024/04/25 18:25:36時点 Amazon調べ-詳細)
created by Rinker
技術評論社
¥3,278 (2024/04/25 23:11:35時点 Amazon調べ-詳細)
created by Rinker
¥2,420 (2024/04/25 23:39:03時点 Amazon調べ-詳細)

M5Stack の他の記事はこちらからどうぞ!

すけろく ううーん。 どうしたものか。 げんろく どうした? 浮かない顔をして。 すけろく ChatGPTをマイコンから使ってみたいのだが、 どうすればよいのかわからなくてな。 げんろく そうか。 ChatGPTもAPIをもっているから、マイコンで文章を作って ChatGPT APIに送信すればよいと思うぞ。 今回はそのあたりを使ってみようか! 皆さん、「ChatGPT」は活用されていますか? 私 […]

すけろく 最近メダカの飼育が流行っているらしいの~ げんろく そうだな。日本の水質にも適用能力が高い魚だからな。 我が家でも飼育してみるか。 すけろく そうなると、メダカに快適な環境を整える必要があるな。 げんろく よし。 まずは、メダカが快適に過ごせる水温か確認するぞ! 皆さん、お家で何か動植物を飼っていますか? 今回、縁あって、げんろく宅にも「メダカ」さんがやってくることになりました。 メダカ […]

すけろく んーどうしたものか。 げんろく どうした? 深刻な顔をして。 すけろく M5Stackにプログラムを書き込んだら 起動しなくなってな。 電源ON/OFFでも無理なのだ。 げんろく 書き込んだプログラムか、バッテリーの 過放電か。工場出荷時に戻してみてはどうだ? この記事では、M5Stackにプログラムを書き込んだ結果、うまく動作しなくなった場合の対処方法を記載します。 ご紹介するのは「工 […]

すけろく んー。 どうしたものか… げんろく どうした?深刻な顔をして。 すけろく 「城の守りを固めるため、敵の接近を検知してみせよ!」 と殿から宿題をもらっての。 げんろく なるほど、それならば人感センサーを使ってみてはどうか? 敵が勝手に部屋に入ったりするのを検知できるぞ! この記事では、M5Stackと、「人感センサー(HC-SR501)」を使って、人が近づいた際に検知して反応するプログラム […]

すけろく 前回は、RTC非搭載のM5Stackでの時刻同期を行ったが、 RTC搭載の場合はどうするのかな。 げんろく うむ。 RTCは、M5Stack Core 2 などで搭載されている。 ちょっと、プログラム内容が異なるから、実装してみるか。   この記事では、M5StackをアクセスWi-Fiアクセスポイントに接続し、インターネットの時刻サービス(NTPサーバー)と時刻を同期する方法 […]

すけろく ん~。 げんろく どうした難しい顔をして。 すけろく M5Stackのディスプレイにいろいろ描画しているのだが。 画像がチラチラしてみずらいのだ。 げんろく 描画タイミングとか、メモリを使うとか しておるのか? すけろく ・・・ げんろく 今回は、そのあたりを見てみようか。 この記事では、Arduino IDEを使ってM5Stackのディスプレイに文字や画像を表示する際のちらつきや、安定 […]

 すけろく M5StackでPCファンの回転を制御することはできたが LEDの点灯制御はまだだな。  げんろく そうだったな。 LEDの点灯制御もM5Stackで行うことができるぞ! 実際に動かしてみよう この記事では、M5StackとLED搭載のパソコン用冷却ファンを使ったLED発光制御の方法について紹介します。 前回は、M5Stackで冷却ファンを使った回転速度制御をおこないましたが、今回はL […]

 すけろく M5Stackを使って、モーターをコントロールしてみたいな。  げんろく それならば、モーターコントロールを学べるPC冷却ファン制御というものをやってみるか。  すけろく ん? パソコン用の冷却ファンをコントロールできるのか?  げんろく 仕組みはモーターと同じだからな。 とにかくやってみよう!   この記事では、M5Stackとパソコン用の冷却ファンを使って回転速度制御を行います。 […]

すけろく 標準ライブラリでの画面描画はできた。 しかし、M5Stack向けのライブラリなので 汎用性がないな。 げんろく たしかに。 M5StickCや他のAruduino機器でも使えるものが必要だな。 すけろく そのようなものがあるのか? げんろく よし。今回は、汎用的に使えるライブラリを紹介しよう。 lovyan03さんが公開されている「Lovyan_GFX」だ。 この記事では、Arduino […]

すけろく M5Stackも時刻同期や日本語表示までできた。 うまくいっておるな。 げんろく ああ、「M5Stack」でもノウハウがたまってきている。 すけろく そういえば、大きな画面を活かしたものを 作ってみたいと思うのだが。 げんろく わかった。今回はM5Stackのディスプレイにおける 画面制御まわりを見てみるか。 この記事では、Arduino IDEを使ってM5Stackのディスプレイに文字 […]

すけろく M5Stackに英語表記で時計を表示することは 前回の記事で行えたが、日本語は表示できないのか? げんろく いや、方法はあるぞ。 eFontライブラリをM5Stackで実行できるように 修正して提供してくれているものを使うのだ。 すけろく ぜひ、やってみたいの~ この記事では、Arduino IDEを使ってM5Stackのディスプレイに日本語を表示させるための方法を紹介します。 今回使用 […]

すけろく 前回は、Wi-Fiアクセスポイントに 接続することができた。 次は時刻同期かな。 げんろく うむ。 時刻同期は、全ての基本だからな。 実装してみるか。 この記事では、M5StackをアクセスWi-Fiアクセスポイントに接続し、インターネットの時刻サービス(NTPサーバー)と時刻を同期する方法について紹介します。 M5Stackは、内蔵タイマであるRTCが搭載されているモデル(例:M5St […]

すけろく M5Stackは、Wi-Fi機能がついているのか。 げんろく ESP32のおかげだな、2.4GhzのWi-Fi接続に 対応している。 すけろく では、早速Wi-Fi接続してみよう。 げんろく せっかくなので、microSDから読みだした Wi-Fi アクセスポイント情報を使って 接続してみよう! この記事では、M5Stackに実装されているWi-Fi機能を使って、Wi-Fiルータに接続す […]

すけろく M5StackとほかのWebサービスなどとの データのやり取りにJSON形式を使いたいのだが。 げんろく うむ。 M5StackでもJSON形式が使えるか試してみるか。 この記事では、Arduino IDEを使ってM5StackのプログラムでJSON形式を取り扱う方法を紹介します。 JSON形式データは、Webサービスやほかのコンピュータとのやり取りにも使用される汎用形式なので、取り扱う […]

すけろく M5Stackは、各モデル共通でmicroSDカードの スロットが搭載されているな! げんろく そうだな。microSDカードへの読み書きが できるのでログの記録や、データ読み出しからの 画面表示ができる。 すけろく ファイルの中身を画面に表示することができるのか! それはいいな! げんろく では、手始めにmicroSDカードに入っている テキストファイルの中身を表示してみよう。 この記 […]

すけろく M5StackをArduino IDEで使ってみたいのだが。 げんろく ライブラリも揃っているしな。 開発する前に、M5Stack用の設定をArduino IDEに 施す必要がある。 すけろく M5Stack開発ボードの登録とライブラリの インストールだな。 げんろく わかってきたではないか。 新しい機器をArduino IDEで使う場合の初期設定だな。 この記事では、Arduino I […]

すけろく 今回はM5Stackを取り上げたいと思うがどうだ? げんろく なんだ、急にやる気を出して。 どういった風の吹き回しだ? すけろく M5Stickとは異なり、いろいろな種類のモデルがあって 良さそうだからな。 げんろく 開発用モデルから、実用を意識したモデルまで 様々だからな。 面白い、やってみるか! 今回の記事では、「M5Stack」を各モデルを比較して、用途に応じた使い方をまとめていま […]