2015年3月22日日曜日

Arduinoで指紋認識

たれにLEDが映える…と思ったら私の顔もかすかにw

友達のOさん経由でFingerprint sensorを入手できたので、さっそく試してみました。

Adafruitで公開されているDatasheet PDFが中国語でびっくりしますが、Adartuitがチュートリアルを用意しているので、ご安心くださいw しかし、mbedで使うつもりだったのですが、ドライバの情報が中国語だけなのは辛い。

なお、先に書いておきます。原因はわかりませんが私の入手したセンサーには指紋を一つしか登録することができませんでした。Adafruitで売っているものと違うタイプなのかもしれません。いずれにしてもこれでは指紋認証デバイスの意味がないので、Adafruitに改めて注文して後日また報告します。

それはさておき、Arduinoにつないでみます。

付属のコネクタ&配線は導線部分が短すぎてそのままではブレッドボードなどに刺せないので廃リード線をつぎたしてやります。最近、リード線の接触事故などでBBB、LPC1114FN28などを相次いで殺してきた私なので、熱収縮チューブできれいにカバーしました。


なお、コネクタは下の写真の向きで差し込みます。


Arduinoとの接続は、

  • 黒:GND
  • 赤:5V
  • 緑:p2
  • 白:p3

です。GitHubからライブラリ+サンプル+ドキュメントをダウンロードします。チュートリアルではいきなりfingerprintサンプルを試していますが、当然まだ指紋を登録していないので動きません。まずenrollで登録しましょう。

encollの使い方はソースを見ればわかりますが、起動しシリアルモニタを9600で表示するとidを何にするか聞いてきます。12にする場合、 12とスペースを入力し、送信ボタンを押します。そうするとセンサーが赤く点灯、待機状態になります。あとはシリアルモニタの指示に従い:
  1. 登録したい指をセンサーに乗せる。
  2. 指を離す
  3. もう一度乗せる。
  4. 失敗した!と言われたらもう一度
で、これを繰り返して別のIDで別の指を登録します。


これでめでたくfingerprintを試せます。実行すると赤く早い周期でLEDが点滅しますので、さきほど登録した指を乗せます。

が。

前述の通り何故か最後に登録した指一本しか認識してもらえません。新しいのが届いたらまたテストします。

お疲れ様でしたorz

認識に失敗してもエラーメッセージなどは出ないので、認識失敗してリトライしているのか認識処理をしているのかがわからないのですが、1秒以下で認識されることもあるので、一応カタログ性能は出ているのかもしれません。登録した時とほぼ同じような位置に指を置かないと認識されないので、指ガイドなどを設置する必要があると思います。

ライブラリの中身を検証する気力がないので、とりあえず部品沼に沈めておきます。なむ。

0 件のコメント:

コメントを投稿