M5Stack 指紋センサユニット(U008)

概要

ひさしぶりのユニット紹介です。溜まっているものを順番に紹介していきたいと思います。今回は指紋センサユニットです。

商品

M5Stack用指紋センサユニット
スイッチサイエンス
¥1,793(2021/04/20 19:59時点)
FPC1020Aを搭載した指紋センサユニットです。

上記の商品になります。

パッケージは普通のユニットですね。コネクタが青いのでUARTでの通信になります。

UARTなのでTXDとRXDですね。

こっち側に指紋センサーがついています。指紋データはセンサー側に保存されており、ボード側からは細かい操作ができないような仕組みになっています。

使い方

ボードポート
M5Stack Basic
M5Stack Gray
M5GOC
M5Stack FireC
M5Stack Core2
M5Stack Core2 for AWSC
M5StickCA
M5StickC PlusA
ATOM MatrixA
ATOM LiteA
ATOM EchoA
M5Stack CoreInkA
M5PaperC

このユニットはUARTのため、接続する場所に注意が必要です。FireやCore2 for AWS、M5Paperなどのボードに青色のポートが最初から搭載されている場合にはそこに接続します。

M5Stack BASICなどはI2C専用の赤いポートしか搭載されていませんので、そのまま接続することができません。Groveポートを拡張するベースなどを使う必要があります。Core2に関してはちょっと特殊でI2C用のポートですが、内部I2Cとは別系統のため非推奨ですがなんとか利用することも可能です。

M5StickCやATOM系に関しては1つしかポートがないのですが、なんにでも利用できる万能ポートですのでそのまま接続が可能です。

M5StickCの場合

Groveポートに接続し、スケッチ例からFingerprintを開くのですがいろいろ問題があります。画面表示がM5Stack用のままなので、重要な表示がすべて画面外に表示されています。また、タイムアウトなどの設定値がM5Stackと違うので、非常にレスポンスが悪いです。

void CleanScreen()
{
  M5.Lcd.setTextColor(WHITE);
  M5.Lcd.fillRect(0, 32, 160, 80, BLACK);
  M5.Lcd.setCursor(0, 32);
  M5.Lcd.setTextSize(1);
  userNum = FP_M.fpm_getUserNum();
  M5.Lcd.print("userNum:");
  M5.Lcd.println(userNum);
}

最低限上記の関数の中は画面内に収まるように修正したほうがよいと思います。

また、実際の利用をする場合にはレスポンスが悪すぎるのでM5Stackのスケッチ例を参考にしながら差分を改修する必要がありそうです。

M5Stackの場合

Fireなどの青色ポートを持つ本体であればそこにさして、スケッチ例からFINGER_FPC1020Aを開くだけで利用できます。

レスポンスもいいので、ある程度実用的な速度で利用が可能です。

UIFlowの場合

使ってみた限りかなり使いやすいです。ユニットによってはUIFlow向けライブラリが充実している場合があるのですが、指紋センサーも使いやすい形にまとまっていました。

サンプル通りに最小限で組むと上記のような使い方になりました。ボタンAを押して指紋登録をして、イベントとして指紋認識をしたときの処理を記述します。ボタンBで全部の指紋データを削除します。

使えるブロックは上記のとおりです。

まとめ

最初にM5StickC+Arduinoで実験しましたが、まったく動いているようには思えませんでした。UIFlowやM5Stack Fireだと普通に動くので、再度確認したところものすごく反応が悪いだけでした。

個人認証としては他にRFIDユニットがありますが、日本だと利用できないと思われるので現状のところこの指紋ユニットしかありません。

使う前はあまり期待していなかったのですが、UIFlowでは比較的きれいに使えそうなので組み込み方によっては実用的なものができる可能性があると思います。

コメント

タイトルとURLをコピーしました