M5StackでWHILL Model CRの電源をON/OFFしてみた


はじめに

この記事はWHILL Advent Calendar 2018の6日目の記事です。


今流行りのM5StackでModel CRが制御できるので、一番簡単な電源ON/OFFをやってみました。

WHILL Model CRとは

RS232Cで外部から制御できるパーソナルモビリティです。
詳しくはこちらのページご参照ください。
https://whill.jp/model-cr

準備するもの

接続方法

M5StackのHardwareSerial2(16,17pin)を使うため、Model CRから出ているRS232Cケーブルから、下記のポートに接続します。

M5Stack RS232C-TTLコンバータ
16pin(RXD) TXD
17pin(TXD) RXD

あとは、3.3VとGNDを各々接続します。

Arduino SDKの取得

Model CR用のArduino SDKをダウンロードしてライブラリに追加します。
M5StackではHardwareSerialを使用するので、esp32ブランチを使用してください。(masterはSoftwareSerialを使用しています。)

ライブラリの詳しい使用方法はこちらの記事を参照ください。
ArduinoからWHILL Model CRを動かす

電源ON/OFFのコーディング

このようなコードを書けば電源ON/OFF出来ます。
- Aボタン:電源ON
- Bボタン:電源OFF

M5Stack_whill_power_control.ino
#include <M5Stack.h>
#include "WHILL.h"

#define LCD

WHILL whill(&Serial2);

void setup()
{
  Serial.begin(115200);
  // Power ON Stabilizing...
  delay(500);
  M5.begin();

  M5.Lcd.setTextColor(GREEN);
  M5.Lcd.setTextSize(4);
  M5.Lcd.clear(BLACK);
}

void loop() {
  M5.update();
  if (M5.BtnA.wasPressed())
  {
    whill.setPower(true);  // Turn WHILL on
    M5.Lcd.clear(BLACK);
    M5.Lcd.setCursor(0, 0);
    M5.Lcd.println("POWER ON");
  }
  if (M5.BtnB.wasPressed())
  {
    whill.setPower(false);  // Turn WHILL off
    M5.Lcd.clear(BLACK);
    M5.Lcd.setCursor(0, 0);
    M5.Lcd.println("POWER OFF");
  }
}

おまけ

POWER ON/OFFのテキスト表示だけだとそっけないのでアバターくんに喋らせてみました。

最後に

M5 StackにつないでModel CRの電源ON/OFFしてみました。

Arduino SDKにはJoystickの制御など諸々用意されていますので、簡単にM5Stack経由でModel CRを動かすことも出来ます。
是非試してみてください。