小型Arduino互換機(M5Stack)で電子工作を楽しむ
こんにちは、ヨシケンです!
今回は小型のArduino互換機「M5Stack」シリーズを使ってオリジナルのリモコンカーを作っていきたいと思います。ここで使用するM5StackはESP32を使ったArduino開発モジュールで、始めからセンサ、ディスプレイなどがついて簡単に開発を始められます。このM5Stackを使って、動き回って、外部からもコントロールできるミニ・リモコンカーを作っていく過程を紹介したいと思います。
今回の記事の流れ
1. Arduino互換機のM5Stackシリーズについて
M5Stackとは、中国・深センのハードウェア・スタートアップM5Stack社が提供するArduino互換の開発モジュールのひとつです。Wi-FiとBLEが内蔵されたEspressif社のESP32基盤を使っていて、Arduinoと同様に開発が手軽にできるようになっています。小型ケースの中に、ディスプレイやセンサ類、ボタン、USBコネクタなどが始めから付いているのが特徴です。
M5Stackにはいくつかのシリーズがあり、大きさや用途に応じて選ぶことができます。一番手軽に始められるのが、真四角で大きめのディスプレイが付いたM5Stack Coreです。また、ケースやディスプレイなどを小型化して使いやすいようにしたM5Stick-Cもあります。2020年にはそれをさらに半分くらいの超小型にしたATOMというシリーズも出ています。
内部のスペックを簡単にまとめるとこのようになっています。用途、大きさなどに合わせて選んで使ってみてください。
シリーズ | M5Stack | M5Stick | M5Stack ATOM |
名前 | M5Stack Core Gray | M5Stick-C | M5Stack ATOM Matrix |
チップ | ESP32-D0WDQ6 (Wifi, BLE) |
ESP32-PICO (Wifi, BLE) |
ESP32-PICO (Wifi, BLE) |
メモリ | 520KB RAM 16MB Flash |
520KB RAM 4MB Flash |
520KB RAM 4MB Flash |
大きさ | 5.4 x 5.4 x 1.7 cm | 4.8 x 2.5 x 1.4 cm | 2.4 x 2.4 x 1.4 cm |
ディスプレイ | Color TFT LCD (2 inch) | Color TFT LCD (0.96 inch) | 5 x 5 RGB LCD |
センサ類 | MPU6886 (加速度センサ) BMM150(地磁気センサ) マイク無 スピーカ有 |
MPU6886 (加速度センサ) 赤外線LED マイク有 スピーカ無 |
MPU6886 (加速度センサ) 赤外線LED マイク無 スピーカ無 |
バッテリ | 150mAh @3.7V | 80mAh @3.7V | 無し |
参考価格 | 4,800円程度 | 2,000円程度 | 2,000円程度 |
2. このデバイスを作るのに必要なもの
今回は、M5Stackといくつかのセンサを利用して、自動運転したり、リモートでコントロールできる動く車を作っていきます。それに当たり、それぞれ必要な部品などは以下となります。
コントロールカー部分:
名前、説明 | デバイス |
M5Stack Core ESP32を搭載したArduino互換機。大きめのLEDディスプレイに、BLE、Wifiおよびモーションセンサなども始めから入っている。 |
|
超音波距離センサ 超音波を発し、その跳ね返りにより距離を測定するモジュール |
|
ローム照度・近接センサ (RPR-0521RS) 赤外線を発しその反射光を測定して、光の強度や近接度を計測します。 |
|
Grove I2C モータドライバ I2Cという通信方式で、Grove端子で接続して使えるモータドライバ |
|
車輪、外装など |
リモコン部分:
名前、説明 | デバイス、アプリ |
M5Stick-C M5Stackシリーズの中でも、より小型でBLEとWi-Fiを備えたESP32 Arduino互換モジュール |
|
Blynk(スマホアプリ) Wi-Fi経由でArduinoやRaspberry Piを操作する事ができるスマホアプリです。 |
これらの部品をそろえて、小型リモコンカーを作っていきます。
3. リモコンカーの機能と学べること
今回作るリモコンカーは、動く車部分と、リモコン部分に分かれています。車の部分はセンサを使って自動で動くようになります。リモコンはM5Stcick-Cとスマートフォンを使って、車を操作できるようにします。車部分とリモコン部分で実現できる機能と、そこで学べることを列挙します。
コントロールカー部分:
番号 | 学べる事 |
1 | M5StackのArduino IDEでの開発の仕方 |
2 | I2Cモータドライバを使った、Arduinoでモータを動かし、車を作る方法 |
3 | 距離センサを使った物体回避の仕組み |
4 | 照度・近接センサを使った机などから落ちない仕組み |
リモコン部分:
番号 | 学べる事 |
1 | M5Stackを使ったモーションセンサの使い方 |
2 | Arduino(M5Stack)間のBLEによる通信、操作 |
3 | スマホからのArduino(M5Stack)の操作 |
4. M5Stackの開発環境のセットアップ
M5StackでArduino IDEを使って、プログラミング開発をおこなうためのセットアップをします。Arduino IDE ダウンロードページ(https://www.arduino.cc/en/main/software)に行って、ソフトウェアをダウンロードしてインストールしてください。また、Device Plusのこちらの記事(Arduino利用編)でESP-WROOM-32の使い方を見ておくのもいいと思います。
Arduino IDEのインストールが終わったら、ESP32ボードの設定をおこないます。Arduinoのメニューから、設定/Preferenceesを選んで、追加のボードマネージャURLに、以下を入力します。
https://dl.espressif.com/dl/package_esp32_index.json
その後、ツール > ボード > ボードマネージャ からESP32を検索し、ボードパッケージをインストールします。
そうするとボードとしてM5Stack-Core-ESP32というのが選べるようになるので、それを選択します。また、シリアルポートからUSB接続を指定して、パソコンとM5Stackをつなぎます。
さらに、スケッチ > ライブラリをインクルード > ライブラリを管理 から、M5Stackのライブラリを追加します。
それでは、パソコンとM5StackをUSB-Cケーブルでつないでみましょう。先ほどダウンロードしたM5Stackライブラリにサンプルがいくつか付いているので、それを使ってみます。ファイル > スケッチ例 > M5Stack からサンプル・スケッチを選んで、それを流し込んでみます。
5. まとめ
今回の連載では、M5Stackを使ったリモコンカーを作っていきます。M5Stackシリーズは、元々センサが入っているものや画面が大きいものがありますので、用途に応じて選んでみてください。外部からセンサを付けることもできますので、ROHMのセンサなど追加して機能を増やすことができます。
さて、次回からは実際にリモコンカーを作っていく過程を紹介していきたいと思います。
お楽しみに!
今回の連載の流れ
第1回:小型Arduino互換機(M5Stack)で電子工作を楽しむ(今回)
第2回:M5Stackでモータドライバを使う
第3回:M5Stackでセンサを使って自動運転と自動回避機能を搭載
第4回:M5Stackをスマホと連動させてコントロールする