レトロでハードな物語

レトロなゲーム機・マイコン・中古デバイスなどをArduinoやAVRで再活用する方法を模索しています。

大きな電卓にアカウント管理の機能を追加する その2

2020年07月12日 | 電子工作

前回の続きです。

大きな電卓に組み込んでいたアカウント(パスワード)管理機能ですが、使用するのに必要な機能が一通り完成しました。前回までのスケッチは無駄な処理が結構多かったので、今回はかなりテコ入れしました。
完成したスケッチはこちらです。

DigitClass.h
ATmega328PassManager.ino
バージョンアップしました。

このスケッチをそのまま利用することはあまりないと思いますが、スケッチを読むときの参考までに使用方法を簡単に説明します。

まず、大きな電卓に電源を投入すると電卓モードになります。多少手を入れましたが、使い方は以前に作成した電卓そのままです。



ここでM-かM+キーを押してメニューモードに入ります。



現在のところ選択できるメニューは4つです。




Password Manager パスワード管理
Password Setting パスワード自動生成規則の設定
Calculator 電卓
GAME ゲーム

M-キーを押すとメニューの最初の項目に、M+キーでメニューの最後の項目にカーソルが移動した状態でメニューが起動します。以後M-とM+でカーソルを移動させてメニュー項目を選択し、=キーで実行します。

今回作成したパスワード管理機能を利用するときは、Password Managerを選択します。Password Settingはパスワード自動生成機能を使うときの生成ルールを設定するときに利用します。これについては後ほど説明します。CalculatorとGAMEの使用方法は以前と変わりません。

パスワード管理機能を起動すると初回のみEEPROMを初期化(データ未登録マークの書き込み等)します。最初はデータが登録されていないので、以下のようなメッセージが表示されます。



このとき使える機能はデータの新規登録(+キー)のみです。
+キーを押すとテキスト入力モードに入ります。入力出来るデータは16x4行のテキストで、1行目タイトル、2行目備考や補足、3行目アカウント名、4行目パスワードを想定していますが、特に決まりはありません。ただし後に説明する検索機能で検索されるのは1行目の文字だけなので、1行目はタイトルにしておいたほうがいいでしょう。

テキスト入力モードでは以下のキーを使用します。

M- カーソルを上の行に移動する
M+ カーソルを下の行に移動する
+ カーソルを右に移動する
-  カーソルを左に移動する
AC カーソルのある行を消去
→ 1文字削除
× 空白の挿入
% カナ・アルファベット・数字の切り替え
GT 大文字・小文字の切り替え
÷ 設定したルールに従ってパスワードを生成する
= 入力したテキストをデータとして登録する
MRC 入力したテキストを破棄する

また、0〜9の数字キーと00,.はカナ・アルファベット・数字・記号の入力に使います。詳細は前回の説明を参照して下さい。

データが一つ以上登録されると、メイン画面が表示されます。画面には登録されたデータの1行目と2行目が表示されます。



ここでは以下のキーが使えます。

M-  前のアカウントデータの1行目と2行目を表示する
M+ 次のアカウントデータの1行目と2行目を表示する
= 現在表示されているデータの内容確認のモードになる(下記)
+ 新規登録(上記参照)
× 現在表示されているデータの内容を再編集する
- 現在表示されているデータを削除する
MRC 現在表示されているデータを移動元のデータとしてマークする(もう一度押すとマーク解除)
→ 移動元としてマークされているデータを現在表示されているデータの前に移動する
% 検索文字列を入力してデータの検索を行う
GT すでに入力されている文字列でデータの検索を行う
AC 電卓モードに戻る

%を押すと上記のテキスト入力モードに移りますが、検索文字列として有効なのは1行目に入力した文字列だけです。



文字列入力後=キーを押すと、前回の検索がヒットしているときはその次のデータから検索を開始します。初回の検索なら先頭から検索します。データの最後まで検索しても見つからないときは、見つからなかったというメッセージが表示されます。再度検索を行うと先頭から検索を始めます。
GTキーはすでに入力されている文字列でデータの検索を行います。それ以外の検索動作は%と同じです。

=キーを押すと内容確認モードにうつり、データの1行目〜4行目までを見ることが出来ます。使用するキーは以下の通りです。

M- 1行目と2行目を表示する
M+ 3行目と4行目を表示する
AC メイン画面に戻る

ところでテキストの入力モードのときに÷を押すと自動生成されるパスワードですが、上記の電卓モードから表示させるメニューのPassword Settingでパスワード生成ルールを設定します。

Password Settingを選択すると次のような画面になります。



ここでパスワードに数字を含めるかどうかを設定します。M-とM+で使う・使わないを選択して=キーで決定します。



次にパスワードに大文字のアルファベットを含めるかどうかを聞いてくるので、M-とM+で使う・使わないを選択し=キーで決定します。



さらにパスワードに小文字のアルファベットを含めるかどうかを聞いてきます。上記で数字とアルファベット大文字を使わない設定にすると、この選択メニューは表示されず強制的に小文字のアルファベットを使用する設定となります。



今度は数字と間違いやすいアルファベットのO(オー)I(アイ)o(オー)l(エル)をパスワードに含めるかどうか聞いてきますので、使う・使わないを選択して決定します。



最後にパスワードの文字数を聞いてきます。M-とM+で数字を増減させ=キーで決定です。設定できる文字数の範囲は4〜16文字です。
文字数の設定が終わると電卓モードに戻ります。

アカウント(パスワード)管理機能の使い方は以上です。

あとはバックアップ機能を追加したいのですが、ATmega328Pのピンほとんどを使い切っているのでI2C接続のデバイスをつなげてバックアップするしかなさそうです。EEPROMをもう1つつなげてコピーするのが手っ取り早いのですが、できれば入力したデータをテキストとして取り出せたほうが便利ですよね。その逆にテキストに記述したアカウント情報をEEPROMに書き込めるとさらに便利です。

どうやって実現するのか、じっくり考える必要がありそうです。



最新の画像もっと見る

コメントを投稿