Ubuntu Weekly Recipe

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

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

microSDカードを利用する

M5StickVにはmicroSDカードスロットが備わっています。これを利用することでファームウェアを書き換えることなくアプリケーションをインストールしたり,データを保存することが可能になります。

ただしM5StickVにはmicroSDカードとの相性問題が存在します。初期のファームウェアでは動くもののほうが少なかった状況ですが,最近のファームウェアではかなり解消されています。それでもまだ動かないものも存在するようなので,もしうまく認識されないようなら有志が作成した確認リストを参考にしつつ別のmicroSDを試してください。USBで給電しつつ動かすなら問題ないものの,内蔵バッテリーで動かしているときは認識しないなんてケースもあるようです。

microSDカードのフォーマット

M5StickVはexFATにも対応しているものの,FAT32にしておいたほうが動作する可能性が高いようです。うまく認識しないならFAT32にフォーマットしなおしてください。SDXCやSDUCはexFATが採用されているので,とりあえず試してダメだったらFAT32にします。

ちなみに最新のファームウェアなら複数パーティションも正しく認識できるようです。よって大抵の場合,あらためてmicroSDカードをフォーマットしなおす必要はないでしょう。

もし何らかの理由でパーティションをひとつにして,FAT32にしたい場合は第366回で紹介されているDisks(ディスク)を使うか,次の手順でpartedコマンドから設定します。

$ sudo parted (修正対象のストレージのデバイスファイル)
(parted) mklabel msdos
(parted) mkpart
パーティションの種類?  primary/プライマリ/extended/拡張? primary
ファイルシステムの種類?  [ext2]? fat32
開始? 0%
終了? 100%

「修正対象のストレージのデバイスファイル」の指定は慎重に行ってください。間違えるとシステムが起動しなくなります。microSDカードなら,システム内蔵のMMCコントローラー直結の場合は/dev/mmcblkXに,USB-SDカードアダプターを経由する場合は/dev/sdXになることが多いようです。Xの部分は数字だったりアルファベットだったりします。とはいえ,どれが正しいかというのを選択する方法も状況によりけりなので,不安ならDisksを使いましょう。

パーティションを作り直したら,mkfs.vfatコマンドでフォーマットしてください。

$ sudo mkfs.vfat (修正対象のパーティションのデバイスファイル)
mkfs.fat 4.1 (2017-01-24)

ほぼ繰り返しになりますが,「修正対象のパーティションのデバイスファイル」の指定は慎重に行ってください。間違えるとシステムが起動しなくなります。microSDカードなら,システム内蔵のMMCコントローラー直結の場合は/dev/mmcblkXp1に,USB-SDカードアダプターを経由する場合は/dev/sdX1になることが多いようです。Xの部分は数字だったりアルファベットだったりします。とは言え,どれが正しいかというのを選択する方法も状況によりけりなので,不安ならDisksを使いましょう※4⁠。

※4
ルートファイルシステムのパーティションUUIDを確認しようとしてsudo blkid デバイスファイルと入力するつもりがsudo blkdi<TAB>とタイプミスした結果,blkdiscardが補完されてしまい,⁠しまった,間違えた」と頭で考えているうちに手が勝手にsudo blkdiscard デバイスファイル<RETURN>まで入力した(公序良俗に反する表現)がここにいます。

microSDカードにアプリをインストール

M5StickVはアプリケーションとして内蔵Flash上のboot.pyを起動しますが,もしmicroSD上にboot.pyがあるとそちらを優先します。よって任意のアプリケーションを動かしたいのであれば,まずはmicroSDカード上にインストールしてテストすることになります。

Flash上のboot.pyがどんな内容かはこちらのスクリプトboot_py変数の中身を参照してください。boot_py変数の中身をそのままboot.pyとしてmicroSDの先頭パーティションに保存すれば,microSDのそれが優先されますし,トライアンドエラーして動作を確認できることでしょう。

たとえば次のように編集すると,起動時の音が小さくなります。

$ sed -i "s/player.volume(100)/player.volume(50)/" boot.py

標準のアプリ以外であれば,Brownieがおすすめです。カメラ上の画像から物体を検知し,ディスプレイのそばにあるAボタンを押すとその内容を読み上げてくれます。

Brownieのインストール方法はリリースページから最新のイメージをダウンロードし,その内容をそのままmicroSDカードに展開するだけです。v1.0.1の場合は20クラスの分類が可能なので,飛行機や猫,鉢植えなどの画像を画面に表示して試すと良いでしょう。

著者プロフィール

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

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