/

M5Stack UnitV2 が届いた

M5Stack
M5Stack UnitV2 外箱

1か月くらい前に注文したM5StackのUnitV2が届いた。

Linuxが入ったM5Stackで、カメラ付きのRaspberry Pi Zeroのような感じかなと思って発表後に即購入してしまった。

カメラ付きの小型Linuxとは心が躍る。

スペックは下記の通り。

[スペック]

  • ARM Cortex-A7デュアルコア 1.2 GHz(Neon、FPU内蔵)
  • 128 MB DDR3 メモリ
  • 512 MB NANDフラッシュメモリ
  • GC2145 1080 P カラーセンサ
  • マイクロフォン、microSDカードスロット、UARTポート、USB-C
  • Wi-Fi 2.4 GHz
  • 冷却ファン
  • OS : Linux

メモリが128MBなのを除けばRaspberry Pi Zeroより高性能。ストレージがNANDのフラッシュになってるのも良いし、冷却ファンまで付いてるのがすごい。

で、購入時にバッテリー付きだと思い込んでいたがそんなことはなく私の思い込みだった。 なんらかの形で給電をしないと動きません。 購入ページをよく読めばよかった。

箱の中身と内容物

中身
中身

開けると上記のような感じ。

本体と付属品
本体と付属品

本体、スタンド、背面パーツ、USBケーブルが入っている。

背面
背面

背面はパーツが付いた状態に。

SDカードが挿さってる
SDカードが挿さってる

本体の側面にはSDカードが挿しっぱなしになっている、boot用のファイルが入っているのだろうか。と思ったが、注文時に16GBのSDカードが付いてくると書いてあったのでたぶんそれだ。空のSDカードなのだろう。

接続して使ってみる

付属のUSBケーブルでPC(Ubuntu)に接続すると、LEDが点いてファンが回り始めた。

おお、動いた。と思ったが、あれ、これどうやってこのマシンに接続するんだ。

箱に説明書があるかと思って箱の中身を見るが何もない。

簡単にWi-Fi経由でSSH接続できると思っていたが、その説明がどこにもない。

PCを見ると、USB接続のLANとしてUnitV2を認識したという表示が出た。 (私のマシンがUbuntuだったからなのか自動的に認識したが、WindowsかMacの場合はドライバをダウンロードして適用する必要があるようだ。公式のDriver Instrationを参照)

で、M5Stackの公式ページを見てみた。

すると下記のコマンドで接続できると書いていたので接続したPC上のターミナルでコマンドをたたいてみたが、パスワードがわからない。

$ ssh m5stack@10.254.239.1

"M5Stack Unitv2 password"などのワードでGoogle検索してみるが、パスワードがどこにもない。 公式にも書いてない。

うーん、落ち着こうと思ってUnitV2本体に付いている背面パーツを取ってみたら。。。

ユーザー名とパスワードが書いてあった
ユーザー名とパスワードが書いてあった

UnitV2のうらっかわにパスワードが、というか色んな接続方法がご丁寧に書かれていましたとさ。

この写真にもうっすらと映っているが、パスワードは"12345678"でした。

どんなLinuxが入っているのかなと思って$ uname -aを叩くと下記のような感じ。

# Linux unitv2 4.9.84 #196 SMP PREEMPT Wed Apr 7 02:40:43 CST 2021 armv7l GNU/Linux

何系のOSなのかは私にはよくわからなかった。

ストレージはどうなっているのかと$ df -hをたたいてみると、512MBのフラッシュメモリがあるというのはウソじゃなさそう。 さらに付属のSDカードもちゃんと16Gくらいあることが判明。

# Filesystem                Size      Used Available Use% Mounted on
# ubi:rootfs              410.1M    290.9M    119.2M  71% /
# devtmpfs                 56.0M         0     56.0M   0% /dev
# tmpfs                    57.0M         0     57.0M   0% /dev/shm
# tmpfs                    57.0M      7.1M     49.9M  12% /tmp
# tmpfs                    57.0M     44.0K     57.0M   0% /run
# cgroup                   57.0M         0     57.0M   0% /sys/fs/cgroup
# /dev/mmcblk0p1           14.8G     32.0K     14.8G   0% /media/sdcard

$ htopコマンドをたたいてみると確かにメモリが114MBと表示されCPUが2個動いていた。

で、さらにUSB接続したPC上のブラウザで10.254.239.1を叩くとUnitV2上で起動しているサーバーが見られる。 カメラのストリームや画像認識のデモが見られる。

リッチなWeb画面
リッチなWeb画面

画像ではわかりにくいが、リアルタイムで顔認識をしている。

さらに、Jupyter NotebookのコードもこのWeb画面から実行できるみたい。

すごい。

カメラ付きのただのLinuxだと思っていたんだけどちょっと違う

だが、私はこのリッチなWeb画面とかJupyter Notebookとかを求めていたわけではなくてカメラ付きの小型Linuxがほしかったのだ。

自前のコードをLinux上で動かしてカメラで撮影などをしたかったのだが、これはなんというか至れり尽くせりすぎて逆に不自由な感じがする。

確かにカメラ付きLinuxではある、でもなんか違うんだ。

さらに、本当は自分で選んだLinuxをインストールしたかったのだが...

で、公式ページ内を探してみたのだがどうにも情報がない。

Jupter Notebookを使って色々できるようで、私のやりたいこともおそらくJupter Notebookだけでなんとかなりそうな気もする。

自前のコードを動かす方法は下記の通り(たぶん、公式を読んだだけで実際には試してないので違っていたらすいません)。

# 下記のディレクトリにpythonを置くことでJupyter NotebookのWebページから実行できる? Webページ上から編集してもよいはず
/home/notebook

# カメラとか画像認識の実際のコードは下記に置けばJupyter Notebookから実行できる?
/home/m5stack

でも、私はLinuxのパッケージとかを自由にインストールしたい...

どうやってシャットダウンするの?

さらにちょっと困惑したのが電源を切る方法が見つからなかったこと。

現状でわかるのはUSBを抜くことだけ、Linuxの電源をいきなり切っちゃって大丈夫なのか?

Raspberry Piならアウトな行為だけど大丈夫なの?

ssh画面でshutdownとかsystemctl poweroffとか叩いてみたがコマンドが見つかりませんと出る。 haltをたたいてみたところ"Operation not permitted"と出る。

じゃあsudoで行けるかとやってみたがrootユーザーのパスワードがわからない。 うーん。

で、結局私はUSBを引っこ抜くという一番原始的な方法でシャットダウンしています。

まだ情報があまり出ていないようなので、これから色んな情報が出てくるのに期待。