M5Stack FACESを使う!

「PocketGriffonがM5Stackをコレクションしている」という変な噂が流れているらしい…。

さすがに集めてなんていません、マジで(T-T)

 

そんな噂が流れると、知り合い(主に技術系経営者)が喜んで(不要になったものを)送ってくるわけだ…orz 嬉しそうな顔が目に浮かぶよ(T^T)

 

でも今回の贈り物は素直に喜びたい!

なぜならば、使ってみて一発で気に入ったからだ! (^o^)/

今回はM5Stack FACESのお話!

f:id:PocketGriffon:20210928231609j:plain

 

ここで「FACESとは!?」とか書く気はない(^^;;

それはもう、他でいっぱい書いてあると思うので、ここでは私目線のレポートを書いていきたいと思う。

特に私自身、M5系がCore2→Stick→FIREという遍歴の持ち主なので、一風変わった感覚かも知れない。

 

使いやすいキーボードが欲しい!

M5Stackのプログラミングのしやすさに感動して、ここ数週間はずっと近場に置いておいて、何かアレばちょこちょこプログラミングをするという事を繰り返していた。

Twitterやブログに公開する以外にもたくさん作っている(^-^)

これだけ簡単に画像が表示できるデバイスを手にしたのは初めてだったので、嬉しくて楽しくて無駄に作ってる感はある(^^;;

 

でもそういうのを作っていると、やっぱり入力デバイスが欲しくなる。M5Stack Core2はタッチパネルが付いてるんだけど、あんまり便利に使えたことがない…。ABCボタンも同様だ。プログラムがヘタなのかも知れないw

 

f:id:PocketGriffon:20210928233600j:plain

試しにキーボードも手に入れてみた。CP/M80などは完全対応させてみて、実際に使えるところまで持っていったが、やはりちょっと押しづらい。カーソルキーが左についているのも理由のひとつかも知れないが、ぽちぽちと押す感覚も得意ではなかった。指が痛くなっちゃう(^^;

 

そんな時、(理由はどうあれ)FACESが手に入った!

前から少し気にはなっていたんだけど、キーボードに1万円超える金額かぁ…と躊躇していた。

M5Stackが同梱されているとは知らず、純粋にキーボードだけの価格だと思ってたのだ(^^;

 

せっかくなので、手に入れてまだ何も触ってなかったFIREを取り付けつつ、プログラムしてみる事にした!

 

CP/M80の対応

まずはこのキーボード、どうやって扱うのかを調べてみねば。

こういう新たなハードを手に入れても、サンプルが充実してるM5Stackならば怖いものは無い!「スケッチ例→M5Stack→Face→KEYBOARD」にサンプルがあった!

 

なるほど…ははぁ…。初期化とデータ取得部分さえ押さえれば特に難しい事はない。

ただ…「M5.Power.begin()」この記述は初めて見た。

ドキュメントを見る限り、バッテリー駆動する場合に残量などの情報を取得出来るらしい。今後、人に見せる機会もあるかもなので、入れておくことにしよう。

 

キーボードが返してくるデータは、ASCIIコードそのものみたい。すごく単純明快!

さらに画面下部にある3つのボタンにも対応を…と思っていたら、Core2と全く同じコードでいけちゃう事が判明!すごいぞ、これ(^-^)

 

結局、調べ始めてから30分もしないうちに実装が完了した!

しかもキーボードが思っていたよりも打ちやすい。難を言うと印刷されてる文字が小さすぎて、「|(パイプ記号)」と「!(びっくりマーク)」の区別が付かなかったよ(T-T)

f:id:PocketGriffon:20210929001210j:plainf:id:PocketGriffon:20210929001234j:plain

ついでに気になっていたSD周りも修正した!起動時間が圧倒的に短くなったよ。

なんか…FIREでSDカードをアクセスするとノイズのような音が出る…。これってウチのだけ?

f:id:PocketGriffon:20210929001351j:plain

画面下部のボタンによる拡大縮小もちゃんと動作した!

使い勝手が飛躍的に上がった気がする(^-^)

 

PC-1360エミュレータの移植

前のブログで「移植しないよ」と書きつつも、気が変わって移植しちゃった!!

PC-1360の液晶(150x32)を、単純に倍角にして表示してみてもM5Stackなら表示できるんだな…と思い、その画面を見てみたくなったという単純な理由だ!

 

f:id:PocketGriffon:20210929001740j:plain

いつもの流れで移植、まずはシリアル上でPC-1360が起動してるのを確認する。この表示はほぼ一発で出た!移植作業に慣れてきてるなー!

ここまで動いていれば、あとは表示系を作るだけだ。

f:id:PocketGriffon:20210929001854j:plain

そしてこの画面もほぼ一発で表示された!

内部的には150x32ドットのスプライトを1枚持ち、それをLovyanGFXの機能で縦横を2倍にしているだけだ。表示時の負担は大きいと思うけど、CPUパワーが余りまくってるので良いかなーと(^-^;;

 

ここからキーボード対応をしていったのだが、PC-1360エミュレータが変だ。キーマトリクスがPC-1360Kになっちゃってる!これは…おそらく内部で行っているであろう機種判定で間違いを返してしまってるのだろう…。キーマトリクス取得部分を解析しないとダメかも。

今回はこのまま行っちゃうけど!←

 

もうひとつバグというか間違いに気がついた。

f:id:PocketGriffon:20210929002434j:plain

S1、S2スロットともに32KBの増設メモリを入れてる想定で開発をしていたけれど、どうやらS1スロットしか認識していない。SET MEM "B"すると停止してしまう…。

どうもS1、S2スロットの切り替えは、バンク切り替えというよりは「バスを切り替えてる」ようなコードが入っているようなので、もう少し解析が必要かも。

 

まぁそのへんは置いておくとしても、キーボードでBASICプログラムを打ち込んでみる。

f:id:PocketGriffon:20210929003025j:plainf:id:PocketGriffon:20210929003041j:plain

おおー、ちゃんと入力できた!

本当に小型のPC-1360が目の前にある!って感じだ(^-^)

 

f:id:PocketGriffon:20210929003332j:plainf:id:PocketGriffon:20210929003441j:plain

RAY-FORCEもちゃんと動いた!こちらはゲームパッドに対応した。

 

f:id:PocketGriffon:20210929003802j:plain

プログラムの都合で同時キー入力が入らなくなってしまっているので、操作はとてもやりづらい…。でも動くからとりあえずは良いか!(個人的割り切りw)

 

という感じで、Core2→FIREへの移植は、移植というほどの事でもなく動いてしまうようだ。

かつFACESへの対応もめちゃくちゃ簡単だった!プログラム経験が少しでもある人であれば、悩むところは無いだろう。

 

キーボードとパッドを入れ替える際に、FACE自体がとても外しづらいのが気になる!こんな頻繁に取り替える事を想定していないのかも知れないが、「壊れちゃわないかな?」ととても心配になる(^^; するっと外せる方法があったら良いのだけれども…汗

 

周辺機器も充実してきて、どんどんM5Stackが好きになっていく!(^-^)

多分、本来の目的とは「ほど遠い」使い方をしてるんだろうけど、困ったことに使ってる本人としての満足感はとても高い!(^^;;

今後も使っていくよー!

 

ではまた次回(^-^)ノ