Ubuntu Weekly Recipe

第587回 RISC-Vベースの“AIoTカメラ”であるM5StickVをUbuntuで使う

この記事を読むのに必要な時間:およそ 7 分

M5StickVはRISC-VベースのAIoT(AI+IoT)カメラです。今回はこのM5StickVを使うにあたって,Ubuntu側からファームウェアアップデートや既存のプログラムの実行などを行ってみましょう。

M5StickVの概要

M5StickVはM5Stackが販売している,RISC-VベースのSoCを搭載した小型カメラデバイスです。その大きな特徴は,SoC内にニューラルネットワーク用のアクセラレーターを搭載していることでしょう。これにより親指大サイズのデバイスでありながら,リアルタイムでの顔認識など,高度なAI機能を驚くほど低消費電力で実現できています。

M5StackはもともとスタッカブルなIoTデバイスであるM5Stackや,スティック型のM5StickCなどを販売してきました。これらの従来機がEspressif SystemsのマイクロコントローラーであるESP32を採用しているのに対して,M5StickVはCanaanの64ビットRISC-V SoCであるKendryte K210を採用しています※1⁠。

※1
RISC-Vは第505回でも紹介している,オープン規格の新しい命令セットアーキテクチャです。最近ではSiPEEDが,同じくK210搭載のボードをいくつか販売するなど,比較的入手しやすくなってきました。

さらに親指大サイズの筐体の中にVGAサイズのイメージセンサーと135x240の小型液晶ディスプレイ,ジャイロ,スピーカー,バッテリー等を同梱することで,⁠買って取り出せばすぐ顔認識アプリを動かせる」という素晴らしいユーザー体験を提供できるデバイスとなっているのです。

M5StickVはスイッチサイエンスを始めとして国内のいくつもの店舗で入手可能です。当初の品薄感も少しずつ解消しているようですので,いくつかのサイトを回ってみると良いでしょう。今回はM5StickVを入手できたものとして,まずは実際にそのアプリを体験してみます。

35mmフィルムが入りそうなサイズのケースから,青い筐体を取り出します。microSDカードスロットがある面の,ボタンを2秒程度長押しすると「チーン!」という音とともに画面にロゴが表示されるはずです。あとはカメラのレンズを人の顔に向けます。もし得体の知れないデバイスを他人に向けるのが憚られるようであれば,ディスプレイ上の顔画像でもかまいません。うまく「人の顔」として認識されれば※2⁠,白い枠が表示されるはずです。カメラの移動に合わせてリアルタイムに顔を認識していくさまに,ひとしきり感動しましょう。

※2
あくまで学習データからの推論の結果としての「人の顔」です。M5StickVで「人の顔」として判断されなかったからといって「こいつの正体は,人ではないのでは?」と思い悩む必要はありません。何もない壁に向けた時に突然「顔」として認識され,白い枠が表示されたとしても,そこに何かいるわけではありません。たぶん。

電源を切るにはmicroSDカードスロットのある面のボタンを6秒以上押し続けてください。ちなみに満充電の場合は電源が切れずに再起動してしまうようです。多少放電してから電源を切ると良いでしょう。

ファームウェアのアップデート

M5StickVの初期ファームウェアは,microSDカードとの相性問題などいくつかの不具合・機能不足がありますので,本格的に使う前にファームウェアをアップデートすることをおすすめします。

ファームウェアのアップデートはM5StickVのUSB Type-CポートとPCを接続して行います。データ通信・充電両対応のケーブルが必要です。とりあえずはM5StickVに付属のケーブルを使うと良いでしょう。アップデート用のソフトウェアはWindowsやmacOS,Linux用がそれぞれ用意されています。今回はUbuntuでファームウェアをアップデートする方法を紹介しましょう。

GUI版・CLI版どちらでもアップデートできますので,それぞれの方法を紹介します。

シリアルポートの権限設定

Ubuntuからファームウェアをアップデートするには,シリアルポートへの読み書きの権限が必要です。Ubuntuの場合,M5StickVとPCをUSBケーブルで繋いだら,udevが自動的にシリアルポートデバイスを生成します。このデバイスはdialoutグループに所属するユーザーのみが読み書きできるようになっているため,アップデートするユーザーをdialoutグループに所属させておきましょう※3⁠。

※3
シリアルポートとudevの関係は第555回の3ページ目でも説明していますので,詳しい仕組みはそちらを参照してください。

まず現在のユーザーをdialoutグループに追加します。

$ sudo usermod -a -G dialout $(whoami)

あとは一度ログインしなおせば,変更が反映されます。idコマンドで確認してみてください。ちなみにdialoutグループに追加したあと,次のようにnewgrpコマンドを実行すると,ログインし直さなくても一時的にプライマリーグループをdialoutに変更できます。

$ newgrp dialout

ただし大抵のLinuxディストリビューションでは,プライマリーグループを変えてしまうとファイルの作成時のumask値が変わってしまったり,グループオーナーが通常と異なってしまうため,よくわからないのであればおすすめはしません。どうしてもログインし直すことができない際の回避手段として考えてください。

ファームウェアのダウンロード

ファームウェアはM5StickV Quick Startの「Download」にある「click to download firmware」をクリックするとダウンロードできます。9月20日時点での最新版はFirmware_0830です。ファイル名はM5StickV_Firmware_0830_beta.kfpkg「beta」が付いていますが,どうやらこれが正式版のようです。

ちなみにFirmware_0813からフォーラムに変更点が記載されるようになったようです。最新のファームウェアをインストールする前に確認すると良いでしょう。

著者プロフィール

柴田充也(しばたみつや)

Ubuntu Japanese Team Member株式会社 創夢所属。数年前にLaunchpad上でStellariumの翻訳をしたことがきっかけで,Ubuntuの翻訳にも関わるようになりました。