M5StickVを開封して簡単なプログラムを動かすまでの手順です。
まずは定番のLチカ(LEDをちかちか点滅させる)を試します。

はじめに

「M5StickVを初めて使う」
「とりあえず動かしてみたい」
というビギナー向けのガイドです。

なるべく簡単な設定方法を紹介しています。
うまく動かない場合や分からないことがあればコメントお願いします。

基本的な操作

M5StickVは電源ボタン、Aボタン、Bボタンの3つのボタンがあります。
ディスプレイ側がAボタン、USB端子に近いのが電源ボタン、カメラ横にあるのがBボタンです。

M5StickV ボタン構成

電源ボタンを2秒長押しで電源オン、6秒長押しで電源オフです。
USBケーブル接続時は6秒長押しで再起動します。電源オフにできない仕様です。

カメラの焦点は黒いダイアル部を回すことで調整できます。
ピントがぼけているときは調整してください。
指の腹で軽く押さえると回しやすいです。

おおまかな手順

M5StickVを開封したばかりの初期状態からLチカを実行するまでの手順はざっくり3ステップです。

  1. M5StickVのファームウェアを更新する
  2. Maixpy IDEをPCにインストールする
  3. Maixpy IDEからプログラムを実行する

ファームウェアを更新する

のちほど説明するMaixpy IDEという統合開発環境を使うため、
まずはM5StickVのファームウェアを更新します。

Windows環境ならM5Stack社のEasyLoaderという書き込みツールが推奨されています。
EasyLoaderを使うと自動的に最新のファームウェアを取得し、M5StickVに書き込むことができます。
M5StickV Quick Startからダウンロードできます。

MacやLinuxの場合、kflash_guiという書き込みツールを使います。
kflash_guiを使う場合はファームウェア本体のファイルを自分で指定します。

WindowsならEasyLoaderが便利だと思いますが、ここでは汎用的なkflash_guiを使う方法を紹介します。

ファームウェアをダウンロードする

ファームウェア本体はM5Stack社の公式サイトからダウンロードしてください。
さきほどと同じくM5StickV Quick Startという記事中の「Click to download firmware」というリンクからダウンロードできます。
記事執筆時の最新版は「M5StickV_Firmware_0830_beta.kfpkg」でした。

M5Stack社が配布しているファームウェアで動かない場合、
Sipeed社が配布しているファームウェアを試してください。
“maixpy_バージョン名_m5stickv.bin”というファイルがM5StickV用のファームウェアです。

kflash_guiをインストールする

Releases · sipeed/kflash_gui · GitHubから最新版をダウンロードできます。
kflash_guiはSipeed社が提供しているツールです。
M5Stick以外にMaixシリーズのボードでも使えます。
Mac, Linux, Windows用が提供されています。

わたしのMacではkflash_guiが起動しない不具合がありましたが、
ターミナルでコマンドから起動させたら動きました。
open /Applications/kflash_gui.app

kflash_guiの起動画面です。

kflash_gui起動画面

あとは以下の手順でファームウェアを更新します。

  1. さきほどのファームウェアを指定します。
  2. PCとM5StickVをUSBで接続し、ボードとポートを指定します。
  3. 「Download」ボタンをクリックすると書き込み開始されます。

Maixpy IDEをインストールする

Maixpyのプログラムはシリアルコンソールから実行することもできますが、
Maixpy IDEという統合開発環境が大変便利です。

Maixpy IDEはSipeed社のウェブサイトから最新版をダウンロードできます。
Maixpy IDEもMac, Linux, Windows用が提供されています。

プログラムを実行する

Maixpy IDEを起動する

それではMaixpy IDEを起動してみましょう。

まずボードの設定です。
ツール -> ボードの選択 -> M5StickM5を選びます。
M5StickVとPCをUSBケーブルで接続し、M5StickVを起動します。
つぎにMaixpy IDEの画面左下にある接続ボタンをクリックします。
シリアルポートはM5StickVを接続しているポートを選択します。
Macでは「usbserial-数字」というポートでした。

Maixpy IDE起動時はhelloworld.pyというスクリプトがデフォルトで表示されています。
試しに実行してみましょう。
画面右下の開始ボタンを押すと、このプログラムが実行されます。
こんな風にM5StickVのカメラの映像が同期されてMaixpy IDEに表示されます。

Maixpy IDE動作画面

Hello World

Maixpy IDEを使うと、実行ボタンを押すだけで自動的にプログラムを転送し、実行させることができます。
Pythonベースなのでコンパイルも不要で、トライ&エラーを繰り返しながらさくさくプログラミングできます。

まずは定番のHello Worldから紹介します。
Maixpy IDEで新しいファイルを作成し、以下のスクリプトを貼り付けて実行してください。
M5StickVのディスプレイに「Hello World」と表示されたら成功です。

#Hello Worldと表示するスクリプト
import lcd
lcd.init()
lcd.draw_string(100, 100, "Hello World", lcd.RED, lcd.BLACK)

Lチカ

おつぎはLチカです。
カメラ上部のLEDが1秒おきに点滅すれば成功です。

#シンプルなLチカ
from fpioa_manager import *
from Maix import GPIO
import utime
fm.register(board_info.LED_W, fm.fpioa.GPIO3)
led_w = GPIO(GPIO.GPIO3, GPIO.OUT)
while True:
    led_w.value(0) #Lowで点灯
    utime.sleep(1)
    led_w.value(1) #消灯
    utime.sleep(1)

他の色のLEDも試してみましょう。
白→青→緑→赤の順番で点灯すれば成功です。

#各色を順番にLチカ
from fpioa_manager import *
from Maix import GPIO
import time
fm.register(board_info.LED_W, fm.fpioa.GPIO3)
led_w = GPIO(GPIO.GPIO3, GPIO.OUT)
fm.register(board_info.LED_B, fm.fpioa.GPIO4)
led_b = GPIO(GPIO.GPIO4, GPIO.OUT)
fm.register(board_info.LED_G, fm.fpioa.GPIO5)
led_g = GPIO(GPIO.GPIO5, GPIO.OUT)
fm.register(board_info.LED_R, fm.fpioa.GPIO6)
led_r = GPIO(GPIO.GPIO6, GPIO.OUT)
while True:
    led_w.value(0)
    time.sleep(1)
    led_w.value(1)
    time.sleep(1)
    led_b.value(0)
    time.sleep(1)
    led_b.value(1)
    time.sleep(1)
    led_g.value(0)
    time.sleep(1)
    led_g.value(1)
    time.sleep(1)
    led_r.value(0)
    time.sleep(1)
    led_r.value(1)
    time.sleep(1)

うまく動かないときは?

現在進行系でファームウェアの開発が進んでおり、ハードもソフトもバグが多い状況です。
ハマりやすいポイントや不具合情報をM5StickVトラブルシューティングにまとめています。
お気づきの点があればお気軽にコメントください。