Arduinoその他工作

Arduino互換機(M5Stack)とセンサで作るミニリモコンカー!

第1回:小型Arduino互換機(M5Stack)で電子工作を楽しむ

こんにちは、ヨシケンです!

今回は小型のArduino互換機「M5Stack」シリーズを使ってオリジナルのリモコンカーを作っていきたいと思います。ここで使用するM5StackはESP32を使ったArduino開発モジュールで、始めからセンサ、ディスプレイなどがついて簡単に開発を始められます。このM5Stackを使って、動き回って、外部からもコントロールできるミニ・リモコンカーを作っていく過程を紹介したいと思います。

arduino-m5stack-remote-control-car-16

 

今回の記事の流れ

  1. Arduino互換機のM5Stackシリーズについて
  2. このデバイスを作るのに必要なもの
  3. リモコンカーの機能と学べること
  4. M5Stackの開発環境のセットアップ
  5. まとめ

 

1. Arduino互換機のM5Stackシリーズについて

M5Stackとは、中国・深センのハードウェア・スタートアップM5Stack社が提供するArduino互換の開発モジュールのひとつです。Wi-FiとBLEが内蔵されたEspressif社のESP32基盤を使っていて、Arduinoと同様に開発が手軽にできるようになっています。小型ケースの中に、ディスプレイやセンサ類、ボタン、USBコネクタなどが始めから付いているのが特徴です。

M5Stackにはいくつかのシリーズがあり、大きさや用途に応じて選ぶことができます。一番手軽に始められるのが、真四角で大きめのディスプレイが付いたM5Stack Coreです。また、ケースやディスプレイなどを小型化して使いやすいようにしたM5Stick-Cもあります。2020年にはそれをさらに半分くらいの超小型にしたATOMというシリーズも出ています。

arduino-m5stack-remote-control-car-02

M5Stack Core

arduino-m5stack-remote-control-car-03

M5Stick-C

arduino-m5stack-remote-control-car-04

M5Stack ATOM Matrix

 

内部のスペックを簡単にまとめるとこのようになっています。用途、大きさなどに合わせて選んで使ってみてください。

シリーズ 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およびモーションセンサなども始めから入っている。
arduino-m5stack-remote-control-car-02
超音波距離センサ
超音波を発し、その跳ね返りにより距離を測定するモジュール
arduino-m5stack-remote-control-car-05
ローム照度・近接センサ
(RPR-0521RS)
赤外線を発しその反射光を測定して、光の強度や近接度を計測します。
arduino-m5stack-remote-control-car-06
Grove I2C モータドライバ
I2Cという通信方式で、Grove端子で接続して使えるモータドライバ
arduino-m5stack-remote-control-car-07
車輪、外装など arduino-m5stack-remote-control-car-08

リモコン部分:

名前、説明 デバイス、アプリ
M5Stick-C
M5Stackシリーズの中でも、より小型でBLEとWi-Fiを備えたESP32 Arduino互換モジュール
arduino-m5stack-remote-control-car-03
Blynk(スマホアプリ)
Wi-Fi経由でArduinoやRaspberry Piを操作する事ができるスマホアプリです。
arduino-m5stack-remote-control-car-09

これらの部品をそろえて、小型リモコンカーを作っていきます。

 

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-m5stack-remote-control-car-10

[Arduino IDEのダウンロード画面 https://www.arduino.cc/en/main/software ]

 

Arduino IDEのインストールが終わったら、ESP32ボードの設定をおこないます。Arduinoのメニューから、設定/Preferenceesを選んで、追加のボードマネージャURLに、以下を入力します。
https://dl.espressif.com/dl/package_esp32_index.json

arduino-m5stack-remote-control-car-11

 

その後、ツール > ボード > ボードマネージャ からESP32を検索し、ボードパッケージをインストールします。

arduino-m5stack-remote-control-car-12

 

そうするとボードとしてM5Stack-Core-ESP32というのが選べるようになるので、それを選択します。また、シリアルポートからUSB接続を指定して、パソコンとM5Stackをつなぎます。

arduino-m5stack-remote-control-car-13

 

さらに、スケッチ > ライブラリをインクルード > ライブラリを管理 から、M5Stackのライブラリを追加します。

arduino-m5stack-remote-control-car-14

 

それでは、パソコンとM5StackをUSB-Cケーブルでつないでみましょう。先ほどダウンロードしたM5Stackライブラリにサンプルがいくつか付いているので、それを使ってみます。ファイル > スケッチ例 > M5Stack からサンプル・スケッチを選んで、それを流し込んでみます。

arduino-m5stack-remote-control-car-15

arduino-m5stack-remote-control-car-01

[左からM5Stack Core Gray、M5Stcik-C、M5Stack ATOM Matrix]

 

5. まとめ

今回の連載では、M5Stackを使ったリモコンカーを作っていきます。M5Stackシリーズは、元々センサが入っているものや画面が大きいものがありますので、用途に応じて選んでみてください。外部からセンサを付けることもできますので、ROHMのセンサなど追加して機能を増やすことができます。

さて、次回からは実際にリモコンカーを作っていく過程を紹介していきたいと思います。
お楽しみに!

IRKitではじめるIoT
ヨシケン(吉田 顕一)

普通の会社に勤めるサラリーマンですが、モノ作りが好きな週末メイカーで、電子書籍MESHBOOKを出したり、ブログを書いたりしています!

http://blog.ktrips.net